X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/77ffb5937e89927b621128789401db8921fe580f..42b1fb630d94b919d455c1f0f2212bc6bcc04d46:/src/motif/button.cpp diff --git a/src/motif/button.cpp b/src/motif/button.cpp index 76e5ab9276..65349d549d 100644 --- a/src/motif/button.cpp +++ b/src/motif/button.cpp @@ -6,7 +6,7 @@ // Created: 17/09/98 // RCS-ID: $Id$ // Copyright: (c) Julian Smart -// Licence: wxWidgets licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) @@ -33,6 +33,7 @@ #pragma message enable nosimpint #endif +#include "wx/stockitem.h" #include "wx/motif/private.h" #include "wx/sysopt.h" @@ -45,12 +46,16 @@ IMPLEMENT_DYNAMIC_CLASS(wxButton, wxControl) // Button -bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& label, +bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& lbl, const wxPoint& pos, const wxSize& size, long style, const wxValidator& validator, const wxString& name) { + wxString label(lbl); + if (label.empty() && wxIsStockID(id)) + label = wxGetStockLabel(id); + if( !CreateControl( parent, id, pos, size, style, validator, name ) ) return false; @@ -71,7 +76,7 @@ bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& label, m_mainWidget = (WXWidget) XtVaCreateManagedWidget ("button", xmPushButtonWidgetClass, parentWidget, - wxFont::GetFontTag(), m_font.GetFontType(XtDisplay(parentWidget)), + wxFont::GetFontTag(), m_font.GetFontTypeC(XtDisplay(parentWidget)), XmNlabelString, text(), XmNrecomputeSize, False, // See comment for wxButton::SetDefault @@ -118,6 +123,7 @@ void wxButton::SetDefaultShadowThicknessAndResize() if( best != actual ) SetSize( best ); #endif + InvalidateBestSize(); } @@ -177,6 +183,19 @@ wxSize wxButton::DoGetBestSize() const return best; } +wxSize wxButton::GetMinSize() const +{ + if( wxMotifLargeButtons() ) + return OldGetMinSize(); + + return DoGetBestSize(); +} + +wxSize wxButton::OldGetMinSize() const +{ + return OldGetBestSize(); +} + wxSize wxButton::OldGetBestSize() const { Dimension xmargin, ymargin, highlight, shadow, defThickness; @@ -194,6 +213,7 @@ wxSize wxButton::OldGetBestSize() const int margin = highlight * 2 + ( defThickness ? ( ( shadow + defThickness ) * 4 ) : ( shadow * 2 ) ); + wxSize best( x + xmargin * 2 + margin, y + ymargin * 2 + margin );