From 884a3e9d375ed780dbd4677f3c56acc4b71f70a8 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Fri, 4 Nov 2011 03:38:09 +0000 Subject: [PATCH] Add wxAnyButton so the shared class hierarchy of wxButton and wxToggleButton is accurate. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69659 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- interface/wx/anybutton.h | 208 +++++++++++++++++++++++++++++++++++++++ interface/wx/button.h | 184 +--------------------------------- interface/wx/tglbtn.h | 4 +- interface/wx/timer.h | 3 + 4 files changed, 214 insertions(+), 185 deletions(-) create mode 100644 interface/wx/anybutton.h diff --git a/interface/wx/anybutton.h b/interface/wx/anybutton.h new file mode 100644 index 0000000000..fa59a5373b --- /dev/null +++ b/interface/wx/anybutton.h @@ -0,0 +1,208 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: anybutton.h +// Purpose: interface of wxAnyButton +// Author: wxWidgets team +// RCS-ID: $Id: button.h 69135 2011-09-18 04:38:01Z RD $ +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#define wxBU_LEFT 0x0040 +#define wxBU_TOP 0x0080 +#define wxBU_RIGHT 0x0100 +#define wxBU_BOTTOM 0x0200 +#define wxBU_ALIGN_MASK ( wxBU_LEFT | wxBU_TOP | wxBU_RIGHT | wxBU_BOTTOM ) + +#define wxBU_EXACTFIT 0x0001 +#define wxBU_NOTEXT 0x0002 + + +/** + @class wxAnyButton + + A class for common button functionality used as the base for the + various button classes. +*/ +class wxAnyButton : public wxControl +{ +public: + wxAnyButton(); + ~wxAnyButton(); + + /** + Return the bitmap shown by the button. + + The returned bitmap may be invalid only if the button doesn't show any + images. + + @see SetBitmap() + + @since 2.9.1 + */ + wxBitmap GetBitmap() const; + + /** + Returns the bitmap used when the mouse is over the button, which may be + invalid. + + @see SetBitmapCurrent() + + @since 2.9.1 (available as wxBitmapButton::GetBitmapHover() in previous + versions) + */ + wxBitmap GetBitmapCurrent() const; + + /** + Returns the bitmap for the disabled state, which may be invalid. + + @see SetBitmapDisabled() + + @since 2.9.1 (available in wxBitmapButton only in previous versions) + */ + wxBitmap GetBitmapDisabled() const; + + /** + Returns the bitmap for the focused state, which may be invalid. + + @see SetBitmapFocus() + + @since 2.9.1 (available in wxBitmapButton only in previous versions) + */ + wxBitmap GetBitmapFocus() const; + + /** + Returns the bitmap for the normal state. + + This is exactly the same as GetBitmap() but uses a name + backwards-compatible with wxBitmapButton. + + @see SetBitmap(), SetBitmapLabel() + + @since 2.9.1 (available in wxBitmapButton only in previous versions) + */ + wxBitmap GetBitmapLabel() const; + + /** + Returns the bitmap for the pressed state, which may be invalid. + + @see SetBitmapPressed() + + @since 2.9.1 (available as wxBitmapButton::GetBitmapSelected() in + previous versions) + */ + wxBitmap GetBitmapPressed() const; + + + /** + Sets the bitmap to display in the button. + + The bitmap is displayed together with the button label. This method + sets up a single bitmap which is used in all button states, use + SetBitmapDisabled(), SetBitmapPressed(), SetBitmapCurrent() or + SetBitmapFocus() to change the individual images used in different + states. + + @param bitmap + The bitmap to display in the button. May be invalid to remove any + currently displayed bitmap. + @param dir + The position of the bitmap inside the button. By default it is + positioned to the left of the text, near to the left button border. + Other possible values include wxRIGHT, wxTOP and wxBOTTOM. + + @see SetBitmapPosition(), SetBitmapMargins() + + @since 2.9.1 + */ + void SetBitmap(const wxBitmap& bitmap, wxDirection dir = wxLEFT); + + /** + Sets the bitmap to be shown when the mouse is over the button. + + @see GetBitmapCurrent() + + @since 2.9.1 (available as wxBitmapButton::SetBitmapHover() in previous + versions) + */ + void SetBitmapCurrent(const wxBitmap& bitmap); + + /** + Sets the bitmap for the disabled button appearance. + + @see GetBitmapDisabled(), SetBitmapLabel(), + SetBitmapPressed(), SetBitmapFocus() + + @since 2.9.1 (available in wxBitmapButton only in previous versions) + */ + void SetBitmapDisabled(const wxBitmap& bitmap); + + /** + Sets the bitmap for the button appearance when it has the keyboard + focus. + + @see GetBitmapFocus(), SetBitmapLabel(), + SetBitmapPressed(), SetBitmapDisabled() + + @since 2.9.1 (available in wxBitmapButton only in previous versions) + */ + void SetBitmapFocus(const wxBitmap& bitmap); + + /** + Sets the bitmap label for the button. + + @remarks This is the bitmap used for the unselected state, and for all + other states if no other bitmaps are provided. + + @see SetBitmap(), GetBitmapLabel() + + @since 2.9.1 (available in wxBitmapButton only in previous versions) + */ + void SetBitmapLabel(const wxBitmap& bitmap); + + /** + Sets the bitmap for the selected (depressed) button appearance. + + @since 2.9.1 (available as wxBitmapButton::SetBitmapSelected() in + previous versions) + */ + void SetBitmapPressed(const wxBitmap& bitmap); + + + /** + Get the margins between the bitmap and the text of the button. + + @see SetBitmapMargins() + + @since 2.9.1 + */ + wxSize GetBitmapMargins(); + + /** + Set the margins between the bitmap and the text of the button. + + This method is currently only implemented under MSW. If it is not + called, default margin is used around the bitmap. + + @see SetBitmap(), SetBitmapPosition() + + @since 2.9.1 + */ + //@{ + void SetBitmapMargins(wxCoord x, wxCoord y); + void SetBitmapMargins(const wxSize& sz); + //@} + + /** + Set the position at which the bitmap is displayed. + + This method should only be called if the button does have an associated + bitmap. + + @since 2.9.1 + + @param dir + Direction in which the bitmap should be positioned, one of wxLEFT, + wxRIGHT, wxTOP or wxBOTTOM. + */ + void SetBitmapPosition(wxDirection dir); +}; + diff --git a/interface/wx/button.h b/interface/wx/button.h index 9f9db07fba..30c8e5f337 100644 --- a/interface/wx/button.h +++ b/interface/wx/button.h @@ -6,15 +6,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#define wxBU_LEFT 0x0040 -#define wxBU_TOP 0x0080 -#define wxBU_RIGHT 0x0100 -#define wxBU_BOTTOM 0x0200 -#define wxBU_ALIGN_MASK ( wxBU_LEFT | wxBU_TOP | wxBU_RIGHT | wxBU_BOTTOM ) - -#define wxBU_EXACTFIT 0x0001 -#define wxBU_NOTEXT 0x0002 - /** @class wxButton @@ -108,7 +99,7 @@ @see wxBitmapButton */ -class wxButton : public wxControl +class wxButton : public wxAnyButton { public: /** @@ -186,77 +177,6 @@ public: */ bool GetAuthNeeded() const; - /** - Return the bitmap shown by the button. - - The returned bitmap may be invalid only if the button doesn't show any - images. - - @see SetBitmap() - - @since 2.9.1 - */ - wxBitmap GetBitmap() const; - - /** - Returns the bitmap used when the mouse is over the button, which may be - invalid. - - @see SetBitmapCurrent() - - @since 2.9.1 (available as wxBitmapButton::GetBitmapHover() in previous - versions) - */ - wxBitmap GetBitmapCurrent() const; - - /** - Returns the bitmap for the disabled state, which may be invalid. - - @see SetBitmapDisabled() - - @since 2.9.1 (available in wxBitmapButton only in previous versions) - */ - wxBitmap GetBitmapDisabled() const; - - /** - Returns the bitmap for the focused state, which may be invalid. - - @see SetBitmapFocus() - - @since 2.9.1 (available in wxBitmapButton only in previous versions) - */ - wxBitmap GetBitmapFocus() const; - - /** - Returns the bitmap for the normal state. - - This is exactly the same as GetBitmap() but uses a name - backwards-compatible with wxBitmapButton. - - @see SetBitmap(), SetBitmapLabel() - - @since 2.9.1 (available in wxBitmapButton only in previous versions) - */ - wxBitmap GetBitmapLabel() const; - - /** - Returns the bitmap for the pressed state, which may be invalid. - - @see SetBitmapPressed() - - @since 2.9.1 (available as wxBitmapButton::GetBitmapSelected() in - previous versions) - */ - wxBitmap GetBitmapPressed() const; - - /** - Get the margins between the bitmap and the text of the button. - - @see SetBitmapMargins() - - @since 2.9.1 - */ - wxSize GetBitmapMargins(); /** Returns the default size for the buttons. It is advised to make all the dialog @@ -285,108 +205,6 @@ public: */ void SetAuthNeeded(bool needed = true); - /** - Sets the bitmap to display in the button. - - The bitmap is displayed together with the button label. This method - sets up a single bitmap which is used in all button states, use - SetBitmapDisabled(), SetBitmapPressed(), SetBitmapCurrent() or - SetBitmapFocus() to change the individual images used in different - states. - - @param bitmap - The bitmap to display in the button. May be invalid to remove any - currently displayed bitmap. - @param dir - The position of the bitmap inside the button. By default it is - positioned to the left of the text, near to the left button border. - Other possible values include wxRIGHT, wxTOP and wxBOTTOM. - - @see SetBitmapPosition(), SetBitmapMargins() - - @since 2.9.1 - */ - void SetBitmap(const wxBitmap& bitmap, wxDirection dir = wxLEFT); - - /** - Sets the bitmap to be shown when the mouse is over the button. - - @see GetBitmapCurrent() - - @since 2.9.1 (available as wxBitmapButton::SetBitmapHover() in previous - versions) - */ - void SetBitmapCurrent(const wxBitmap& bitmap); - - /** - Sets the bitmap for the disabled button appearance. - - @see GetBitmapDisabled(), SetBitmapLabel(), - SetBitmapPressed(), SetBitmapFocus() - - @since 2.9.1 (available in wxBitmapButton only in previous versions) - */ - void SetBitmapDisabled(const wxBitmap& bitmap); - - /** - Sets the bitmap for the button appearance when it has the keyboard - focus. - - @see GetBitmapFocus(), SetBitmapLabel(), - SetBitmapPressed(), SetBitmapDisabled() - - @since 2.9.1 (available in wxBitmapButton only in previous versions) - */ - void SetBitmapFocus(const wxBitmap& bitmap); - - /** - Sets the bitmap label for the button. - - @remarks This is the bitmap used for the unselected state, and for all - other states if no other bitmaps are provided. - - @see SetBitmap(), GetBitmapLabel() - - @since 2.9.1 (available in wxBitmapButton only in previous versions) - */ - void SetBitmapLabel(const wxBitmap& bitmap); - - /** - Sets the bitmap for the selected (depressed) button appearance. - - @since 2.9.1 (available as wxBitmapButton::SetBitmapSelected() in - previous versions) - */ - void SetBitmapPressed(const wxBitmap& bitmap); - - /** - Set the margins between the bitmap and the text of the button. - - This method is currently only implemented under MSW. If it is not - called, default margin is used around the bitmap. - - @see SetBitmap(), SetBitmapPosition() - - @since 2.9.1 - */ - //@{ - void SetBitmapMargins(wxCoord x, wxCoord y); - void SetBitmapMargins(const wxSize& sz); - //@} - - /** - Set the position at which the bitmap is displayed. - - This method should only be called if the button does have an associated - bitmap. - - @since 2.9.1 - - @param dir - Direction in which the bitmap should be positioned, one of wxLEFT, - wxRIGHT, wxTOP or wxBOTTOM. - */ - void SetBitmapPosition(wxDirection dir); /** This sets the button to be the default item in its top-level window diff --git a/interface/wx/tglbtn.h b/interface/wx/tglbtn.h index 866be9765e..9d73b2aae0 100644 --- a/interface/wx/tglbtn.h +++ b/interface/wx/tglbtn.h @@ -28,7 +28,7 @@ @see wxCheckBox, wxButton, wxBitmapToggleButton */ -class wxToggleButton : public wxControl +class wxToggleButton : public wxAnyButton { public: /** @@ -126,7 +126,7 @@ public: @category{ctrl} @appearance{bitmaptogglebutton.png} */ -class wxBitmapToggleButton : public wxControl +class wxBitmapToggleButton : public wxToggleButton { public: /** diff --git a/interface/wx/timer.h b/interface/wx/timer.h index 07fbccff35..054e890057 100644 --- a/interface/wx/timer.h +++ b/interface/wx/timer.h @@ -198,6 +198,9 @@ public: class wxTimerEvent : public wxEvent { public: + wxTimerEvent(); + wxTimerEvent(wxTimer& timer); + /** Returns the interval of the timer which generated this event. */ -- 2.45.2