48
48
/* public functions */
50
50
ChannelOptionsDialog *
51
channel_options_dialog_new (GimpImage *gimage,
51
channel_options_dialog_new (GimpImage *image,
52
53
GimpContext *context,
55
55
const GimpRGB *channel_color,
56
56
const gchar *channel_name,
70
71
GtkObject *opacity_adj;
72
g_return_val_if_fail (GIMP_IS_IMAGE (gimage), NULL);
73
g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
74
g_return_val_if_fail (channel == NULL || GIMP_IS_CHANNEL (channel), NULL);
73
75
g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL);
74
g_return_val_if_fail (channel == NULL || GIMP_IS_CHANNEL (channel), NULL);
75
76
g_return_val_if_fail (GTK_IS_WIDGET (parent), NULL);
76
77
g_return_val_if_fail (channel_color != NULL, NULL);
77
78
g_return_val_if_fail (title != NULL, NULL);
85
86
options = g_new0 (ChannelOptionsDialog, 1);
87
options->gimage = gimage;
88
options->image = image;
88
89
options->context = context;
89
90
options->channel = channel;
91
92
options->color_panel = gimp_color_panel_new (color_label,
93
GIMP_COLOR_AREA_LARGE_CHECKS,
94
GIMP_COLOR_AREA_LARGE_CHECKS,
95
96
gimp_color_panel_set_context (GIMP_COLOR_PANEL (options->color_panel),
99
100
viewable = GIMP_VIEWABLE (channel);
101
viewable = GIMP_VIEWABLE (gimage);
102
viewable = GIMP_VIEWABLE (image);
103
104
options->dialog =
104
gimp_viewable_dialog_new (viewable,
105
gimp_viewable_dialog_new (viewable, context,
105
106
title, role, stock_id, desc,
107
108
gimp_standard_help_func, help_id,
114
115
g_object_weak_ref (G_OBJECT (options->dialog),
115
(GWeakNotify) g_free,
116
(GWeakNotify) g_free,
119
gtk_dialog_set_alternative_button_order (GTK_DIALOG (options->dialog),
118
124
hbox = gtk_hbox_new (FALSE, 12);
119
125
gtk_container_set_border_width (GTK_CONTAINER (hbox), 12);
135
141
options->name_entry = gtk_entry_new ();
136
142
gtk_entry_set_activates_default (GTK_ENTRY (options->name_entry), TRUE);
137
143
gimp_table_attach_aligned (GTK_TABLE (table), 0, 0,
138
_("Channel Name:"), 0.0, 0.5,
144
_("Channel _name:"), 0.0, 0.5,
139
145
options->name_entry, 2, FALSE);
141
147
gtk_entry_set_text (GTK_ENTRY (options->name_entry), channel_name);
144
opacity_adj = gimp_scale_entry_new (GTK_TABLE (table), 0, channel_name ? 1 : 0,
150
opacity_adj = gimp_scale_entry_new (GTK_TABLE (table),
151
0, channel_name ? 1 : 0,
145
152
opacity_label, 100, -1,
146
153
channel_color->a * 100.0,
147
154
0.0, 100.0, 1.0, 10.0, 1,
151
g_signal_connect (opacity_adj, "value_changed",
152
G_CALLBACK (channel_options_opacity_update),
153
options->color_panel);
158
g_signal_connect (opacity_adj, "value-changed",
159
G_CALLBACK (channel_options_opacity_update),
160
options->color_panel);
155
162
gtk_box_pack_start (GTK_BOX (hbox), options->color_panel,
157
164
gtk_widget_show (options->color_panel);
159
g_signal_connect (options->color_panel, "color_changed",
160
G_CALLBACK (channel_options_color_changed),
166
g_signal_connect (options->color_panel, "color-changed",
167
G_CALLBACK (channel_options_color_changed),
172
options->save_sel_checkbutton =
173
gtk_check_button_new_with_mnemonic (_("Initialize from _selection"));
175
gtk_box_pack_start (GTK_BOX (vbox), options->save_sel_checkbutton,
177
gtk_widget_show (options->save_sel_checkbutton);