#include "wx/app.h"
#include "wx/intl.h"
-#include "wx/motif/msgdlg.h"
+#include "wx/msgdlg.h"
#include "wx/motif/private.h"
+#include "wx/settings.h"
// ----------------------------------------------------------------------------
// macros
SetMessageDialogStyle(style);
}
+extern "C"
+{
+ typedef Widget (*DialogCreateFunction)(Widget, String, ArgList, Cardinal);
+}
+
int wxMessageDialog::ShowModal()
{
- Widget (*dialogCreateFunction)(Widget, String, ArgList, Cardinal) = NULL;
const long style = GetMessageDialogStyle();
+ DialogCreateFunction dialogCreateFunction;
if ( style & wxYES_NO )
{
// if we have [Yes], it must be a question
XtSetArg(args[ac], XmNmessageString, text()); ac++;
XtSetArg(args[ac], XmNdialogTitle, title()); ac++;
- wxComputeColours (XtDisplay(wParent), & m_backgroundColour,
- (wxColour*) NULL);
+ Display* dpy = XtDisplay(wParent);
+
+ wxComputeColours (dpy, & m_backgroundColour, (wxColour*) NULL);
XtSetArg(args[ac], XmNbackground, g_itemColors[wxBACK_INDEX].pixel); ac++;
XtSetArg(args[ac], XmNtopShadowColor, g_itemColors[wxTOPS_INDEX].pixel); ac++;
XtSetArg(args[ac], XmNbottomShadowColor, g_itemColors[wxBOTS_INDEX].pixel); ac++;
XtSetArg(args[ac], XmNforeground, g_itemColors[wxFORE_INDEX].pixel); ac++;
+ wxFont font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
+
+#if __WXMOTIF20__ && !__WXLESSTIF__
+ XtSetArg(args[ac], XmNbuttonRenderTable, font.GetFontTypeC(dpy)); ac++;
+ XtSetArg(args[ac], XmNlabelRenderTable, font.GetFontTypeC(dpy)); ac++;
+ XtSetArg(args[ac], XmNtextRenderTable, font.GetFontTypeC(dpy)); ac++;
+#else
+ XtSetArg(args[ac], XmNbuttonFontList, font.GetFontTypeC(dpy)); ac++;
+ XtSetArg(args[ac], XmNlabelFontList, font.GetFontTypeC(dpy)); ac++;
+ XtSetArg(args[ac], XmNtextFontList, font.GetFontTypeC(dpy)); ac++;
+#endif
+
// do create message box
- Widget wMsgBox = (*dialogCreateFunction)(wParent, "", args, ac);
+ Widget wMsgBox = (*dialogCreateFunction)(wParent, wxMOTIF_STR(""), args, ac);
wxCHECK_MSG( wMsgBox, wxID_CANCEL, "msg box creation failed" );