#endif
#include "wx/button.h"
+#include "wx/utils.h"
#include <Xm/PushBG.h>
#include <Xm/PushB.h>
SetName(name);
SetValidator(validator);
m_windowStyle = style;
+ m_backgroundColour = parent->GetBackgroundColour();
+ m_foregroundColour = parent->GetForegroundColour();
+ m_windowFont = parent->GetFont();
parent->AddChild((wxButton *)this);
else
m_windowId = id;
- char* label1 = (label.IsNull() ? "" : (char*) (const char*) label);
+ wxString label1(wxStripMenuCodes(label));
- XmString text = XmStringCreateSimple (label1);
+ XmString text = XmStringCreateSimple ((char*) (const char*) label1);
Widget parentWidget = (Widget) parent->GetClientWidget();
+ XmFontList fontList = (XmFontList) m_windowFont.GetFontList(1.0, XtDisplay(parentWidget));
+
/*
* Patch Note (important)
* There is no major reason to put a defaultButtonThickness here.
m_mainWidget = (WXWidget) XtVaCreateManagedWidget ("button",
xmPushButtonWidgetClass,
parentWidget,
+ XmNfontList, fontList,
XmNlabelString, text,
// XmNdefaultButtonShadowThickness, 1, // See comment for wxButton::SetDefault
NULL);
XtAddCallback ((Widget) m_mainWidget, XmNactivateCallback, (XtCallbackProc) wxButtonCallback,
(XtPointer) this);
-
SetCanAddEventHandler(TRUE);
AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, size.x, size.y);
- SetFont(* parent->GetFont());
- ChangeColour(m_mainWidget);
+ ChangeBackgroundColour();
return TRUE;
}
// Because it's very hard to find wxButton in the same row,
// correction is straighforward: we set resource for all wxButton
// in this parent (but not sub panels)
- for (wxNode * node = parent->GetChildren ()->First (); node; node = node->Next ())
+ for (wxNode * node = parent->GetChildren().First (); node; node = node->Next ())
{
wxButton *item = (wxButton *) node->Data ();
if (item->IsKindOf(CLASSINFO(wxButton)))
ProcessCommand (event);
}
-void wxButtonCallback (Widget w, XtPointer clientData, XtPointer ptr)
+void wxButtonCallback (Widget w, XtPointer clientData, XtPointer WXUNUSED(ptr))
{
if (!wxGetWindowFromTable(w))
// Widget has been deleted!
event.SetEventObject(item);
item->ProcessCommand (event);
}
+
+void wxButton::ChangeFont(bool keepOriginalSize)
+{
+ wxWindow::ChangeFont(keepOriginalSize);
+}
+
+void wxButton::ChangeBackgroundColour()
+{
+ DoChangeBackgroundColour(m_mainWidget, m_backgroundColour, TRUE);
+}
+
+void wxButton::ChangeForegroundColour()
+{
+ wxWindow::ChangeForegroundColour();
+}
+