X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fc7a2a602b4bd9308be21bc07e40a680f483438e..5614d24d40375ad409f8f5bcbfdf3c61b61a3555:/include/wx/msw/control.h diff --git a/include/wx/msw/control.h b/include/wx/msw/control.h index 9ba8a0c3a7..0856025577 100644 --- a/include/wx/msw/control.h +++ b/include/wx/msw/control.h @@ -12,7 +12,7 @@ #ifndef _WX_CONTROL_H_ #define _WX_CONTROL_H_ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface "control.h" #endif @@ -22,7 +22,8 @@ class WXDLLEXPORT wxControl : public wxControlBase { public: - wxControl(); + wxControl() { } + wxControl(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, @@ -43,9 +44,18 @@ public: // Simulates an event virtual void Command(wxCommandEvent& event) { ProcessCommand(event); } + // implementation from now on // -------------------------- + virtual wxVisualAttributes GetDefaultAttributes() const + { + return GetClassDefaultAttributes(GetWindowVariant()); + } + + static wxVisualAttributes + GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); + // Calls the callback and appropriate event handlers bool ProcessCommand(wxCommandEvent& event); @@ -58,27 +68,18 @@ public: virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *WXUNUSED(item)) { return FALSE; }; virtual bool MSWOnMeasure(WXMEASUREITEMSTRUCT *WXUNUSED(item)) { return FALSE; }; - wxArrayLong GetSubcontrols() { return m_subControls; } + const wxArrayLong& GetSubcontrols() const { return m_subControls; } void OnEraseBackground(wxEraseEvent& event); virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, WXUINT message, WXWPARAM wParam, WXLPARAM lParam); -#if WXWIN_COMPATIBILITY - virtual void SetButtonColour(const wxColour& WXUNUSED(col)) { } - wxColour* GetButtonColour() const { return NULL; } - - virtual void SetLabelFont(const wxFont& font); - virtual void SetButtonFont(const wxFont& font); - wxFont& GetLabelFont() const; - wxFont& GetButtonFont() const; -#endif // WXWIN_COMPATIBILITY - protected: // choose the default border for this window virtual wxBorder GetDefaultBorder() const; + // return default best size (doesn't really make any sense, override this) virtual wxSize DoGetBestSize() const; // create the control of the given Windows class: this is typically called @@ -114,6 +115,14 @@ protected: // default style for the control include WS_TABSTOP if it AcceptsFocus() virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; + // this is a helper for the derived class GetClassDefaultAttributes() + // implementation: it returns the right colours for the classes which + // contain something else (e.g. wxListBox, wxTextCtrl, ...) instead of + // being simple controls (such as wxButton, wxCheckBox, ...) + static wxVisualAttributes + GetCompositeControlsDefaultAttributes(wxWindowVariant variant); + + // for controls like radiobuttons which are really composite this array // holds the ids (not HWNDs!) of the sub controls wxArrayLong m_subControls; @@ -123,13 +132,5 @@ private: DECLARE_EVENT_TABLE() }; - -#if WXWIN_COMPATIBILITY - inline wxFont& wxControl::GetLabelFont() const { return (wxFont &)GetFont(); } - inline wxFont& wxControl::GetButtonFont() const { return (wxFont &)GetFont(); } - inline void wxControl::SetLabelFont(const wxFont& font) { SetFont(font); } - inline void wxControl::SetButtonFont(const wxFont& font) { SetFont(font); } -#endif // WXWIN_COMPATIBILITY - #endif // _WX_CONTROL_H_