1///////////////////////////////////////////////////////////////////////////// 2// Name: wx/button.h 3// Purpose: wxButtonBase class 4// Author: Vadim Zetlin 5// Modified by: 6// Created: 15.08.00 7// RCS-ID: $Id: button.h 49563 2007-10-31 20:46:21Z VZ $ 8// Copyright: (c) Vadim Zetlin 9// Licence: wxWindows licence 10///////////////////////////////////////////////////////////////////////////// 11 12#ifndef _WX_BUTTON_H_BASE_ 13#define _WX_BUTTON_H_BASE_ 14 15#include "wx/defs.h" 16 17// ---------------------------------------------------------------------------- 18// wxButton flags shared with other classes 19// ---------------------------------------------------------------------------- 20 21#if wxUSE_TOGGLEBTN || wxUSE_BUTTON 22 23// These flags affect label alignment 24#define wxBU_LEFT 0x0040 25#define wxBU_TOP 0x0080 26#define wxBU_RIGHT 0x0100 27#define wxBU_BOTTOM 0x0200 28#define wxBU_ALIGN_MASK ( wxBU_LEFT | wxBU_TOP | wxBU_RIGHT | wxBU_BOTTOM ) 29#endif 30 31#if wxUSE_BUTTON 32 33// ---------------------------------------------------------------------------- 34// wxButton specific flags 35// ---------------------------------------------------------------------------- 36 37// These two flags are obsolete 38#define wxBU_NOAUTODRAW 0x0000 39#define wxBU_AUTODRAW 0x0004 40 41// by default, the buttons will be created with some (system dependent) 42// minimal size to make them look nicer, giving this style will make them as 43// small as possible 44#define wxBU_EXACTFIT 0x0001 45 46#include "wx/control.h" 47 48class WXDLLIMPEXP_FWD_CORE wxBitmap; 49 50extern WXDLLEXPORT_DATA(const wxChar) wxButtonNameStr[]; 51 52// ---------------------------------------------------------------------------- 53// wxButton: a push button 54// ---------------------------------------------------------------------------- 55 56class WXDLLEXPORT wxButtonBase : public wxControl 57{ 58public: 59 wxButtonBase() { } 60 61 // show the image in the button in addition to the label 62 virtual void SetImageLabel(const wxBitmap& WXUNUSED(bitmap)) { } 63 64 // set the margins around the image 65 virtual void SetImageMargins(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y)) { } 66 67 // this wxButton method is called when the button becomes the default one 68 // on its panel 69 virtual void SetDefault() { } 70 71 // Buttons on MSW can look bad if they are not native colours, because 72 // then they become owner-drawn and not theme-drawn. Disable it here 73 // in wxButtonBase to make it consistent. 74 virtual bool ShouldInheritColours() const { return false; } 75 76 // returns the default button size for this platform 77 static wxSize GetDefaultSize(); 78 79protected: 80 DECLARE_NO_COPY_CLASS(wxButtonBase) 81}; 82 83#if defined(__WXUNIVERSAL__) 84 #include "wx/univ/button.h" 85#elif defined(__WXMSW__) 86 #include "wx/msw/button.h" 87#elif defined(__WXMOTIF__) 88 #include "wx/motif/button.h" 89#elif defined(__WXGTK20__) 90 #include "wx/gtk/button.h" 91#elif defined(__WXGTK__) 92 #include "wx/gtk1/button.h" 93#elif defined(__WXMAC__) 94 #include "wx/mac/button.h" 95#elif defined(__WXCOCOA__) 96 #include "wx/cocoa/button.h" 97#elif defined(__WXPM__) 98 #include "wx/os2/button.h" 99#elif defined(__WXPALMOS__) 100 #include "wx/palmos/button.h" 101#endif 102 103#endif // wxUSE_BUTTON 104 105#endif 106 // _WX_BUTTON_H_BASE_ 107