with the option of reverting to the old behaviour.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27059
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
wxMotif:
- removed wxMenuItem::DeleteSubMenu()
wxMotif:
- removed wxMenuItem::DeleteSubMenu()
+- wxButtons use Motif default size, which is smaller than it used to be
+ and closer to wxMSW/wxGTK look. This can be disabled by setting
+ motif.largebuttons system option to 1 (see wxSystemOptions).
// Implementation
private:
virtual wxSize DoGetBestSize() const;
// Implementation
private:
virtual wxSize DoGetBestSize() const;
+ wxSize OldGetBestSize() const;
void SetDefaultShadowThicknessAndResize();
};
void SetDefaultShadowThicknessAndResize();
};
#endif
#include "wx/motif/private.h"
#endif
#include "wx/motif/private.h"
void wxButtonCallback (Widget w, XtPointer clientData, XtPointer ptr);
IMPLEMENT_DYNAMIC_CLASS(wxButton, wxControl)
void wxButtonCallback (Widget w, XtPointer clientData, XtPointer ptr);
IMPLEMENT_DYNAMIC_CLASS(wxButton, wxControl)
+#define MIN_WIDTH 78
+#define MIN_LARGE_HEIGHT 30
+
// Button
bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& label,
// Button
bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& label,
ChangeBackgroundColour();
ChangeBackgroundColour();
}
void wxButton::SetDefaultShadowThicknessAndResize()
}
void wxButton::SetDefaultShadowThicknessAndResize()
+static inline bool wxMotifLargeButtons()
+{
+ return wxSystemOptions::HasOption("motif.largebuttons")
+ && wxSystemOptions::GetOptionInt("motif.largebuttons") != 0;
+}
+
/* static */
wxSize wxButton::GetDefaultSize()
{
// TODO: check font size as in wxMSW ? MB
// Note: this is the button size (text + margin + shadow + defaultBorder)
/* static */
wxSize wxButton::GetDefaultSize()
{
// TODO: check font size as in wxMSW ? MB
// Note: this is the button size (text + margin + shadow + defaultBorder)
+ return wxSize( MIN_WIDTH, MIN_LARGE_HEIGHT );
}
wxSize wxButton::DoGetBestSize() const
}
wxSize wxButton::DoGetBestSize() const
+{
+ if( wxMotifLargeButtons() )
+ return OldGetBestSize();
+
+ wxSize best = wxControl::DoGetBestSize();
+
+ if( HasFlag( wxBU_EXACTFIT ) )
+ return best;
+ else if( best.x < MIN_WIDTH )
+ best.x = MIN_WIDTH;
+
+ return best;
+}
+
+wxSize wxButton::OldGetBestSize() const
{
Dimension xmargin, ymargin, highlight, shadow, defThickness;
{
Dimension xmargin, ymargin, highlight, shadow, defThickness;