Classe: wxStdDialogButtonSizer().
Cette classe agence la disposition des boutons des boîtes de dialogue de façon à être conforme aux directives de l'interface de l'utilisateur ou de sa boîte à outils si elle existe.
Mais attention, seuls les boutons faisant partis de la liste suivante sont consernés par cette agencement.
stdDialogButtonSizer = wx.wxStdDialogButtonSizer() bouton = wx.wxButton(dialog, wx.wxID_OK, "OK") stdDialogButtonSizer:AddButton(bouton)
Vous trouverez ci-dessous, la liste des méthodes implémentées par wxLua 2.8.10.
AddButton() | Additionne un bouton au stdDialogButtonSizer. |
SetAffirmativeButton() | Définit le bouton actif pour le sizer. |
SetNegativeButton() | Définit le bouton non-actif pour le sizer. |
SetCancelButton() | Définit le bouton d'annulation pour le sizer. |
Realize() | Arrange les boutons et applique un espacement approprié entre les boutons. |
require("wx") -- inutile si on utilise wxluafreeze.exe local dialog = nil local panel = nil -- Création d'une boîte de dialogue et de son panel. dialog = wx.wxDialog(wx.NULL, wx.wxID_ANY, "Boîte de dialogue", wx.wxDefaultPosition, wx.wxDefaultSize) panel = wx.wxPanel(dialog, wx.wxID_ANY) -- Centre l'objet dialog au centre de l'écran. dialog:Centre() -- Création d'un Sizer principal. local mainSizer = wx.wxBoxSizer(wx.wxVERTICAL) -- Création du texte quelconque. (wxStaticText()) local Texte = "L'histoire d'Internet remonte au développement des premiers réseaux de télécommunication. L'dée d'un réseau informatique, permettant aux utilisateurs de différents ordinateurs de communiquer, se développa par de nombreuses étapes successives. La somme de tous ces développements conduisit au « réseau des réseaux » (network of networks) que nous connaissons aujourd’hui en tant qu'Internet. Il est le fruit à la fois de développements technologiques et du regroupement d'infrastructures réseau existantes et de systèmes de télécommunications." local staticTexte = wx.wxStaticText(panel, -1, Texte) -- Le texte ne se met pas dans une staticBox, la StaticBox -- ENTOURE simplement le texte. -- Mettre le texte sur le panel et l'entourer avec la StaticBox. staticTexte:Wrap(450) -- Cette méthode encapsule le texte en lui définissant une -- largeur max en pixels. -- Addition de staticTexte au staticBoxSizer puis au mainSizer. staticBoxSizer :Add(staticTexte, 0, wx.wxALL, 10) mainSizer :Add(staticBoxSizer, 0, wx.wxALL, 20) -- Création du StdDialogButtonSizer. local StdDialogButtonSizer = wx.wxStdDialogButtonSizer() -- On Créer 3 boutons que l'on va rajouter. local btnHELP = wx.wxButton(panel, wx.wxID_HELP, "HELP") local btnCANCEL = wx.wxButton(panel, wx.wxID_CANCEL, "CANCEL") local btnOK = wx.wxButton(panel, wx.wxID_OK, "OK") -- On additionne les 3 boutons au StdDialogButtonSizer StdDialogButtonSizer:AddButton(btnHELP) StdDialogButtonSizer:AddButton(btnCANCEL) StdDialogButtonSizer:AddButton(btnOK) -- On positionne les 3 boutons StdDialogButtonSizer:Realize() -- On additionne le StdDialogButtonSizer au Sizer principale. mainSizer:Add(StdDialogButtonSizer, 0, wx.wxALIGN_CENTRE + wx.wxALL, 10) -- On affecte le Sizer principal au Panel panel :SetSizer( mainSizer ) mainSizer:SetSizeHints( dialog ) -- Gestion des boutons. btnHELP:Connect(wx.wxID_HELP, wx.wxEVT_COMMAND_BUTTON_CLICKED, function(event) wx.wxMessageBox("Vous avez appuyé sur HELP") end) btnCANCEL:Connect(wx.wxID_CANCEL,wx.wxEVT_COMMAND_BUTTON_CLICKED, function(event) wx.wxMessageBox("Vous avez appuyé sur CANCEL") end) btnOK:Connect(wx.wxID_OK, wx.wxEVT_COMMAND_BUTTON_CLICKED, function(event) wx.wxMessageBox("Vous avez appuyé sur OK") end) -- Démarrage de l'application. dialog:Show(true) wx.wxGetApp():MainLoop()
Ce qui nous donne comme résultat: