+ if ( style & wxSAVE )
+ {
+ if ( !defaultDir.empty() )
+ gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(m_widget),
+ wxConvFileName->cWX2MB(defaultDir));
+
+ gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(m_widget),
+ wxConvFileName->cWX2MB(defaultFileName));
+
+#if GTK_CHECK_VERSION(2,7,3)
+ if (!gtk_check_version(2,7,3))
+ gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(m_widget), TRUE);
+#endif
+ }
+ else
+ {
+ if ( !defaultFileName.empty() )
+ {
+ wxString dir;
+ if ( defaultDir.empty() )
+ dir = ::wxGetCwd();
+ else
+ dir = defaultDir;
+
+ gtk_file_chooser_set_filename(
+ GTK_FILE_CHOOSER(m_widget),
+ wxConvFileName->cWX2MB( wxFileName(dir, defaultFileName).GetFullPath() ) );
+ }
+ else if ( !defaultDir.empty() )
+ gtk_file_chooser_set_current_folder( GTK_FILE_CHOOSER(m_widget),
+ wxConvFileName->cWX2MB(defaultDir) );
+ }
+ }
+ else
+#endif
+ wxGenericFileDialog::Create( parent, message, defaultDir, defaultFileName, wildCard, style, pos );
+}
+
+wxFileDialog::~wxFileDialog()
+{
+#ifdef __WXGTK24__
+ if (!gtk_check_version(2,4,0))
+ {
+ if (m_destroyed_by_delete)
+ m_widget = NULL;
+ }
+#endif
+}
+
+void wxFileDialog::OnFakeOk( wxCommandEvent &event )
+{
+#ifdef __WXGTK24__
+ if (!gtk_check_version(2,4,0))
+ wxDialog::OnOK( event );
+ else
+#endif
+ wxGenericFileDialog::OnListOk( event );