projects
/
wxWidgets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix focus problems in picker controls under MSW which were due to not letting the...
[wxWidgets.git]
/
src
/
motif
/
button.cpp
diff --git
a/src/motif/button.cpp
b/src/motif/button.cpp
index 65349d549d56be552a271c5cbd8a7a43d4d05c35..7b85a01c74b8f79e896b16e81dcc654d5975becb 100644
(file)
--- a/
src/motif/button.cpp
+++ b/
src/motif/button.cpp
@@
-1,5
+1,5
@@
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
-// Name: button.cpp
+// Name:
src/motif/
button.cpp
// Purpose: wxButton
// Author: Julian Smart
// Modified by:
// Purpose: wxButton
// Author: Julian Smart
// Modified by:
@@
-9,19
+9,9
@@
// Licence: wxWindows 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"
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
-#ifdef __VMS
-#define XtDisplay XTDISPLAY
-#endif
-
-#include "wx/defs.h"
-
#include "wx/button.h"
#ifdef __VMS__
#include "wx/button.h"
#ifdef __VMS__
@@
-33,6
+23,11
@@
#pragma message enable nosimpint
#endif
#pragma message enable nosimpint
#endif
+
+#ifndef WX_PRECOMP
+ #include "wx/toplevel.h"
+#endif
+
#include "wx/stockitem.h"
#include "wx/motif/private.h"
#include "wx/sysopt.h"
#include "wx/stockitem.h"
#include "wx/motif/private.h"
#include "wx/sysopt.h"
@@
-55,12
+50,12
@@
bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& lbl,
wxString label(lbl);
if (label.empty() && wxIsStockID(id))
label = wxGetStockLabel(id);
wxString label(lbl);
if (label.empty() && wxIsStockID(id))
label = wxGetStockLabel(id);
-
+
if( !CreateControl( parent, id, pos, size, style, validator, name ) )
return false;
if( !CreateControl( parent, id, pos, size, style, validator, name ) )
return false;
+ PreCreation();
- wxString label1(wxStripMenuCodes(label));
- wxXmString text( label1 );
+ wxXmString text( GetLabelText(label) );
Widget parentWidget = (Widget) parent->GetClientWidget();
Widget parentWidget = (Widget) parent->GetClientWidget();
@@
-80,7
+75,7
@@
bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& lbl,
XmNlabelString, text(),
XmNrecomputeSize, False,
// See comment for wxButton::SetDefault
XmNlabelString, text(),
XmNrecomputeSize, False,
// See comment for wxButton::SetDefault
- // XmNdefaultButtonShadowThickness, 1,
+ // XmNdefaultButtonShadowThickness, 1,
NULL);
XtAddCallback ((Widget) m_mainWidget,
NULL);
XtAddCallback ((Widget) m_mainWidget,
@@
-91,11
+86,10
@@
bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& lbl,
if( size.x != -1 ) best.x = size.x;
if( size.y != -1 ) best.y = size.y;
if( size.x != -1 ) best.x = size.x;
if( size.y != -1 ) best.y = size.y;
+ PostCreation();
AttachWidget (parent, m_mainWidget, (WXWidget) NULL,
pos.x, pos.y, best.x, best.y);
AttachWidget (parent, m_mainWidget, (WXWidget) NULL,
pos.x, pos.y, best.x, best.y);
- ChangeBackgroundColour();
-
return true;
}
return true;
}
@@
-127,11
+121,9
@@
void wxButton::SetDefaultShadowThicknessAndResize()
}
}
-
void
wxButton::SetDefault()
+
wxWindow *
wxButton::SetDefault()
{
{
- wxWindow *parent = GetParent();
- if ( parent )
- parent->SetDefaultItem(this);
+ wxWindow *oldDefault = wxButtonBase::SetDefault();
// We initially do not set XmNdefaultShadowThickness, to have
// small buttons. Unfortunately, buttons are now mis-aligned. We
// We initially do not set XmNdefaultShadowThickness, to have
// small buttons. Unfortunately, buttons are now mis-aligned. We
@@
-140,6
+132,7
@@
void wxButton::SetDefault()
// wxButton in the same row, correction is straighforward: we set
// resource for all wxButton in this parent (but not sub panels)
// wxButton in the same row, correction is straighforward: we set
// resource for all wxButton in this parent (but not sub panels)
+ wxWindow *parent = GetParent();
for (wxWindowList::compatibility_iterator node = parent->GetChildren().GetFirst ();
node; node = node->GetNext ())
{
for (wxWindowList::compatibility_iterator node = parent->GetChildren().GetFirst ();
node; node = node->GetNext ())
{
@@
-152,6
+145,8
@@
void wxButton::SetDefault()
XtVaSetValues ((Widget) parent->GetMainWidget(),
XmNdefaultButton, (Widget) GetMainWidget(),
NULL);
XtVaSetValues ((Widget) parent->GetMainWidget(),
XmNdefaultButton, (Widget) GetMainWidget(),
NULL);
+
+ return oldDefault;
}
static inline bool wxMotifLargeButtons()
}
static inline bool wxMotifLargeButtons()