static void gimp_container_grid_view_init (GimpContainerGridView *grid_view) { GimpContainerBox *box = GIMP_CONTAINER_BOX (grid_view); GtkWidget *viewport; grid_view->rows = 1; grid_view->columns = 1; grid_view->visible_rows = 0; grid_view->selected_item = NULL; gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (box->scrolled_win), GTK_SHADOW_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (box->scrolled_win), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); gimp_editor_set_show_name (GIMP_EDITOR (grid_view), TRUE); grid_view->wrap_box = gtk_hwrap_box_new (FALSE); gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (box->scrolled_win), grid_view->wrap_box); viewport = gtk_widget_get_parent (grid_view->wrap_box); gtk_viewport_set_shadow_type (GTK_VIEWPORT (viewport), GTK_SHADOW_NONE); gtk_widget_show (grid_view->wrap_box); g_signal_connect (viewport, "size-allocate", G_CALLBACK (gimp_container_grid_view_viewport_resized), grid_view); g_signal_connect (viewport, "button-press-event", G_CALLBACK (gimp_container_grid_view_button_press), grid_view); gtk_widget_set_can_focus (GTK_WIDGET (grid_view), TRUE); }
gboolean sheets_dialog_create(void) { GList *plugin_list; GSList *sheets_list; GtkWidget *option_menu; GtkWidget *sw; GtkWidget *wrapbox; gchar *sheet_left; gchar *sheet_right; if (sheets_mods_list) { /* not sure if I understood the data structure * but simply leaking isn't acceptable ... --hb */ g_slist_foreach(sheets_mods_list, (GFunc)g_free, NULL); g_slist_free(sheets_mods_list); } sheets_mods_list = NULL; if (sheets_dialog == NULL) { sheets_dialog = create_sheets_main_dialog(); if (!sheets_dialog) { /* don not let a broken builder file crash Dia */ g_warning("SheetDialog creation failed"); return FALSE; } /* Make sure to null our pointer when destroyed */ g_signal_connect (G_OBJECT (sheets_dialog), "destroy", G_CALLBACK (gtk_widget_destroyed), &sheets_dialog); sheet_left = NULL; sheet_right = NULL; } else { option_menu = lookup_widget(sheets_dialog, "optionmenu_left"); sheet_left = g_object_get_data(G_OBJECT(option_menu), "active_sheet_name"); option_menu = lookup_widget(sheets_dialog, "optionmenu_right"); sheet_right = g_object_get_data(G_OBJECT(option_menu), "active_sheet_name"); wrapbox = lookup_widget(sheets_dialog, "wrapbox_left"); if (wrapbox) gtk_widget_destroy(wrapbox); wrapbox = lookup_widget(sheets_dialog, "wrapbox_right"); if (wrapbox) gtk_widget_destroy(wrapbox); } if (custom_type_symbol == NULL) { /* This little bit identifies a custom object symbol so we can tell the difference later between a SVG shape and a Programmed shape */ custom_type_symbol = NULL; for (plugin_list = dia_list_plugins(); plugin_list != NULL; plugin_list = g_list_next(plugin_list)) { PluginInfo *info = plugin_list->data; custom_type_symbol = (gpointer)dia_plugin_get_symbol (info, "custom_type"); if (custom_type_symbol) break; } } if (!custom_type_symbol) { message_warning (_("Can't get symbol 'custom_type' from any module.\n" "Editing shapes is disabled.")); return FALSE; } for (sheets_list = get_sheets_list(); sheets_list; sheets_list = g_slist_next(sheets_list)) sheets_append_sheet_mods(sheets_list->data); sw = lookup_widget(sheets_dialog, "scrolledwindow_right"); /* In case glade already add a child to scrolledwindow */ wrapbox = gtk_bin_get_child (GTK_BIN(sw)); if (wrapbox) gtk_container_remove(GTK_CONTAINER(sw), wrapbox); wrapbox = gtk_hwrap_box_new(FALSE); g_object_ref(wrapbox); g_object_set_data(G_OBJECT(sheets_dialog), "wrapbox_right", wrapbox); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), wrapbox); gtk_wrap_box_set_justify(GTK_WRAP_BOX(wrapbox), GTK_JUSTIFY_TOP); gtk_wrap_box_set_line_justify(GTK_WRAP_BOX(wrapbox), GTK_JUSTIFY_LEFT); gtk_widget_show(wrapbox); g_object_set_data(G_OBJECT(wrapbox), "is_left", FALSE); option_menu = lookup_widget(sheets_dialog, "optionmenu_right"); sheets_optionmenu_create(option_menu, wrapbox, sheet_right); sw = lookup_widget(sheets_dialog, "scrolledwindow_left"); /* In case glade already add a child to scrolledwindow */ wrapbox = gtk_bin_get_child (GTK_BIN(sw)); if (wrapbox) gtk_container_remove(GTK_CONTAINER(sw), wrapbox); wrapbox = gtk_hwrap_box_new(FALSE); g_object_ref(wrapbox); g_object_set_data(G_OBJECT(sheets_dialog), "wrapbox_left", wrapbox); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), wrapbox); gtk_wrap_box_set_justify(GTK_WRAP_BOX(wrapbox), GTK_JUSTIFY_TOP); gtk_wrap_box_set_line_justify(GTK_WRAP_BOX(wrapbox), GTK_JUSTIFY_LEFT); gtk_widget_show(wrapbox); g_object_set_data(G_OBJECT(wrapbox), "is_left", (gpointer)TRUE); option_menu = lookup_widget(sheets_dialog, "optionmenu_left"); sheets_optionmenu_create(option_menu, wrapbox, sheet_left); return TRUE; }