X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/974a12f86a2882b0999a441ce4ad07e0e2c4377c..9b99c1e36a5481f2c24bee87414c68269baae4c7:/include/wx/combo.h diff --git a/include/wx/combo.h b/include/wx/combo.h index 8aa155ed71..05ee2d9c3e 100644 --- a/include/wx/combo.h +++ b/include/wx/combo.h @@ -85,7 +85,9 @@ enum // Internal use: Set wxTAB_TRAVERSAL to parent when popup is dismissed wxCC_IFLAG_PARENT_TAB_TRAVERSAL = 0x0800, // Internal use: Secondary popup window type should be used (if available). - wxCC_IFLAG_USE_ALT_POPUP = 0x1000 + wxCC_IFLAG_USE_ALT_POPUP = 0x1000, + // Internal use: Skip popup animation. + wxCC_IFLAG_DISABLE_POPUP_ANIM = 0x2000 }; @@ -182,6 +184,10 @@ public: virtual bool Enable(bool enable = true); virtual bool Show(bool show = true); virtual bool SetFont(const wxFont& font); +#if wxUSE_VALIDATORS + virtual void SetValidator(const wxValidator &validator); + virtual wxValidator *GetValidator(); +#endif // wxUSE_VALIDATORS // wxTextCtrl methods - for readonly combo they should return // without errors. @@ -322,6 +328,15 @@ public: m_iFlags &= ~wxCC_IFLAG_USE_ALT_POPUP; } + // Call with false to disable popup animation, if any. + void EnablePopupAnimation( bool enable = true ) + { + if ( enable ) + m_iFlags &= ~wxCC_IFLAG_DISABLE_POPUP_ANIM; + else + m_iFlags |= wxCC_IFLAG_DISABLE_POPUP_ANIM; + } + // // Utilies needed by the popups or native implementations // @@ -383,6 +398,9 @@ public: wxByte GetPopupWindowState() const { return m_popupWinState; } + // Set value returned by GetMainWindowOfCompositeControl + void SetCtrlMainWnd( wxWindow* wnd ) { m_mainCtrlWnd = wnd; } + protected: // @@ -405,8 +423,14 @@ protected: // Installs standard input handler to combo (and optionally to the textctrl) void InstallInputHandlers(); + // flags for DrawButton() + enum + { + Draw_PaintBg = 1 + }; + // Draws dropbutton. Using wxRenderer or bitmaps, as appropriate. - void DrawButton( wxDC& dc, const wxRect& rect, bool paintBg = true ); + void DrawButton( wxDC& dc, const wxRect& rect, int flags = Draw_PaintBg ); // Call if cursor is on button area or mouse is captured for the button. //bool HandleButtonMouseEvent( wxMouseEvent& event, bool isInside ); @@ -450,6 +474,7 @@ protected: // event handlers void OnSizeEvent( wxSizeEvent& event ); void OnFocusEvent(wxFocusEvent& event); + void OnIdleEvent(wxIdleEvent& event); void OnTextCtrlEvent(wxCommandEvent& event); void OnSysColourChanged(wxSysColourChangedEvent& event); void OnKeyEvent(wxKeyEvent& event); @@ -481,6 +506,9 @@ protected: virtual void DoSetToolTip( wxToolTip *tip ); #endif + virtual wxWindow *GetMainWindowOfCompositeControl() + { return m_mainCtrlWnd; } + // This is used when m_text is hidden (readonly). wxString m_valueString; @@ -509,6 +537,9 @@ protected: // this is for the popup window wxEvtHandler* m_popupWinEvtHandler; + // main (ie. topmost) window of a composite control (default = this) + wxWindow* m_mainCtrlWnd; + // used to prevent immediate re-popupping incase closed popup // by clicking on the combo control (needed because of inconsistent // transient implementation across platforms). @@ -572,6 +603,9 @@ protected: // is the popup window currenty shown? wxByte m_popupWinState; + // should the focus be reset to the textctrl in idle time? + bool m_resetFocus; + private: void Init();