// declarations
// ============================================================================
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma implementation "msgdlg.h"
-#endif
-
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
-#include "wx/defs.h"
-
#ifdef __VMS
-#define XtDisplay XTDISPLAY
#pragma message disable nosimpint
-#include <wx/vms_x_fix.h>
+#include "wx/vms_x_fix.h"
#endif
#include <X11/Xlib.h>
#pragma message enable nosimpint
#endif
-#include "wx/app.h"
-#include "wx/intl.h"
#include "wx/msgdlg.h"
+
+#ifndef WX_PRECOMP
+ #include "wx/intl.h"
+ #include "wx/app.h"
+ #include "wx/settings.h"
+#endif
+
+#include "wx/testing.h"
#include "wx/motif/private.h"
// ----------------------------------------------------------------------------
// wxMessageDialog
// ----------------------------------------------------------------------------
-wxMessageDialog::wxMessageDialog(wxWindow *parent,
- const wxString& message,
- const wxString& caption,
- long style,
- const wxPoint& WXUNUSED(pos))
+extern "C"
{
- m_caption = caption;
- m_message = message;
- m_parent = parent;
- SetMessageDialogStyle(style);
+ typedef Widget (*DialogCreateFunction)(Widget, String, ArgList, Cardinal);
}
int wxMessageDialog::ShowModal()
{
- Widget (*dialogCreateFunction)(Widget, String, ArgList, Cardinal) = NULL;
+ WX_TESTING_SHOW_MODAL_HOOK();
+
const long style = GetMessageDialogStyle();
+ DialogCreateFunction dialogCreateFunction;
if ( style & wxYES_NO )
{
// if we have [Yes], it must be a question
Arg args[10];
int ac = 0;
- wxXmString text(m_message);
+ wxXmString text(GetFullMessage());
wxXmString title(m_caption);
XtSetArg(args[ac], XmNmessageString, text()); ac++;
XtSetArg(args[ac], XmNdialogTitle, title()); ac++;
- wxComputeColours (XtDisplay(wParent), & m_backgroundColour,
- (wxColour*) NULL);
+ Display* dpy = XtDisplay(wParent);
- 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++;
+ if (m_backgroundColour.IsOk())
+ {
+ wxComputeColours (dpy, & m_backgroundColour, 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" );
return m_result;
}
-