]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/pickerbase.h
use global operator new to fix compilation errors if type T overloads new (as wxObjec...
[wxWidgets.git] / include / wx / pickerbase.h
index 705924b3621aefafb9079791e2fa772400a2099f..1982838cc28906d4fe7d20f996d241b9573508d3 100644 (file)
 #define _WX_PICKERBASE_H_BASE_
 
 #include "wx/control.h"
+#include "wx/sizer.h"
+#include "wx/containr.h"
 
-class WXDLLIMPEXP_CORE wxTextCtrl;
+class WXDLLIMPEXP_FWD_CORE wxTextCtrl;
+class WXDLLIMPEXP_FWD_CORE wxToolTip;
 
-extern WXDLLEXPORT_DATA(const wxChar) wxButtonNameStr[];
+extern WXDLLIMPEXP_DATA_CORE(const char) wxButtonNameStr[];
 
 // ----------------------------------------------------------------------------
 // wxPickerBase is the base class for the picker controls which support
@@ -34,19 +37,20 @@ class WXDLLIMPEXP_CORE wxPickerBase : public wxControl
 public:
     // ctor: text is the associated text control
     wxPickerBase() : m_text(NULL), m_picker(NULL), m_sizer(NULL)
-        { m_container.SetContainerWindow(this); }
+        { WX_INIT_CONTROL_CONTAINER(); }
     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);
-
+    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);
 
 public:     // public API
 
@@ -56,33 +60,42 @@ public:     // public API
     int GetInternalMargin() const
         { return GetTextCtrlItem()->GetBorder(); }
 
-    // proportion of the text control respect the picker
-    // (which has a fixed proportion value of 1)
+    // proportion of the text control
     void SetTextCtrlProportion(int prop)
         { GetTextCtrlItem()->SetProportion(prop); m_sizer->Layout(); }
     int GetTextCtrlProportion() const
         { return GetTextCtrlItem()->GetProportion(); }
 
+    // proportion of the picker control
+    void SetPickerCtrlProportion(int prop)
+        { GetPickerCtrlItem()->SetProportion(prop); m_sizer->Layout(); }
+    int GetPickerCtrlProportion() const
+        { return GetPickerCtrlItem()->GetProportion(); }
+
     bool IsTextCtrlGrowable() const
-        { return GetTextCtrlItem()->GetFlag() & wxGROW; }
+        { return (GetTextCtrlItem()->GetFlag() & wxGROW) != 0; }
     void SetTextCtrlGrowable(bool grow = true)
     {
         int f = GetDefaultTextCtrlFlag();
-        if (grow)
-            GetTextCtrlItem()->SetFlag(f | wxGROW);
+        if ( grow )
+            f |= wxGROW;
         else
-            GetTextCtrlItem()->SetFlag(f & ~wxGROW);
+            f &= ~wxGROW;
+
+        GetTextCtrlItem()->SetFlag(f);
     }
 
     bool IsPickerCtrlGrowable() const
-        { return GetPickerCtrlItem()->GetFlag() & wxGROW; }
+        { return (GetPickerCtrlItem()->GetFlag() & wxGROW) != 0; }
     void SetPickerCtrlGrowable(bool grow = true)
     {
         int f = GetDefaultPickerCtrlFlag();
-        if (grow)
-            GetPickerCtrlItem()->SetFlag(f | wxGROW);
+        if ( grow )
+            f |= wxGROW;
         else
-            GetPickerCtrlItem()->SetFlag(f & ~wxGROW);
+            f &= ~wxGROW;
+
+        GetPickerCtrlItem()->SetFlag(f);
     }
 
     bool HasTextCtrl() const
@@ -92,12 +105,16 @@ public:     // public API
     wxControl *GetPickerCtrl()
         { return m_picker; }
 
-public:     // methods that derived class must/may override
-
+    // methods that derived class must/may override
     virtual void UpdatePickerFromTextCtrl() = 0;
     virtual void UpdateTextCtrlFromPicker() = 0;
 
-protected:        // utility functions
+protected:
+    // overridden base class methods
+#if wxUSE_TOOLTIPS
+    virtual void DoSetToolTip(wxToolTip *tip);
+#endif // wxUSE_TOOLTIPS
+
 
     // event handlers
     void OnTextCtrlDelete(wxWindowDestroyEvent &);