X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c801d85f158c4cba50b588807daabdcbd0ed3853..c6cdf16c933251be1670f611ba28e48885610b23:/src/gtk1/filedlg.cpp?ds=sidebyside diff --git a/src/gtk1/filedlg.cpp b/src/gtk1/filedlg.cpp index 1f16d2d1cd..b4d0ed1592 100644 --- a/src/gtk1/filedlg.cpp +++ b/src/gtk1/filedlg.cpp @@ -15,6 +15,7 @@ #include "wx/filedlg.h" #include "wx/utils.h" #include "wx/intl.h" +#include "wx/generic/msgdlgg.h" //----------------------------------------------------------------------------- // wxFileDialog @@ -23,14 +24,24 @@ void gtk_filedialog_ok_callback( GtkWidget *WXUNUSED(widget), gpointer data ) { wxFileDialog *dialog = (wxFileDialog*)data; - wxCommandEvent event(0); + wxCommandEvent event(wxEVT_NULL); + int style; + + style=dialog->GetStyle(); + + if((style&wxSAVE)&&(style&wxOVERWRITE_PROMPT)) + if(wxFileExists(gtk_file_selection_get_filename(GTK_FILE_SELECTION(dialog->m_widget) ))) { + if(wxMessageBox("File exists. Overwrite?","Confirm",wxYES_NO)!=wxYES) + return; + } + dialog->OnOk( event ); }; void gtk_filedialog_cancel_callback( GtkWidget *WXUNUSED(widget), gpointer data ) { wxFileDialog *dialog = (wxFileDialog*)data; - wxCommandEvent event(0); + wxCommandEvent event(wxEVT_NULL); dialog->OnCancel( event ); }; @@ -43,17 +54,28 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message, { m_needParent = FALSE; - PreCreation( parent, -1, pos, wxDefaultSize, style, "filedialog" ); + PreCreation( parent, -1, pos, wxDefaultSize, style | wxDIALOG_MODAL, "filedialog" ); m_message = message; m_path = ""; m_fileName = defaultFileName; m_dir = defaultDir; m_wildCard = wildCard; + m_dialogStyle = style; m_filterIndex = 1; m_widget = gtk_file_selection_new( "File selection" ); + int x = (gdk_screen_width () - 400) / 2; + int y = (gdk_screen_height () - 400) / 2; + gtk_widget_set_uposition( m_widget, x, y ); + GtkFileSelection *sel = GTK_FILE_SELECTION(m_widget); + + m_path.Append(m_dir); + if(! m_path.IsEmpty() && m_path.Last()!='/') m_path.Append('/'); + m_path.Append(m_fileName); + + if(m_path.Length()>1) gtk_file_selection_set_filename(sel,m_path); gtk_signal_connect( GTK_OBJECT(sel->ok_button), "clicked", GTK_SIGNAL_FUNC(gtk_filedialog_ok_callback), (gpointer*)this ); @@ -65,6 +87,7 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message, int wxFileDialog::ShowModal(void) { int ret = wxDialog::ShowModal(); + if (ret == wxID_OK) { m_fileName = gtk_file_selection_get_filename( GTK_FILE_SELECTION(m_widget) );