#include "wx/tokenzr.h" // wxStringTokenizer
#include "wx/filefn.h" // ::wxGetCwd
-//-----------------------------------------------------------------------------
-// idle system
-//-----------------------------------------------------------------------------
-
-extern void wxapp_install_idle_handler();
-
//-----------------------------------------------------------------------------
// "clicked" for OK-button
//-----------------------------------------------------------------------------
msg.Printf(
_("File '%s' already exists, do you really want to overwrite it?"),
- wxString(wxConvFileName->cMB2WX(filename)).c_str());
+ wxString(filename, *wxConvFileName));
wxMessageDialog dlg(dialog, msg, _("Confirm"),
wxYES_NO | wxICON_QUESTION);
}
}
+ 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)
{
gint response,
wxFileDialog *dialog)
{
- wxapp_install_idle_handler();
-
if (response == GTK_RESPONSE_ACCEPT)
gtk_filedialog_ok_callback(w, dialog);
else // GTK_RESPONSE_CANCEL or GTK_RESPONSE_NONE
return;
}
- m_needParent = false;
+ parent = GetParentForModalDialog(parent);
if (!PreCreation(parent, pos, wxDefaultSize) ||
!CreateBase(parent, wxID_ANY, pos, wxDefaultSize, style,
fn.AssignDir(defaultDir);
// set the initial file name and/or directory
- wxString fname = fn.GetFullName();
- if ( fname.empty() )
+ fn.MakeAbsolute(); // GTK+ needs absolute path
+ const wxString dir = fn.GetPath();
+ if ( !dir.empty() )
{
- wxString dir = fn.GetPath();
- if ( !dir.empty() )
- {
- gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(m_widget),
- dir.fn_str());
- }
+ gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(m_widget),
+ dir.fn_str());
}
+ const wxString fname = fn.GetFullName();
if ( style & wxFD_SAVE )
{
if ( !fname.empty() )
if (!gtk_check_version(2,4,0))
{
wxGtkString str(gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(m_widget)));
- return wxConvFileName->cMB2WX(str);
+ return wxString(str, *wxConvFileName);
}
return wxGenericFileDialog::GetPath();
GSList *gpaths = gpathsi;
while (gpathsi)
{
- wxString file(wxConvFileName->cMB2WX((gchar*) gpathsi->data));
+ wxString file((gchar*) gpathsi->data, *wxConvFileName);
paths.Add(file);
g_free(gpathsi->data);
gpathsi = gpathsi->next;
{
if (path.empty()) return;
- gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(m_widget), wxConvFileName->cWX2MB(path));
+ gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(m_widget), path.fn_str());
}
else
wxGenericFileDialog::SetPath( path );
{
if (wxDirExists(dir))
{
- gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(m_widget), wxConvFileName->cWX2MB(dir));
+ gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(m_widget), dir.fn_str());
}
}
else
if (!gtk_check_version(2,4,0))
{
wxGtkString str(gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(m_widget)));
- return wxConvFileName->cMB2WX(str);
+ return wxString(str, *wxConvFileName);
}
return wxGenericFileDialog::GetDirectory();