rem: filesel = gtk_file_selection_new(title); gtk_window_set_destroy_with_parent ( GTK_WINDOW (filesel), TRUE ); gtk_window_set_modal ( GTK_WINDOW (filesel), TRUE ); gtk_file_selection_complete ( GTK_FILE_SELECTION (filesel), "*.gsb" );  #ifdef _WIN32_USE_FILE_DIALOG  win32_file_selection_set_properties(properties); g_signal_connect_data  (GTK_OBJECT(filesel), "show", G_CALLBACK( win32_file_selection_signal_show) , NULL, NULL,0); g_signal_connect_data  (GTK_OBJECT(filesel), "hide", G_CALLBACK( win32_file_selection_signal_hide) , NULL, NULL,0); #else gtk_window_set_modal ( GTK_WINDOW ( filesel ), TRUE );  if (FILE_SELECTION_PROPERTY(properties,FILE_SELECTION_IS_SAVE_DIALOG) && !FILE_SELECTION_PROPERTY(properties,FILE_SELECTION_NOOVERWRITECHECK)) { g_signal_connect_swapped  (GTK_OBJECT ( GTK_FILE_SELECTION ( filesel ) -> ok_button), "clicked", GTK_SIGNAL_FUNC(file_selection_overwrite_file_check_signal), GTK_OBJECT (filesel) ); } else if (FILE_SELECTION_PROPERTY(properties,FILE_SELECTION_IS_OPEN_DIALOG) && !FILE_SELECTION_PROPERTY(properties,FILE_SELECTION_MUST_EXIST)) { g_signal_connect_swapped  (GTK_OBJECT ( GTK_FILE_SELECTION ( filesel ) -> ok_button), "clicked", GTK_SIGNAL_FUNC(file_selection_check_filename_signal), GTK_OBJECT (filesel) ); }   #endif
add: filesel = gtk_file_chooser_dialog_new ( title, NULL, ( properties & FILE_SELECTION_IS_SAVE_DIALOG ? GTK_FILE_CHOOSER_ACTION_SAVE : GTK_FILE_CHOOSER_ACTION_OPEN ), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_OK, NULL );
context: GtkWidget* file_selection_new(const gchar      *title,const  gint properties){ /* {{{ */    GtkWidget *filesel;    filesel = gtk_file_selection_new(title);    gtk_window_set_destroy_with_parent ( GTK_WINDOW (filesel), TRUE );    gtk_window_set_modal ( GTK_WINDOW (filesel), TRUE );    gtk_file_selection_complete ( GTK_FILE_SELECTION (filesel), "*.gsb" );#ifdef _WIN32_USE_FILE_DIALOG    /*! \todo On Windows, we "hijack" the standard gtk signals */    win32_file_selection_set_properties(properties);    g_signal_connect_data  (GTK_OBJECT(filesel), "show", G_CALLBACK( win32_file_selection_signal_show) , NULL, NULL,0);    g_signal_connect_data  (GTK_OBJECT(filesel), "hide", G_CALLBACK( win32_file_selection_signal_hide) , NULL, NULL,0);#else    gtk_window_set_modal ( GTK_WINDOW ( filesel ), TRUE );    if (FILE_SELECTION_PROPERTY(properties,FILE_SELECTION_IS_SAVE_DIALOG) && !FILE_SELECTION_PROPERTY(properties,FILE_SELECTION_NOOVERWRITECHECK))     {        g_signal_connect_swapped  (GTK_OBJECT ( GTK_FILE_SELECTION ( filesel ) -> ok_button),				   "clicked",				   GTK_SIGNAL_FUNC(file_selection_overwrite_file_check_signal),				   GTK_OBJECT (filesel) );    }    else if (FILE_SELECTION_PROPERTY(properties,FILE_SELECTION_IS_OPEN_DIALOG) && !FILE_SELECTION_PROPERTY(properties,FILE_SELECTION_MUST_EXIST))    {        g_signal_connect_swapped  (GTK_OBJECT ( GTK_FILE_SELECTION ( filesel ) -> ok_button),				   "clicked",				   GTK_SIGNAL_FUNC(file_selection_check_filename_signal),				   GTK_OBJECT (filesel) );    }#endif    return GTK_WIDGET (filesel);} /* }}} file_selection_new */