X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a65ffcb229be96bbea86808bab3b1239407e8d9a..d20ba5f860c0ccfdbbd26a29e53b31f7319e06f6:/include/wx/pickerbase.h diff --git a/include/wx/pickerbase.h b/include/wx/pickerbase.h index 705924b362..1982838cc2 100644 --- a/include/wx/pickerbase.h +++ b/include/wx/pickerbase.h @@ -13,10 +13,13 @@ #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 &);