- m_needParent = FALSE;
-
- 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( m_message );
-
- 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 );
-
- gtk_signal_connect( GTK_OBJECT(sel->cancel_button), "clicked",
- GTK_SIGNAL_FUNC(gtk_filedialog_cancel_callback), (gpointer*)this );
+ m_needParent = FALSE;
+
+ if (!PreCreation( parent, pos, wxDefaultSize ) ||
+ !CreateBase( parent, -1, pos, wxDefaultSize, style | wxDIALOG_MODAL, wxDefaultValidator, wxT("filedialog") ))
+ {
+ wxFAIL_MSG( wxT("wxXX creation failed") );
+ return;
+ }
+
+ m_message = message;
+ m_path = wxT("");
+ m_fileName = defaultFileName;
+ m_dir = defaultDir;
+ m_wildCard = wildCard;
+ m_dialogStyle = style;
+ m_filterIndex = 1;
+
+ m_widget = gtk_file_selection_new( m_message.mbc_str() );
+
+ 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);
+ gtk_file_selection_hide_fileop_buttons( sel ); // they don't work anyway
+
+ m_path.Append(m_dir);
+ if( ! m_path.IsEmpty() && m_path.Last()!=wxT('/') )
+ m_path.Append('/');
+ m_path.Append(m_fileName);
+
+ if(m_path.Length()>1) gtk_file_selection_set_filename(sel,m_path.mbc_str());
+
+ gtk_signal_connect( GTK_OBJECT(sel->ok_button), "clicked",
+ GTK_SIGNAL_FUNC(gtk_filedialog_ok_callback), (gpointer*)this );
+
+ // strange way to internationalize
+ gtk_label_set( GTK_LABEL( GTK_BUTTON(sel->ok_button)->child ), wxConvCurrent->cWX2MB(_("OK")) );
+
+ gtk_signal_connect( GTK_OBJECT(sel->cancel_button), "clicked",
+ GTK_SIGNAL_FUNC(gtk_filedialog_cancel_callback), (gpointer*)this );
+
+ // strange way to internationalize
+ gtk_label_set( GTK_LABEL( GTK_BUTTON(sel->cancel_button)->child ), wxConvCurrent->cWX2MB(_("Cancel")) );
+
+ gtk_signal_connect( GTK_OBJECT(m_widget), "delete_event",
+ GTK_SIGNAL_FUNC(gtk_filedialog_delete_callback), (gpointer)this );