X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7398fb817080494ac72bba20bcbc3d3b741e7e48..76e7cfab8fdb0c7862fd07e427af54181717fc62:/src/motif/filedlg.cpp diff --git a/src/motif/filedlg.cpp b/src/motif/filedlg.cpp index 8173d408e9..ede29a20b7 100644 --- a/src/motif/filedlg.cpp +++ b/src/motif/filedlg.cpp @@ -1,35 +1,28 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: filedlg.cpp +// Name: src/motif/filedlg.cpp // Purpose: wxFileDialog // Author: Julian Smart // Modified by: // Created: 17/09/98 -// RCS-ID: $Id$ // Copyright: (c) Julian Smart // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "filedlg.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" -#ifdef __VMS -#define XtDisplay XTDISPLAY -#define XtParent XTPARENT -#define XtWindow XTWINDOW +#include "wx/filedlg.h" + +#ifndef WX_PRECOMP + #include "wx/intl.h" + #include "wx/app.h" + #include "wx/utils.h" + #include "wx/settings.h" #endif -#include "wx/defs.h" -#include "wx/utils.h" -#include "wx/filedlg.h" -#include "wx/intl.h" -#include "wx/app.h" -#include "wx/settings.h" #include "wx/tokenzr.h" #include "wx/stockitem.h" +#include "wx/modalhook.h" #ifdef __VMS__ #pragma message disable nosimpint @@ -95,21 +88,20 @@ void wxFileSelOk(Widget WXUNUSED(fs), XtPointer WXUNUSED(client_data), XmFileSel static wxString ParseWildCard( const wxString& wild ) { -#ifdef __WXDEBUG__ - static const wxChar* msg = - _T("Motif file dialog does not understand this ") - _T("wildcard syntax"); +#if wxDEBUG_LEVEL + static const char *msg = + "Motif file dialog does not understand this wildcard syntax"; #endif wxArrayString wildDescriptions, wildFilters; const size_t count = wxParseCommonDialogsFilter(wild, wildDescriptions, wildFilters); - wxCHECK_MSG( count, _T("*.*"), wxT("wxFileDialog: bad wildcard string") ); - wxCHECK_MSG( count == 1, _T("*.*"), msg ); + wxCHECK_MSG( count, wxT("*.*"), wxT("wxFileDialog: bad wildcard string") ); + wxCHECK_MSG( count == 1, wxT("*.*"), msg ); // check for *.txt;*.rtf - wxStringTokenizer tok2( wildFilters[0], _T(";") ); + wxStringTokenizer tok2( wildFilters[0], wxT(";") ); wxString wildcard = tok2.GetNextToken(); wxCHECK_MSG( tok2.CountTokens() <= 1, wildcard, msg ); @@ -118,10 +110,9 @@ static wxString ParseWildCard( const wxString& wild ) wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message, const wxString& defaultDir, const wxString& defaultFileName, const wxString& wildCard, - long style, const wxPoint& pos) - :wxFileDialogBase(parent, message, defaultDir, defaultFileName, wildCard, style, pos) + long style, const wxPoint& pos, const wxSize& sz, const wxString& name) + :wxFileDialogBase(parent, message, defaultDir, defaultFileName, wildCard, style, pos, sz, name) { - m_filterIndex = 1; } static void wxChangeListBoxColours(wxWindow* WXUNUSED(win), Widget widget) @@ -160,6 +151,8 @@ static void wxChangeListBoxColours(wxWindow* WXUNUSED(win), Widget widget) int wxFileDialog::ShowModal() { + WX_HOOK_MODAL_DIALOG(); + wxBeginBusyCursor(); // static char fileBuf[512]; @@ -173,12 +166,15 @@ int wxFileDialog::ShowModal() Arg args[10]; int ac = 0; - 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); @@ -193,7 +189,8 @@ int wxFileDialog::ShowModal() #endif Widget fileSel = XmCreateFileSelectionDialog(parentWidget, - "file_selector", args, ac); + wxMOTIF_STR("file_selector"), + args, ac); #define wxFSChild( name ) \ XmFileSelectionBoxGetChild(fileSel, name) @@ -232,9 +229,9 @@ int wxFileDialog::ShowModal() Widget shell = XtParent(fileSel); - if (!m_message.IsNull()) + if ( !m_message.empty() ) XtVaSetValues(shell, - XmNtitle, wxConstCast(m_message.c_str(), char), + XmNtitle, (const char*)m_message.mb_str(), NULL); if (!m_wildCard.empty()) @@ -247,7 +244,7 @@ int wxFileDialog::ShowModal() else filter = wildCard; - XmTextSetString(filterWidget, wxConstCast(filter.c_str(), char)); + XmTextSetString(filterWidget, filter.char_str()); XmFileSelectionDoSearch(fileSel, NULL); } @@ -275,8 +272,7 @@ int wxFileDialog::ShowModal() if (!entirePath.empty()) { - XmTextSetString(selectionWidget, - wxConstCast(entirePath.c_str(), char)); + XmTextSetString(selectionWidget, entirePath.char_str()); } XtAddCallback(fileSel, XmNcancelCallback,