X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/eaa6f9ad2b2ce11ecf6720d068815bded3fff0e6..76e7cfab8fdb0c7862fd07e427af54181717fc62:/src/motif/msgdlg.cpp?ds=sidebyside diff --git a/src/motif/msgdlg.cpp b/src/motif/msgdlg.cpp index 4d08240bc2..b26430c4c4 100644 --- a/src/motif/msgdlg.cpp +++ b/src/motif/msgdlg.cpp @@ -4,7 +4,6 @@ // Author: Julian Smart // Modified by: // Created: 04/01/98 -// RCS-ID: $Id$ // Copyright: (c) Julian Smart // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -13,10 +12,6 @@ // declarations // ============================================================================ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "msgdlg.h" -#endif - // ---------------------------------------------------------------------------- // headers // ---------------------------------------------------------------------------- @@ -24,12 +19,9 @@ // 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 +#include "wx/vms_x_fix.h" #endif #include @@ -39,9 +31,15 @@ #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/modalhook.h" #include "wx/motif/private.h" // ---------------------------------------------------------------------------- @@ -100,23 +98,18 @@ static void msgboxCallBackClose(Widget w, // 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_HOOK_MODAL_DIALOG(); + const long style = GetMessageDialogStyle(); + DialogCreateFunction dialogCreateFunction; if ( style & wxYES_NO ) { // if we have [Yes], it must be a question @@ -156,22 +149,38 @@ 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++; - 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" ); @@ -252,4 +261,3 @@ int wxMessageDialog::ShowModal() return m_result; } -