48
50
DEST_COLUMN_ENABLED,
50
53
DEST_COLUMN_FILTER,
55
static void gimp_color_display_editor_class_init (GimpColorDisplayEditorClass *klass);
56
static void gimp_color_display_editor_init (GimpColorDisplayEditor *editor);
58
static void gimp_color_display_editor_destroy (GtkObject *object);
58
static void gimp_color_display_editor_destroy (GtkObject *object);
60
60
static void gimp_color_display_editor_add_clicked (GtkWidget *widget,
61
61
GimpColorDisplayEditor *editor);
95
95
static void gimp_color_display_editor_update_buttons (GimpColorDisplayEditor *editor);
98
static GtkVBoxClass *parent_class = NULL;
102
gimp_color_display_editor_get_type (void)
104
static GType type = 0;
108
static const GTypeInfo editor_info =
110
sizeof (GimpColorDisplayEditorClass),
111
NULL, /* base_init */
112
NULL, /* base_finalize */
113
(GClassInitFunc) gimp_color_display_editor_class_init,
114
NULL, /* class_finalize */
115
NULL, /* class_tool */
116
sizeof (GimpColorDisplayEditor),
118
(GInstanceInitFunc) gimp_color_display_editor_init,
121
type = g_type_register_static (GTK_TYPE_VBOX,
122
"GimpColorDisplayEditor",
98
G_DEFINE_TYPE (GimpColorDisplayEditor, gimp_color_display_editor, GTK_TYPE_VBOX)
100
#define parent_class gimp_color_display_editor_parent_class
130
104
gimp_color_display_editor_class_init (GimpColorDisplayEditorClass *klass)
132
106
GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass);
134
parent_class = g_type_class_peek_parent (klass);
136
108
object_class->destroy = gimp_color_display_editor_destroy;
140
112
gimp_color_display_editor_init (GimpColorDisplayEditor *editor)
144
117
GtkWidget *scrolled_win;
148
121
GtkTreeViewColumn *column;
149
122
GtkCellRenderer *rend;
151
gtk_box_set_spacing (GTK_BOX (editor), 12);
152
gtk_box_set_homogeneous (GTK_BOX (editor), TRUE);
124
paned = gtk_vpaned_new ();
125
gtk_box_pack_start (GTK_BOX (editor), paned, TRUE, TRUE, 0);
126
gtk_widget_show (paned);
154
128
hbox = gtk_hbox_new (FALSE, 6);
155
gtk_box_pack_start (GTK_BOX (editor), hbox, TRUE, TRUE, 0);
129
gtk_paned_pack1 (GTK_PANED (paned), hbox, FALSE, FALSE);
156
130
gtk_widget_show (hbox);
158
132
scrolled_win = gtk_scrolled_window_new (NULL, NULL);
159
133
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_win),
161
135
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
162
GTK_POLICY_AUTOMATIC,
163
GTK_POLICY_AUTOMATIC);
136
GTK_POLICY_AUTOMATIC,
137
GTK_POLICY_AUTOMATIC);
164
138
gtk_box_pack_start (GTK_BOX (hbox), scrolled_win, TRUE, TRUE, 0);
165
139
gtk_widget_show (scrolled_win);
167
141
editor->src = gtk_list_store_new (N_SRC_COLUMNS,
170
145
tv = gtk_tree_view_new_with_model (GTK_TREE_MODEL (editor->src));
171
146
g_object_unref (editor->src);
173
148
gtk_widget_set_size_request (tv, LIST_WIDTH, LIST_HEIGHT);
174
149
gtk_tree_view_set_headers_clickable (GTK_TREE_VIEW (tv), FALSE);
176
gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (tv),
177
0, _("Available Filters"),
178
gtk_cell_renderer_text_new (),
179
"text", SRC_COLUMN_NAME,
151
column = gtk_tree_view_column_new ();
152
gtk_tree_view_column_set_title (column, _("Available Filters"));
153
gtk_tree_view_append_column (GTK_TREE_VIEW (tv), column);
155
rend = gtk_cell_renderer_pixbuf_new ();
156
gtk_tree_view_column_pack_start (column, rend, FALSE);
157
gtk_tree_view_column_set_attributes (column, rend,
158
"stock-id", SRC_COLUMN_ICON,
161
rend = gtk_cell_renderer_text_new ();
162
gtk_tree_view_column_pack_start (column, rend, TRUE);
163
gtk_tree_view_column_set_attributes (column, rend,
164
"text", SRC_COLUMN_NAME,
181
167
gtk_container_add (GTK_CONTAINER (scrolled_win), tv);
182
168
gtk_widget_show (tv);
187
173
G_CALLBACK (gimp_color_display_editor_src_changed),
190
vbox = gtk_vbox_new (TRUE, 0);
176
vbox = gtk_vbox_new (TRUE, 6);
191
177
gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
192
178
gtk_widget_show (vbox);
200
186
gtk_container_add (GTK_CONTAINER (editor->add_button), image);
201
187
gtk_widget_show (image);
203
gimp_help_set_help_data (editor->add_button,
204
_("Add the selected filter to the list of "
205
"active filters."), NULL);
207
189
g_signal_connect (editor->add_button, "clicked",
208
190
G_CALLBACK (gimp_color_display_editor_add_clicked),
217
199
gtk_container_add (GTK_CONTAINER (editor->remove_button), image);
218
200
gtk_widget_show (image);
220
gimp_help_set_help_data (editor->remove_button,
221
_("Remove the selected filter from the list of "
222
"active filters."), NULL);
224
202
g_signal_connect (editor->remove_button, "clicked",
225
203
G_CALLBACK (gimp_color_display_editor_remove_clicked),
254
232
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_win),
256
234
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
257
GTK_POLICY_AUTOMATIC,
258
GTK_POLICY_AUTOMATIC);
235
GTK_POLICY_AUTOMATIC,
236
GTK_POLICY_AUTOMATIC);
259
237
gtk_container_add (GTK_CONTAINER (ed), scrolled_win);
260
238
gtk_widget_show (scrolled_win);
262
240
editor->dest = gtk_list_store_new (N_DEST_COLUMNS,
265
244
GIMP_TYPE_COLOR_DISPLAY);
266
245
tv = gtk_tree_view_new_with_model (GTK_TREE_MODEL (editor->dest));
267
246
g_object_unref (editor->dest);
285
264
gtk_tree_view_column_set_widget (column, image);
286
265
gtk_widget_show (image);
288
gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (tv),
289
1, _("Active Filters"),
290
gtk_cell_renderer_text_new (),
291
"text", DEST_COLUMN_NAME,
267
column = gtk_tree_view_column_new ();
268
gtk_tree_view_column_set_title (column, _("Active Filters"));
269
gtk_tree_view_append_column (GTK_TREE_VIEW (tv), column);
271
rend = gtk_cell_renderer_pixbuf_new ();
272
gtk_tree_view_column_pack_start (column, rend, FALSE);
273
gtk_tree_view_column_set_attributes (column, rend,
274
"stock-id", DEST_COLUMN_ICON,
277
rend = gtk_cell_renderer_text_new ();
278
gtk_tree_view_column_pack_start (column, rend, TRUE);
279
gtk_tree_view_column_set_attributes (column, rend,
280
"text", DEST_COLUMN_NAME,
294
283
gtk_container_add (GTK_CONTAINER (scrolled_win), tv);
295
284
gtk_widget_show (tv);
303
292
/* the config frame */
294
vbox = gtk_vbox_new (FALSE, 6);
295
gtk_paned_pack2 (GTK_PANED (paned), vbox, TRUE, FALSE);
296
gtk_widget_show (vbox);
298
hbox = gtk_hbox_new (FALSE, 0);
299
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
300
gtk_widget_show (hbox);
305
302
editor->config_frame = gimp_frame_new (NULL);
306
gtk_box_pack_start (GTK_BOX (editor), editor->config_frame, TRUE, TRUE, 0);
303
gtk_box_pack_start (GTK_BOX (vbox), editor->config_frame, TRUE, TRUE, 0);
307
304
gtk_widget_show (editor->config_frame);
309
306
editor->config_box = gtk_vbox_new (FALSE, 6);
370
367
gtk_list_store_append (editor->src, &iter);
372
369
gtk_list_store_set (editor->src, &iter,
370
SRC_COLUMN_ICON, display_class->stock_id,
373
371
SRC_COLUMN_NAME, display_class->name,
374
372
SRC_COLUMN_TYPE, display_types[i],
385
383
GtkTreeIter iter;
386
384
gboolean enabled;
387
385
const gchar *name;
386
const gchar *stock_id;
389
388
enabled = gimp_color_display_get_enabled (display);
391
name = GIMP_COLOR_DISPLAY_GET_CLASS (display)->name;
390
name = GIMP_COLOR_DISPLAY_GET_CLASS (display)->name;
391
stock_id = GIMP_COLOR_DISPLAY_GET_CLASS (display)->stock_id;
393
393
gtk_list_store_append (editor->dest, &iter);
395
395
gtk_list_store_set (editor->dest, &iter,
396
396
DEST_COLUMN_ENABLED, enabled,
397
DEST_COLUMN_ICON, stock_id,
397
398
DEST_COLUMN_NAME, name,
398
399
DEST_COLUMN_FILTER, display,
426
427
if (gtk_tree_selection_get_selected (editor->src_sel, &model, &iter))
428
429
GimpColorDisplay *display;
431
gtk_tree_model_get_value (model, &iter, SRC_COLUMN_TYPE, &val);
433
display = gimp_color_display_new ((GType) g_value_get_pointer (&val));
435
g_value_unset (&val);
432
gtk_tree_model_get (model, &iter, SRC_COLUMN_TYPE, &type, -1);
434
display = gimp_color_display_new (type);
520
526
display = g_value_get_object (&val);
522
528
g_value_unset (&val);
530
tip = g_strdup_printf (_("Remove '%s' from the list of active filters"),
531
GIMP_COLOR_DISPLAY_GET_CLASS (display)->name);
534
gimp_help_set_help_data (editor->remove_button, tip, NULL);
525
537
gtk_widget_set_sensitive (editor->remove_button, display != NULL);
526
538
gtk_widget_set_sensitive (editor->reset_button, display != NULL);
541
551
editor->config_widget = gimp_color_display_configure (display);
543
str = g_strdup_printf (_("Configure selected filter: %s"),
544
GIMP_COLOR_DISPLAY_GET_CLASS (display)->name);
545
gtk_frame_set_label (GTK_FRAME (editor->config_frame), str);
553
gtk_frame_set_label (GTK_FRAME (editor->config_frame),
554
GIMP_COLOR_DISPLAY_GET_CLASS (display)->name);
550
editor->config_widget = gtk_label_new (_("No filter selected"));
551
gtk_widget_set_sensitive (editor->config_widget, FALSE);
558
editor->config_widget = NULL;
553
560
gtk_frame_set_label (GTK_FRAME (editor->config_frame),
554
_("Configure selected filter"));
561
_("No filter selected"));
557
564
if (editor->config_widget)
576
583
GtkTreeIter iter;
577
584
gboolean enabled;
578
585
const gchar *name;
586
const gchar *stock_id;
580
588
enabled = gimp_color_display_get_enabled (display);
582
name = GIMP_COLOR_DISPLAY_GET_CLASS (display)->name;
590
name = GIMP_COLOR_DISPLAY_GET_CLASS (display)->name;
591
stock_id = GIMP_COLOR_DISPLAY_GET_CLASS (display)->stock_id;
584
593
gtk_list_store_insert (editor->dest, &iter, position);
586
595
gtk_list_store_set (editor->dest, &iter,
587
596
DEST_COLUMN_ENABLED, enabled,
597
DEST_COLUMN_ICON, stock_id,
588
598
DEST_COLUMN_NAME, name,
589
599
DEST_COLUMN_FILTER, display,