From c0831a3c31d5fdc5f1f4271861dcf79c13bb6491 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Tue, 16 Mar 2004 22:17:07 +0000 Subject: [PATCH] Implement wxBitmapButton::DoGetBestSize git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26239 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/toback24.txt | 28 ++++++++++++++++++++++++++++ include/wx/mac/bmpbuttn.h | 3 +++ src/mac/bmpbuttn.cpp | 24 +++++++++++++++++++----- src/mac/carbon/bmpbuttn.cpp | 24 +++++++++++++++++++----- 4 files changed, 69 insertions(+), 10 deletions(-) diff --git a/docs/toback24.txt b/docs/toback24.txt index 5f98668402..0e4720d874 100644 --- a/docs/toback24.txt +++ b/docs/toback24.txt @@ -278,6 +278,34 @@ Checking in src/msw/tbar95.cpp; new revision: 1.121; previous revision: 1.120 done + +38. Implement wxBitmapButton::DoGetBestSize + +Checking in include/wx/gtk/bmpbuttn.h; +/pack/cvsroots/wxwidgets/wxWidgets/include/wx/gtk/bmpbuttn.h,v <-- bmpbuttn.h +new revision: 1.24; previous revision: 1.23 +done +Checking in src/gtk/bmpbuttn.cpp; +/pack/cvsroots/wxwidgets/wxWidgets/src/gtk/bmpbuttn.cpp,v <-- bmpbuttn.cpp +new revision: 1.46; previous revision: 1.45 +done +Checking in include/wx/msw/bmpbuttn.h; +/pack/cvsroots/wxwidgets/wxWidgets/include/wx/msw/bmpbuttn.h,v <-- bmpbuttn.h +new revision: 1.12; previous revision: 1.11 +done +Checking in src/msw/bmpbuttn.cpp; +/pack/cvsroots/wxwidgets/wxWidgets/src/msw/bmpbuttn.cpp,v <-- bmpbuttn.cpp +new revision: 1.45; previous revision: 1.44 +done +Checking in include/wx/mac/bmpbuttn.h; +/pack/cvsroots/wxwidgets/wxWidgets/include/wx/mac/bmpbuttn.h,v <-- bmpbuttn.h +new revision: 1.10; previous revision: 1.9 +done +Checking in src/mac/bmpbuttn.cpp; +/pack/cvsroots/wxwidgets/wxWidgets/src/mac/bmpbuttn.cpp,v <-- bmpbuttn.cpp +new revision: 1.26; previous revision: 1.25 +done + ======= diff --git a/include/wx/mac/bmpbuttn.h b/include/wx/mac/bmpbuttn.h index 178c273ee9..28a91ed93f 100644 --- a/include/wx/mac/bmpbuttn.h +++ b/include/wx/mac/bmpbuttn.h @@ -56,6 +56,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; }; #endif diff --git a/src/mac/bmpbuttn.cpp b/src/mac/bmpbuttn.cpp index 4f06731513..f6ce4dd00c 100644 --- a/src/mac/bmpbuttn.cpp +++ b/src/mac/bmpbuttn.cpp @@ -51,11 +51,14 @@ bool wxBitmapButton::Create(wxWindow *parent, wxWindowID id, const wxBitmap& bit int width = size.x; int height = size.y; - 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; + } Rect bounds ; Str255 title ; @@ -97,3 +100,14 @@ void wxBitmapButton::SetBitmapLabel(const wxBitmap& bitmap) } } + +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; +} diff --git a/src/mac/carbon/bmpbuttn.cpp b/src/mac/carbon/bmpbuttn.cpp index 4f06731513..f6ce4dd00c 100644 --- a/src/mac/carbon/bmpbuttn.cpp +++ b/src/mac/carbon/bmpbuttn.cpp @@ -51,11 +51,14 @@ bool wxBitmapButton::Create(wxWindow *parent, wxWindowID id, const wxBitmap& bit int width = size.x; int height = size.y; - 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; + } Rect bounds ; Str255 title ; @@ -97,3 +100,14 @@ void wxBitmapButton::SetBitmapLabel(const wxBitmap& bitmap) } } + +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; +} -- 2.45.2