]> Pileus Git - ~andy/gtk/blobdiff - tests/testfilechooser.c
Don't use gtk_scrolled_window_add_with_viewport() in tests
[~andy/gtk] / tests / testfilechooser.c
index 86b0d57bff6b2e0e63c2150ff489ab609772d076..fdee0324753fdc72abc70e61200bac8bebd4a93c 100644 (file)
@@ -13,9 +13,7 @@
  * Library General Public License for more details.
  *
  * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 #include "config.h"
 
@@ -407,9 +405,9 @@ unmap_and_remap_cb (GtkButton *button,
 }
 
 static void
-kill_dependent (GtkWindow *win, GtkObject *dep)
+kill_dependent (GtkWindow *win, GtkWidget *dep)
 {
-  gtk_object_destroy (dep);
+  gtk_widget_destroy (dep);
   g_object_unref (dep);
 }
 
@@ -481,22 +479,21 @@ main (int argc, char **argv)
   GtkWidget *vbbox;
   GtkWidget *button;
   GtkWidget *dialog;
-  GtkWidget *prop_editor;
   GtkWidget *extra;
   GtkFileFilter *filter;
   GtkWidget *preview_vbox;
   gboolean force_rtl = FALSE;
   gboolean multiple = FALSE;
   char *action_arg = NULL;
-  char *backend = NULL;
   char *initial_filename = NULL;
+  char *initial_folder = NULL;
   GError *error = NULL;
   GOptionEntry options[] = {
     { "action", 'a', 0, G_OPTION_ARG_STRING, &action_arg, "Filechooser action", "ACTION" },
-    { "backend", 'b', 0, G_OPTION_ARG_STRING, &backend, "Filechooser backend (default: gtk+)", "BACKEND" },
     { "multiple", 'm', 0, G_OPTION_ARG_NONE, &multiple, "Select-multiple", NULL },
     { "right-to-left", 'r', 0, G_OPTION_ARG_NONE, &force_rtl, "Force right-to-left layout.", NULL },
     { "initial-filename", 'f', 0, G_OPTION_ARG_FILENAME, &initial_filename, "Initial filename to select", "FILENAME" },
+    { "initial-folder", 'F', 0, G_OPTION_ARG_FILENAME, &initial_folder, "Initial folder to show", "FILENAME" },
     { NULL }
   };
 
@@ -507,6 +504,12 @@ main (int argc, char **argv)
       return 1;
     }
 
+  if (initial_filename && initial_folder)
+    {
+      g_print ("Only one of --initial-filename and --initial-folder may be specified");
+      return 1;
+    }
+
   if (force_rtl)
     gtk_widget_set_default_direction (GTK_TEXT_DIR_RTL);
 
@@ -526,17 +529,11 @@ main (int argc, char **argv)
       g_free (action_arg);
     }
 
-  if (backend == NULL)
-    backend = g_strdup ("gtk+");
-
   dialog = g_object_new (GTK_TYPE_FILE_CHOOSER_DIALOG,
                         "action", action,
-                        "file-system-backend", backend,
                         "select-multiple", multiple,
                         NULL);
 
-  g_free (backend);
-
   switch (action)
     {
     case GTK_FILE_CHOOSER_ACTION_OPEN:
@@ -580,6 +577,11 @@ main (int argc, char **argv)
   gtk_file_filter_add_mime_type (filter, "image/png");
   gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
 
+  filter = gtk_file_filter_new ();
+  gtk_file_filter_set_name (filter, "Starts with D");
+  gtk_file_filter_add_pattern (filter, "D*");
+  gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
+
   g_signal_connect (dialog, "notify::filter",
                    G_CALLBACK (filter_changed), NULL);
 
@@ -600,16 +602,16 @@ main (int argc, char **argv)
   /* Preview widget */
   /* THIS IS A TERRIBLE PREVIEW WIDGET, AND SHOULD NOT BE COPIED AT ALL.
    */
-  preview_vbox = gtk_vbox_new (0, FALSE);
+  preview_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
   /*gtk_file_chooser_set_preview_widget (GTK_FILE_CHOOSER (dialog), preview_vbox);*/
 
   preview_label = gtk_label_new (NULL);
   gtk_box_pack_start (GTK_BOX (preview_vbox), preview_label, TRUE, TRUE, 0);
-  gtk_misc_set_padding (GTK_MISC (preview_label), 6, 6);
+  g_object_set (preview_label, "margin", 6, NULL);
 
   preview_image = gtk_image_new ();
   gtk_box_pack_start (GTK_BOX (preview_vbox), preview_image, TRUE, TRUE, 0);
-  gtk_misc_set_padding (GTK_MISC (preview_image), 6, 6);
+  g_object_set (preview_image, "margin", 6, NULL);
 
   update_preview_cb (GTK_FILE_CHOOSER (dialog));
   g_signal_connect (dialog, "update-preview",
@@ -627,21 +629,24 @@ main (int argc, char **argv)
                                            "file:///usr/share/pixmaps",
                                            NULL);
 
-  /* Initial filename */
+  /* Initial filename or folder */
 
   if (initial_filename)
     set_filename (GTK_FILE_CHOOSER (dialog), initial_filename);
 
+  if (initial_folder)
+    set_current_folder (GTK_FILE_CHOOSER (dialog), initial_folder);
+
   /* show_all() to reveal bugs in composite widget handling */
   gtk_widget_show_all (dialog);
 
   /* Extra controls for manipulating the test environment
    */
-  prop_editor = create_prop_editor (G_OBJECT (dialog), GTK_TYPE_FILE_CHOOSER);
+  create_prop_editor (G_OBJECT (dialog), GTK_TYPE_FILE_CHOOSER);
 
   control_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
 
-  vbbox = gtk_vbutton_box_new ();
+  vbbox = gtk_button_box_new (GTK_ORIENTATION_VERTICAL);
   gtk_container_add (GTK_CONTAINER (control_window), vbbox);
 
   button = gtk_button_new_with_mnemonic ("_Select all");