Rebake from clean wx tree.
[wxWidgets.git] / include / wx / msw / bmpbuttn.h
index 2c77a71e8021e5404cd3726cc172bfbd1e32e283..aff0c0fe143963ddd4f5e9646749f340b5a07fc3 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        bmpbuttn.h
+// Name:        wx/msw/bmpbuttn.h
 // Purpose:     wxBitmapButton class
 // Author:      Julian Smart
 // Modified by:
 #include "wx/bitmap.h"
 #include "wx/brush.h"
 
-#define wxDEFAULT_BUTTON_MARGIN 4
-
-class WXDLLEXPORT wxBitmapButton: public wxBitmapButtonBase
+class WXDLLIMPEXP_CORE wxBitmapButton : public wxBitmapButtonBase
 {
 public:
-    wxBitmapButton()
-        { m_marginX = m_marginY = wxDEFAULT_BUTTON_MARGIN; }
+    wxBitmapButton() { Init(); }
+
     wxBitmapButton(wxWindow *parent,
                    wxWindowID id,
                    const wxBitmap& bitmap,
@@ -32,6 +30,8 @@ public:
                    const wxValidator& validator = wxDefaultValidator,
                    const wxString& name = wxButtonNameStr)
     {
+        Init();
+
         Create(parent, id, bitmap, pos, size, style, validator, name);
     }
 
@@ -44,28 +44,28 @@ public:
                 const wxValidator& validator = wxDefaultValidator,
                 const wxString& name = wxButtonNameStr);
 
-    // Implementation
-    virtual bool SetBackgroundColour(const wxColour& colour);
-    virtual void SetDefault();
-    virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *item);
-    virtual void DrawFace( WXHDC dc, int left, int top, int right, int bottom, bool sel );
-    virtual void DrawButtonFocus( WXHDC dc, int left, int top, int right, int bottom, bool sel );
-    virtual void DrawButtonDisable( WXHDC dc, int left, int top, int right, int bottom, bool with_marg );
-
 protected:
-    virtual wxSize DoGetBestSize() const;
+    // common part of all ctors
+    void Init()
+    {
+        m_disabledSetByUser =
+        m_hoverSetByUser = false;
+    }
 
-    // invalidate m_brushDisabled when system colours change
-    void OnSysColourChanged(wxSysColourChangedEvent& event);
+    // reimplement some base class virtuals
+    virtual void DoSetBitmap(const wxBitmap& bitmap, State which);
 
+    // true if disabled bitmap was set by user, false if we created it
+    // ourselves from the normal one
+    bool m_disabledSetByUser;
 
-    // the brush we use to draw disabled buttons
-    wxBrush m_brushDisabled;
+    // true if hover bitmap was set by user, false if it was set from focused
+    // one
+    bool m_hoverSetByUser;
 
 
     DECLARE_EVENT_TABLE()
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxBitmapButton)
 };
 
-#endif
-    // _WX_BMPBUTTN_H_
+#endif // _WX_BMPBUTTN_H_