mirror of https://github.com/GNOME/gimp.git
app/plug_in.c libgimp/gimp.c libgimpbase/gimpbasetypes.h
* app/plug_in.c * libgimp/gimp.c * libgimpbase/gimpbasetypes.h * libgimpbase/gimpprotocol.c * libgimpbase/gimpprotocol.h * tools/pdbgen/pdb/palette.pdb: added preliminary pdb support to manipulate palettes. Incremented plugin interface version number. * app/pdb/internal_procs.c * app/pdb/palette_cmds.c * app/pdb/procedural_db.c * app/pdb/procedural_db_cmds.c * libgimp/gimppalette_pdb.c * libgimp/gimppalette_pdb.h * plug-ins/script-fu/script-fu-constants.c * tools/pdbgen/enums.pl: regenerated
This commit is contained in:
parent
ce76701406
commit
6ffaf7317c
|
@ -3154,6 +3154,8 @@ plug_in_params_to_args (GPParam *params,
|
|||
else
|
||||
args[i].value.pdb_pointer = (gpointer) &(params[i].data.d_parasite);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
args[i].value.pdb_int = params[i].data.d_palette;
|
||||
case GIMP_PDB_STATUS:
|
||||
args[i].value.pdb_int = params[i].data.d_status;
|
||||
break;
|
||||
|
@ -3334,6 +3336,8 @@ plug_in_args_to_params (Argument *args,
|
|||
sizeof (GimpParasite));
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].data.d_palette = args[i].value.pdb_int;
|
||||
case GIMP_PDB_STATUS:
|
||||
params[i].data.d_status = args[i].value.pdb_int;
|
||||
break;
|
||||
|
@ -3413,6 +3417,7 @@ plug_in_params_destroy (GPParam *params,
|
|||
params[i].data.d_parasite.data = 0;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
@ -3494,6 +3499,7 @@ plug_in_args_destroy (Argument *args,
|
|||
args[i].value.pdb_pointer = NULL;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
|
|
@ -3154,6 +3154,8 @@ plug_in_params_to_args (GPParam *params,
|
|||
else
|
||||
args[i].value.pdb_pointer = (gpointer) &(params[i].data.d_parasite);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
args[i].value.pdb_int = params[i].data.d_palette;
|
||||
case GIMP_PDB_STATUS:
|
||||
args[i].value.pdb_int = params[i].data.d_status;
|
||||
break;
|
||||
|
@ -3334,6 +3336,8 @@ plug_in_args_to_params (Argument *args,
|
|||
sizeof (GimpParasite));
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].data.d_palette = args[i].value.pdb_int;
|
||||
case GIMP_PDB_STATUS:
|
||||
params[i].data.d_status = args[i].value.pdb_int;
|
||||
break;
|
||||
|
@ -3413,6 +3417,7 @@ plug_in_params_destroy (GPParam *params,
|
|||
params[i].data.d_parasite.data = 0;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
@ -3494,6 +3499,7 @@ plug_in_args_destroy (Argument *args,
|
|||
args[i].value.pdb_pointer = NULL;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
|
|
@ -3154,6 +3154,8 @@ plug_in_params_to_args (GPParam *params,
|
|||
else
|
||||
args[i].value.pdb_pointer = (gpointer) &(params[i].data.d_parasite);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
args[i].value.pdb_int = params[i].data.d_palette;
|
||||
case GIMP_PDB_STATUS:
|
||||
args[i].value.pdb_int = params[i].data.d_status;
|
||||
break;
|
||||
|
@ -3334,6 +3336,8 @@ plug_in_args_to_params (Argument *args,
|
|||
sizeof (GimpParasite));
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].data.d_palette = args[i].value.pdb_int;
|
||||
case GIMP_PDB_STATUS:
|
||||
params[i].data.d_status = args[i].value.pdb_int;
|
||||
break;
|
||||
|
@ -3413,6 +3417,7 @@ plug_in_params_destroy (GPParam *params,
|
|||
params[i].data.d_parasite.data = 0;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
@ -3494,6 +3499,7 @@ plug_in_args_destroy (Argument *args,
|
|||
args[i].value.pdb_pointer = NULL;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
|
|
@ -3154,6 +3154,8 @@ plug_in_params_to_args (GPParam *params,
|
|||
else
|
||||
args[i].value.pdb_pointer = (gpointer) &(params[i].data.d_parasite);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
args[i].value.pdb_int = params[i].data.d_palette;
|
||||
case GIMP_PDB_STATUS:
|
||||
args[i].value.pdb_int = params[i].data.d_status;
|
||||
break;
|
||||
|
@ -3334,6 +3336,8 @@ plug_in_args_to_params (Argument *args,
|
|||
sizeof (GimpParasite));
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].data.d_palette = args[i].value.pdb_int;
|
||||
case GIMP_PDB_STATUS:
|
||||
params[i].data.d_status = args[i].value.pdb_int;
|
||||
break;
|
||||
|
@ -3413,6 +3417,7 @@ plug_in_params_destroy (GPParam *params,
|
|||
params[i].data.d_parasite.data = 0;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
@ -3494,6 +3499,7 @@ plug_in_args_destroy (Argument *args,
|
|||
args[i].value.pdb_pointer = NULL;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
|
|
@ -291,6 +291,8 @@ procedural_db_run_proc (Gimp *gimp,
|
|||
case GIMP_PDB_STATUS:
|
||||
params[i].value.pdb_int = (gint32) va_arg (args, gint);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].value.pdb_pointer = va_arg (args, gpointer);
|
||||
case GIMP_PDB_END:
|
||||
break;
|
||||
}
|
||||
|
@ -384,6 +386,7 @@ procedural_db_destroy_args (Argument *args,
|
|||
case GIMP_PDB_PATH:
|
||||
case GIMP_PDB_PARASITE:
|
||||
case GIMP_PDB_STATUS:
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_END:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -291,6 +291,8 @@ procedural_db_run_proc (Gimp *gimp,
|
|||
case GIMP_PDB_STATUS:
|
||||
params[i].value.pdb_int = (gint32) va_arg (args, gint);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].value.pdb_pointer = va_arg (args, gpointer);
|
||||
case GIMP_PDB_END:
|
||||
break;
|
||||
}
|
||||
|
@ -384,6 +386,7 @@ procedural_db_destroy_args (Argument *args,
|
|||
case GIMP_PDB_PATH:
|
||||
case GIMP_PDB_PARASITE:
|
||||
case GIMP_PDB_STATUS:
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_END:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -291,6 +291,8 @@ procedural_db_run_proc (Gimp *gimp,
|
|||
case GIMP_PDB_STATUS:
|
||||
params[i].value.pdb_int = (gint32) va_arg (args, gint);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].value.pdb_pointer = va_arg (args, gpointer);
|
||||
case GIMP_PDB_END:
|
||||
break;
|
||||
}
|
||||
|
@ -384,6 +386,7 @@ procedural_db_destroy_args (Argument *args,
|
|||
case GIMP_PDB_PATH:
|
||||
case GIMP_PDB_PARASITE:
|
||||
case GIMP_PDB_STATUS:
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_END:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -63,7 +63,7 @@ void register_tools_procs (Gimp *gimp);
|
|||
void register_undo_procs (Gimp *gimp);
|
||||
void register_unit_procs (Gimp *gimp);
|
||||
|
||||
/* 326 procedures registered total */
|
||||
/* 330 procedures registered total */
|
||||
|
||||
void
|
||||
internal_procs_init (Gimp *gimp,
|
||||
|
@ -78,94 +78,94 @@ internal_procs_init (Gimp *gimp,
|
|||
(* status_callback) (NULL, _("Brushes"), 0.009);
|
||||
register_brushes_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Channel"), 0.043);
|
||||
(* status_callback) (NULL, _("Channel"), 0.042);
|
||||
register_channel_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Color"), 0.092);
|
||||
(* status_callback) (NULL, _("Color"), 0.091);
|
||||
register_color_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Convert"), 0.129);
|
||||
(* status_callback) (NULL, _("Convert"), 0.127);
|
||||
register_convert_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("GimpDisplay procedures"), 0.138);
|
||||
(* status_callback) (NULL, _("GimpDisplay procedures"), 0.136);
|
||||
register_display_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Drawable procedures"), 0.147);
|
||||
(* status_callback) (NULL, _("Drawable procedures"), 0.145);
|
||||
register_drawable_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Edit procedures"), 0.218);
|
||||
(* status_callback) (NULL, _("Edit procedures"), 0.215);
|
||||
register_edit_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("File Operations"), 0.236);
|
||||
(* status_callback) (NULL, _("File Operations"), 0.233);
|
||||
register_fileops_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Floating selections"), 0.261);
|
||||
(* status_callback) (NULL, _("Floating selections"), 0.258);
|
||||
register_floating_sel_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Gimprc procedures"), 0.279);
|
||||
(* status_callback) (NULL, _("Gimprc procedures"), 0.276);
|
||||
register_gimprc_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Gradients"), 0.291);
|
||||
(* status_callback) (NULL, _("Gradients"), 0.288);
|
||||
register_gradients_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Gradient UI"), 0.31);
|
||||
(* status_callback) (NULL, _("Gradient UI"), 0.306);
|
||||
register_gradient_select_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Guide procedures"), 0.319);
|
||||
(* status_callback) (NULL, _("Guide procedures"), 0.315);
|
||||
register_guides_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Help procedures"), 0.337);
|
||||
(* status_callback) (NULL, _("Help procedures"), 0.333);
|
||||
register_help_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Image"), 0.34);
|
||||
(* status_callback) (NULL, _("Image"), 0.336);
|
||||
register_image_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Layer"), 0.528);
|
||||
(* status_callback) (NULL, _("Layer"), 0.521);
|
||||
register_layer_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Interface"), 0.623);
|
||||
(* status_callback) (NULL, _("Interface"), 0.615);
|
||||
register_message_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Miscellaneous"), 0.632);
|
||||
(* status_callback) (NULL, _("Miscellaneous"), 0.624);
|
||||
register_misc_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Palette"), 0.638);
|
||||
(* status_callback) (NULL, _("Palette"), 0.63);
|
||||
register_palette_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Parasite procedures"), 0.66);
|
||||
(* status_callback) (NULL, _("Parasite procedures"), 0.664);
|
||||
register_parasite_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Paths"), 0.696);
|
||||
(* status_callback) (NULL, _("Paths"), 0.7);
|
||||
register_paths_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Pattern UI"), 0.736);
|
||||
(* status_callback) (NULL, _("Pattern UI"), 0.739);
|
||||
register_pattern_select_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Patterns"), 0.745);
|
||||
(* status_callback) (NULL, _("Patterns"), 0.748);
|
||||
register_patterns_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Plug-in"), 0.758);
|
||||
(* status_callback) (NULL, _("Plug-in"), 0.761);
|
||||
register_plug_in_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Procedural database"), 0.776);
|
||||
(* status_callback) (NULL, _("Procedural database"), 0.779);
|
||||
register_procedural_db_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Image mask"), 0.801);
|
||||
(* status_callback) (NULL, _("Image mask"), 0.803);
|
||||
register_selection_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Selection Tool procedures"), 0.856);
|
||||
(* status_callback) (NULL, _("Selection Tool procedures"), 0.858);
|
||||
register_selection_tools_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Text procedures"), 0.871);
|
||||
(* status_callback) (NULL, _("Text procedures"), 0.873);
|
||||
register_text_tool_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Tool procedures"), 0.883);
|
||||
(* status_callback) (NULL, _("Tool procedures"), 0.885);
|
||||
register_tools_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Undo"), 0.957);
|
||||
(* status_callback) (NULL, _("Undo"), 0.958);
|
||||
register_undo_procs (gimp);
|
||||
|
||||
(* status_callback) (NULL, _("Units"), 0.963);
|
||||
(* status_callback) (NULL, _("Units"), 0.964);
|
||||
register_unit_procs (gimp);
|
||||
|
||||
}
|
||||
|
|
|
@ -31,6 +31,8 @@
|
|||
#include "core/gimp.h"
|
||||
#include "core/gimpcontext.h"
|
||||
#include "core/gimpdatafactory.h"
|
||||
#include "core/gimplist.h"
|
||||
#include "core/gimppalette.h"
|
||||
|
||||
#include "libgimpcolor/gimpcolor.h"
|
||||
|
||||
|
@ -41,6 +43,10 @@ static ProcRecord palette_set_background_proc;
|
|||
static ProcRecord palette_set_default_colors_proc;
|
||||
static ProcRecord palette_swap_colors_proc;
|
||||
static ProcRecord palette_refresh_proc;
|
||||
static ProcRecord palette_list_proc;
|
||||
static ProcRecord palette_get_palette_proc;
|
||||
static ProcRecord palette_set_palette_proc;
|
||||
static ProcRecord palette_get_entry_proc;
|
||||
|
||||
void
|
||||
register_palette_procs (Gimp *gimp)
|
||||
|
@ -52,6 +58,10 @@ register_palette_procs (Gimp *gimp)
|
|||
procedural_db_register (gimp, &palette_set_default_colors_proc);
|
||||
procedural_db_register (gimp, &palette_swap_colors_proc);
|
||||
procedural_db_register (gimp, &palette_refresh_proc);
|
||||
procedural_db_register (gimp, &palette_list_proc);
|
||||
procedural_db_register (gimp, &palette_get_palette_proc);
|
||||
procedural_db_register (gimp, &palette_set_palette_proc);
|
||||
procedural_db_register (gimp, &palette_get_entry_proc);
|
||||
}
|
||||
|
||||
static Argument *
|
||||
|
@ -293,3 +303,241 @@ static ProcRecord palette_refresh_proc =
|
|||
NULL,
|
||||
{ { palette_refresh_invoker } }
|
||||
};
|
||||
|
||||
static Argument *
|
||||
palette_list_invoker (Gimp *gimp,
|
||||
Argument *args)
|
||||
{
|
||||
gboolean success = TRUE;
|
||||
Argument *return_args;
|
||||
gchar **palettes;
|
||||
GList *list = NULL;
|
||||
gint i = 0;
|
||||
|
||||
palettes = g_new (gchar *, gimp->palette_factory->container->num_children);
|
||||
|
||||
success = ((list = GIMP_LIST (gimp->palette_factory->container)->list) != NULL);
|
||||
|
||||
while (list)
|
||||
{
|
||||
palettes[i++] = g_strdup (GIMP_OBJECT (list->data)->name);
|
||||
list = list->next;
|
||||
}
|
||||
|
||||
return_args = procedural_db_return_args (&palette_list_proc, success);
|
||||
|
||||
if (success)
|
||||
{
|
||||
return_args[1].value.pdb_int = gimp->palette_factory->container->num_children;
|
||||
return_args[2].value.pdb_pointer = palettes;
|
||||
}
|
||||
|
||||
return return_args;
|
||||
}
|
||||
|
||||
static ProcArg palette_list_outargs[] =
|
||||
{
|
||||
{
|
||||
GIMP_PDB_INT32,
|
||||
"num_palettes",
|
||||
"The number of palettes in the list"
|
||||
},
|
||||
{
|
||||
GIMP_PDB_STRINGARRAY,
|
||||
"palette_list",
|
||||
"The list of palette names"
|
||||
}
|
||||
};
|
||||
|
||||
static ProcRecord palette_list_proc =
|
||||
{
|
||||
"gimp_palette_list",
|
||||
"Retrieves a list of all of the available patterns",
|
||||
"This procedure returns a complete listing of available palettes. Each name returned can be used as input to the command 'gimp_palette_set_palette'.",
|
||||
"Nathan Summers <rock@gimp.org>",
|
||||
"Nathan Summers",
|
||||
"2001",
|
||||
GIMP_INTERNAL,
|
||||
0,
|
||||
NULL,
|
||||
2,
|
||||
palette_list_outargs,
|
||||
{ { palette_list_invoker } }
|
||||
};
|
||||
|
||||
static Argument *
|
||||
palette_get_palette_invoker (Gimp *gimp,
|
||||
Argument *args)
|
||||
{
|
||||
gboolean success = TRUE;
|
||||
Argument *return_args;
|
||||
GimpPalette *palette;
|
||||
|
||||
success = (palette = gimp_context_get_palette (gimp_get_current_context (gimp))) != NULL;
|
||||
|
||||
return_args = procedural_db_return_args (&palette_get_palette_proc, success);
|
||||
|
||||
if (success)
|
||||
{
|
||||
return_args[1].value.pdb_pointer = g_strdup (GIMP_OBJECT (palette)->name);
|
||||
return_args[2].value.pdb_int = palette->n_colors;
|
||||
}
|
||||
|
||||
return return_args;
|
||||
}
|
||||
|
||||
static ProcArg palette_get_palette_outargs[] =
|
||||
{
|
||||
{
|
||||
GIMP_PDB_STRING,
|
||||
"name",
|
||||
"The palette name"
|
||||
},
|
||||
{
|
||||
GIMP_PDB_INT32,
|
||||
"num_colors",
|
||||
"The palette num_colors"
|
||||
}
|
||||
};
|
||||
|
||||
static ProcRecord palette_get_palette_proc =
|
||||
{
|
||||
"gimp_palette_get_palette",
|
||||
"Retrieve information about the currently active palette.",
|
||||
"This procedure retrieves information about the currently active palette. This includes the name, and the number of colors.",
|
||||
"Nathan Summers <rock@gimp.org>",
|
||||
"Nathan Summers",
|
||||
"2001",
|
||||
GIMP_INTERNAL,
|
||||
0,
|
||||
NULL,
|
||||
2,
|
||||
palette_get_palette_outargs,
|
||||
{ { palette_get_palette_invoker } }
|
||||
};
|
||||
|
||||
static Argument *
|
||||
palette_set_palette_invoker (Gimp *gimp,
|
||||
Argument *args)
|
||||
{
|
||||
gboolean success = TRUE;
|
||||
gchar *name;
|
||||
GimpPalette *palette;
|
||||
GList *list;
|
||||
|
||||
name = (gchar *) args[0].value.pdb_pointer;
|
||||
if (name == NULL)
|
||||
success = FALSE;
|
||||
|
||||
if (success)
|
||||
{
|
||||
success = FALSE;
|
||||
|
||||
for (list = GIMP_LIST (gimp->palette_factory->container)->list;
|
||||
list;
|
||||
list = g_list_next (list))
|
||||
{
|
||||
palette = (GimpPalette *) list->data;
|
||||
|
||||
if (! strcmp (GIMP_OBJECT (palette)->name, name))
|
||||
{
|
||||
gimp_context_set_palette (gimp_get_current_context (gimp), palette);
|
||||
success = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return procedural_db_return_args (&palette_set_palette_proc, success);
|
||||
}
|
||||
|
||||
static ProcArg palette_set_palette_inargs[] =
|
||||
{
|
||||
{
|
||||
GIMP_PDB_STRING,
|
||||
"name",
|
||||
"The palette name"
|
||||
}
|
||||
};
|
||||
|
||||
static ProcRecord palette_set_palette_proc =
|
||||
{
|
||||
"gimp_palette_set_palette",
|
||||
"Set the specified palette as the active palette.",
|
||||
"This procedure allows the active palette to be set by specifying its name. The name is simply a string which corresponds to one of the names of the installed palettes. If no matching palette is found, this procedure will return an error. Otherwise, the specified palette becomes active and will be used in all subsequent palette operations.",
|
||||
"Nathan Summers <rock@gimp.org>",
|
||||
"Nathan Summers",
|
||||
"2001",
|
||||
GIMP_INTERNAL,
|
||||
1,
|
||||
palette_set_palette_inargs,
|
||||
0,
|
||||
NULL,
|
||||
{ { palette_set_palette_invoker } }
|
||||
};
|
||||
|
||||
static Argument *
|
||||
palette_get_entry_invoker (Gimp *gimp,
|
||||
Argument *args)
|
||||
{
|
||||
gboolean success = TRUE;
|
||||
Argument *return_args;
|
||||
gint32 entry;
|
||||
GimpRGB color;
|
||||
GimpPalette *palette;
|
||||
|
||||
entry = args[0].value.pdb_int;
|
||||
|
||||
success = TRUE;
|
||||
|
||||
palette = gimp_context_get_palette (gimp_get_current_context(gimp));
|
||||
|
||||
if (entry >= palette->n_colors) {
|
||||
success = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
color=*(GimpRGB *) g_list_nth(palette->colors, entry)->data;
|
||||
}
|
||||
|
||||
return_args = procedural_db_return_args (&palette_get_entry_proc, success);
|
||||
|
||||
if (success)
|
||||
return_args[1].value.pdb_color = color;
|
||||
|
||||
return return_args;
|
||||
}
|
||||
|
||||
static ProcArg palette_get_entry_inargs[] =
|
||||
{
|
||||
{
|
||||
GIMP_PDB_INT32,
|
||||
"entry_num",
|
||||
"The entry to retrieve"
|
||||
}
|
||||
};
|
||||
|
||||
static ProcArg palette_get_entry_outargs[] =
|
||||
{
|
||||
{
|
||||
GIMP_PDB_COLOR,
|
||||
"color",
|
||||
"The color requested"
|
||||
}
|
||||
};
|
||||
|
||||
static ProcRecord palette_get_entry_proc =
|
||||
{
|
||||
"gimp_palette_get_entry",
|
||||
"Gets the specified palette entry from the currently active pallette.",
|
||||
"This procedure returns the color of the zero-based entry specifed for the current palette. It returns an error if the entry does not exist.",
|
||||
"Nathan Summers <rock@gimp.org>",
|
||||
"Nathan Summers",
|
||||
"2001",
|
||||
GIMP_INTERNAL,
|
||||
1,
|
||||
palette_get_entry_inargs,
|
||||
1,
|
||||
palette_get_entry_outargs,
|
||||
{ { palette_get_entry_invoker } }
|
||||
};
|
||||
|
|
|
@ -291,6 +291,8 @@ procedural_db_run_proc (Gimp *gimp,
|
|||
case GIMP_PDB_STATUS:
|
||||
params[i].value.pdb_int = (gint32) va_arg (args, gint);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].value.pdb_pointer = va_arg (args, gpointer);
|
||||
case GIMP_PDB_END:
|
||||
break;
|
||||
}
|
||||
|
@ -384,6 +386,7 @@ procedural_db_destroy_args (Argument *args,
|
|||
case GIMP_PDB_PATH:
|
||||
case GIMP_PDB_PARASITE:
|
||||
case GIMP_PDB_STATUS:
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_END:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -103,6 +103,7 @@ static const gchar * const type_str[] =
|
|||
"GIMP_PDB_BOUNDARY",
|
||||
"GIMP_PDB_PATH",
|
||||
"GIMP_PDB_PARASITE",
|
||||
"GIMP_PDB_PALETTE",
|
||||
"GIMP_PDB_STATUS",
|
||||
"GIMP_PDB_END"
|
||||
};
|
||||
|
@ -629,7 +630,7 @@ static ProcArg procedural_db_proc_arg_outargs[] =
|
|||
{
|
||||
GIMP_PDB_INT32,
|
||||
"arg_type",
|
||||
"The type of argument { PDB_INT32 (0), PDB_INT16 (1), PDB_INT8 (2), PDB_FLOAT (3), PDB_STRING (4), PDB_INT32ARRAY (5), PDB_INT16ARRAY (6), PDB_INT8ARRAY (7), PDB_FLOATARRAY (8), PDB_STRINGARRAY (9), PDB_COLOR (10), PDB_REGION (11), PDB_DISPLAY (12), PDB_IMAGE (13), PDB_LAYER (14), PDB_CHANNEL (15), PDB_DRAWABLE (16), PDB_SELECTION (17), PDB_BOUNDARY (18), PDB_PATH (19), PDB_PARASITE (20), PDB_STATUS (21) }"
|
||||
"The type of argument { PDB_INT32 (0), PDB_INT16 (1), PDB_INT8 (2), PDB_FLOAT (3), PDB_STRING (4), PDB_INT32ARRAY (5), PDB_INT16ARRAY (6), PDB_INT8ARRAY (7), PDB_FLOATARRAY (8), PDB_STRINGARRAY (9), PDB_COLOR (10), PDB_REGION (11), PDB_DISPLAY (12), PDB_IMAGE (13), PDB_LAYER (14), PDB_CHANNEL (15), PDB_DRAWABLE (16), PDB_SELECTION (17), PDB_BOUNDARY (18), PDB_PATH (19), PDB_PARASITE (20), PDB_PALETTE (21), PDB_STATUS (22) }"
|
||||
},
|
||||
{
|
||||
GIMP_PDB_STRING,
|
||||
|
@ -716,7 +717,7 @@ static ProcArg procedural_db_proc_val_outargs[] =
|
|||
{
|
||||
GIMP_PDB_INT32,
|
||||
"val_type",
|
||||
"The type of return value { PDB_INT32 (0), PDB_INT16 (1), PDB_INT8 (2), PDB_FLOAT (3), PDB_STRING (4), PDB_INT32ARRAY (5), PDB_INT16ARRAY (6), PDB_INT8ARRAY (7), PDB_FLOATARRAY (8), PDB_STRINGARRAY (9), PDB_COLOR (10), PDB_REGION (11), PDB_DISPLAY (12), PDB_IMAGE (13), PDB_LAYER (14), PDB_CHANNEL (15), PDB_DRAWABLE (16), PDB_SELECTION (17), PDB_BOUNDARY (18), PDB_PATH (19), PDB_PARASITE (20), PDB_STATUS (21) }"
|
||||
"The type of return value { PDB_INT32 (0), PDB_INT16 (1), PDB_INT8 (2), PDB_FLOAT (3), PDB_STRING (4), PDB_INT32ARRAY (5), PDB_INT16ARRAY (6), PDB_INT8ARRAY (7), PDB_FLOATARRAY (8), PDB_STRINGARRAY (9), PDB_COLOR (10), PDB_REGION (11), PDB_DISPLAY (12), PDB_IMAGE (13), PDB_LAYER (14), PDB_CHANNEL (15), PDB_DRAWABLE (16), PDB_SELECTION (17), PDB_BOUNDARY (18), PDB_PATH (19), PDB_PARASITE (20), PDB_PALETTE (21), PDB_STATUS (22) }"
|
||||
},
|
||||
{
|
||||
GIMP_PDB_STRING,
|
||||
|
|
|
@ -3154,6 +3154,8 @@ plug_in_params_to_args (GPParam *params,
|
|||
else
|
||||
args[i].value.pdb_pointer = (gpointer) &(params[i].data.d_parasite);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
args[i].value.pdb_int = params[i].data.d_palette;
|
||||
case GIMP_PDB_STATUS:
|
||||
args[i].value.pdb_int = params[i].data.d_status;
|
||||
break;
|
||||
|
@ -3334,6 +3336,8 @@ plug_in_args_to_params (Argument *args,
|
|||
sizeof (GimpParasite));
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].data.d_palette = args[i].value.pdb_int;
|
||||
case GIMP_PDB_STATUS:
|
||||
params[i].data.d_status = args[i].value.pdb_int;
|
||||
break;
|
||||
|
@ -3413,6 +3417,7 @@ plug_in_params_destroy (GPParam *params,
|
|||
params[i].data.d_parasite.data = 0;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
@ -3494,6 +3499,7 @@ plug_in_args_destroy (Argument *args,
|
|||
args[i].value.pdb_pointer = NULL;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
|
|
@ -3154,6 +3154,8 @@ plug_in_params_to_args (GPParam *params,
|
|||
else
|
||||
args[i].value.pdb_pointer = (gpointer) &(params[i].data.d_parasite);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
args[i].value.pdb_int = params[i].data.d_palette;
|
||||
case GIMP_PDB_STATUS:
|
||||
args[i].value.pdb_int = params[i].data.d_status;
|
||||
break;
|
||||
|
@ -3334,6 +3336,8 @@ plug_in_args_to_params (Argument *args,
|
|||
sizeof (GimpParasite));
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].data.d_palette = args[i].value.pdb_int;
|
||||
case GIMP_PDB_STATUS:
|
||||
params[i].data.d_status = args[i].value.pdb_int;
|
||||
break;
|
||||
|
@ -3413,6 +3417,7 @@ plug_in_params_destroy (GPParam *params,
|
|||
params[i].data.d_parasite.data = 0;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
@ -3494,6 +3499,7 @@ plug_in_args_destroy (Argument *args,
|
|||
args[i].value.pdb_pointer = NULL;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
|
|
@ -3154,6 +3154,8 @@ plug_in_params_to_args (GPParam *params,
|
|||
else
|
||||
args[i].value.pdb_pointer = (gpointer) &(params[i].data.d_parasite);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
args[i].value.pdb_int = params[i].data.d_palette;
|
||||
case GIMP_PDB_STATUS:
|
||||
args[i].value.pdb_int = params[i].data.d_status;
|
||||
break;
|
||||
|
@ -3334,6 +3336,8 @@ plug_in_args_to_params (Argument *args,
|
|||
sizeof (GimpParasite));
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].data.d_palette = args[i].value.pdb_int;
|
||||
case GIMP_PDB_STATUS:
|
||||
params[i].data.d_status = args[i].value.pdb_int;
|
||||
break;
|
||||
|
@ -3413,6 +3417,7 @@ plug_in_params_destroy (GPParam *params,
|
|||
params[i].data.d_parasite.data = 0;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
@ -3494,6 +3499,7 @@ plug_in_args_destroy (Argument *args,
|
|||
args[i].value.pdb_pointer = NULL;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
|
|
@ -3154,6 +3154,8 @@ plug_in_params_to_args (GPParam *params,
|
|||
else
|
||||
args[i].value.pdb_pointer = (gpointer) &(params[i].data.d_parasite);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
args[i].value.pdb_int = params[i].data.d_palette;
|
||||
case GIMP_PDB_STATUS:
|
||||
args[i].value.pdb_int = params[i].data.d_status;
|
||||
break;
|
||||
|
@ -3334,6 +3336,8 @@ plug_in_args_to_params (Argument *args,
|
|||
sizeof (GimpParasite));
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].data.d_palette = args[i].value.pdb_int;
|
||||
case GIMP_PDB_STATUS:
|
||||
params[i].data.d_status = args[i].value.pdb_int;
|
||||
break;
|
||||
|
@ -3413,6 +3417,7 @@ plug_in_params_destroy (GPParam *params,
|
|||
params[i].data.d_parasite.data = 0;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
@ -3494,6 +3499,7 @@ plug_in_args_destroy (Argument *args,
|
|||
args[i].value.pdb_pointer = NULL;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
|
|
@ -3154,6 +3154,8 @@ plug_in_params_to_args (GPParam *params,
|
|||
else
|
||||
args[i].value.pdb_pointer = (gpointer) &(params[i].data.d_parasite);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
args[i].value.pdb_int = params[i].data.d_palette;
|
||||
case GIMP_PDB_STATUS:
|
||||
args[i].value.pdb_int = params[i].data.d_status;
|
||||
break;
|
||||
|
@ -3334,6 +3336,8 @@ plug_in_args_to_params (Argument *args,
|
|||
sizeof (GimpParasite));
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].data.d_palette = args[i].value.pdb_int;
|
||||
case GIMP_PDB_STATUS:
|
||||
params[i].data.d_status = args[i].value.pdb_int;
|
||||
break;
|
||||
|
@ -3413,6 +3417,7 @@ plug_in_params_destroy (GPParam *params,
|
|||
params[i].data.d_parasite.data = 0;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
@ -3494,6 +3499,7 @@ plug_in_args_destroy (Argument *args,
|
|||
args[i].value.pdb_pointer = NULL;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
|
|
@ -3154,6 +3154,8 @@ plug_in_params_to_args (GPParam *params,
|
|||
else
|
||||
args[i].value.pdb_pointer = (gpointer) &(params[i].data.d_parasite);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
args[i].value.pdb_int = params[i].data.d_palette;
|
||||
case GIMP_PDB_STATUS:
|
||||
args[i].value.pdb_int = params[i].data.d_status;
|
||||
break;
|
||||
|
@ -3334,6 +3336,8 @@ plug_in_args_to_params (Argument *args,
|
|||
sizeof (GimpParasite));
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].data.d_palette = args[i].value.pdb_int;
|
||||
case GIMP_PDB_STATUS:
|
||||
params[i].data.d_status = args[i].value.pdb_int;
|
||||
break;
|
||||
|
@ -3413,6 +3417,7 @@ plug_in_params_destroy (GPParam *params,
|
|||
params[i].data.d_parasite.data = 0;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
@ -3494,6 +3499,7 @@ plug_in_args_destroy (Argument *args,
|
|||
args[i].value.pdb_pointer = NULL;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
|
|
@ -3154,6 +3154,8 @@ plug_in_params_to_args (GPParam *params,
|
|||
else
|
||||
args[i].value.pdb_pointer = (gpointer) &(params[i].data.d_parasite);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
args[i].value.pdb_int = params[i].data.d_palette;
|
||||
case GIMP_PDB_STATUS:
|
||||
args[i].value.pdb_int = params[i].data.d_status;
|
||||
break;
|
||||
|
@ -3334,6 +3336,8 @@ plug_in_args_to_params (Argument *args,
|
|||
sizeof (GimpParasite));
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].data.d_palette = args[i].value.pdb_int;
|
||||
case GIMP_PDB_STATUS:
|
||||
params[i].data.d_status = args[i].value.pdb_int;
|
||||
break;
|
||||
|
@ -3413,6 +3417,7 @@ plug_in_params_destroy (GPParam *params,
|
|||
params[i].data.d_parasite.data = 0;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
@ -3494,6 +3499,7 @@ plug_in_args_destroy (Argument *args,
|
|||
args[i].value.pdb_pointer = NULL;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
|
|
@ -3154,6 +3154,8 @@ plug_in_params_to_args (GPParam *params,
|
|||
else
|
||||
args[i].value.pdb_pointer = (gpointer) &(params[i].data.d_parasite);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
args[i].value.pdb_int = params[i].data.d_palette;
|
||||
case GIMP_PDB_STATUS:
|
||||
args[i].value.pdb_int = params[i].data.d_status;
|
||||
break;
|
||||
|
@ -3334,6 +3336,8 @@ plug_in_args_to_params (Argument *args,
|
|||
sizeof (GimpParasite));
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].data.d_palette = args[i].value.pdb_int;
|
||||
case GIMP_PDB_STATUS:
|
||||
params[i].data.d_status = args[i].value.pdb_int;
|
||||
break;
|
||||
|
@ -3413,6 +3417,7 @@ plug_in_params_destroy (GPParam *params,
|
|||
params[i].data.d_parasite.data = 0;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
@ -3494,6 +3499,7 @@ plug_in_args_destroy (Argument *args,
|
|||
args[i].value.pdb_pointer = NULL;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
|
|
@ -3154,6 +3154,8 @@ plug_in_params_to_args (GPParam *params,
|
|||
else
|
||||
args[i].value.pdb_pointer = (gpointer) &(params[i].data.d_parasite);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
args[i].value.pdb_int = params[i].data.d_palette;
|
||||
case GIMP_PDB_STATUS:
|
||||
args[i].value.pdb_int = params[i].data.d_status;
|
||||
break;
|
||||
|
@ -3334,6 +3336,8 @@ plug_in_args_to_params (Argument *args,
|
|||
sizeof (GimpParasite));
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].data.d_palette = args[i].value.pdb_int;
|
||||
case GIMP_PDB_STATUS:
|
||||
params[i].data.d_status = args[i].value.pdb_int;
|
||||
break;
|
||||
|
@ -3413,6 +3417,7 @@ plug_in_params_destroy (GPParam *params,
|
|||
params[i].data.d_parasite.data = 0;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
@ -3494,6 +3499,7 @@ plug_in_args_destroy (Argument *args,
|
|||
args[i].value.pdb_pointer = NULL;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
|
|
@ -3154,6 +3154,8 @@ plug_in_params_to_args (GPParam *params,
|
|||
else
|
||||
args[i].value.pdb_pointer = (gpointer) &(params[i].data.d_parasite);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
args[i].value.pdb_int = params[i].data.d_palette;
|
||||
case GIMP_PDB_STATUS:
|
||||
args[i].value.pdb_int = params[i].data.d_status;
|
||||
break;
|
||||
|
@ -3334,6 +3336,8 @@ plug_in_args_to_params (Argument *args,
|
|||
sizeof (GimpParasite));
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].data.d_palette = args[i].value.pdb_int;
|
||||
case GIMP_PDB_STATUS:
|
||||
params[i].data.d_status = args[i].value.pdb_int;
|
||||
break;
|
||||
|
@ -3413,6 +3417,7 @@ plug_in_params_destroy (GPParam *params,
|
|||
params[i].data.d_parasite.data = 0;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
@ -3494,6 +3499,7 @@ plug_in_args_destroy (Argument *args,
|
|||
args[i].value.pdb_pointer = NULL;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
|
|
@ -3154,6 +3154,8 @@ plug_in_params_to_args (GPParam *params,
|
|||
else
|
||||
args[i].value.pdb_pointer = (gpointer) &(params[i].data.d_parasite);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
args[i].value.pdb_int = params[i].data.d_palette;
|
||||
case GIMP_PDB_STATUS:
|
||||
args[i].value.pdb_int = params[i].data.d_status;
|
||||
break;
|
||||
|
@ -3334,6 +3336,8 @@ plug_in_args_to_params (Argument *args,
|
|||
sizeof (GimpParasite));
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].data.d_palette = args[i].value.pdb_int;
|
||||
case GIMP_PDB_STATUS:
|
||||
params[i].data.d_status = args[i].value.pdb_int;
|
||||
break;
|
||||
|
@ -3413,6 +3417,7 @@ plug_in_params_destroy (GPParam *params,
|
|||
params[i].data.d_parasite.data = 0;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
@ -3494,6 +3499,7 @@ plug_in_args_destroy (Argument *args,
|
|||
args[i].value.pdb_pointer = NULL;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
|
|
@ -3154,6 +3154,8 @@ plug_in_params_to_args (GPParam *params,
|
|||
else
|
||||
args[i].value.pdb_pointer = (gpointer) &(params[i].data.d_parasite);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
args[i].value.pdb_int = params[i].data.d_palette;
|
||||
case GIMP_PDB_STATUS:
|
||||
args[i].value.pdb_int = params[i].data.d_status;
|
||||
break;
|
||||
|
@ -3334,6 +3336,8 @@ plug_in_args_to_params (Argument *args,
|
|||
sizeof (GimpParasite));
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].data.d_palette = args[i].value.pdb_int;
|
||||
case GIMP_PDB_STATUS:
|
||||
params[i].data.d_status = args[i].value.pdb_int;
|
||||
break;
|
||||
|
@ -3413,6 +3417,7 @@ plug_in_params_destroy (GPParam *params,
|
|||
params[i].data.d_parasite.data = 0;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
@ -3494,6 +3499,7 @@ plug_in_args_destroy (Argument *args,
|
|||
args[i].value.pdb_pointer = NULL;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
|
|
@ -3154,6 +3154,8 @@ plug_in_params_to_args (GPParam *params,
|
|||
else
|
||||
args[i].value.pdb_pointer = (gpointer) &(params[i].data.d_parasite);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
args[i].value.pdb_int = params[i].data.d_palette;
|
||||
case GIMP_PDB_STATUS:
|
||||
args[i].value.pdb_int = params[i].data.d_status;
|
||||
break;
|
||||
|
@ -3334,6 +3336,8 @@ plug_in_args_to_params (Argument *args,
|
|||
sizeof (GimpParasite));
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].data.d_palette = args[i].value.pdb_int;
|
||||
case GIMP_PDB_STATUS:
|
||||
params[i].data.d_status = args[i].value.pdb_int;
|
||||
break;
|
||||
|
@ -3413,6 +3417,7 @@ plug_in_params_destroy (GPParam *params,
|
|||
params[i].data.d_parasite.data = 0;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
@ -3494,6 +3499,7 @@ plug_in_args_destroy (Argument *args,
|
|||
args[i].value.pdb_pointer = NULL;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
|
|
@ -3154,6 +3154,8 @@ plug_in_params_to_args (GPParam *params,
|
|||
else
|
||||
args[i].value.pdb_pointer = (gpointer) &(params[i].data.d_parasite);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
args[i].value.pdb_int = params[i].data.d_palette;
|
||||
case GIMP_PDB_STATUS:
|
||||
args[i].value.pdb_int = params[i].data.d_status;
|
||||
break;
|
||||
|
@ -3334,6 +3336,8 @@ plug_in_args_to_params (Argument *args,
|
|||
sizeof (GimpParasite));
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].data.d_palette = args[i].value.pdb_int;
|
||||
case GIMP_PDB_STATUS:
|
||||
params[i].data.d_status = args[i].value.pdb_int;
|
||||
break;
|
||||
|
@ -3413,6 +3417,7 @@ plug_in_params_destroy (GPParam *params,
|
|||
params[i].data.d_parasite.data = 0;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
@ -3494,6 +3499,7 @@ plug_in_args_destroy (Argument *args,
|
|||
args[i].value.pdb_pointer = NULL;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
|
|
@ -3154,6 +3154,8 @@ plug_in_params_to_args (GPParam *params,
|
|||
else
|
||||
args[i].value.pdb_pointer = (gpointer) &(params[i].data.d_parasite);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
args[i].value.pdb_int = params[i].data.d_palette;
|
||||
case GIMP_PDB_STATUS:
|
||||
args[i].value.pdb_int = params[i].data.d_status;
|
||||
break;
|
||||
|
@ -3334,6 +3336,8 @@ plug_in_args_to_params (Argument *args,
|
|||
sizeof (GimpParasite));
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].data.d_palette = args[i].value.pdb_int;
|
||||
case GIMP_PDB_STATUS:
|
||||
params[i].data.d_status = args[i].value.pdb_int;
|
||||
break;
|
||||
|
@ -3413,6 +3417,7 @@ plug_in_params_destroy (GPParam *params,
|
|||
params[i].data.d_parasite.data = 0;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
@ -3494,6 +3499,7 @@ plug_in_args_destroy (Argument *args,
|
|||
args[i].value.pdb_pointer = NULL;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
|
|
@ -3154,6 +3154,8 @@ plug_in_params_to_args (GPParam *params,
|
|||
else
|
||||
args[i].value.pdb_pointer = (gpointer) &(params[i].data.d_parasite);
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
args[i].value.pdb_int = params[i].data.d_palette;
|
||||
case GIMP_PDB_STATUS:
|
||||
args[i].value.pdb_int = params[i].data.d_status;
|
||||
break;
|
||||
|
@ -3334,6 +3336,8 @@ plug_in_args_to_params (Argument *args,
|
|||
sizeof (GimpParasite));
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
params[i].data.d_palette = args[i].value.pdb_int;
|
||||
case GIMP_PDB_STATUS:
|
||||
params[i].data.d_status = args[i].value.pdb_int;
|
||||
break;
|
||||
|
@ -3413,6 +3417,7 @@ plug_in_params_destroy (GPParam *params,
|
|||
params[i].data.d_parasite.data = 0;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
@ -3494,6 +3499,7 @@ plug_in_args_destroy (Argument *args,
|
|||
args[i].value.pdb_pointer = NULL;
|
||||
}
|
||||
break;
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
break;
|
||||
case GIMP_PDB_END:
|
||||
|
|
|
@ -453,6 +453,7 @@ gimp_run_procedure (gchar *name,
|
|||
case GIMP_PDB_SELECTION:
|
||||
case GIMP_PDB_BOUNDARY:
|
||||
case GIMP_PDB_PATH:
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_STATUS:
|
||||
(void) va_arg (args, gint);
|
||||
break;
|
||||
|
|
|
@ -237,3 +237,141 @@ gimp_palette_refresh (void)
|
|||
|
||||
return success;
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_palette_list:
|
||||
* @num_palettes: The number of palettes in the list.
|
||||
*
|
||||
* Retrieves a list of all of the available patterns
|
||||
*
|
||||
* This procedure returns a complete listing of available palettes.
|
||||
* Each name returned can be used as input to the command
|
||||
* 'gimp_palette_set_palette'.
|
||||
*
|
||||
* Returns: The list of palette names.
|
||||
*/
|
||||
gchar **
|
||||
gimp_palette_list (gint *num_palettes)
|
||||
{
|
||||
GimpParam *return_vals;
|
||||
gint nreturn_vals;
|
||||
gchar **palette_list = NULL;
|
||||
gint i;
|
||||
|
||||
return_vals = gimp_run_procedure ("gimp_palette_list",
|
||||
&nreturn_vals,
|
||||
GIMP_PDB_END);
|
||||
|
||||
*num_palettes = 0;
|
||||
|
||||
if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
|
||||
{
|
||||
*num_palettes = return_vals[1].data.d_int32;
|
||||
palette_list = g_new (gchar *, *num_palettes);
|
||||
for (i = 0; i < *num_palettes; i++)
|
||||
palette_list[i] = g_strdup (return_vals[2].data.d_stringarray[i]);
|
||||
}
|
||||
|
||||
gimp_destroy_params (return_vals, nreturn_vals);
|
||||
|
||||
return palette_list;
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_palette_get_palette:
|
||||
* @num_colors: The palette num_colors.
|
||||
*
|
||||
* Retrieve information about the currently active palette.
|
||||
*
|
||||
* This procedure retrieves information about the currently active
|
||||
* palette. This includes the name, and the number of colors.
|
||||
*
|
||||
* Returns: The palette name.
|
||||
*/
|
||||
gchar *
|
||||
gimp_palette_get_palette (gint *num_colors)
|
||||
{
|
||||
GimpParam *return_vals;
|
||||
gint nreturn_vals;
|
||||
gchar *name = NULL;
|
||||
|
||||
return_vals = gimp_run_procedure ("gimp_palette_get_palette",
|
||||
&nreturn_vals,
|
||||
GIMP_PDB_END);
|
||||
|
||||
if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
|
||||
{
|
||||
name = g_strdup (return_vals[1].data.d_string);
|
||||
*num_colors = return_vals[2].data.d_int32;
|
||||
}
|
||||
|
||||
gimp_destroy_params (return_vals, nreturn_vals);
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_palette_set_palette:
|
||||
* @name: The palette name.
|
||||
*
|
||||
* Set the specified palette as the active palette.
|
||||
*
|
||||
* This procedure allows the active palette to be set by specifying its
|
||||
* name. The name is simply a string which corresponds to one of the
|
||||
* names of the installed palettes. If no matching palette is found,
|
||||
* this procedure will return an error. Otherwise, the specified
|
||||
* palette becomes active and will be used in all subsequent palette
|
||||
* operations.
|
||||
*
|
||||
* Returns: TRUE on success.
|
||||
*/
|
||||
gboolean
|
||||
gimp_palette_set_palette (gchar *name)
|
||||
{
|
||||
GimpParam *return_vals;
|
||||
gint nreturn_vals;
|
||||
gboolean success = TRUE;
|
||||
|
||||
return_vals = gimp_run_procedure ("gimp_palette_set_palette",
|
||||
&nreturn_vals,
|
||||
GIMP_PDB_STRING, name,
|
||||
GIMP_PDB_END);
|
||||
|
||||
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
||||
|
||||
gimp_destroy_params (return_vals, nreturn_vals);
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_palette_get_entry:
|
||||
* @entry_num: The entry to retrieve.
|
||||
*
|
||||
* Gets the specified palette entry from the currently active pallette.
|
||||
*
|
||||
* This procedure returns the color of the zero-based entry specifed
|
||||
* for the current palette. It returns an error if the entry does not
|
||||
* exist.
|
||||
*
|
||||
* Returns: The color requested.
|
||||
*/
|
||||
GimpRGB *
|
||||
gimp_palette_get_entry (gint entry_num)
|
||||
{
|
||||
GimpParam *return_vals;
|
||||
gint nreturn_vals;
|
||||
GimpRGB *color = 0;
|
||||
|
||||
return_vals = gimp_run_procedure ("gimp_palette_get_entry",
|
||||
&nreturn_vals,
|
||||
GIMP_PDB_INT32, entry_num,
|
||||
GIMP_PDB_END);
|
||||
|
||||
if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
|
||||
color = return_vals[1].data.d_color;
|
||||
|
||||
gimp_destroy_params (return_vals, nreturn_vals);
|
||||
|
||||
return color;
|
||||
}
|
||||
|
|
|
@ -38,6 +38,10 @@ gboolean gimp_palette_set_background (GimpRGB *background);
|
|||
gboolean gimp_palette_set_default_colors (void);
|
||||
gboolean gimp_palette_swap_colors (void);
|
||||
gboolean gimp_palette_refresh (void);
|
||||
gchar** gimp_palette_list (gint *num_palettes);
|
||||
gchar* gimp_palette_get_palette (gint *num_colors);
|
||||
gboolean gimp_palette_set_palette (gchar *name);
|
||||
GimpRGB* gimp_palette_get_entry (gint entry_num);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -71,6 +71,7 @@ typedef enum /*< chop=GIMP_ >*/
|
|||
GIMP_PDB_BOUNDARY,
|
||||
GIMP_PDB_PATH,
|
||||
GIMP_PDB_PARASITE,
|
||||
GIMP_PDB_PALETTE,
|
||||
GIMP_PDB_STATUS,
|
||||
GIMP_PDB_END
|
||||
} GimpPDBArgType;
|
||||
|
|
|
@ -1177,6 +1177,11 @@ _gp_params_read (GIOChannel *channel,
|
|||
goto cleanup;
|
||||
break;
|
||||
|
||||
case GIMP_PDB_PALETTE:
|
||||
if (!wire_read_int32 (channel, (guint32*) &(*params)[i].data.d_palette, 1))
|
||||
goto cleanup;
|
||||
break;
|
||||
|
||||
case GIMP_PDB_END:
|
||||
break;
|
||||
}
|
||||
|
@ -1341,6 +1346,11 @@ _gp_params_write (GIOChannel *channel,
|
|||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case GIMP_PDB_PALETTE:
|
||||
if (!wire_write_int32 (channel, (guint32*) ¶ms[i].data.d_palette, 1))
|
||||
return;
|
||||
break;
|
||||
|
||||
case GIMP_PDB_STATUS:
|
||||
if (!wire_write_int32 (channel, (guint32*) ¶ms[i].data.d_status, 1))
|
||||
|
@ -1418,6 +1428,7 @@ _gp_params_destroy (GPParam *params,
|
|||
g_free(params[i].data.d_parasite.data);
|
||||
break;
|
||||
|
||||
case GIMP_PDB_PALETTE:
|
||||
case GIMP_PDB_END:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ extern "C" {
|
|||
|
||||
/* Increment every time the protocol changes
|
||||
*/
|
||||
#define GP_VERSION 0x0009
|
||||
#define GP_VERSION 0x000A
|
||||
|
||||
|
||||
enum
|
||||
|
@ -132,6 +132,7 @@ struct _GPParam
|
|||
guint32 size;
|
||||
gpointer data;
|
||||
} d_parasite;
|
||||
gint32 d_palette;
|
||||
gint32 d_status;
|
||||
} data;
|
||||
};
|
||||
|
|
|
@ -127,8 +127,9 @@ init_generated_constants (void)
|
|||
setvar (cintern ("PDB-BOUNDARY"), flocons (18), NIL);
|
||||
setvar (cintern ("PDB-PATH"), flocons (19), NIL);
|
||||
setvar (cintern ("PDB-PARASITE"), flocons (20), NIL);
|
||||
setvar (cintern ("PDB-STATUS"), flocons (21), NIL);
|
||||
setvar (cintern ("PDB-END"), flocons (22), NIL);
|
||||
setvar (cintern ("PDB-PALETTE"), flocons (21), NIL);
|
||||
setvar (cintern ("PDB-STATUS"), flocons (22), NIL);
|
||||
setvar (cintern ("PDB-END"), flocons (23), NIL);
|
||||
|
||||
setvar (cintern ("INTERNAL"), flocons (0), NIL);
|
||||
setvar (cintern ("PLUGIN"), flocons (1), NIL);
|
||||
|
|
|
@ -49,7 +49,7 @@ package Gimp::CodeGen::enums;
|
|||
GIMP_PDB_IMAGE GIMP_PDB_LAYER GIMP_PDB_CHANNEL
|
||||
GIMP_PDB_DRAWABLE GIMP_PDB_SELECTION
|
||||
GIMP_PDB_BOUNDARY GIMP_PDB_PATH GIMP_PDB_PARASITE
|
||||
GIMP_PDB_STATUS GIMP_PDB_END) ],
|
||||
GIMP_PDB_PALETTE GIMP_PDB_STATUS GIMP_PDB_END) ],
|
||||
mapping => { GIMP_PDB_INT32 => '0',
|
||||
GIMP_PDB_INT16 => '1',
|
||||
GIMP_PDB_INT8 => '2',
|
||||
|
@ -71,8 +71,9 @@ package Gimp::CodeGen::enums;
|
|||
GIMP_PDB_BOUNDARY => '18',
|
||||
GIMP_PDB_PATH => '19',
|
||||
GIMP_PDB_PARASITE => '20',
|
||||
GIMP_PDB_STATUS => '21',
|
||||
GIMP_PDB_END => '22' },
|
||||
GIMP_PDB_PALETTE => '21',
|
||||
GIMP_PDB_STATUS => '22',
|
||||
GIMP_PDB_END => '23' },
|
||||
nicks => { GIMP_PDB_INT32 => 'PDB_INT32',
|
||||
GIMP_PDB_INT16 => 'PDB_INT16',
|
||||
GIMP_PDB_INT8 => 'PDB_INT8',
|
||||
|
@ -94,6 +95,7 @@ package Gimp::CodeGen::enums;
|
|||
GIMP_PDB_BOUNDARY => 'PDB_BOUNDARY',
|
||||
GIMP_PDB_PATH => 'PDB_PATH',
|
||||
GIMP_PDB_PARASITE => 'PDB_PARASITE',
|
||||
GIMP_PDB_PALETTE => 'PDB_PALETTE',
|
||||
GIMP_PDB_STATUS => 'PDB_STATUS',
|
||||
GIMP_PDB_END => 'PDB_END' }
|
||||
},
|
||||
|
|
|
@ -21,6 +21,35 @@ sub color_blurb {
|
|||
$blurb = "@{[shift]} the current GIMP @{[shift]}ground color.";
|
||||
}
|
||||
|
||||
sub palette_arg () {{
|
||||
name => 'name',
|
||||
type => 'string',
|
||||
desc => 'The palette name'
|
||||
}}
|
||||
|
||||
sub dim_args () {
|
||||
my @args;
|
||||
foreach (qw(num_colors)) {
|
||||
push @args, { name => $_, type => 'int32', desc => "The palette $_" };
|
||||
}
|
||||
@args;
|
||||
}
|
||||
|
||||
sub palette_outargs {
|
||||
foreach (@outargs) {
|
||||
my $alias;
|
||||
if ($_->{type} eq 'string') {
|
||||
$alias = "GIMP_OBJECT (palette)->$_->{name}";
|
||||
} else {
|
||||
$alias = "palette->$_->{name}";
|
||||
}
|
||||
$alias = "g_strdup ($alias)" if $_->{type} eq 'string';
|
||||
$alias =~ s/num_colors/n_colors/ if $_->{name} =~ /num_colors/;
|
||||
$_->{alias} = $alias;
|
||||
$_->{no_declare} = 1;
|
||||
}
|
||||
}
|
||||
|
||||
sub color_arg {
|
||||
my $ground = (shift) . "ground";
|
||||
{
|
||||
|
@ -166,13 +195,167 @@ CODE
|
|||
);
|
||||
}
|
||||
|
||||
sub palette_list {
|
||||
$blurb = 'Retrieves a list of all of the available patterns';
|
||||
|
||||
$help = <<'HELP';
|
||||
This procedure returns a complete listing of available palettes. Each name
|
||||
returned can be used as input to the command 'gimp_palette_set_palette'.
|
||||
HELP
|
||||
|
||||
$author = 'Nathan Summers <rock@gimp.org>';
|
||||
$copyright = 'Nathan Summers';
|
||||
$date = '2001';
|
||||
|
||||
@outargs = (
|
||||
{ name => 'palette_list', type => 'stringarray',
|
||||
desc => 'The list of palette names',
|
||||
alias => 'palettes',
|
||||
array => { name => 'num_palettes',
|
||||
desc => 'The number of palettes in the list',
|
||||
alias => 'gimp->palette_factory->container->num_children', no_declare => 1 } }
|
||||
);
|
||||
|
||||
%invoke = (
|
||||
vars => [ 'GList *list = NULL', 'gint i = 0' ],
|
||||
code => <<'CODE'
|
||||
{
|
||||
palettes = g_new (gchar *, gimp->palette_factory->container->num_children);
|
||||
|
||||
success = ((list = GIMP_LIST (gimp->palette_factory->container)->list) != NULL);
|
||||
|
||||
while (list)
|
||||
{
|
||||
palettes[i++] = g_strdup (GIMP_OBJECT (list->data)->name);
|
||||
list = list->next;
|
||||
}
|
||||
}
|
||||
CODE
|
||||
);
|
||||
}
|
||||
|
||||
sub palette_get_palette {
|
||||
$blurb = 'Retrieve information about the currently active palette.';
|
||||
|
||||
$help = <<'HELP';
|
||||
This procedure retrieves information about the currently active palette. This
|
||||
includes the name, and the number of colors.
|
||||
HELP
|
||||
|
||||
$author = 'Nathan Summers <rock@gimp.org>';
|
||||
$copyright = 'Nathan Summers';
|
||||
$date = '2001';
|
||||
|
||||
@outargs = (
|
||||
&palette_arg,
|
||||
&dim_args,
|
||||
);
|
||||
|
||||
&palette_outargs;
|
||||
|
||||
%invoke = (
|
||||
vars => [ 'GimpPalette *palette' ],
|
||||
code => 'success = (palette = gimp_context_get_palette (gimp_get_current_context (gimp))) != NULL;'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
sub palette_set_palette {
|
||||
$blurb = 'Set the specified palette as the active palette.';
|
||||
|
||||
$help = <<'HELP';
|
||||
This procedure allows the active palette to be set by specifying its name.
|
||||
The name is simply a string which corresponds to one of the names of the
|
||||
installed palettes. If no matching palette is found, this procedure will
|
||||
return an error. Otherwise, the specified palette becomes active and will be
|
||||
used in all subsequent palette operations.
|
||||
HELP
|
||||
|
||||
$author = 'Nathan Summers <rock@gimp.org>';
|
||||
$copyright = 'Nathan Summers';
|
||||
$date = '2001';
|
||||
|
||||
@inargs = ( &palette_arg );
|
||||
|
||||
%invoke = (
|
||||
vars => [ 'GimpPalette *palette', 'GList *list' ],
|
||||
code => <<'CODE'
|
||||
{
|
||||
success = FALSE;
|
||||
|
||||
for (list = GIMP_LIST (gimp->palette_factory->container)->list;
|
||||
list;
|
||||
list = g_list_next (list))
|
||||
{
|
||||
palette = (GimpPalette *) list->data;
|
||||
|
||||
if (! strcmp (GIMP_OBJECT (palette)->name, name))
|
||||
{
|
||||
gimp_context_set_palette (gimp_get_current_context (gimp), palette);
|
||||
success = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
CODE
|
||||
);
|
||||
}
|
||||
|
||||
sub palette_get_entry {
|
||||
$blurb = 'Gets the specified palette entry from the currently active pallette.';
|
||||
|
||||
$help = <<'HELP';
|
||||
This procedure returns the color of the zero-based entry specifed for the current palette.
|
||||
It returns an error if the entry does not exist.
|
||||
HELP
|
||||
|
||||
$author = 'Nathan Summers <rock@gimp.org>';
|
||||
$copyright = 'Nathan Summers';
|
||||
$date = '2001';
|
||||
|
||||
@inargs = (
|
||||
{ name => 'entry_num', type => 'int32',
|
||||
desc => 'The entry to retrieve',
|
||||
alias => 'entry'}
|
||||
);
|
||||
@outargs = (
|
||||
{ name => 'color', type => 'color',
|
||||
desc => 'The color requested',
|
||||
alias => 'color'}
|
||||
);
|
||||
|
||||
%invoke = (
|
||||
vars => [ 'GimpPalette *palette'],
|
||||
code => <<'CODE'
|
||||
{
|
||||
success = TRUE;
|
||||
|
||||
palette = gimp_context_get_palette (gimp_get_current_context(gimp));
|
||||
|
||||
if (entry >= palette->n_colors) {
|
||||
success = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
color=*(GimpRGB *) g_list_nth(palette->colors, entry)->data;
|
||||
}
|
||||
}
|
||||
CODE
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@headers = qw("core/gimp.h" "core/gimpcontext.h"
|
||||
"core/gimpdatafactory.h");
|
||||
"core/gimpdatafactory.h" "core/gimplist.h" "core/gimppalette.h");
|
||||
|
||||
@procs = qw(palette_get_foreground palette_get_background
|
||||
palette_set_foreground palette_set_background
|
||||
palette_set_default_colors palette_swap_colors
|
||||
palette_refresh);
|
||||
palette_refresh
|
||||
palette_list
|
||||
palette_get_palette palette_set_palette
|
||||
palette_get_entry);
|
||||
%exports = (app => [@procs], lib => [@procs]);
|
||||
|
||||
$desc = 'Palette';
|
||||
|
|
Loading…
Reference in New Issue