-
-//-----------------------------------------------------------------------------
-// "clicked" for OK-button
-//-----------------------------------------------------------------------------
-
-extern "C" {
-static void gtk_filedialog_ok_callback(GtkWidget *widget, wxFileDialog *dialog)
-{
- int style = dialog->GetWindowStyle();
- wxGtkString 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 & wxFD_SAVE) && (style & wxFD_OVERWRITE_PROMPT))
- {
- if ( g_file_test(filename, G_FILE_TEST_EXISTS) )
- {
- wxString msg;
-
- msg.Printf(
- _("File '%s' already exists, do you really want to overwrite it?"),
- wxString::FromUTF8(filename));
-
- wxMessageDialog dlg(dialog, msg, _("Confirm"),
- wxYES_NO | wxICON_QUESTION);
- if (dlg.ShowModal() != wxID_YES)
- return;
- }
- }
- }
-
- if (style & wxFD_FILE_MUST_EXIST)
- {
- if ( !g_file_test(filename, G_FILE_TEST_EXISTS) )
- {
- wxMessageDialog dlg( dialog, _("Please choose an existing file."),
- _("Error"), wxOK| wxICON_ERROR);
- dlg.ShowModal();
- return;
- }
- }
-
- // change to the directory where the user went if asked
- if (style & wxFD_CHANGE_DIR)
- {
- // Use chdir to not care about filename encodings
- wxGtkString folder(g_path_get_dirname(filename));
- chdir(folder);
- }
-
- wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK);
- event.SetEventObject(dialog);
- dialog->HandleWindowEvent(event);
-}
-}
-
-//-----------------------------------------------------------------------------
-// "clicked" for Cancel-button
-//-----------------------------------------------------------------------------