]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/msgdlg.cpp
Fix for #15224: wxRichTextTable: Setting a cell's text colour affects subsequent...
[wxWidgets.git] / src / motif / msgdlg.cpp
index 3ade9492f5ea11d0746ec0eee441e72326d6822d..b26430c4c457bdbc64f0b8febf01bc36b14401b2 100644 (file)
@@ -4,7 +4,6 @@
 // Author:      Julian Smart
 // Modified by:
 // Created:     04/01/98
-// RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
@@ -21,7 +20,6 @@
 #include "wx/wxprec.h"
 
 #ifdef __VMS
-#define XtDisplay XTDISPLAY
 #pragma message disable nosimpint
 #include "wx/vms_x_fix.h"
 #endif
 
 #ifndef WX_PRECOMP
     #include "wx/intl.h"
+    #include "wx/app.h"
+    #include "wx/settings.h"
 #endif
 
-#include "wx/app.h"
+#include "wx/modalhook.h"
 #include "wx/motif/private.h"
-#include "wx/settings.h"
 
 // ----------------------------------------------------------------------------
 // macros
@@ -99,18 +98,6 @@ static void msgboxCallBackClose(Widget w,
 // wxMessageDialog
 // ----------------------------------------------------------------------------
 
-wxMessageDialog::wxMessageDialog(wxWindow *parent,
-                                 const wxString& message,
-                                 const wxString& caption,
-                                 long style,
-                                 const wxPoint& WXUNUSED(pos))
-{
-    m_caption = caption;
-    m_message = message;
-    m_parent = parent;
-    SetMessageDialogStyle(style);
-}
-
 extern "C"
 {
     typedef Widget (*DialogCreateFunction)(Widget, String, ArgList, Cardinal);
@@ -118,6 +105,8 @@ extern "C"
 
 int wxMessageDialog::ShowModal()
 {
+    WX_HOOK_MODAL_DIALOG();
+
     const long style = GetMessageDialogStyle();
 
     DialogCreateFunction dialogCreateFunction;
@@ -160,19 +149,22 @@ int wxMessageDialog::ShowModal()
     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++;
 
     Display* dpy = XtDisplay(wParent);
 
-    wxComputeColours (dpy, & m_backgroundColour, (wxColour*) NULL);
+    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++;
+        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);