]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/rearrangectrl.h
Remove wxDataViewTextRendererAttr by merging it with wxDataViewTextRenderer.
[wxWidgets.git] / interface / wx / rearrangectrl.h
index 721fe1c15eb5cec96215ae40f522bf91ea07b113..4d5528251d1f438d02dbda0209a1a8455f71da10 100644 (file)
@@ -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