]> git.saurik.com Git - wxWidgets.git/commitdiff
implment wxBitmapButton::DoGetBestSize
authorRobin Dunn <robin@alldunn.com>
Tue, 16 Mar 2004 21:58:53 +0000 (21:58 +0000)
committerRobin Dunn <robin@alldunn.com>
Tue, 16 Mar 2004 21:58:53 +0000 (21:58 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26238 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/msw/bmpbuttn.h
src/msw/bmpbuttn.cpp

index ed6508684c214d03429fd06b7e3466a10456c711..f1716a5473286313905d2428233d9b8af72940fa 100644 (file)
@@ -54,6 +54,9 @@ public:
     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;
+    
 private:
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxBitmapButton)
 };
index 9821e4a385d65103f2db36795c11a7351f2c62bd..ee417d6608ee26c9935be9c6d1455bdd7df8124f 100644 (file)
@@ -136,11 +136,14 @@ bool wxBitmapButton::Create(wxWindow *parent, wxWindowID id,
     else
         m_windowId = id;
 
-    if ( width == -1 && bitmap.Ok())
-        width = bitmap.GetWidth() + 2*m_marginX;
-
-    if ( height == -1 && bitmap.Ok())
-        height = bitmap.GetHeight() + 2*m_marginY;
+    if ( bitmap.Ok() )
+    {
+        wxSize newSize = DoGetBestSize();
+        if ( width == -1 )
+            width = newSize.x;
+        if ( height == -1 )
+            height = newSize.y;
+    }
 
     long msStyle = WS_VISIBLE | WS_TABSTOP | WS_CHILD | BS_OWNERDRAW ;
 
@@ -455,4 +458,15 @@ void wxBitmapButton::SetDefault()
     wxButton::SetDefault();
 }
 
+wxSize wxBitmapButton::DoGetBestSize() const
+{
+    wxSize best;
+    if (m_bmpNormal.Ok())
+    {
+        best.x = m_bmpNormal.GetWidth() + 2*m_marginX;
+        best.y = m_bmpNormal.GetHeight() + 2*m_marginY;
+    }
+    return best;
+}
+
 #endif // wxUSE_BMPBUTTON