Refactor wxButton and wxToggleButton to derive from wxAnyButton.
Introduce wxAnyButton class, a common base class for wxButton and wxToggleButton, allowing to reuse the same implementation for them. This also allows to implement support for bitmaps in wxToggleButton for all platforms and make wxBitmapToggleButton a trivial subclass of it everywhere, similarly to wxBitmapButton and wxButton. Closes #13198. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67931 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -9,8 +9,8 @@
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_BUTTON_H_
|
||||
#define _WX_BUTTON_H_
|
||||
#ifndef _WX_MSW_BUTTON_H_
|
||||
#define _WX_MSW_BUTTON_H_
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Pushbutton
|
||||
@@ -47,22 +47,13 @@ public:
|
||||
|
||||
virtual wxWindow *SetDefault();
|
||||
|
||||
// overridden base class methods
|
||||
virtual void SetLabel(const wxString& label);
|
||||
virtual bool SetBackgroundColour(const wxColour &colour);
|
||||
virtual bool SetForegroundColour(const wxColour &colour);
|
||||
|
||||
// implementation from now on
|
||||
virtual void Command(wxCommandEvent& event);
|
||||
virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
|
||||
virtual bool MSWCommand(WXUINT param, WXWORD id);
|
||||
|
||||
virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *item);
|
||||
virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
|
||||
|
||||
// returns true if the platform should explicitly apply a theme border
|
||||
virtual bool CanApplyThemeBorder() const { return false; }
|
||||
|
||||
protected:
|
||||
// send a notification event, return true if processed
|
||||
bool SendClickEvent();
|
||||
@@ -74,32 +65,8 @@ protected:
|
||||
// set or unset BS_DEFPUSHBUTTON style
|
||||
static void SetDefaultStyle(wxButton *btn, bool on);
|
||||
|
||||
// usually overridden base class virtuals
|
||||
virtual wxSize DoGetBestSize() const;
|
||||
|
||||
virtual bool DoGetAuthNeeded() const;
|
||||
virtual void DoSetAuthNeeded(bool show);
|
||||
virtual wxBitmap DoGetBitmap(State which) const;
|
||||
virtual void DoSetBitmap(const wxBitmap& bitmap, State which);
|
||||
virtual wxSize DoGetBitmapMargins() const;
|
||||
virtual void DoSetBitmapMargins(wxCoord x, wxCoord y);
|
||||
virtual void DoSetBitmapPosition(wxDirection dir);
|
||||
|
||||
#if wxUSE_MARKUP
|
||||
virtual bool DoSetLabelMarkup(const wxString& markup);
|
||||
#endif // wxUSE_MARKUP
|
||||
|
||||
// Increases the passed in size to account for the button image.
|
||||
//
|
||||
// Should only be called if we do have a button, i.e. if m_imageData is
|
||||
// non-NULL.
|
||||
void AdjustForBitmapSize(wxSize& size) const;
|
||||
|
||||
class wxButtonImageData *m_imageData;
|
||||
|
||||
#if wxUSE_MARKUP
|
||||
class wxMarkupText *m_markupText;
|
||||
#endif // wxUSE_MARKUP
|
||||
|
||||
// true if the UAC symbol is shown
|
||||
bool m_authNeeded;
|
||||
@@ -107,19 +74,10 @@ protected:
|
||||
private:
|
||||
void Init()
|
||||
{
|
||||
m_imageData = NULL;
|
||||
#if wxUSE_MARKUP
|
||||
m_markupText = NULL;
|
||||
#endif // wxUSE_MARKUP
|
||||
m_authNeeded = false;
|
||||
}
|
||||
|
||||
// Switches button into owner-drawn mode: this is used if we need to draw
|
||||
// something not supported by the native control, such as using non default
|
||||
// colours or a bitmap on pre-XP systems.
|
||||
void MakeOwnerDrawn();
|
||||
|
||||
wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxButton);
|
||||
};
|
||||
|
||||
#endif // _WX_BUTTON_H_
|
||||
#endif // _WX_MSW_BUTTON_H_
|
||||
|
Reference in New Issue
Block a user