X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/af67f39da8ecf7c29ba5071ac49456d506c111cf..97d13342cc2ac77e21c38115cc6ebecac930f92a:/interface/wx/rearrangectrl.h diff --git a/interface/wx/rearrangectrl.h b/interface/wx/rearrangectrl.h index 721fe1c15e..4d5528251d 100644 --- a/interface/wx/rearrangectrl.h +++ b/interface/wx/rearrangectrl.h @@ -266,9 +266,30 @@ public: class wxRearrangeDialog { public: + /** + Default constructor. + + Create() must be called later to effectively create the control. + */ + wxRearrangeDialog(); + /** Constructor creating the dialog. + Please see Create() for the parameters description. + */ + wxRearrangeDialog(wxWindow *parent, + const wxString& message, + const wxString& title, + const wxArrayInt& order, + const wxArrayString& items, + const wxPoint& pos = wxDefaultPosition, + const wxString& name = wxRearrangeDialogNameStr); + + /** + Effectively creates the dialog for an object created using the default + constructor. + @param parent The dialog parent, possibly @NULL. @param message @@ -284,14 +305,63 @@ public: Optional dialog position. @param name Optional dialog name. + @return + @true if the dialog was successfully created or @false if creation + failed. */ - wxRearrangeDialog(wxWindow *parent, - const wxString& message, - const wxString& title, - const wxArrayInt& order, - const wxArrayString& items, - const wxPoint& pos = wxDefaultPosition, - const wxString& name = wxRearrangeDialogNameStr); + bool Create(wxWindow *parent, + const wxString& message, + const wxString& title, + const wxArrayInt& order, + const wxArrayString& items, + const wxPoint& pos = wxDefaultPosition, + const wxString& name = wxRearrangeDialogNameStr); + + /** + Customize the dialog by adding extra controls to it. + + This function adds the given @a win to the dialog, putting it just + below the part occupied by wxRearrangeCtrl. It must be called after + creating the dialog and you will typically need to process the events + generated by the extra controls for them to do something useful. + + For example: + @code + class MyRearrangeDialog : public wxRearrangeDialog + { + public: + MyRearrangeDialog(wxWindow *parent, ...) + : wxRearrangeDialog(parent, ...) + { + wxPanel *panel = new wxPanel(this); + wxSizer *sizer = new wxBoxSizer(wxHORIZONTAL); + sizer->Add(new wxStaticText(panel, wxID_ANY, + "Column width in pixels:")); + sizer->Add(new wxTextCtrl(panel, wxID_ANY, "")); + panel->SetSizer(sizer); + AddExtraControls(panel); + } + + ... code to update the text control with the currently selected + item width and to react to its changes omitted ... + }; + @endcode + + See also the complete example of a custom rearrange dialog in the + dialogs sample. + + @param win + The window containing the extra controls. It must have this dialog + as its parent. + */ + void AddExtraControls(wxWindow *win); + + /** + Return the list control used by the dialog. + + @see wxRearrangeCtrl::GetList() + */ + wxRearrangeList *GetList() const; /** Return the array describing the order of items after it was modified by