preparation work for implementing images support in wxButton: move wxBitmapButton methods to the base class (enhancing/completing them in the process); there are no functionality changes yet (hopefully)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61051 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -58,11 +58,50 @@ class WXDLLIMPEXP_CORE wxButtonBase : public wxControl
|
||||
public:
|
||||
wxButtonBase() { }
|
||||
|
||||
// show the image in the button in addition to the label
|
||||
virtual void SetImageLabel(const wxBitmap& WXUNUSED(bitmap)) { }
|
||||
// show the image in the button in addition to the label: this method is
|
||||
// supported on all (major) platforms
|
||||
void SetBitmap(const wxBitmap& bitmap, wxDirection dir = wxLEFT)
|
||||
{
|
||||
SetBitmapLabel(bitmap);
|
||||
SetBitmapPosition(dir);
|
||||
}
|
||||
|
||||
wxBitmap GetBitmap() const { return DoGetBitmap(State_Normal); }
|
||||
|
||||
// Methods for setting individual images for different states: normal,
|
||||
// selected (meaning pushed or pressed), focused (meaning normal state for
|
||||
// a focused button), disabled or hover (a.k.a. hot or current).
|
||||
//
|
||||
// Remember that SetBitmap() itself must be called before any other
|
||||
// SetBitmapXXX() methods (except for SetBitmapLabel() which is a synonym
|
||||
// for it anyhow) and that all bitmaps passed to these functions should be
|
||||
// of the same size.
|
||||
void SetBitmapLabel(const wxBitmap& bitmap)
|
||||
{ DoSetBitmap(bitmap, State_Normal); }
|
||||
void SetBitmapPressed(const wxBitmap& bitmap)
|
||||
{ DoSetBitmap(bitmap, State_Pressed); }
|
||||
void SetBitmapDisabled(const wxBitmap& bitmap)
|
||||
{ DoSetBitmap(bitmap, State_Disabled); }
|
||||
void SetBitmapCurrent(const wxBitmap& bitmap)
|
||||
{ DoSetBitmap(bitmap, State_Current); }
|
||||
void SetBitmapFocus(const wxBitmap& bitmap)
|
||||
{ DoSetBitmap(bitmap, State_Focused); }
|
||||
|
||||
wxBitmap GetBitmapLabel() const { return DoGetBitmap(State_Normal); }
|
||||
wxBitmap GetBitmapPressed() const { return DoGetBitmap(State_Pressed); }
|
||||
wxBitmap GetBitmapDisabled() const { return DoGetBitmap(State_Disabled); }
|
||||
wxBitmap GetBitmapCurrent() const { return DoGetBitmap(State_Current); }
|
||||
wxBitmap GetBitmapFocus() const { return DoGetBitmap(State_Focused); }
|
||||
|
||||
|
||||
// set the margins around the image
|
||||
virtual void SetImageMargins(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y)) { }
|
||||
void SetBitmapMargins(wxCoord x, wxCoord y) { DoSetBitmapMargins(x, y); }
|
||||
void SetBitmapMargins(const wxSize& sz) { DoSetBitmapMargins(sz.x, sz.y); }
|
||||
|
||||
// set the image position relative to the text, i.e. wxLEFT means that the
|
||||
// image is to the left of the text (this is the default)
|
||||
virtual void SetBitmapPosition(wxDirection WXUNUSED(dir)) { }
|
||||
|
||||
|
||||
// make this button the default button in its top level window
|
||||
//
|
||||
@@ -77,10 +116,44 @@ public:
|
||||
// returns the default button size for this platform
|
||||
static wxSize GetDefaultSize();
|
||||
|
||||
// wxUniv-compatible and deprecated equivalents to SetBitmapXXX()
|
||||
#if WXWIN_COMPATIBILITY_2_8
|
||||
void SetImageLabel(const wxBitmap& bitmap) { SetBitmap(bitmap); }
|
||||
void SetImageMargins(wxCoord x, wxCoord y) { SetBitmapMargins(x, y); }
|
||||
#endif // WXWIN_COMPATIBILITY_2_8
|
||||
|
||||
// backwards compatible names for pressed/current bitmaps: they're not
|
||||
// deprecated as there is nothing really wrong with using them and no real
|
||||
// advantage to using the new names but the new names are still preferred
|
||||
wxBitmap GetBitmapSelected() const { return GetBitmapPressed(); }
|
||||
wxBitmap GetBitmapHover() const { return GetBitmapCurrent(); }
|
||||
|
||||
void SetBitmapSelected(const wxBitmap& bitmap) { SetBitmapPressed(bitmap); }
|
||||
void SetBitmapHover(const wxBitmap& bitmap) { SetBitmapCurrent(bitmap); }
|
||||
|
||||
protected:
|
||||
// choose the default border for this window
|
||||
virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
|
||||
|
||||
enum State
|
||||
{
|
||||
State_Normal,
|
||||
State_Pressed, // a.k.a. "selected" in public API for some reason
|
||||
State_Current, // a.k.a. hot or "hovering"
|
||||
State_Disabled,
|
||||
State_Focused,
|
||||
State_Max
|
||||
};
|
||||
|
||||
virtual wxBitmap DoGetBitmap(State WXUNUSED(which)) const
|
||||
{ return wxBitmap(); }
|
||||
virtual void DoSetBitmap(const wxBitmap& WXUNUSED(bitmap),
|
||||
State WXUNUSED(which))
|
||||
{ }
|
||||
virtual void DoSetBitmapMargins(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y))
|
||||
{ }
|
||||
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(wxButtonBase);
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user