added image_get_name. Also, no longer duplicate the string in

2002-05-07  Manish Singh  <yosh@gimp.org>

        * tools/pdbgen/pdb/image.pdb: added image_get_name. Also, no longer
        duplicate the string in image_get_filename, since
        gimp_image_get_filename() returns a caller freed string now.

        * app/pdb/image_cmds.c
        * app/pdb/internal_procs.c
        * libgimp/gimpimage_pdb.[ch]: regenerated
This commit is contained in:
Manish Singh 2002-05-07 22:35:29 +00:00 committed by Manish Singh
parent b6c56ff9ac
commit 182eb5170c
6 changed files with 161 additions and 25 deletions

View File

@ -1,3 +1,13 @@
2002-05-07 Manish Singh <yosh@gimp.org>
* tools/pdbgen/pdb/image.pdb: added image_get_name. Also, no longer
duplicate the string in image_get_filename, since
gimp_image_get_filename() returns a caller freed string now.
* app/pdb/image_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpimage_pdb.[ch]: regenerated
2002-05-07 Michael Natterer <mitch@gimp.org>
* app/Makefile.am

View File

@ -106,6 +106,7 @@ static ProcRecord image_get_component_visible_proc;
static ProcRecord image_set_component_visible_proc;
static ProcRecord image_get_filename_proc;
static ProcRecord image_set_filename_proc;
static ProcRecord image_get_name_proc;
static ProcRecord image_get_resolution_proc;
static ProcRecord image_set_resolution_proc;
static ProcRecord image_get_unit_proc;
@ -171,6 +172,7 @@ register_image_procs (Gimp *gimp)
procedural_db_register (gimp, &image_set_component_visible_proc);
procedural_db_register (gimp, &image_get_filename_proc);
procedural_db_register (gimp, &image_set_filename_proc);
procedural_db_register (gimp, &image_get_name_proc);
procedural_db_register (gimp, &image_get_resolution_proc);
procedural_db_register (gimp, &image_set_resolution_proc);
procedural_db_register (gimp, &image_get_unit_proc);
@ -3507,7 +3509,7 @@ image_get_filename_invoker (Gimp *gimp,
return_args = procedural_db_return_args (&image_get_filename_proc, success);
if (success)
return_args[1].value.pdb_pointer = g_strdup (gimp_image_get_filename (gimage));
return_args[1].value.pdb_pointer = gimp_image_get_filename (gimage);
return return_args;
}
@ -3598,6 +3600,75 @@ static ProcRecord image_set_filename_proc =
{ { image_set_filename_invoker } }
};
static Argument *
image_get_name_invoker (Gimp *gimp,
Argument *args)
{
gboolean success = TRUE;
Argument *return_args;
GimpImage *gimage;
gchar *name;
gchar *filename;
gimage = gimp_image_get_by_ID (gimp, args[0].value.pdb_int);
if (gimage == NULL)
success = FALSE;
if (success)
{
filename = gimp_image_get_filename (gimage);
if (filename)
{
name = g_path_get_basename (filename);
g_free (filename);
}
else
name = g_strdup (_("Untitled"));
}
return_args = procedural_db_return_args (&image_get_name_proc, success);
if (success)
return_args[1].value.pdb_pointer = name;
return return_args;
}
static ProcArg image_get_name_inargs[] =
{
{
GIMP_PDB_IMAGE,
"image",
"The image"
}
};
static ProcArg image_get_name_outargs[] =
{
{
GIMP_PDB_STRING,
"name",
"The name"
}
};
static ProcRecord image_get_name_proc =
{
"gimp_image_get_name",
"Returns the specified image's name.",
"This procedure returns the specified image's name.",
"Spencer Kimball & Peter Mattis",
"Spencer Kimball & Peter Mattis",
"1995-1996",
GIMP_INTERNAL,
1,
image_get_name_inargs,
1,
image_get_name_outargs,
{ { image_get_name_invoker } }
};
static Argument *
image_get_resolution_invoker (Gimp *gimp,
Argument *args)

View File

@ -67,7 +67,7 @@ void register_transform_tools_procs (Gimp *gimp);
void register_undo_procs (Gimp *gimp);
void register_unit_procs (Gimp *gimp);
/* 335 procedures registered total */
/* 336 procedures registered total */
void
internal_procs_init (Gimp *gimp,
@ -85,7 +85,7 @@ internal_procs_init (Gimp *gimp,
(* status_callback) (NULL, _("Channel"), 0.042);
register_channel_procs (gimp);
(* status_callback) (NULL, _("Color"), 0.09);
(* status_callback) (NULL, _("Color"), 0.089);
register_color_procs (gimp);
(* status_callback) (NULL, _("Convert"), 0.125);
@ -97,67 +97,67 @@ internal_procs_init (Gimp *gimp,
(* status_callback) (NULL, _("Drawable procedures"), 0.143);
register_drawable_procs (gimp);
(* status_callback) (NULL, _("Edit procedures"), 0.212);
(* status_callback) (NULL, _("Edit procedures"), 0.211);
register_edit_procs (gimp);
(* status_callback) (NULL, _("File Operations"), 0.23);
(* status_callback) (NULL, _("File Operations"), 0.229);
register_fileops_procs (gimp);
(* status_callback) (NULL, _("Floating selections"), 0.254);
(* status_callback) (NULL, _("Floating selections"), 0.253);
register_floating_sel_procs (gimp);
(* status_callback) (NULL, _("Gimprc procedures"), 0.272);
(* status_callback) (NULL, _("Gimprc procedures"), 0.271);
register_gimprc_procs (gimp);
(* status_callback) (NULL, _("Gradient UI"), 0.284);
(* status_callback) (NULL, _("Gradient UI"), 0.283);
register_gradient_select_procs (gimp);
(* status_callback) (NULL, _("Gradients"), 0.293);
(* status_callback) (NULL, _("Gradients"), 0.292);
register_gradients_procs (gimp);
(* status_callback) (NULL, _("Guide procedures"), 0.313);
(* status_callback) (NULL, _("Guide procedures"), 0.312);
register_guides_procs (gimp);
(* status_callback) (NULL, _("Help procedures"), 0.331);
(* status_callback) (NULL, _("Help procedures"), 0.33);
register_help_procs (gimp);
(* status_callback) (NULL, _("Image"), 0.334);
(* status_callback) (NULL, _("Image"), 0.333);
register_image_procs (gimp);
(* status_callback) (NULL, _("Layer"), 0.516);
(* status_callback) (NULL, _("Layer"), 0.518);
register_layer_procs (gimp);
(* status_callback) (NULL, _("Interface"), 0.609);
(* status_callback) (NULL, _("Interface"), 0.61);
register_message_procs (gimp);
(* status_callback) (NULL, _("Miscellaneous"), 0.618);
(* status_callback) (NULL, _("Miscellaneous"), 0.619);
register_misc_procs (gimp);
(* status_callback) (NULL, _("Misc Tool procedures"), 0.624);
(* status_callback) (NULL, _("Misc Tool procedures"), 0.625);
register_misc_tools_procs (gimp);
(* status_callback) (NULL, _("Paint Tool procedures"), 0.633);
(* status_callback) (NULL, _("Paint Tool procedures"), 0.634);
register_paint_tools_procs (gimp);
(* status_callback) (NULL, _("Palette"), 0.678);
(* status_callback) (NULL, _("Palette"), 0.679);
register_palette_procs (gimp);
(* status_callback) (NULL, _("Palette UI"), 0.696);
register_palette_select_procs (gimp);
(* status_callback) (NULL, _("Palettes"), 0.704);
(* status_callback) (NULL, _("Palettes"), 0.705);
register_palettes_procs (gimp);
(* status_callback) (NULL, _("Parasite procedures"), 0.719);
(* status_callback) (NULL, _("Parasite procedures"), 0.72);
register_parasite_procs (gimp);
(* status_callback) (NULL, _("Paths"), 0.755);
(* status_callback) (NULL, _("Paths"), 0.756);
register_paths_procs (gimp);
(* status_callback) (NULL, _("Pattern UI"), 0.794);
(* status_callback) (NULL, _("Pattern UI"), 0.795);
register_pattern_select_procs (gimp);
(* status_callback) (NULL, _("Patterns"), 0.803);
(* status_callback) (NULL, _("Patterns"), 0.804);
register_patterns_procs (gimp);
(* status_callback) (NULL, _("Plug-in"), 0.818);
@ -169,10 +169,10 @@ internal_procs_init (Gimp *gimp,
(* status_callback) (NULL, _("Image mask"), 0.86);
register_selection_procs (gimp);
(* status_callback) (NULL, _("Selection Tool procedures"), 0.913);
(* status_callback) (NULL, _("Selection Tool procedures"), 0.914);
register_selection_tools_procs (gimp);
(* status_callback) (NULL, _("Text procedures"), 0.928);
(* status_callback) (NULL, _("Text procedures"), 0.929);
register_text_tool_procs (gimp);
(* status_callback) (NULL, _("Tool procedures"), 0.94);

View File

@ -2028,6 +2028,36 @@ gimp_image_set_filename (gint32 image_ID,
return success;
}
/**
* gimp_image_get_name:
* @image_ID: The image.
*
* Returns the specified image's name.
*
* This procedure returns the specified image's name.
*
* Returns: The name.
*/
gchar *
gimp_image_get_name (gint32 image_ID)
{
GimpParam *return_vals;
gint nreturn_vals;
gchar *name = NULL;
return_vals = gimp_run_procedure ("gimp_image_get_name",
&nreturn_vals,
GIMP_PDB_IMAGE, image_ID,
GIMP_PDB_END);
if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
name = g_strdup (return_vals[1].data.d_string);
gimp_destroy_params (return_vals, nreturn_vals);
return name;
}
/**
* gimp_image_get_resolution:
* @image_ID: The image.

View File

@ -139,6 +139,7 @@ gboolean gimp_image_set_component_visible (gint32 image
gchar* gimp_image_get_filename (gint32 image_ID);
gboolean gimp_image_set_filename (gint32 image_ID,
gchar *filename);
gchar* gimp_image_get_name (gint32 image_ID);
gboolean gimp_image_get_resolution (gint32 image_ID,
gdouble *xresolution,
gdouble *yresolution);

View File

@ -1218,8 +1218,32 @@ CODE2
-- if it was loaded or has since been saved. Otherwise, returns NULL.
HELP
$outargs[0]->{alias} =~ s/g_strdup \((.*)\)/$1/;
CODE
&image_accessors('name', 'string', 'name', 1,
[ <<'CODE1', undef ]);
delete @{$outargs[0]}{qw(alias no_declare)};
%invoke = (
vars => [ 'gchar *filename' ],
code => <<'CODE2'
{
filename = gimp_image_get_filename (gimage);
if (filename)
{
name = g_path_get_basename (filename);
g_free (filename);
}
else
name = g_strdup (_("Untitled"));
}
CODE2
);
CODE1
$#procs--;
&image_accessors('resolution', 'float', 'resolution', 0,
[ <<'CODE1', <<'CODE2' ]);
$help =~ s/\. $/ /;