]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/msgdlg.cpp
Various changes to make pop up menus work
[wxWidgets.git] / src / motif / msgdlg.cpp
index dfae188d3ed3660455d05a05d93438bdb17ba22b..ca78e9a53c258a22d58935a109c8e8554c458db0 100644 (file)
 // headers
 // ----------------------------------------------------------------------------
 
 // headers
 // ----------------------------------------------------------------------------
 
+#ifdef __VMS
+#define XtDisplay XTDISPLAY
+#pragma message disable nosimpint
+#include <wx/vms_x_fix.h>
+#endif
 #include <X11/Xlib.h>
 
 #include <Xm/Xm.h>
 #include <Xm/MessageB.h>
 #include <X11/Xlib.h>
 
 #include <Xm/Xm.h>
 #include <Xm/MessageB.h>
+#ifdef __VMS
+#pragma message enable nosimpint
+#endif
 
 #include "wx/app.h"
 #include "wx/intl.h"
 
 #include "wx/app.h"
 #include "wx/intl.h"
@@ -35,9 +43,7 @@
 // macros
 // ----------------------------------------------------------------------------
 
 // macros
 // ----------------------------------------------------------------------------
 
-#if !USE_SHARED_LIBRARY
     IMPLEMENT_CLASS(wxMessageDialog, wxDialog)
     IMPLEMENT_CLASS(wxMessageDialog, wxDialog)
-#endif
 
 // ============================================================================
 // implementation
 
 // ============================================================================
 // implementation
@@ -48,7 +54,7 @@
 // ----------------------------------------------------------------------------
 
 // the common part
 // ----------------------------------------------------------------------------
 
 // the common part
-static void msgboxCallBack(Widget w, int client_data, int id)
+static void msgboxCallBack(Widget w, void* client_data, int id)
 {
     // close the dialog
     XtUnmanageChild(w);
 {
     // close the dialog
     XtUnmanageChild(w);
@@ -58,28 +64,28 @@ static void msgboxCallBack(Widget w, int client_data, int id)
 }
 
 static void msgboxCallBackOk(Widget w,
 }
 
 static void msgboxCallBackOk(Widget w,
-                             int client_data,
+                             void* client_data,
                              XmAnyCallbackStruct *WXUNUSED(call_data))
 {
     msgboxCallBack(w, client_data, wxID_OK);
 }
 
 static void msgboxCallBackCancel(Widget w,
                              XmAnyCallbackStruct *WXUNUSED(call_data))
 {
     msgboxCallBack(w, client_data, wxID_OK);
 }
 
 static void msgboxCallBackCancel(Widget w,
-                                 int client_data,
+                                 void* client_data,
                                  XmAnyCallbackStruct *WXUNUSED(call_data))
 {
     msgboxCallBack(w, client_data, wxID_CANCEL);
 }
 
 static void msgboxCallBackHelp(Widget w,
                                  XmAnyCallbackStruct *WXUNUSED(call_data))
 {
     msgboxCallBack(w, client_data, wxID_CANCEL);
 }
 
 static void msgboxCallBackHelp(Widget w,
-                               int client_data,
+                               void* client_data,
                                XmAnyCallbackStruct *WXUNUSED(call_data))
 {
     msgboxCallBack(w, client_data, wxID_HELP);
 }
 
 static void msgboxCallBackClose(Widget w,
                                XmAnyCallbackStruct *WXUNUSED(call_data))
 {
     msgboxCallBack(w, client_data, wxID_HELP);
 }
 
 static void msgboxCallBackClose(Widget w,
-                                int client_data,
+                                void* client_data,
                                 XmAnyCallbackStruct *WXUNUSED(call_data))
 {
     msgboxCallBack(w, client_data, wxID_CANCEL);
                                 XmAnyCallbackStruct *WXUNUSED(call_data))
 {
     msgboxCallBack(w, client_data, wxID_CANCEL);
@@ -125,16 +131,6 @@ int wxMessageDialog::ShowModal()
         dialogCreateFunction = XmCreateInformationDialog;
     }
 
         dialogCreateFunction = XmCreateInformationDialog;
     }
 
-    // prepare the arg list
-    Arg args[2];
-    int ac = 0;
-
-    wxXmString text(m_message);
-    wxXmString title(m_caption);
-    XtSetArg(args[ac], XmNmessageString, text()); ac++;
-    XtSetArg(args[ac], XmNdialogTitle, title()); ac++;
-
-    // do create message box
     Widget wParent = m_parent ? GetWidget(m_parent) : (Widget) 0;
     if ( !wParent )
     {
     Widget wParent = m_parent ? GetWidget(m_parent) : (Widget) 0;
     if ( !wParent )
     {
@@ -149,6 +145,25 @@ int wxMessageDialog::ShowModal()
         wParent = GetWidget(window);
     }
 
         wParent = GetWidget(window);
     }
 
+    // prepare the arg list
+    Arg args[10];
+    int ac = 0;
+
+    wxXmString text(m_message);
+    wxXmString title(m_caption);
+    XtSetArg(args[ac], XmNmessageString, text()); ac++;
+    XtSetArg(args[ac], XmNdialogTitle, title()); ac++;
+
+    wxComputeColours (XtDisplay(wParent), & 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++;
+
+    // do create message box
+
     Widget wMsgBox = (*dialogCreateFunction)(wParent, "", args, ac);
 
     wxCHECK_MSG( wMsgBox, wxID_CANCEL, "msg box creation failed" );
     Widget wMsgBox = (*dialogCreateFunction)(wParent, "", args, ac);
 
     wxCHECK_MSG( wMsgBox, wxID_CANCEL, "msg box creation failed" );