Make wxMotif buttons smaller (and nicer) by default,
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
This commit is contained in:
@@ -133,6 +133,9 @@ wxMSW:
|
||||
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).
|
||||
|
||||
wxUniv/X11:
|
||||
|
||||
|
@@ -48,6 +48,7 @@ public:
|
||||
// Implementation
|
||||
private:
|
||||
virtual wxSize DoGetBestSize() const;
|
||||
wxSize OldGetBestSize() const;
|
||||
void SetDefaultShadowThicknessAndResize();
|
||||
};
|
||||
|
||||
|
@@ -34,11 +34,15 @@
|
||||
#endif
|
||||
|
||||
#include "wx/motif/private.h"
|
||||
#include "wx/sysopt.h"
|
||||
|
||||
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,
|
||||
@@ -87,7 +91,7 @@ bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& label,
|
||||
|
||||
ChangeBackgroundColour();
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
void wxButton::SetDefaultShadowThicknessAndResize()
|
||||
@@ -144,15 +148,36 @@ void wxButton::SetDefault()
|
||||
NULL);
|
||||
}
|
||||
|
||||
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)
|
||||
return wxSize(78,30);
|
||||
return wxSize( MIN_WIDTH, MIN_LARGE_HEIGHT );
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
|
Reference in New Issue
Block a user