]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/filedlg.cpp
added "access" parameter to wxFile::Create and Open. The default value is
[wxWidgets.git] / src / gtk / filedlg.cpp
index 1f16d2d1cdc69a9438b0873acb51347d06226f20..4589f3de1ab70add12d97c3db36d3621c6ee05ce 100644 (file)
@@ -15,6 +15,7 @@
 #include "wx/filedlg.h"
 #include "wx/utils.h"
 #include "wx/intl.h"
+#include "wx/generic/msgdlgg.h"
 
 //-----------------------------------------------------------------------------
 // wxFileDialog
 void gtk_filedialog_ok_callback( GtkWidget *WXUNUSED(widget), gpointer data )
 {
   wxFileDialog *dialog = (wxFileDialog*)data;
-  wxCommandEvent event(0);
+  wxCommandEvent event(wxEVT_NULL);
+
+  if(dialog->GetStyle()&(wxSAVE|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 +51,24 @@ 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" );
   
   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 +80,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) );