]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/msgdlg.cpp
avoid hidden GetImageList
[wxWidgets.git] / src / motif / msgdlg.cpp
index 6875dfaaac0297035417df22fedddc90f8d558a2..93e95ecf6167e9e8d6bf82afe9dc98fdc0dcfe65 100644 (file)
 // declarations
 // ============================================================================
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma implementation "msgdlg.h"
-#endif
-
 // ----------------------------------------------------------------------------
 // headers
 // ----------------------------------------------------------------------------
@@ -41,8 +37,9 @@
 
 #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
@@ -112,11 +109,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 +163,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" );