implement wxGTK wxBitmapButton in terms of wxButton

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61081 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-06-16 19:31:50 +00:00
parent b4a4eafbcc
commit c37dd6dad7
4 changed files with 68 additions and 291 deletions

View File

@@ -18,10 +18,10 @@
#include "wx/button.h"
// FIXME: right now only wxMSW implements bitmap support in wxButton
// FIXME: right now only wxMSW and wxGTK implement bitmap support in wxButton
// itself, this shouldn't be used for the other platforms neither
// when all of them do it
#ifdef __WXMSW__
#if defined(__WXMSW__) || defined(__WXGTK__)
#define wxHAS_BUTTON_BITMAP
#endif

View File

@@ -14,22 +14,20 @@
// wxBitmapButton
// ----------------------------------------------------------------------------
class WXDLLIMPEXP_CORE wxBitmapButton: public wxBitmapButtonBase
class WXDLLIMPEXP_CORE wxBitmapButton : public wxBitmapButtonBase
{
public:
wxBitmapButton() { Init(); }
wxBitmapButton() { }
wxBitmapButton(wxWindow *parent,
wxWindowID id,
const wxBitmap& bitmap,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxBU_AUTODRAW,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxButtonNameStr)
{
Init();
Create(parent, id, bitmap, pos, size, style, validator, name);
}
@@ -38,40 +36,21 @@ public:
const wxBitmap& bitmap,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxBU_AUTODRAW,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxButtonNameStr);
const wxString& name = wxButtonNameStr)
{
if ( !wxBitmapButtonBase::Create(parent, id, "",
pos, size, style,
validator, name) )
return false;
void SetLabel( const wxString &label );
virtual void SetLabel( const wxBitmap& bitmap ) { SetBitmapLabel(bitmap); }
SetBitmapLabel(bitmap);
virtual bool Enable(bool enable = true);
// implementation
// --------------
void GTKMouseEnters();
void GTKMouseLeaves();
void GTKPressed();
void GTKReleased();
protected:
virtual void OnSetBitmap();
virtual wxSize DoGetBestSize() const;
void DoApplyWidgetStyle(GtkRcStyle *style);
void Init();
private:
void OnFocusChange(wxFocusEvent& event);
// true iff mouse hovers over the button
bool m_mouseHovers;
// true iff the button is in pressed state
bool m_isPressed;
return true;
}
DECLARE_DYNAMIC_CLASS(wxBitmapButton)
DECLARE_EVENT_TABLE()
};
#endif // _WX_GTK_BMPBUTTON_H_