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 
48 class WXDLLIMPEXP_FWD_CORE wxBitmap;
49 
50 extern WXDLLEXPORT_DATA(const wxChar) wxButtonNameStr[];
51 
52 // ----------------------------------------------------------------------------
53 // wxButton: a push button
54 // ----------------------------------------------------------------------------
55 
56 class WXDLLEXPORT wxButtonBase : public wxControl
57 {
58 public:
wxButtonBase()59     wxButtonBase() { }
60 
61     // show the image in the button in addition to the label
SetImageLabel(const wxBitmap & WXUNUSED (bitmap))62     virtual void SetImageLabel(const wxBitmap& WXUNUSED(bitmap)) { }
63 
64     // set the margins around the image
SetImageMargins(wxCoord WXUNUSED (x),wxCoord WXUNUSED (y))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
SetDefault()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.
ShouldInheritColours()74     virtual bool ShouldInheritColours() const { return false; }
75 
76     // returns the default button size for this platform
77     static wxSize GetDefaultSize();
78 
79 protected:
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