+ // not only set the full path but also update filename and dir
+ m_path = path;
+ if ( !!path )
+ {
+ wxString ext;
+ wxSplitPath(path, &m_dir, &m_fileName, &ext);
+ if (!ext.IsEmpty())
+ {
+ m_fileName += wxT(".");
+ m_fileName += ext;
+ }
+ }
+}
+
+// ----------------------------------------------------------------------------
+// global functions
+// ----------------------------------------------------------------------------
+
+wxString
+wxFileSelectorEx(const wxChar *message,
+ const wxChar *default_path,
+ const wxChar *default_filename,
+ int *indexDefaultExtension,
+ const wxChar *wildcard,
+ int flags,
+ wxWindow *parent,
+ int x, int y)
+{
+ // TODO: implement this somehow
+ return wxFileSelector(message, default_path, default_filename, wxT(""),
+ wildcard, flags, parent, x, y);
+}
+
+wxString wxFileSelector( const wxChar *title,
+ const wxChar *defaultDir, const wxChar *defaultFileName,
+ const wxChar *defaultExtension, const wxChar *filter, int flags,
+ wxWindow *parent, int x, int y )
+{
+ wxString filter2;
+ if ( defaultExtension && !filter )
+ filter2 = wxString(wxT("*.")) + wxString(defaultExtension) ;
+ else if ( filter )
+ filter2 = filter;
+
+ wxString defaultDirString;
+ if (defaultDir)
+ defaultDirString = defaultDir;
+
+ wxString defaultFilenameString;
+ if (defaultFileName)
+ defaultFilenameString = defaultFileName;
+
+ wxFileDialog fileDialog( parent, title, defaultDirString, defaultFilenameString, filter2, flags, wxPoint(x, y) );
+
+ if ( fileDialog.ShowModal() == wxID_OK )
+ {
+ return fileDialog.GetPath();
+ }
+ else
+ {
+ return wxEmptyString;
+ }
+}
+
+wxString wxLoadFileSelector( const wxChar *what, const wxChar *extension, const wxChar *default_name, wxWindow *parent )
+{
+ wxChar *ext = (wxChar *)extension;