mirror of https://github.com/GNOME/gimp.git
app/drawable_cmds.c The PDB procedures
* app/drawable_cmds.c * tools/pdbgen/pdb/drawable.pdb: The PDB procedures gimp_drawable_is_[layer|channel|channel_mask] were not renamed, but changed all over the place. This made the rotate plug-ins fail. * app/procedural_db.c: Spit out a warning if a procedure wasn't found in the PDB. Actually free the hash_table entries on procedural_db_free(). --Sven
This commit is contained in:
parent
b2773c790e
commit
48e3c7a412
12
ChangeLog
12
ChangeLog
|
@ -1,3 +1,15 @@
|
||||||
|
Wed Oct 27 22:39:56 MEST 1999 Sven Neumann <sven@gimp.org>
|
||||||
|
|
||||||
|
* app/drawable_cmds.c
|
||||||
|
* tools/pdbgen/pdb/drawable.pdb: The PDB procedures
|
||||||
|
gimp_drawable_is_[layer|channel|channel_mask] were not renamed,
|
||||||
|
but changed all over the place. This made the rotate plug-ins
|
||||||
|
fail.
|
||||||
|
|
||||||
|
* app/procedural_db.c: Spit out a warning if a procedure wasn't
|
||||||
|
found in the PDB. Actually free the hash_table entries on
|
||||||
|
procedural_db_free().
|
||||||
|
|
||||||
Wed Oct 27 13:37:54 CEST 1999 Marc Lehmann <pcg@goof.com>
|
Wed Oct 27 13:37:54 CEST 1999 Marc Lehmann <pcg@goof.com>
|
||||||
|
|
||||||
* gimp_parasite_find users where not updated to the new syntax
|
* gimp_parasite_find users where not updated to the new syntax
|
||||||
|
|
|
@ -42,9 +42,9 @@ static ProcRecord drawable_bytes_proc;
|
||||||
static ProcRecord drawable_width_proc;
|
static ProcRecord drawable_width_proc;
|
||||||
static ProcRecord drawable_height_proc;
|
static ProcRecord drawable_height_proc;
|
||||||
static ProcRecord drawable_offsets_proc;
|
static ProcRecord drawable_offsets_proc;
|
||||||
static ProcRecord drawable_layer_proc;
|
static ProcRecord drawable_is_layer_proc;
|
||||||
static ProcRecord drawable_layer_mask_proc;
|
static ProcRecord drawable_is_layer_mask_proc;
|
||||||
static ProcRecord drawable_channel_proc;
|
static ProcRecord drawable_is_channel_proc;
|
||||||
static ProcRecord drawable_get_pixel_proc;
|
static ProcRecord drawable_get_pixel_proc;
|
||||||
static ProcRecord drawable_set_pixel_proc;
|
static ProcRecord drawable_set_pixel_proc;
|
||||||
static ProcRecord drawable_set_image_proc;
|
static ProcRecord drawable_set_image_proc;
|
||||||
|
@ -68,9 +68,9 @@ register_drawable_procs (void)
|
||||||
procedural_db_register (&drawable_width_proc);
|
procedural_db_register (&drawable_width_proc);
|
||||||
procedural_db_register (&drawable_height_proc);
|
procedural_db_register (&drawable_height_proc);
|
||||||
procedural_db_register (&drawable_offsets_proc);
|
procedural_db_register (&drawable_offsets_proc);
|
||||||
procedural_db_register (&drawable_layer_proc);
|
procedural_db_register (&drawable_is_layer_proc);
|
||||||
procedural_db_register (&drawable_layer_mask_proc);
|
procedural_db_register (&drawable_is_layer_mask_proc);
|
||||||
procedural_db_register (&drawable_channel_proc);
|
procedural_db_register (&drawable_is_channel_proc);
|
||||||
procedural_db_register (&drawable_get_pixel_proc);
|
procedural_db_register (&drawable_get_pixel_proc);
|
||||||
procedural_db_register (&drawable_set_pixel_proc);
|
procedural_db_register (&drawable_set_pixel_proc);
|
||||||
procedural_db_register (&drawable_set_image_proc);
|
procedural_db_register (&drawable_set_image_proc);
|
||||||
|
@ -875,20 +875,20 @@ static ProcRecord drawable_offsets_proc =
|
||||||
};
|
};
|
||||||
|
|
||||||
static Argument *
|
static Argument *
|
||||||
drawable_layer_invoker (Argument *args)
|
drawable_is_layer_invoker (Argument *args)
|
||||||
{
|
{
|
||||||
Argument *return_args;
|
Argument *return_args;
|
||||||
GimpDrawable *drawable;
|
GimpDrawable *drawable;
|
||||||
|
|
||||||
drawable = gimp_drawable_get_ID (args[0].value.pdb_int);
|
drawable = gimp_drawable_get_ID (args[0].value.pdb_int);
|
||||||
|
|
||||||
return_args = procedural_db_return_args (&drawable_layer_proc, TRUE);
|
return_args = procedural_db_return_args (&drawable_is_layer_proc, TRUE);
|
||||||
return_args[1].value.pdb_int = drawable_layer (drawable) ? TRUE : FALSE;
|
return_args[1].value.pdb_int = drawable_layer (drawable) ? TRUE : FALSE;
|
||||||
|
|
||||||
return return_args;
|
return return_args;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ProcArg drawable_layer_inargs[] =
|
static ProcArg drawable_is_layer_inargs[] =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
PDB_DRAWABLE,
|
PDB_DRAWABLE,
|
||||||
|
@ -897,7 +897,7 @@ static ProcArg drawable_layer_inargs[] =
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static ProcArg drawable_layer_outargs[] =
|
static ProcArg drawable_is_layer_outargs[] =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
PDB_INT32,
|
PDB_INT32,
|
||||||
|
@ -906,9 +906,9 @@ static ProcArg drawable_layer_outargs[] =
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static ProcRecord drawable_layer_proc =
|
static ProcRecord drawable_is_layer_proc =
|
||||||
{
|
{
|
||||||
"gimp_drawable_layer",
|
"gimp_drawable_is_layer",
|
||||||
"Returns whether the drawable is a layer.",
|
"Returns whether the drawable is a layer.",
|
||||||
"This procedure returns non-zero if the specified drawable is a layer.",
|
"This procedure returns non-zero if the specified drawable is a layer.",
|
||||||
"Spencer Kimball & Peter Mattis",
|
"Spencer Kimball & Peter Mattis",
|
||||||
|
@ -916,27 +916,27 @@ static ProcRecord drawable_layer_proc =
|
||||||
"1995-1996",
|
"1995-1996",
|
||||||
PDB_INTERNAL,
|
PDB_INTERNAL,
|
||||||
1,
|
1,
|
||||||
drawable_layer_inargs,
|
drawable_is_layer_inargs,
|
||||||
1,
|
1,
|
||||||
drawable_layer_outargs,
|
drawable_is_layer_outargs,
|
||||||
{ { drawable_layer_invoker } }
|
{ { drawable_is_layer_invoker } }
|
||||||
};
|
};
|
||||||
|
|
||||||
static Argument *
|
static Argument *
|
||||||
drawable_layer_mask_invoker (Argument *args)
|
drawable_is_layer_mask_invoker (Argument *args)
|
||||||
{
|
{
|
||||||
Argument *return_args;
|
Argument *return_args;
|
||||||
GimpDrawable *drawable;
|
GimpDrawable *drawable;
|
||||||
|
|
||||||
drawable = gimp_drawable_get_ID (args[0].value.pdb_int);
|
drawable = gimp_drawable_get_ID (args[0].value.pdb_int);
|
||||||
|
|
||||||
return_args = procedural_db_return_args (&drawable_layer_mask_proc, TRUE);
|
return_args = procedural_db_return_args (&drawable_is_layer_mask_proc, TRUE);
|
||||||
return_args[1].value.pdb_int = drawable_layer_mask (drawable) ? TRUE : FALSE;
|
return_args[1].value.pdb_int = drawable_layer_mask (drawable) ? TRUE : FALSE;
|
||||||
|
|
||||||
return return_args;
|
return return_args;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ProcArg drawable_layer_mask_inargs[] =
|
static ProcArg drawable_is_layer_mask_inargs[] =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
PDB_DRAWABLE,
|
PDB_DRAWABLE,
|
||||||
|
@ -945,7 +945,7 @@ static ProcArg drawable_layer_mask_inargs[] =
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static ProcArg drawable_layer_mask_outargs[] =
|
static ProcArg drawable_is_layer_mask_outargs[] =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
PDB_INT32,
|
PDB_INT32,
|
||||||
|
@ -954,9 +954,9 @@ static ProcArg drawable_layer_mask_outargs[] =
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static ProcRecord drawable_layer_mask_proc =
|
static ProcRecord drawable_is_layer_mask_proc =
|
||||||
{
|
{
|
||||||
"gimp_drawable_layer_mask",
|
"gimp_drawable_is_layer_mask",
|
||||||
"Returns whether the drawable is a layer mask.",
|
"Returns whether the drawable is a layer mask.",
|
||||||
"This procedure returns non-zero if the specified drawable is a layer mask.",
|
"This procedure returns non-zero if the specified drawable is a layer mask.",
|
||||||
"Spencer Kimball & Peter Mattis",
|
"Spencer Kimball & Peter Mattis",
|
||||||
|
@ -964,27 +964,27 @@ static ProcRecord drawable_layer_mask_proc =
|
||||||
"1995-1996",
|
"1995-1996",
|
||||||
PDB_INTERNAL,
|
PDB_INTERNAL,
|
||||||
1,
|
1,
|
||||||
drawable_layer_mask_inargs,
|
drawable_is_layer_mask_inargs,
|
||||||
1,
|
1,
|
||||||
drawable_layer_mask_outargs,
|
drawable_is_layer_mask_outargs,
|
||||||
{ { drawable_layer_mask_invoker } }
|
{ { drawable_is_layer_mask_invoker } }
|
||||||
};
|
};
|
||||||
|
|
||||||
static Argument *
|
static Argument *
|
||||||
drawable_channel_invoker (Argument *args)
|
drawable_is_channel_invoker (Argument *args)
|
||||||
{
|
{
|
||||||
Argument *return_args;
|
Argument *return_args;
|
||||||
GimpDrawable *drawable;
|
GimpDrawable *drawable;
|
||||||
|
|
||||||
drawable = gimp_drawable_get_ID (args[0].value.pdb_int);
|
drawable = gimp_drawable_get_ID (args[0].value.pdb_int);
|
||||||
|
|
||||||
return_args = procedural_db_return_args (&drawable_channel_proc, TRUE);
|
return_args = procedural_db_return_args (&drawable_is_channel_proc, TRUE);
|
||||||
return_args[1].value.pdb_int = drawable_channel (drawable) ? TRUE : FALSE;
|
return_args[1].value.pdb_int = drawable_channel (drawable) ? TRUE : FALSE;
|
||||||
|
|
||||||
return return_args;
|
return return_args;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ProcArg drawable_channel_inargs[] =
|
static ProcArg drawable_is_channel_inargs[] =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
PDB_DRAWABLE,
|
PDB_DRAWABLE,
|
||||||
|
@ -993,7 +993,7 @@ static ProcArg drawable_channel_inargs[] =
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static ProcArg drawable_channel_outargs[] =
|
static ProcArg drawable_is_channel_outargs[] =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
PDB_INT32,
|
PDB_INT32,
|
||||||
|
@ -1002,9 +1002,9 @@ static ProcArg drawable_channel_outargs[] =
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static ProcRecord drawable_channel_proc =
|
static ProcRecord drawable_is_channel_proc =
|
||||||
{
|
{
|
||||||
"gimp_drawable_channel",
|
"gimp_drawable_is_channel",
|
||||||
"Returns whether the drawable is a channel.",
|
"Returns whether the drawable is a channel.",
|
||||||
"This procedure returns non-zero if the specified drawable is a channel.",
|
"This procedure returns non-zero if the specified drawable is a channel.",
|
||||||
"Spencer Kimball & Peter Mattis",
|
"Spencer Kimball & Peter Mattis",
|
||||||
|
@ -1012,10 +1012,10 @@ static ProcRecord drawable_channel_proc =
|
||||||
"1995-1996",
|
"1995-1996",
|
||||||
PDB_INTERNAL,
|
PDB_INTERNAL,
|
||||||
1,
|
1,
|
||||||
drawable_channel_inargs,
|
drawable_is_channel_inargs,
|
||||||
1,
|
1,
|
||||||
drawable_channel_outargs,
|
drawable_is_channel_outargs,
|
||||||
{ { drawable_channel_invoker } }
|
{ { drawable_is_channel_invoker } }
|
||||||
};
|
};
|
||||||
|
|
||||||
static Argument *
|
static Argument *
|
||||||
|
|
|
@ -47,11 +47,24 @@ procedural_db_init (void)
|
||||||
pdb_id_init ();
|
pdb_id_init ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
procedural_db_free_entry (gpointer key,
|
||||||
|
gpointer value,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
if (value)
|
||||||
|
g_list_free (value);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
procedural_db_free (void)
|
procedural_db_free (void)
|
||||||
{
|
{
|
||||||
if (procedural_ht)
|
if (procedural_ht)
|
||||||
g_hash_table_destroy (procedural_ht);
|
{
|
||||||
|
g_hash_table_foreach (procedural_ht, procedural_db_free_entry, NULL);
|
||||||
|
g_hash_table_destroy (procedural_ht);
|
||||||
|
}
|
||||||
|
|
||||||
procedural_ht = NULL;
|
procedural_ht = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,6 +132,16 @@ procedural_db_execute (gchar *name,
|
||||||
|
|
||||||
list = g_hash_table_lookup (procedural_ht, (gpointer) name);
|
list = g_hash_table_lookup (procedural_ht, (gpointer) name);
|
||||||
|
|
||||||
|
if (list == NULL)
|
||||||
|
{
|
||||||
|
g_message (_("PDB calling error %s not found"), name);
|
||||||
|
|
||||||
|
return_args = (Argument *) g_malloc (sizeof (Argument));
|
||||||
|
return_args->arg_type = PDB_STATUS;
|
||||||
|
return_args->value.pdb_int = PDB_CALLING_ERROR;
|
||||||
|
return return_args;
|
||||||
|
}
|
||||||
|
|
||||||
while (list)
|
while (list)
|
||||||
{
|
{
|
||||||
if ((procedure = (ProcRecord *) list->data) == NULL)
|
if ((procedure = (ProcRecord *) list->data) == NULL)
|
||||||
|
|
|
@ -309,15 +309,15 @@ HELP
|
||||||
%invoke = ( code => 'drawable_offsets (drawable, &offset_x, &offset_y);' );
|
%invoke = ( code => 'drawable_offsets (drawable, &offset_x, &offset_y);' );
|
||||||
}
|
}
|
||||||
|
|
||||||
sub drawable_layer {
|
sub drawable_is_layer {
|
||||||
&drawable_is_proc('layer');
|
&drawable_is_proc('layer');
|
||||||
}
|
}
|
||||||
|
|
||||||
sub drawable_layer_mask {
|
sub drawable_is_layer_mask {
|
||||||
&drawable_is_proc('layer mask');
|
&drawable_is_proc('layer mask');
|
||||||
}
|
}
|
||||||
|
|
||||||
sub drawable_channel {
|
sub drawable_is_channel {
|
||||||
&drawable_is_proc('channel');
|
&drawable_is_proc('channel');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -509,8 +509,8 @@ CODE
|
||||||
drawable_mask_bounds drawable_image drawable_type
|
drawable_mask_bounds drawable_image drawable_type
|
||||||
drawable_has_alpha drawable_type_with_alpha drawable_is_rgb
|
drawable_has_alpha drawable_type_with_alpha drawable_is_rgb
|
||||||
drawable_is_gray drawable_is_indexed drawable_bytes drawable_width
|
drawable_is_gray drawable_is_indexed drawable_bytes drawable_width
|
||||||
drawable_height drawable_offsets drawable_layer
|
drawable_height drawable_offsets drawable_is_layer
|
||||||
drawable_layer_mask drawable_channel drawable_get_pixel
|
drawable_is_layer_mask drawable_is_channel drawable_get_pixel
|
||||||
drawable_set_pixel drawable_set_image drawable_thumbnail);
|
drawable_set_pixel drawable_set_image drawable_thumbnail);
|
||||||
%exports = (app => [@procs], lib => [@procs]);
|
%exports = (app => [@procs], lib => [@procs]);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue