24
24
#include <glib-object.h>
26
26
#include "pdb-types.h"
27
#include "procedural_db.h"
28
#include "gimpprocedure.h"
29
#include "core/gimpparamspecs.h"
29
31
#include "core/gimp.h"
30
32
#include "core/gimpdatafactory.h"
32
static ProcRecord palettes_popup_proc;
33
static ProcRecord palettes_close_popup_proc;
34
static ProcRecord palettes_set_popup_proc;
37
register_palette_select_procs (Gimp *gimp)
39
procedural_db_register (gimp, &palettes_popup_proc);
40
procedural_db_register (gimp, &palettes_close_popup_proc);
41
procedural_db_register (gimp, &palettes_set_popup_proc);
45
palettes_popup_invoker (Gimp *gimp,
47
GimpProgress *progress,
34
#include "internal_procs.h"
38
palettes_popup_invoker (GimpProcedure *procedure,
41
GimpProgress *progress,
42
const GValueArray *args)
50
44
gboolean success = TRUE;
51
gchar *palette_callback;
53
gchar *initial_palette;
55
palette_callback = (gchar *) args[0].value.pdb_pointer;
56
if (palette_callback == NULL || !g_utf8_validate (palette_callback, -1, NULL))
59
popup_title = (gchar *) args[1].value.pdb_pointer;
60
if (popup_title == NULL || !g_utf8_validate (popup_title, -1, NULL))
63
initial_palette = (gchar *) args[2].value.pdb_pointer;
64
if (initial_palette && !g_utf8_validate (initial_palette, -1, NULL))
45
const gchar *palette_callback;
46
const gchar *popup_title;
47
const gchar *initial_palette;
49
palette_callback = g_value_get_string (&args->values[0]);
50
popup_title = g_value_get_string (&args->values[1]);
51
initial_palette = g_value_get_string (&args->values[2]);
69
55
if (gimp->no_interface ||
70
! procedural_db_lookup (gimp, palette_callback) ||
71
! gimp_pdb_dialog_new (gimp, context, gimp->palette_factory->container,
56
! gimp_pdb_lookup_procedure (gimp->pdb, palette_callback) ||
57
! gimp_pdb_dialog_new (gimp, context, progress,
58
gimp->palette_factory->container,
72
59
popup_title, palette_callback, initial_palette,
77
return procedural_db_return_args (&palettes_popup_proc, success);
64
return gimp_procedure_get_return_values (procedure, success);
80
static ProcArg palettes_popup_inargs[] =
85
"The callback PDB proc to call when palette selection is made"
90
"Title to give the palette popup window"
95
"The name of the palette to set as the first selected"
99
static ProcRecord palettes_popup_proc =
101
"gimp_palettes_popup",
102
"Invokes the Gimp palette selection.",
103
"This procedure popups the palette selection dialog.",
104
"Michael Natterer <mitch@gimp.org>",
110
palettes_popup_inargs,
113
{ { palettes_popup_invoker } }
117
palettes_close_popup_invoker (Gimp *gimp,
118
GimpContext *context,
119
GimpProgress *progress,
68
palettes_close_popup_invoker (GimpProcedure *procedure,
71
GimpProgress *progress,
72
const GValueArray *args)
122
74
gboolean success = TRUE;
123
gchar *palette_callback;
75
const gchar *palette_callback;
125
palette_callback = (gchar *) args[0].value.pdb_pointer;
126
if (palette_callback == NULL || !g_utf8_validate (palette_callback, -1, NULL))
77
palette_callback = g_value_get_string (&args->values[0]);
131
81
if (gimp->no_interface ||
132
! procedural_db_lookup (gimp, palette_callback) ||
82
! gimp_pdb_lookup_procedure (gimp->pdb, palette_callback) ||
133
83
! gimp_pdb_dialog_close (gimp, gimp->palette_factory->container,
134
84
palette_callback))
138
return procedural_db_return_args (&palettes_close_popup_proc, success);
88
return gimp_procedure_get_return_values (procedure, success);
141
static ProcArg palettes_close_popup_inargs[] =
146
"The name of the callback registered for this popup"
150
static ProcRecord palettes_close_popup_proc =
152
"gimp_palettes_close_popup",
153
"Popdown the Gimp palette selection.",
154
"This procedure closes an opened palette selection dialog.",
155
"Michael Natterer <mitch@gimp.org>",
161
palettes_close_popup_inargs,
164
{ { palettes_close_popup_invoker } }
168
palettes_set_popup_invoker (Gimp *gimp,
169
GimpContext *context,
170
GimpProgress *progress,
92
palettes_set_popup_invoker (GimpProcedure *procedure,
95
GimpProgress *progress,
96
const GValueArray *args)
173
98
gboolean success = TRUE;
174
gchar *palette_callback;
177
palette_callback = (gchar *) args[0].value.pdb_pointer;
178
if (palette_callback == NULL || !g_utf8_validate (palette_callback, -1, NULL))
181
palette_name = (gchar *) args[1].value.pdb_pointer;
182
if (palette_name == NULL || !g_utf8_validate (palette_name, -1, NULL))
99
const gchar *palette_callback;
100
const gchar *palette_name;
102
palette_callback = g_value_get_string (&args->values[0]);
103
palette_name = g_value_get_string (&args->values[1]);
187
107
if (gimp->no_interface ||
188
! procedural_db_lookup (gimp, palette_callback) ||
108
! gimp_pdb_lookup_procedure (gimp->pdb, palette_callback) ||
189
109
! gimp_pdb_dialog_set (gimp, gimp->palette_factory->container,
190
110
palette_callback, palette_name,
195
return procedural_db_return_args (&palettes_set_popup_proc, success);
198
static ProcArg palettes_set_popup_inargs[] =
203
"The name of the callback registered for this popup"
208
"The name of the palette to set as selected"
212
static ProcRecord palettes_set_popup_proc =
214
"gimp_palettes_set_popup",
215
"Sets the current palette selection in a popup.",
216
"Sets the current palette selection in a popup.",
217
"Michael Natterer <mitch@gimp.org>",
223
palettes_set_popup_inargs,
226
{ { palettes_set_popup_invoker } }
115
return gimp_procedure_get_return_values (procedure, success);
119
register_palette_select_procs (GimpPDB *pdb)
121
GimpProcedure *procedure;
124
* gimp-palettes-popup
126
procedure = gimp_procedure_new (palettes_popup_invoker);
127
gimp_object_set_static_name (GIMP_OBJECT (procedure), "gimp-palettes-popup");
128
gimp_procedure_set_static_strings (procedure,
129
"gimp-palettes-popup",
130
"Invokes the Gimp palette selection.",
131
"This procedure opens the palette selection dialog.",
132
"Michael Natterer <mitch@gimp.org>",
136
gimp_procedure_add_argument (procedure,
137
gimp_param_spec_string ("palette-callback",
139
"The callback PDB proc to call when palette selection is made",
142
GIMP_PARAM_READWRITE));
143
gimp_procedure_add_argument (procedure,
144
gimp_param_spec_string ("popup-title",
146
"Title of the palette selection dialog",
149
GIMP_PARAM_READWRITE));
150
gimp_procedure_add_argument (procedure,
151
gimp_param_spec_string ("initial-palette",
153
"The name of the palette to set as the first selected",
156
GIMP_PARAM_READWRITE));
157
gimp_pdb_register_procedure (pdb, procedure);
158
g_object_unref (procedure);
161
* gimp-palettes-close-popup
163
procedure = gimp_procedure_new (palettes_close_popup_invoker);
164
gimp_object_set_static_name (GIMP_OBJECT (procedure), "gimp-palettes-close-popup");
165
gimp_procedure_set_static_strings (procedure,
166
"gimp-palettes-close-popup",
167
"Close the palette selection dialog.",
168
"This procedure closes an opened palette selection dialog.",
169
"Michael Natterer <mitch@gimp.org>",
173
gimp_procedure_add_argument (procedure,
174
gimp_param_spec_string ("palette-callback",
176
"The name of the callback registered for this pop-up",
179
GIMP_PARAM_READWRITE));
180
gimp_pdb_register_procedure (pdb, procedure);
181
g_object_unref (procedure);
184
* gimp-palettes-set-popup
186
procedure = gimp_procedure_new (palettes_set_popup_invoker);
187
gimp_object_set_static_name (GIMP_OBJECT (procedure), "gimp-palettes-set-popup");
188
gimp_procedure_set_static_strings (procedure,
189
"gimp-palettes-set-popup",
190
"Sets the current palette in a palette selection dialog.",
191
"Sets the current palette in a palette selection dialog.",
192
"Michael Natterer <mitch@gimp.org>",
196
gimp_procedure_add_argument (procedure,
197
gimp_param_spec_string ("palette-callback",
199
"The name of the callback registered for this pop-up",
202
GIMP_PARAM_READWRITE));
203
gimp_procedure_add_argument (procedure,
204
gimp_param_spec_string ("palette-name",
206
"The name of the palette to set as selected",
209
GIMP_PARAM_READWRITE));
210
gimp_pdb_register_procedure (pdb, procedure);
211
g_object_unref (procedure);