]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/pickerbase.h
Improve wxDatePickerCtrlGeneric best size calculation.
[wxWidgets.git] / interface / wx / pickerbase.h
index 8fca81bdd46efa119ced954358ce5956c35e4fe7..c4b2f108f5732ffa65a316246a09563f7b28758e 100644 (file)
@@ -3,12 +3,16 @@
 // Purpose:     interface of wxPickerBase
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
+
+#define wxPB_USE_TEXTCTRL           0x0002
+#define wxPB_SMALL                  0x8000
+
+
 /**
     @class wxPickerBase
-    @wxheader{pickerbase.h}
 
     Base abstract class for all pickers which support an auxiliary text control.
 
 class wxPickerBase : public wxControl
 {
 public:
+    wxPickerBase();
+    virtual ~wxPickerBase();
+
+    // if present, intercepts wxPB_USE_TEXTCTRL style and creates the text control
+    // The 3rd argument is the initial wxString to display in the text control
+    bool CreateBase(wxWindow *parent,
+                    wxWindowID id,
+                    const wxString& text = wxEmptyString,
+                    const wxPoint& pos = wxDefaultPosition,
+                    const wxSize& size = wxDefaultSize,
+                    long style = 0,
+                    const wxValidator& validator = wxDefaultValidator,
+                    const wxString& name = wxButtonNameStr);
+
     /**
         Returns the margin (in pixel) between the picker and the text control.
 
@@ -51,15 +69,35 @@ public:
         @c wxPB_USE_TEXTCTRL style was not specified when this control was created.
 
         @remarks
-        The contents of the text control could be containing an invalid
-        representation of the entity which can be chosen through the picker
-        (e.g. the user entered an invalid colour syntax because of a typo).
+        The contents of the text control could be an invalid representation of
+        the entity which can be chosen through the picker
+        (e.g. when the user enters an invalid colour syntax because of a typo).
         Thus you should never parse the content of the textctrl to get the
         user's input; rather use the derived-class getter
         (e.g. wxColourPickerCtrl::GetColour(), wxFilePickerCtrl::GetPath(), etc).
     */
     wxTextCtrl* GetTextCtrl();
 
+    /**
+        Returns the native implementation of the real picker control.
+
+        @note
+        The returned control in the generic implementation of wxFilePickerCtrl,
+        wxDirPickerCtrl, wxFontPickerCtrl and wxColourPickerCtrl is a specialized
+        wxButton class so that you can change its label doing, e.g.:
+        @code
+            #ifdef __WXMSW__
+                // wxMSW is one of the platforms where the generic implementation
+                // of wxFilePickerCtrl is used...
+
+                wxButton *pButt = wx_static_cast(wxButton*, myFilePickerCtrl->GetPickerCtrl());
+                if (pButt)
+                    pButt->SetLabel("Custom browse string");
+            #endif
+        @endcode
+    */
+    wxControl* GetPickerCtrl();
+
     /**
         Returns the proportion value of the text control.
 
@@ -119,5 +157,17 @@ public:
         This function can be used only when HasTextCtrl() returns @true.
     */
     void SetTextCtrlProportion(int prop);
+
+
+    void SetTextCtrl(wxTextCtrl* text);
+    void SetPickerCtrl(wxControl* picker);
+
+    virtual void UpdatePickerFromTextCtrl() = 0;
+    virtual void UpdateTextCtrlFromPicker() = 0;
+    
+protected:
+    virtual long GetTextCtrlStyle(long style) const;
+    virtual long GetPickerStyle(long style) const;
+    void PostCreation();
 };