Allow using wxBitmapBundle for wxButton bitmaps
Take wxBitmapBundle in wxButton::SetBitmapLabel() and related functions in order to be able to associate several bitmaps to be used in different resolutions with the button, instead of just a single bitmap.
This commit is contained in:
@@ -41,7 +41,7 @@
|
||||
#define wxBU_NOTEXT 0x0002
|
||||
|
||||
|
||||
#include "wx/bitmap.h"
|
||||
#include "wx/bmpbndl.h"
|
||||
#include "wx/control.h"
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -55,7 +55,7 @@ public:
|
||||
|
||||
// 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)
|
||||
void SetBitmap(const wxBitmapBundle& bitmap, wxDirection dir = wxLEFT)
|
||||
{
|
||||
SetBitmapLabel(bitmap);
|
||||
SetBitmapPosition(dir);
|
||||
@@ -71,15 +71,15 @@ public:
|
||||
// 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)
|
||||
void SetBitmapLabel(const wxBitmapBundle& bitmap)
|
||||
{ DoSetBitmap(bitmap, State_Normal); }
|
||||
void SetBitmapPressed(const wxBitmap& bitmap)
|
||||
void SetBitmapPressed(const wxBitmapBundle& bitmap)
|
||||
{ DoSetBitmap(bitmap, State_Pressed); }
|
||||
void SetBitmapDisabled(const wxBitmap& bitmap)
|
||||
void SetBitmapDisabled(const wxBitmapBundle& bitmap)
|
||||
{ DoSetBitmap(bitmap, State_Disabled); }
|
||||
void SetBitmapCurrent(const wxBitmap& bitmap)
|
||||
void SetBitmapCurrent(const wxBitmapBundle& bitmap)
|
||||
{ DoSetBitmap(bitmap, State_Current); }
|
||||
void SetBitmapFocus(const wxBitmap& bitmap)
|
||||
void SetBitmapFocus(const wxBitmapBundle& bitmap)
|
||||
{ DoSetBitmap(bitmap, State_Focused); }
|
||||
|
||||
wxBitmap GetBitmapLabel() const { return DoGetBitmap(State_Normal); }
|
||||
@@ -113,6 +113,7 @@ public:
|
||||
// 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
|
||||
// (and need to be used when using wxBitmapBundle and not just wxBitmap)
|
||||
wxBitmap GetBitmapSelected() const { return GetBitmapPressed(); }
|
||||
wxBitmap GetBitmapHover() const { return GetBitmapCurrent(); }
|
||||
|
||||
@@ -161,7 +162,7 @@ protected:
|
||||
|
||||
virtual wxBitmap DoGetBitmap(State WXUNUSED(which)) const
|
||||
{ return wxBitmap(); }
|
||||
virtual void DoSetBitmap(const wxBitmap& WXUNUSED(bitmap),
|
||||
virtual void DoSetBitmap(const wxBitmapBundle& WXUNUSED(bitmap),
|
||||
State WXUNUSED(which))
|
||||
{ }
|
||||
|
||||
|
@@ -99,8 +99,9 @@ protected:
|
||||
// function called when any of the bitmaps changes
|
||||
virtual void OnSetBitmap() { InvalidateBestSize(); Refresh(); }
|
||||
|
||||
virtual wxBitmap DoGetBitmap(State which) const { return m_bitmaps[which]; }
|
||||
virtual void DoSetBitmap(const wxBitmap& bitmap, State which)
|
||||
virtual wxBitmap DoGetBitmap(State which) const
|
||||
{ return m_bitmaps[which].GetBitmap(wxDefaultSize); }
|
||||
virtual void DoSetBitmap(const wxBitmapBundle& bitmap, State which)
|
||||
{ m_bitmaps[which] = bitmap; OnSetBitmap(); }
|
||||
|
||||
virtual wxSize DoGetBitmapMargins() const
|
||||
@@ -114,8 +115,8 @@ protected:
|
||||
m_marginY = y;
|
||||
}
|
||||
|
||||
// the bitmaps for various states
|
||||
wxBitmap m_bitmaps[State_Max];
|
||||
// the bitmap bundles for various states
|
||||
wxBitmapBundle m_bitmaps[State_Max];
|
||||
|
||||
// the margins around the bitmap
|
||||
int m_marginX,
|
||||
|
@@ -42,7 +42,7 @@ protected:
|
||||
virtual void DoEnable(bool enable) wxOVERRIDE;
|
||||
|
||||
virtual wxBitmap DoGetBitmap(State which) const wxOVERRIDE;
|
||||
virtual void DoSetBitmap(const wxBitmap& bitmap, State which) wxOVERRIDE;
|
||||
virtual void DoSetBitmap(const wxBitmapBundle& bitmap, State which) wxOVERRIDE;
|
||||
virtual void DoSetBitmapPosition(wxDirection dir) wxOVERRIDE;
|
||||
|
||||
// update the bitmap to correspond to the current button state
|
||||
@@ -60,13 +60,13 @@ private:
|
||||
State GTKGetCurrentBitmapState() const;
|
||||
|
||||
// show the given bitmap (must be valid)
|
||||
void GTKDoShowBitmap(const wxBitmap& bitmap);
|
||||
void GTKDoShowBitmap(const wxBitmapBundle& bitmap);
|
||||
|
||||
|
||||
// the bitmaps for the different state of the buttons, all of them may be
|
||||
// invalid and the button only shows a bitmap at all if State_Normal bitmap
|
||||
// is valid
|
||||
wxBitmap m_bitmaps[State_Max];
|
||||
wxBitmapBundle m_bitmaps[State_Max];
|
||||
|
||||
// true iff mouse is currently over the button
|
||||
bool m_isCurrent;
|
||||
|
@@ -20,7 +20,7 @@ public:
|
||||
|
||||
wxBitmapButton(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxBitmap& bitmap,
|
||||
const wxBitmapBundle& bitmap,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = 0,
|
||||
@@ -32,7 +32,7 @@ public:
|
||||
|
||||
bool Create(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxBitmap& bitmap,
|
||||
const wxBitmapBundle& bitmap,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = 0,
|
||||
|
@@ -21,7 +21,7 @@ public:
|
||||
|
||||
wxBitmapButton(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxBitmap& bitmap,
|
||||
const wxBitmapBundle& bitmap,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = 0,
|
||||
@@ -35,7 +35,7 @@ public:
|
||||
|
||||
bool Create(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxBitmap& bitmap,
|
||||
const wxBitmapBundle& bitmap,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = 0,
|
||||
@@ -47,7 +47,7 @@ public:
|
||||
const wxString& name = wxString());
|
||||
|
||||
void SetLabel( const wxString &label );
|
||||
virtual void SetLabel( const wxBitmap& bitmap ) { SetBitmapLabel(bitmap); }
|
||||
virtual void SetLabel( const wxBitmapBundle& bitmap ) { SetBitmapLabel(bitmap); }
|
||||
|
||||
virtual bool Enable(bool enable = TRUE);
|
||||
|
||||
|
@@ -20,7 +20,8 @@ class WXDLLIMPEXP_CORE wxBitmapButton: public wxBitmapButtonBase
|
||||
public:
|
||||
wxBitmapButton();
|
||||
virtual ~wxBitmapButton();
|
||||
wxBitmapButton(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap,
|
||||
wxBitmapButton(wxWindow *parent, wxWindowID id,
|
||||
const wxBitmapBundle& bitmap,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize, long style = 0,
|
||||
const wxValidator& validator = wxDefaultValidator,
|
||||
@@ -29,7 +30,8 @@ public:
|
||||
Create(parent, id, bitmap, pos, size, style, validator, name);
|
||||
}
|
||||
|
||||
bool Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap,
|
||||
bool Create(wxWindow *parent, wxWindowID id,
|
||||
const wxBitmapBundle& bitmap,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize, long style = 0,
|
||||
const wxValidator& validator = wxDefaultValidator,
|
||||
@@ -44,12 +46,12 @@ public:
|
||||
protected:
|
||||
virtual wxSize DoGetBestSize() const;
|
||||
|
||||
virtual void DoSetBitmap(const wxBitmap& bitmap, State which);
|
||||
virtual void DoSetBitmap(const wxBitmapBundle& bitmap, State which);
|
||||
virtual void OnSetBitmap();
|
||||
|
||||
// original bitmaps may be different from the ones we were initialized with
|
||||
// if they were changed to reflect button background colour
|
||||
wxBitmap m_bitmapsOriginal[State_Max];
|
||||
wxBitmapBundle m_bitmapsOriginal[State_Max];
|
||||
|
||||
wxBitmapCache m_bitmapCache;
|
||||
|
||||
|
@@ -45,7 +45,7 @@ protected:
|
||||
virtual wxSize DoGetBestSize() const wxOVERRIDE;
|
||||
|
||||
virtual wxBitmap DoGetBitmap(State which) const wxOVERRIDE;
|
||||
virtual void DoSetBitmap(const wxBitmap& bitmap, State which) wxOVERRIDE;
|
||||
virtual void DoSetBitmap(const wxBitmapBundle& bitmap, State which) wxOVERRIDE;
|
||||
virtual wxSize DoGetBitmapMargins() const wxOVERRIDE;
|
||||
virtual void DoSetBitmapMargins(wxCoord x, wxCoord y) wxOVERRIDE;
|
||||
virtual void DoSetBitmapPosition(wxDirection dir) wxOVERRIDE;
|
||||
|
@@ -22,7 +22,7 @@ public:
|
||||
|
||||
wxBitmapButton(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxBitmap& bitmap,
|
||||
const wxBitmapBundle& bitmap,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = 0,
|
||||
@@ -34,7 +34,7 @@ public:
|
||||
|
||||
bool Create(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxBitmap& bitmap,
|
||||
const wxBitmapBundle& bitmap,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = 0,
|
||||
|
@@ -27,7 +27,7 @@ protected:
|
||||
void OnLeaveWindow( wxMouseEvent& event);
|
||||
|
||||
virtual wxBitmap DoGetBitmap(State which) const wxOVERRIDE;
|
||||
virtual void DoSetBitmap(const wxBitmap& bitmap, State which) wxOVERRIDE;
|
||||
virtual void DoSetBitmap(const wxBitmapBundle& bitmapBundle, State which) wxOVERRIDE;
|
||||
virtual void DoSetBitmapPosition(wxDirection dir) wxOVERRIDE;
|
||||
|
||||
virtual void DoSetBitmapMargins(int x, int y) wxOVERRIDE
|
||||
@@ -49,7 +49,7 @@ protected:
|
||||
// the bitmaps for the different state of the buttons, all of them may be
|
||||
// invalid and the button only shows a bitmap at all if State_Normal bitmap
|
||||
// is valid
|
||||
wxBitmap m_bitmaps[State_Max];
|
||||
wxBitmapBundle m_bitmaps[State_Max];
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(wxAnyButton);
|
||||
wxDECLARE_EVENT_TABLE();
|
||||
|
@@ -22,7 +22,7 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
wxBitmapButton(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap,
|
||||
wxBitmapButton(wxWindow *parent, wxWindowID id, const wxBitmapBundle& bitmap,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize, long style = 0,
|
||||
const wxValidator& validator = wxDefaultValidator,
|
||||
@@ -31,7 +31,7 @@ public:
|
||||
Create(parent, id, bitmap, pos, size, style, validator, name);
|
||||
}
|
||||
|
||||
bool Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap,
|
||||
bool Create(wxWindow *parent, wxWindowID id, const wxBitmapBundle& bitmap,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize, long style = 0,
|
||||
const wxValidator& validator = wxDefaultValidator,
|
||||
|
@@ -140,7 +140,7 @@ public :
|
||||
wxInt32 GetValue() const wxOVERRIDE;
|
||||
void SetValue( wxInt32 v ) wxOVERRIDE;
|
||||
wxBitmap GetBitmap() const wxOVERRIDE;
|
||||
void SetBitmap( const wxBitmap& bitmap ) wxOVERRIDE;
|
||||
void SetBitmap( const wxBitmapBundle& bitmap ) wxOVERRIDE;
|
||||
void SetBitmapPosition( wxDirection dir ) wxOVERRIDE;
|
||||
void SetupTabs( const wxNotebook ¬ebook ) wxOVERRIDE;
|
||||
void GetBestRect( wxRect *r ) const wxOVERRIDE;
|
||||
@@ -356,12 +356,12 @@ class wxButtonCocoaImpl : public wxWidgetCocoaImpl, public wxButtonImpl
|
||||
{
|
||||
public:
|
||||
wxButtonCocoaImpl(wxWindowMac *wxpeer, wxNSButton *v);
|
||||
virtual void SetBitmap(const wxBitmap& bitmap) wxOVERRIDE;
|
||||
virtual void SetBitmap(const wxBitmapBundle& bitmap) wxOVERRIDE;
|
||||
#if wxUSE_MARKUP
|
||||
virtual void SetLabelMarkup(const wxString& markup) wxOVERRIDE;
|
||||
#endif // wxUSE_MARKUP
|
||||
|
||||
void SetPressedBitmap( const wxBitmap& bitmap ) wxOVERRIDE;
|
||||
void SetPressedBitmap( const wxBitmapBundle& bitmap ) wxOVERRIDE;
|
||||
void GetLayoutInset(int &left, int &top, int &right, int &bottom) const wxOVERRIDE;
|
||||
void SetAcceleratorFromLabel(const wxString& label);
|
||||
|
||||
|
@@ -74,7 +74,7 @@ WXDLLIMPEXP_BASE CFURLRef wxOSXCreateURLFromFileSystemPath( const wxString& path
|
||||
#include <ApplicationServices/ApplicationServices.h>
|
||||
#endif
|
||||
|
||||
#include "wx/bitmap.h"
|
||||
#include "wx/bmpbndl.h"
|
||||
#include "wx/window.h"
|
||||
|
||||
class wxTextProofOptions;
|
||||
@@ -337,7 +337,7 @@ public :
|
||||
virtual wxInt32 GetValue() const = 0;
|
||||
virtual void SetValue( wxInt32 v ) = 0;
|
||||
virtual wxBitmap GetBitmap() const = 0;
|
||||
virtual void SetBitmap( const wxBitmap& bitmap ) = 0;
|
||||
virtual void SetBitmap( const wxBitmapBundle& bitmap ) = 0;
|
||||
virtual void SetBitmapPosition( wxDirection dir ) = 0;
|
||||
virtual void SetupTabs( const wxNotebook& WXUNUSED(notebook) ) {}
|
||||
virtual int TabHitTest( const wxPoint & WXUNUSED(pt), long *flags ) {*flags=1; return -1;}
|
||||
@@ -491,7 +491,7 @@ public :
|
||||
static wxWidgetImplType* CreateBitmapToggleButton( wxWindowMac* wxpeer,
|
||||
wxWindowMac* parent,
|
||||
wxWindowID id,
|
||||
const wxBitmap& bitmap,
|
||||
const wxBitmapBundle& bitmap,
|
||||
const wxPoint& pos,
|
||||
const wxSize& size,
|
||||
long style,
|
||||
@@ -500,7 +500,7 @@ public :
|
||||
static wxWidgetImplType* CreateBitmapButton( wxWindowMac* wxpeer,
|
||||
wxWindowMac* parent,
|
||||
wxWindowID id,
|
||||
const wxBitmap& bitmap,
|
||||
const wxBitmapBundle& bitmap,
|
||||
const wxPoint& pos,
|
||||
const wxSize& size,
|
||||
long style,
|
||||
@@ -828,7 +828,7 @@ class wxButtonImpl
|
||||
wxButtonImpl(){}
|
||||
virtual ~wxButtonImpl(){}
|
||||
|
||||
virtual void SetPressedBitmap( const wxBitmap& bitmap ) = 0;
|
||||
virtual void SetPressedBitmap( const wxBitmapBundle& bitmap ) = 0;
|
||||
} ;
|
||||
|
||||
//
|
||||
|
@@ -90,7 +90,7 @@ public :
|
||||
void SetValue( wxInt32 v );
|
||||
|
||||
virtual wxBitmap GetBitmap() const;
|
||||
virtual void SetBitmap( const wxBitmap& bitmap );
|
||||
virtual void SetBitmap( const wxBitmapBundle& bitmap );
|
||||
virtual void SetBitmapPosition( wxDirection dir );
|
||||
|
||||
void SetupTabs( const wxNotebook ¬ebook );
|
||||
|
@@ -33,18 +33,18 @@ public:
|
||||
|
||||
protected:
|
||||
virtual wxBitmap DoGetBitmap(State state) const wxOVERRIDE;
|
||||
virtual void DoSetBitmap(const wxBitmap& bitmap, State which) wxOVERRIDE;
|
||||
virtual void DoSetBitmap(const wxBitmapBundle& bitmap, State which) wxOVERRIDE;
|
||||
|
||||
QPushButton *m_qtPushButton;
|
||||
|
||||
void QtCreate(wxWindow *parent);
|
||||
void QtSetBitmap( const wxBitmap &bitmap );
|
||||
void QtSetBitmap( const wxBitmapBundle &bitmap );
|
||||
|
||||
private:
|
||||
State QtGetCurrentState() const;
|
||||
|
||||
typedef wxAnyButtonBase base_type;
|
||||
wxBitmap m_bitmaps[State_Max];
|
||||
wxBitmapBundle m_bitmaps[State_Max];
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(wxAnyButton);
|
||||
};
|
||||
|
@@ -15,7 +15,7 @@ public:
|
||||
|
||||
wxBitmapButton(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxBitmap& bitmap,
|
||||
const wxBitmapBundle& bitmap,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = 0,
|
||||
@@ -24,7 +24,7 @@ public:
|
||||
|
||||
bool Create(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxBitmap& bitmap,
|
||||
const wxBitmapBundle& bitmap,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = 0,
|
||||
|
@@ -18,7 +18,7 @@ public:
|
||||
|
||||
wxBitmapButton(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxBitmap& bitmap,
|
||||
const wxBitmapBundle& bitmap,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = 0,
|
||||
@@ -30,7 +30,7 @@ public:
|
||||
|
||||
bool Create(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxBitmap& bitmap,
|
||||
const wxBitmapBundle& bitmap,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = 0,
|
||||
|
@@ -11,8 +11,6 @@
|
||||
#ifndef _WX_UNIV_BUTTON_H_
|
||||
#define _WX_UNIV_BUTTON_H_
|
||||
|
||||
#include "wx/bitmap.h"
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// the actions supported by this control
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -32,7 +30,7 @@ public:
|
||||
wxButton() { Init(); }
|
||||
wxButton(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxBitmap& bitmap,
|
||||
const wxBitmapBundle& bitmap,
|
||||
const wxString& label = wxEmptyString,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
@@ -74,7 +72,7 @@ public:
|
||||
|
||||
bool Create(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxBitmap& bitmap,
|
||||
const wxBitmapBundle& bitmap,
|
||||
const wxString& label = wxEmptyString,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
@@ -97,7 +95,7 @@ public:
|
||||
|
||||
|
||||
protected:
|
||||
virtual void DoSetBitmap(const wxBitmap& bitmap, State which) wxOVERRIDE;
|
||||
virtual void DoSetBitmap(const wxBitmapBundle& bitmap, State which) wxOVERRIDE;
|
||||
virtual wxBitmap DoGetBitmap(State which) const wxOVERRIDE;
|
||||
virtual void DoSetBitmapMargins(wxCoord x, wxCoord y) wxOVERRIDE;
|
||||
|
||||
|
Reference in New Issue
Block a user