X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f8bc53eb53d46fb5aba070830100e6994cfc435f..98cb8dcb0cf3b0e660f1f67e1c02451ab10257de:/src/gtk/filedlg.cpp?ds=inline diff --git a/src/gtk/filedlg.cpp b/src/gtk/filedlg.cpp index 71d76a6915..ca86050527 100644 --- a/src/gtk/filedlg.cpp +++ b/src/gtk/filedlg.cpp @@ -7,10 +7,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "filedlggtk.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -39,7 +35,6 @@ //----------------------------------------------------------------------------- extern void wxapp_install_idle_handler(); -extern bool g_isIdle; //----------------------------------------------------------------------------- // "clicked" for OK-button @@ -51,6 +46,10 @@ static void gtk_filedialog_ok_callback(GtkWidget *widget, wxFileDialog *dialog) int style = dialog->GetStyle(); gchar* filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget)); + // gtk version numbers must be identical with the one in ctor (that calls set_do_overwrite_confirmation) +#if GTK_CHECK_VERSION(2,7,3) + if(gtk_check_version(2,7,3) != NULL) +#endif if ((style & wxSAVE) && (style & wxOVERWRITE_PROMPT)) { if ( g_file_test(filename, G_FILE_TEST_EXISTS) ) @@ -156,9 +155,9 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message, GtkFileChooserAction gtk_action; GtkWindow* gtk_parent = NULL; if (parent) - gtk_parent = GTK_WINDOW(parent->m_widget); + gtk_parent = GTK_WINDOW( gtk_widget_get_toplevel(parent->m_widget) ); - gchar* ok_btn_stock; + const gchar* ok_btn_stock; if ( style & wxSAVE ) { gtk_action = GTK_FILE_CHOOSER_ACTION_SAVE; @@ -195,19 +194,24 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message, if ( style & wxSAVE ) { - if ( !defaultDir.IsEmpty() ) + 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.IsEmpty() ) + if ( !defaultFileName.empty() ) { wxString dir; - if ( defaultDir.IsEmpty() ) + if ( defaultDir.empty() ) dir = ::wxGetCwd(); else dir = defaultDir; @@ -216,7 +220,7 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message, GTK_FILE_CHOOSER(m_widget), wxConvFileName->cWX2MB( wxFileName(dir, defaultFileName).GetFullPath() ) ); } - else if ( !defaultDir.IsEmpty() ) + else if ( !defaultDir.empty() ) gtk_file_chooser_set_current_folder( GTK_FILE_CHOOSER(m_widget), wxConvFileName->cWX2MB(defaultDir) ); } @@ -267,6 +271,14 @@ bool wxFileDialog::Show( bool show ) return wxGenericFileDialog::Show( show ); } +void wxFileDialog::DoSetSize(int x, int y, int width, int height, int sizeFlags ) +{ + if (!m_wxwindow) + return; + else + wxGenericFileDialog::DoSetSize( x, y, width, height, sizeFlags ); +} + wxString wxFileDialog::GetPath() const { #ifdef __WXGTK24__ @@ -354,7 +366,7 @@ void wxFileDialog::SetDirectory(const wxString& dir) #ifdef __WXGTK24__ if (!gtk_check_version(2,4,0)) { - if (wxPathExists(dir)) + if (wxDirExists(dir)) { gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(m_widget), wxConvFileName->cWX2MB(dir)); }