#pragma hdrstop
#endif
-#if wxUSE_FILEDLG && !defined(__WXGTK24__)
+#if wxUSE_FILEDLG
// NOTE : it probably also supports MAC, untested
#if !defined(__UNIX__) && !defined(__DOS__) && !defined(__WIN32__) && !defined(__OS2__)
const wxString& defaultFile,
const wxString& wildCard,
long style,
- const wxPoint& pos )
+ const wxPoint& pos,
+ bool bypassGenericImpl )
:wxFileDialogBase(parent, message, defaultDir, defaultFile, wildCard, style, pos)
{
- wxDialog::Create( parent, wxID_ANY, message, pos, wxDefaultSize,
- wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER );
+ m_bypassGenericImpl = bypassGenericImpl;
+
+ if (!m_bypassGenericImpl)
+ Create( parent, message, defaultDir, defaultFile, wildCard, style, pos );
+}
+
+bool wxGenericFileDialog::Create( wxWindow *parent,
+ const wxString& message,
+ const wxString& defaultDir,
+ const wxString& defaultFile,
+ const wxString& wildCard,
+ long style,
+ const wxPoint& pos )
+{
+ if (!wxDialog::Create( parent, wxID_ANY, message, pos, wxDefaultSize,
+ wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER ))
+ {
+ return false;
+ }
if (wxConfig::Get(false))
{
Centre( wxBOTH );
m_text->SetFocus();
+
+ return true;
}
wxGenericFileDialog::~wxGenericFileDialog()
{
- if (wxConfig::Get(false))
+ if (!m_bypassGenericImpl)
{
- wxConfig::Get()->Write(wxT("/wxWindows/wxFileDialog/ViewStyle"),
- ms_lastViewStyle);
- wxConfig::Get()->Write(wxT("/wxWindows/wxFileDialog/ShowHidden"),
- ms_lastShowHidden);
- }
+ if (wxConfig::Get(false))
+ {
+ wxConfig::Get()->Write(wxT("/wxWindows/wxFileDialog/ViewStyle"),
+ ms_lastViewStyle);
+ wxConfig::Get()->Write(wxT("/wxWindows/wxFileDialog/ShowHidden"),
+ ms_lastShowHidden);
+ }
- const int count = m_choice->GetCount();
- for ( int i = 0; i < count; i++ )
- {
- delete (wxString *)m_choice->GetClientData(i);
+ const int count = m_choice->GetCount();
+ for ( int i = 0; i < count; i++ )
+ {
+ delete (wxString *)m_choice->GetClientData(i);
+ }
}
}
if (filename.BeforeFirst(wxT('/')) == wxT("~"))
{
- filename = wxGetUserHome() + filename.Remove(0, 1);
+ filename = wxString(wxGetUserHome()) + filename.Remove(0, 1);
}
#endif // __UNIX__
#endif // USE_GENERIC_FILEDIALOG
-#endif // wxUSE_FILEDLG && !defined(__WXGTK24__)
+#endif // wxUSE_FILEDLG