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.
wxByte GetPopupWindowState() const { return m_popupWinState; }
+ // Set value returned by GetMainWindowOfCompositeControl
+ void SetCtrlMainWnd( wxWindow* wnd ) { m_mainCtrlWnd = wnd; }
+
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 );
// 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);
virtual void DoSetToolTip( wxToolTip *tip );
#endif
+ virtual wxWindow *GetMainWindowOfCompositeControl()
+ { return m_mainCtrlWnd; }
+
// This is used when m_text is hidden (readonly).
wxString m_valueString;
// 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).
// 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();