]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/button.h
implement new wxBG_STYLE_XXX semantics for wxMSW too
[wxWidgets.git] / include / wx / button.h
index 5f6da7282ab74d1401515e90a77f85ad9e1154e5..53b164bbba1f1c511aa7f1670df190d02cf3f7d6 100644 (file)
 // small as possible
 #define wxBU_EXACTFIT        0x0001
 
+#include "wx/bitmap.h"
 #include "wx/control.h"
 
-class WXDLLIMPEXP_FWD_CORE wxBitmap;
-
 extern WXDLLIMPEXP_DATA_CORE(const char) wxButtonNameStr[];
 
 // ----------------------------------------------------------------------------
@@ -100,7 +99,7 @@ public:
 
     // set the image position relative to the text, i.e. wxLEFT means that the
     // image is to the left of the text (this is the default)
-    virtual void SetBitmapPosition(wxDirection WXUNUSED(dir)) { }
+    void SetBitmapPosition(wxDirection dir);
 
 
     // make this button the default button in its top level window
@@ -131,28 +130,41 @@ public:
     void SetBitmapSelected(const wxBitmap& bitmap) { SetBitmapPressed(bitmap); }
     void SetBitmapHover(const wxBitmap& bitmap) { SetBitmapCurrent(bitmap); }
 
-protected:
-    // choose the default border for this window
-    virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
 
+    // this enum is not part of wx public API, it is public because it is used
+    // in non wxButton-derived classes internally
+    //
+    // also notice that MSW code relies on the values of the enum elements, do
+    // not change them without revising src/msw/button.cpp
     enum State
     {
         State_Normal,
-        State_Pressed,    // a.k.a. "selected" in public API for some reason
         State_Current,    // a.k.a. hot or "hovering"
+        State_Pressed,    // a.k.a. "selected" in public API for some reason
         State_Disabled,
         State_Focused,
         State_Max
     };
 
+protected:
+    // choose the default border for this window
+    virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
+
     virtual wxBitmap DoGetBitmap(State WXUNUSED(which)) const
         { return wxBitmap(); }
     virtual void DoSetBitmap(const wxBitmap& WXUNUSED(bitmap),
                              State WXUNUSED(which))
         { }
+
+    virtual wxSize DoGetBitmapMargins() const
+        { return wxSize(0, 0); }
+
     virtual void DoSetBitmapMargins(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y))
         { }
 
+    virtual void DoSetBitmapPosition(wxDirection WXUNUSED(dir))
+        { }
+
 
     wxDECLARE_NO_COPY_CLASS(wxButtonBase);
 };