static void gimp_int_store_finalize (GObject *object) { GimpIntStore *store = GIMP_INT_STORE (object); if (store->empty_iter) { gtk_tree_iter_free (store->empty_iter); store->empty_iter = NULL; } G_OBJECT_CLASS (parent_class)->finalize (object); }
static void gimp_dynamics_editor_init_output_editors (GimpDynamics *dynamics, GtkWidget *view_selector, GtkWidget *notebook, GtkWidget *check_grid) { GtkTreeModel *model = gtk_combo_box_get_model (GTK_COMBO_BOX (view_selector)); GimpIntStore *list = GIMP_INT_STORE (model); GtkTreeIter iter; gboolean iter_valid; gint i; for (iter_valid = gtk_tree_model_get_iter_first (model, &iter), i = 1; iter_valid; iter_valid = gtk_tree_model_iter_next (model, &iter), i++) { gint output_type; gchar *label; GimpDynamicsOutput *output; GtkWidget *output_editor; gtk_tree_model_get (GTK_TREE_MODEL (model), &iter, GIMP_INT_STORE_VALUE, &output_type, GIMP_INT_STORE_LABEL, &label, -1); output = gimp_dynamics_get_output (dynamics, output_type); output_editor = gimp_dynamics_output_editor_new (output); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), output_editor, NULL); gtk_widget_show (output_editor); gtk_list_store_set (GTK_LIST_STORE (list), &iter, GIMP_INT_STORE_USER_DATA, output_editor, -1); gimp_dynamics_editor_add_output_row (G_OBJECT (output), label, GTK_GRID (check_grid), i); g_free (label); } g_signal_connect (G_OBJECT (view_selector), "changed", G_CALLBACK (gimp_dynamics_editor_view_changed), notebook); }
static void gimp_int_store_row_inserted (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter) { GimpIntStore *store = GIMP_INT_STORE (model); if (parent_iface->row_inserted) parent_iface->row_inserted (model, path, iter); if (store->empty_iter && memcmp (iter, store->empty_iter, sizeof (GtkTreeIter))) { gtk_list_store_remove (GTK_LIST_STORE (store), store->empty_iter); gtk_tree_iter_free (store->empty_iter); store->empty_iter = NULL; } }
static void gimp_int_store_constructed (GObject *object) { GimpIntStore *store = GIMP_INT_STORE (object); GimpIntStorePrivate *priv = GIMP_INT_STORE_GET_PRIVATE (store); GType types[GIMP_INT_STORE_NUM_COLUMNS]; G_OBJECT_CLASS (parent_class)->constructed (object); types[GIMP_INT_STORE_VALUE] = G_TYPE_INT; types[GIMP_INT_STORE_LABEL] = G_TYPE_STRING; types[GIMP_INT_STORE_ICON_NAME] = G_TYPE_STRING; types[GIMP_INT_STORE_PIXBUF] = GDK_TYPE_PIXBUF; types[GIMP_INT_STORE_USER_DATA] = (priv->user_data_type != G_TYPE_NONE ? priv->user_data_type : G_TYPE_POINTER); gtk_list_store_set_column_types (GTK_LIST_STORE (store), GIMP_INT_STORE_NUM_COLUMNS, types); gimp_int_store_add_empty (store); }
GtkWidget * gimp_paint_mode_menu_new (gboolean with_behind_mode, gboolean with_replace_modes) { GtkListStore *store; GtkWidget *combo; store = gimp_enum_store_new_with_values (GIMP_TYPE_LAYER_MODE_EFFECTS, 25, GIMP_NORMAL_MODE, GIMP_DISSOLVE_MODE, GIMP_LIGHTEN_ONLY_MODE, GIMP_SCREEN_MODE, GIMP_DODGE_MODE, GIMP_ADDITION_MODE, GIMP_DARKEN_ONLY_MODE, GIMP_MULTIPLY_MODE, GIMP_BURN_MODE, GIMP_NEW_OVERLAY_MODE, GIMP_SOFTLIGHT_MODE, GIMP_HARDLIGHT_MODE, GIMP_DIFFERENCE_MODE, GIMP_SUBTRACT_MODE, GIMP_GRAIN_EXTRACT_MODE, GIMP_GRAIN_MERGE_MODE, GIMP_DIVIDE_MODE, GIMP_HUE_MODE, GIMP_SATURATION_MODE, GIMP_COLOR_MODE, GIMP_VALUE_MODE, GIMP_LCH_HUE_MODE, GIMP_LCH_CHROMA_MODE, GIMP_LCH_COLOR_MODE, GIMP_LCH_LIGHTNESS_MODE); gimp_int_store_insert_separator_after (GIMP_INT_STORE (store), GIMP_DISSOLVE_MODE, -1); gimp_int_store_insert_separator_after (GIMP_INT_STORE (store), GIMP_ADDITION_MODE, -1); gimp_int_store_insert_separator_after (GIMP_INT_STORE (store), GIMP_BURN_MODE, -1); gimp_int_store_insert_separator_after (GIMP_INT_STORE (store), GIMP_HARDLIGHT_MODE, -1); gimp_int_store_insert_separator_after (GIMP_INT_STORE (store), GIMP_DIVIDE_MODE, -1); gimp_int_store_insert_separator_after (GIMP_INT_STORE (store), GIMP_VALUE_MODE, -1); if (with_behind_mode) { gimp_enum_store_insert_value_after (GIMP_ENUM_STORE (store), GIMP_DISSOLVE_MODE, GIMP_BEHIND_MODE); gimp_enum_store_insert_value_after (GIMP_ENUM_STORE (store), GIMP_BEHIND_MODE, GIMP_COLOR_ERASE_MODE); } if (with_replace_modes) { gimp_enum_store_insert_value_after (GIMP_ENUM_STORE (store), GIMP_NORMAL_MODE, GIMP_REPLACE_MODE); gimp_enum_store_insert_value_after (GIMP_ENUM_STORE (store), GIMP_COLOR_ERASE_MODE, GIMP_ERASE_MODE); gimp_enum_store_insert_value_after (GIMP_ENUM_STORE (store), GIMP_ERASE_MODE, GIMP_ANTI_ERASE_MODE); } combo = gimp_enum_combo_box_new_with_model (GIMP_ENUM_STORE (store)); g_object_unref (store); gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (combo), gimp_paint_mode_menu_separator_func, GINT_TO_POINTER (-1), NULL); return combo; }