]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/bmpbuttn.h
Rebake from clean wx tree.
[wxWidgets.git] / include / wx / msw / bmpbuttn.h
index ed6508684c214d03429fd06b7e3466a10456c711..aff0c0fe143963ddd4f5e9646749f340b5a07fc3 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        bmpbuttn.h
+// Name:        wx/msw/bmpbuttn.h
 // Purpose:     wxBitmapButton class
 // Author:      Julian Smart
 // Modified by:
 // Purpose:     wxBitmapButton class
 // Author:      Julian Smart
 // Modified by:
 #ifndef _WX_BMPBUTTN_H_
 #define _WX_BMPBUTTN_H_
 
 #ifndef _WX_BMPBUTTN_H_
 #define _WX_BMPBUTTN_H_
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma interface "bmpbuttn.h"
-#endif
-
 #include "wx/button.h"
 #include "wx/bitmap.h"
 #include "wx/button.h"
 #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:
 {
 public:
-    wxBitmapButton()
-        { m_marginX = m_marginY = wxDEFAULT_BUTTON_MARGIN; }
+    wxBitmapButton() { Init(); }
+
     wxBitmapButton(wxWindow *parent,
                    wxWindowID id,
                    const wxBitmap& bitmap,
     wxBitmapButton(wxWindow *parent,
                    wxWindowID id,
                    const wxBitmap& bitmap,
@@ -35,6 +30,8 @@ public:
                    const wxValidator& validator = wxDefaultValidator,
                    const wxString& name = wxButtonNameStr)
     {
                    const wxValidator& validator = wxDefaultValidator,
                    const wxString& name = wxButtonNameStr)
     {
+        Init();
+
         Create(parent, id, bitmap, pos, size, style, validator, name);
     }
 
         Create(parent, id, bitmap, pos, size, style, validator, name);
     }
 
@@ -47,16 +44,28 @@ public:
                 const wxValidator& validator = wxDefaultValidator,
                 const wxString& name = wxButtonNameStr);
 
                 const wxValidator& validator = wxDefaultValidator,
                 const wxString& name = wxButtonNameStr);
 
-    // Implementation
-    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:
+    // common part of all ctors
+    void Init()
+    {
+        m_disabledSetByUser =
+        m_hoverSetByUser = false;
+    }
+
+    // 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;
+
+    // true if hover bitmap was set by user, false if it was set from focused
+    // one
+    bool m_hoverSetByUser;
+
 
 
-private:
+    DECLARE_EVENT_TABLE()
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxBitmapButton)
 };
 
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxBitmapButton)
 };
 
-#endif
-    // _WX_BMPBUTTN_H_
+#endif // _WX_BMPBUTTN_H_