X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/eaa6f9ad2b2ce11ecf6720d068815bded3fff0e6..9bb50fd0b04c824fc7ba14c0dc4ba4a2a9a1e6ad:/src/motif/msgdlg.cpp diff --git a/src/motif/msgdlg.cpp b/src/motif/msgdlg.cpp index 4d08240bc2..7667a07b1c 100644 --- a/src/motif/msgdlg.cpp +++ b/src/motif/msgdlg.cpp @@ -43,6 +43,7 @@ #include "wx/intl.h" #include "wx/msgdlg.h" #include "wx/motif/private.h" +#include "wx/settings.h" // ---------------------------------------------------------------------------- // macros @@ -112,11 +113,16 @@ wxMessageDialog::wxMessageDialog(wxWindow *parent, 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 @@ -161,17 +167,30 @@ int wxMessageDialog::ShowModal() 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" );