88
84
static void gimp_color_scales_scale_update (GtkAdjustment *adjustment,
89
85
GimpColorScales *scales);
91
static void gimp_color_scales_entry_changed (GimpColorHexEntry *entry,
92
GimpColorScales *scales);
95
static GimpColorSelectorClass *parent_class = NULL;
99
gimp_color_scales_get_type (void)
101
static GType scales_type = 0;
105
static const GTypeInfo scales_info =
107
sizeof (GimpColorScalesClass),
108
(GBaseInitFunc) NULL,
109
(GBaseFinalizeFunc) NULL,
110
(GClassInitFunc) gimp_color_scales_class_init,
111
NULL, /* class_finalize */
112
NULL, /* class_data */
113
sizeof (GimpColorScales),
115
(GInstanceInitFunc) gimp_color_scales_init,
118
scales_type = g_type_register_static (GIMP_TYPE_COLOR_SELECTOR,
88
G_DEFINE_TYPE (GimpColorScales, gimp_color_scales, GIMP_TYPE_COLOR_SELECTOR)
90
#define parent_class gimp_color_scales_parent_class
127
94
gimp_color_scales_class_init (GimpColorScalesClass *klass)
129
96
GimpColorSelectorClass *selector_class = GIMP_COLOR_SELECTOR_CLASS (klass);
131
parent_class = g_type_class_peek_parent (klass);
133
98
selector_class->name = _("Scales");
134
99
selector_class->help_id = "gimp-colorselector-scales";
135
100
selector_class->stock_id = GIMP_STOCK_TOOL_OPTIONS;
146
111
GimpColorSelector *selector = GIMP_COLOR_SELECTOR (scales);
147
112
GtkWidget *table;
113
GEnumClass *enum_class;
153
static const gchar *toggle_titles[] =
163
static const gchar *slider_tips[7] =
173
static gdouble slider_initial_vals[] = { 0, 0, 0, 0, 0, 0, 0 };
174
static gdouble slider_max_vals[] = { 360, 100, 100, 255, 255, 255, 100 };
175
static gdouble slider_incs[] = { 30, 10, 10, 16, 16, 16, 10 };
117
static const gdouble slider_initial_vals[] =
118
{ 0, 0, 0, 0, 0, 0, 0 };
119
static const gdouble slider_max_vals[] =
120
{ 360, 100, 100, 255, 255, 255, 100 };
121
static const gdouble slider_incs[] =
122
{ 30, 10, 10, 16, 16, 16, 10 };
177
124
/* don't needs the toggles for our own operation */
178
125
selector->toggles_visible = FALSE;
186
133
gtk_box_pack_start (GTK_BOX (scales), table, FALSE, FALSE, 0);
187
134
gtk_widget_show (table);
136
enum_class = g_type_class_ref (GIMP_TYPE_COLOR_SELECTOR_CHANNEL);
191
for (i = 0; i < 7; i++)
140
for (i = GIMP_COLOR_SELECTOR_HUE; i <= GIMP_COLOR_SELECTOR_ALPHA; i++)
195
scales->toggles[i] = NULL;
142
GimpEnumDesc *enum_desc;
144
enum_desc = gimp_enum_get_desc (enum_class, i);
146
if (i == GIMP_COLOR_SELECTOR_ALPHA)
148
scales->toggles[i] = NULL;
199
scales->toggles[i] = gtk_radio_button_new (group);
200
group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (scales->toggles[i]));
201
gtk_table_attach (GTK_TABLE (table), scales->toggles[i],
203
GTK_SHRINK, GTK_EXPAND, 0, 0);
152
scales->toggles[i] = gtk_radio_button_new (group);
153
group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (scales->toggles[i]));
154
gtk_table_attach (GTK_TABLE (table), scales->toggles[i],
156
GTK_SHRINK, GTK_EXPAND, 0, 0);
205
158
if (selector->toggles_visible)
206
159
gtk_widget_show (scales->toggles[i]);
208
gimp_help_set_help_data (scales->toggles[i],
209
gettext (slider_tips[i]), NULL);
161
gimp_help_set_help_data (scales->toggles[i],
162
gettext (enum_desc->value_help), NULL);
211
g_signal_connect (scales->toggles[i], "toggled",
212
G_CALLBACK (gimp_color_scales_toggle_update),
164
g_signal_connect (scales->toggles[i], "toggled",
165
G_CALLBACK (gimp_color_scales_toggle_update),
216
169
scales->slider_data[i] =
217
170
gimp_color_scale_entry_new (GTK_TABLE (table), 1, i,
218
gettext (toggle_titles[i]),
171
gettext (enum_desc->value_desc),
220
173
slider_initial_vals[i],
221
174
0.0, slider_max_vals[i],
222
175
1.0, slider_incs[i],
224
gettext (slider_tips[i]),
177
gettext (enum_desc->value_help),
227
180
scales->sliders[i] = GIMP_SCALE_ENTRY_SCALE (scales->slider_data[i]);
229
182
gimp_color_scale_set_channel (GIMP_COLOR_SCALE (scales->sliders[i]), i);
231
g_signal_connect (scales->slider_data[i], "value_changed",
232
G_CALLBACK (gimp_color_scales_scale_update),
184
g_signal_connect (scales->slider_data[i], "value-changed",
185
G_CALLBACK (gimp_color_scales_scale_update),
236
/* The hex triplet entry */
237
hbox = gtk_hbox_new (FALSE, 6);
238
gtk_box_pack_end (GTK_BOX (scales), hbox, FALSE, FALSE, 0);
239
gtk_widget_show (hbox);
241
scales->hex_entry = gimp_color_hex_entry_new ();
242
gimp_help_set_help_data (scales->hex_entry,
243
_("Hexadecimal color notation "
244
"as used in HTML and CSS"), NULL);
245
gtk_box_pack_end (GTK_BOX (hbox), scales->hex_entry, TRUE, TRUE, 0);
246
gtk_widget_show (scales->hex_entry);
248
label = gtk_label_new_with_mnemonic (_("HTML _Notation:"));
249
gtk_label_set_mnemonic_widget (GTK_LABEL (label), scales->hex_entry);
250
gtk_box_pack_end (GTK_BOX (hbox), label, FALSE, FALSE, 0);
251
gtk_widget_show (label);
253
g_signal_connect (scales->hex_entry, "color_changed",
254
G_CALLBACK (gimp_color_scales_entry_changed),
189
g_type_class_unref (enum_class);