static void test_file_chooser_dialog_basic (void) { GtkWidget *widget; g_test_log_set_fatal_handler (ignore_gvfs_warning, NULL); widget = gtk_file_chooser_dialog_new ("The Dialog", NULL, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, "_OK", GTK_RESPONSE_OK, NULL); g_assert (GTK_IS_FILE_CHOOSER_DIALOG (widget)); g_timeout_add (100, main_loop_quit_cb, NULL); gtk_main(); gtk_widget_destroy (widget); }
void glade_gtk_dialog_post_create (GladeWidgetAdaptor *adaptor, GObject *object, GladeCreateReason reason) { GladeWidget *widget, *vbox_widget, *actionarea_widget; GtkDialog *dialog; g_return_if_fail (GTK_IS_DIALOG (object)); widget = glade_widget_get_from_gobject (GTK_WIDGET (object)); if (!widget) return; dialog = GTK_DIALOG (object); if (reason == GLADE_CREATE_USER) { /* HIG complient border-width defaults on dialogs */ glade_widget_property_set (widget, "border-width", 5); } vbox_widget = glade_widget_get_from_gobject (gtk_dialog_get_content_area (dialog)); actionarea_widget = glade_widget_get_from_gobject (gtk_dialog_get_action_area (dialog)); /* We need to stop default emissions of "hierarchy-changed" and * "screen-changed" of GtkFileChooserDefault to avoid an abort() * when doing a reparent. * GtkFileChooserDialog packs a GtkFileChooserWidget in * his internal vbox. */ if (GTK_IS_FILE_CHOOSER_DIALOG (object)) gtk_container_forall (GTK_CONTAINER (gtk_dialog_get_content_area (dialog)), glade_gtk_file_chooser_forall, NULL); /* These properties are controlled by the GtkDialog style properties: * "content-area-border", "button-spacing" and "action-area-border", * so we must disable thier use. */ glade_widget_remove_property (vbox_widget, "border-width"); glade_widget_remove_property (actionarea_widget, "border-width"); glade_widget_remove_property (actionarea_widget, "spacing"); if (reason == GLADE_CREATE_LOAD || reason == GLADE_CREATE_USER) { GObject *child; gint size; G_GNUC_BEGIN_IGNORE_DEPRECATIONS; if (GTK_IS_COLOR_SELECTION_DIALOG (object)) { child = glade_widget_adaptor_get_internal_child (adaptor, object, "color_selection"); size = 1; } else if (GTK_IS_FONT_SELECTION_DIALOG (object)) { child = glade_widget_adaptor_get_internal_child (adaptor, object, "font_selection"); size = 2; } else size = -1; G_GNUC_END_IGNORE_DEPRECATIONS; /* Set this to a sane value. At load time, if there are any children then * size will adjust appropriately (otherwise the default "3" gets * set and we end up with extra placeholders). */ if (size > -1) glade_widget_property_set (glade_widget_get_from_gobject (child), "size", size); } /* Only set these on the original create. */ if (reason == GLADE_CREATE_USER) { /* HIG complient spacing defaults on dialogs */ glade_widget_property_set (vbox_widget, "spacing", 2); if (GTK_IS_ABOUT_DIALOG (object) || GTK_IS_FILE_CHOOSER_DIALOG (object)) glade_widget_property_set (vbox_widget, "size", 3); else glade_widget_property_set (vbox_widget, "size", 2); glade_widget_property_set (actionarea_widget, "size", 2); glade_widget_property_set (actionarea_widget, "layout-style", GTK_BUTTONBOX_END); } }