/////////////////////////////////////////////////////////////////////////////
-// Name: button.cpp
+// Name: src/motif/button.cpp
// Purpose: wxButton
// Author: Julian Smart
// Modified by:
// Created: 17/09/98
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
-// Licence: wxWidgets licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "button.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#define XtDisplay XTDISPLAY
#endif
-#include "wx/defs.h"
-
#include "wx/button.h"
#ifdef __VMS__
#pragma message enable nosimpint
#endif
+#include "wx/stockitem.h"
#include "wx/motif/private.h"
#include "wx/sysopt.h"
// 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;
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
- // XmNdefaultButtonShadowThickness, 1,
+ // XmNdefaultButtonShadowThickness, 1,
NULL);
XtAddCallback ((Widget) m_mainWidget,
if( best != actual )
SetSize( best );
#endif
+ InvalidateBestSize();
}
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;
int margin = highlight * 2 +
( defThickness ? ( ( shadow + defThickness ) * 4 ) : ( shadow * 2 ) );
+
wxSize best( x + xmargin * 2 + margin,
y + ymargin * 2 + margin );