X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/34138703c3997ce676a1e713d9ff9eb020640da7..cbeda384e51acb82e13994cb67ac1714669cae10:/include/wx/bmpbuttn.h diff --git a/include/wx/bmpbuttn.h b/include/wx/bmpbuttn.h index 2ff65ebbb2..0ac15ef292 100644 --- a/include/wx/bmpbuttn.h +++ b/include/wx/bmpbuttn.h @@ -1,18 +1,124 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: wx/bmpbutton.h +// Purpose: wxBitmapButton class interface +// Author: Vadim Zeitlin +// Modified by: +// Created: 25.08.00 +// RCS-ID: $Id$ +// Copyright: (c) 2000 Vadim Zeitlin +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + #ifndef _WX_BMPBUTTON_H_BASE_ #define _WX_BMPBUTTON_H_BASE_ -#if defined(__WXMSW__) -#include "wx/msw/bmpbuttn.h" +#include "wx/defs.h" + +#if wxUSE_BMPBUTTON + +#include "wx/bitmap.h" +#include "wx/button.h" + +extern WXDLLIMPEXP_DATA_CORE(const char) wxButtonNameStr[]; + +// ---------------------------------------------------------------------------- +// wxBitmapButton: a button which shows bitmaps instead of the usual string. +// It has different bitmaps for different states (focused/disabled/pressed) +// ---------------------------------------------------------------------------- + +class WXDLLIMPEXP_CORE wxBitmapButtonBase : public wxButton +{ +public: + wxBitmapButtonBase() + { + m_marginX = + m_marginY = 0; + } + + // set the bitmaps + virtual void SetBitmapLabel(const wxBitmap& bitmap) + { m_bmpNormal = bitmap; OnSetBitmap(); } + virtual void SetBitmapSelected(const wxBitmap& sel) + { m_bmpSelected = sel; OnSetBitmap(); } + virtual void SetBitmapFocus(const wxBitmap& focus) + { m_bmpFocus = focus; OnSetBitmap(); } + virtual void SetBitmapDisabled(const wxBitmap& disabled) + { m_bmpDisabled = disabled; OnSetBitmap(); } + virtual void SetBitmapHover(const wxBitmap& hover) + { m_bmpHover = hover; OnSetBitmap(); } + + // retrieve the bitmaps + const wxBitmap& GetBitmapLabel() const { return m_bmpNormal; } + const wxBitmap& GetBitmapSelected() const { return m_bmpSelected; } + const wxBitmap& GetBitmapFocus() const { return m_bmpFocus; } + const wxBitmap& GetBitmapDisabled() const { return m_bmpDisabled; } + const wxBitmap& GetBitmapHover() const { return m_bmpHover; } + wxBitmap& GetBitmapLabel() { return m_bmpNormal; } + wxBitmap& GetBitmapSelected() { return m_bmpSelected; } + wxBitmap& GetBitmapFocus() { return m_bmpFocus; } + wxBitmap& GetBitmapDisabled() { return m_bmpDisabled; } + wxBitmap& GetBitmapHover() { return m_bmpHover; } + + // set/get the margins around the button + virtual void SetMargins(int x, int y) { m_marginX = x; m_marginY = y; } + int GetMarginX() const { return m_marginX; } + int GetMarginY() const { return m_marginY; } + + // deprecated synonym for SetBitmapLabel() +#if WXWIN_COMPATIBILITY_2_6 + wxDEPRECATED( void SetLabel(const wxBitmap& bitmap) ); + + // prevent virtual function hiding + virtual void SetLabel(const wxString& label) + { wxWindow::SetLabel(label); } +#endif // WXWIN_COMPATIBILITY_2_6 + +protected: + // function called when any of the bitmaps changes + virtual void OnSetBitmap() { InvalidateBestSize(); Refresh(); } + + // the bitmaps for various states + wxBitmap m_bmpNormal, + m_bmpSelected, + m_bmpFocus, + m_bmpDisabled, + m_bmpHover; + + // the margins around the bitmap + int m_marginX, + m_marginY; + + + wxDECLARE_NO_COPY_CLASS(wxBitmapButtonBase); +}; + +#if WXWIN_COMPATIBILITY_2_6 +inline void wxBitmapButtonBase::SetLabel(const wxBitmap& bitmap) +{ + SetBitmapLabel(bitmap); +} +#endif // WXWIN_COMPATIBILITY_2_6 + +#if defined(__WXUNIVERSAL__) + #include "wx/univ/bmpbuttn.h" +#elif defined(__WXMSW__) + #include "wx/msw/bmpbuttn.h" #elif defined(__WXMOTIF__) -#include "wx/motif/bmpbuttn.h" + #include "wx/motif/bmpbuttn.h" +#elif defined(__WXGTK20__) + #include "wx/gtk/bmpbuttn.h" #elif defined(__WXGTK__) -#include "wx/gtk/bmpbuttn.h" -#elif defined(__WXQT__) -#include "wx/qt/bmpbuttn.h" + #include "wx/gtk1/bmpbuttn.h" #elif defined(__WXMAC__) -#include "wx/mac/bmpbuttn.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/bmpbuttn.h" + #include "wx/osx/bmpbuttn.h" +#elif defined(__WXCOCOA__) + #include "wx/cocoa/bmpbuttn.h" +#elif defined(__WXPM__) + #include "wx/os2/bmpbuttn.h" +#elif defined(__WXPALMOS__) + #include "wx/palmos/bmpbuttn.h" #endif -#endif +#endif // wxUSE_BMPBUTTON + +#endif // _WX_BMPBUTTON_H_BASE_