Removed the definitions of the tearoff menu items and build them on the

1999-11-25  Michael Natterer  <mitch@gimp.org>

	* app/menus.c: Removed the definitions of the tearoff menu items
	and build them on the fly. Added N_()-marked submenus instead so
	they get properly translated. Removed N_() from all separators.

	Hacked menu_translate(): Don't try to translate separators,
	tearoffs and the /File/MRUxx entries. Avoid multiple lookups in
	the "gimp-std-plugins" domain. Translating plug-in menu entries is
	still broken.

	Defined all filter categories for proper translation and a first
	try to order them and to add separators (please comment...).

	New Category /Filters/Web.

	(Did 'make update-po' in the po* directories and updated the
	german translations.)

	* app/about_dialog.c
	* app/brush_select.c
	* app/drawable.c
	* app/errors.c
	* app/free_select.c
	* app/gradient.c
	* app/info_dialog.c
	* app/plug_in.c
	* app/tool_options.c: minor i18n updates like removing _() from
	some error messages.

	* app/context_manager.c: a private context for the Xinput Airbrush.

	* plug-ins/common/video.c: Register under /Filters/Distorts

	* plug-ins/imagemap/imap_main.c: Register under /Filters/Web
	(Marc, what about putting "prepare for gif" and "webify" there?)

	* plug-ins/perl/po/de.po: s/Xtn/Xtns/g
This commit is contained in:
Michael Natterer 1999-11-25 11:35:48 +00:00 committed by Michael Natterer
parent e4d411f8c9
commit 720518b33a
68 changed files with 12070 additions and 10934 deletions

View File

@ -1,3 +1,42 @@
1999-11-25 Michael Natterer <mitch@gimp.org>
* app/menus.c: Removed the definitions of the tearoff menu items
and build them on the fly. Added N_()-marked submenus instead so
they get properly translated. Removed N_() from all separators.
Hacked menu_translate(): Don't try to translate separators,
tearoffs and the /File/MRUxx entries. Avoid multiple lookups in
the "gimp-std-plugins" domain. Translating plug-in menu entries is
still broken.
Defined all filter categories for proper translation and a first
try to order them and to add separators (please comment...).
New Category /Filters/Web.
(Did 'make update-po' in the po* directories and updated the
german translations.)
* app/about_dialog.c
* app/brush_select.c
* app/drawable.c
* app/errors.c
* app/free_select.c
* app/gradient.c
* app/info_dialog.c
* app/plug_in.c
* app/tool_options.c: minor i18n updates like removing _() from
some error messages.
* app/context_manager.c: a private context for the Xinput Airbrush.
* plug-ins/common/video.c: Register under /Filters/Distorts
* plug-ins/imagemap/imap_main.c: Register under /Filters/Web
(Marc, what about putting "prepare for gif" and "webify" there?)
* plug-ins/perl/po/de.po: s/Xtn/Xtns/g
Thu Nov 25 02:56:01 MET 1999 Sven Neumann <sven@gimp.org>
* app/blend.c

View File

@ -231,8 +231,8 @@ about_dialog_create (gint timeout)
gtk_widget_push_style (style);
gtk_style_unref (style);
label_text = g_strdup_printf("%s%s%s", _("Version "), GIMP_VERSION,
_(" brought to you by"));
label_text = g_strdup_printf (_("Version %s brought to you by"),
GIMP_VERSION);
label = gtk_label_new (label_text);
g_free(label_text);
label_text=NULL;

View File

@ -642,10 +642,10 @@ plug_in_def_add (PlugInDef *plug_in_def)
* of one of these things, but Nick Lamb's alien/unknown format
* loader needs to be able to register no extensions, prefixes or
* magics. -- austin 13/Feb/99 */
tmp = plug_in_def->proc_defs;
while (tmp)
for (tmp = plug_in_def->proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
if (!proc_def->extensions && !proc_def->prefixes && !proc_def->magics &&
proc_def->menu_path &&
(!strncmp (proc_def->menu_path, "<Load>", 6) ||
@ -653,12 +653,9 @@ plug_in_def_add (PlugInDef *plug_in_def)
{
proc_def->extensions = g_strdup("");
}
tmp = tmp->next;
}
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
tplug_in_def = tmp->data;
@ -685,8 +682,6 @@ plug_in_def_add (PlugInDef *plug_in_def)
}
return;
}
tmp = tmp->next;
}
write_pluginrc = TRUE;
@ -695,35 +690,29 @@ plug_in_def_add (PlugInDef *plug_in_def)
g_free (plug_in_def);
}
char*
plug_in_menu_path (char *name)
gchar *
plug_in_menu_path (gchar *name)
{
PlugInDef *plug_in_def;
PlugInProcDef *proc_def;
GSList *tmp, *tmp2;
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
plug_in_def = tmp->data;
tmp = tmp->next;
tmp2 = plug_in_def->proc_defs;
while (tmp2)
for (tmp2 = plug_in_def->proc_defs; tmp2; tmp2 = g_slist_next (tmp2))
{
proc_def = tmp2->data;
tmp2 = tmp2->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
}
}
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
@ -733,10 +722,10 @@ plug_in_menu_path (char *name)
}
PlugIn*
plug_in_new (char *name)
plug_in_new (gchar *name)
{
PlugIn *plug_in;
char *path;
gchar *path;
if (!g_path_is_absolute (name))
{
@ -813,7 +802,7 @@ plug_in_destroy (PlugIn *plug_in)
}
}
int
gint
plug_in_open (PlugIn *plug_in)
{
int my_read[2];
@ -950,17 +939,17 @@ plug_in_open (PlugIn *plug_in)
}
plug_in->open = TRUE;
return 1;
return TRUE;
}
return 0;
return FALSE;
}
void
plug_in_close (PlugIn *plug_in,
int kill_it)
gint kill_it)
{
int status;
gint status;
#ifndef G_OS_WIN32
struct timeval tv;
#endif
@ -1244,13 +1233,11 @@ plug_in_set_menu_sensitivity (GimpImageType type)
{
PlugInProcDef *proc_def;
GSList *tmp;
int sensitive = FALSE;
gboolean sensitive = FALSE;
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (proc_def->image_types_val && proc_def->menu_path)
{
@ -1280,6 +1267,7 @@ plug_in_set_menu_sensitivity (GimpImageType type)
}
menus_set_sensitive (proc_def->menu_path, sensitive);
if (last_plug_in && (last_plug_in == &(proc_def->db_info)))
{
menus_set_sensitive ("<Image>/Filters/Repeat last", sensitive);
@ -2478,7 +2466,7 @@ plug_in_proc_def_remove (PlugInProcDef *proc_def)
{
/* Destroy the menu item */
if (proc_def->menu_path)
menus_destroy (gettext(proc_def->menu_path));
menus_destroy (proc_def->menu_path);
/* Unregister the procedural database entry */
procedural_db_unregister (proc_def->db_info.name);

View File

@ -404,7 +404,7 @@ brush_select_new (gchar *title,
bsp->brush_name = gtk_label_new (_("No Brushes available"));
gtk_box_pack_start (GTK_BOX (util_box), bsp->brush_name, FALSE, FALSE, 4);
bsp->brush_size = gtk_label_new (_("(0 X 0)"));
bsp->brush_size = gtk_label_new ("(0 x 0)");
gtk_box_pack_start (GTK_BOX (util_box), bsp->brush_size, FALSE, FALSE, 2);
gtk_widget_show (bsp->brush_name);
@ -1420,7 +1420,7 @@ update_active_brush_field (BrushSelect *bsp)
gtk_label_set_text (GTK_LABEL (bsp->brush_name), brush->name);
/* Set brush size */
g_snprintf (buf, sizeof (buf), _("(%d X %d)"),
g_snprintf (buf, sizeof (buf), "(%d x %d)",
brush->mask->width, brush->mask->height);
gtk_label_set_text (GTK_LABEL (bsp->brush_size), buf);

View File

@ -159,6 +159,7 @@ context_manager_init (void)
case INK:
case DODGEBURN:
case SMUDGE:
case XINPUT_AIRBRUSH:
tool_info[i].tool_context =
gimp_context_new (tool_info[i].private_tip, global_tool_context);
break;
@ -170,12 +171,17 @@ context_manager_init (void)
}
if (! global_paint_options &&
active_tool && tool_info[active_tool->type].tool_context)
active_tool &&
tool_info[active_tool->type].tool_context)
{
gimp_context_set_parent (tool_info[active_tool->type].tool_context,
user_context);
}
else if (global_paint_options)
{
gimp_context_set_parent (global_tool_context, user_context);
}
}
void
context_manager_free (void)

View File

@ -245,7 +245,7 @@ selection_options_init (SelectionOptions *options,
_("Intelligent Scissors Options") :
((tool_type == BY_COLOR_SELECT) ?
_("By-Color Select Options") :
_("ERROR: Unknown Selection Type")))))))),
"ERROR: Unknown Selection Type"))))))),
reset_func);
/* the main vbox */
@ -558,7 +558,7 @@ paint_options_init (PaintOptions *options,
_("Smudge Options") :
((tool_type == XINPUT_AIRBRUSH) ?
_("Xinput Airbrush Options") :
_("ERROR: Unknown Paint Type"))))))))))))),
"ERROR: Unknown Paint Type")))))))))))),
reset_func);
/* initialize the paint options structure */

View File

@ -231,8 +231,8 @@ about_dialog_create (gint timeout)
gtk_widget_push_style (style);
gtk_style_unref (style);
label_text = g_strdup_printf("%s%s%s", _("Version "), GIMP_VERSION,
_(" brought to you by"));
label_text = g_strdup_printf (_("Version %s brought to you by"),
GIMP_VERSION);
label = gtk_label_new (label_text);
g_free(label_text);
label_text=NULL;

View File

@ -122,7 +122,7 @@ update_field (InfoField *field)
break;
default:
g_warning (_("Unknown info_dialog field type."));
g_warning ("Unknown info_dialog field type.");
break;
}

View File

@ -65,7 +65,7 @@ drawable_fill (GimpDrawable *drawable,
return;
default:
g_warning (_("drawable_fill called with unknown fill type"));
g_warning ("unknown fill type");
a = r = g = b = 0;
break;
}

View File

@ -77,7 +77,7 @@ gimp_fatal_error (gchar *fmt, ...)
va_list args;
va_start (args, fmt);
printf (_("%s: fatal error: %s\n"), prog_name, g_strdup_vprintf (fmt, args));
g_print ("%s: fatal error: %s\n", prog_name, g_strdup_vprintf (fmt, args));
va_end (args);
g_on_error_query (prog_name);
#else
@ -103,9 +103,9 @@ gimp_terminate (gchar *fmt, ...)
va_list args;
va_start (args, fmt);
printf ("%s terminated: ", prog_name);
g_print ("%s terminated: ", prog_name);
vprintf (fmt, args);
printf ("\n");
g_print ("\n");
va_end (args);
if (use_debug_handler)

View File

@ -70,7 +70,7 @@ add_point (int num_pts,
global_pts = (GdkPoint *) g_realloc ((void *) global_pts, sizeof (GdkPoint) * max_segs);
if (!global_pts)
gimp_fatal_error (_("add_point(): Unable to reallocate points array in free_select."));
gimp_fatal_error ("add_point(): Unable to reallocate points array in free_select.");
}
global_pts[num_pts].x = x;

View File

@ -773,7 +773,7 @@ gradient_get_color_at (gradient_t *gradient,
default:
grad_dump_gradient (gradient, stderr);
gimp_fatal_error (_("gradient_get_color_at(): Unknown gradient type %d"),
gimp_fatal_error ("gradient_get_color_at(): Unknown gradient type %d",
(int) seg->type);
break;
}
@ -830,7 +830,7 @@ gradient_get_color_at (gradient_t *gradient,
default:
grad_dump_gradient (gradient, stderr);
gimp_fatal_error (_("gradient_get_color_at(): Unknown coloring mode %d"),
gimp_fatal_error ("gradient_get_color_at(): Unknown coloring mode %d",
(int) seg->color);
break;
}
@ -1658,8 +1658,7 @@ ed_do_new_gradient_callback (GtkWidget *widget,
if (!gradient_name)
{
g_message (_("ed_do_new_gradient_callback(): "
"oops, received NULL in call_data"));
g_warning ("received NULL in call_data");
return;
}
@ -1725,8 +1724,7 @@ ed_do_copy_gradient_callback (GtkWidget *widget,
if (!gradient_name)
{
g_message (_("ed_do_copy_gradient_callback(): "
"oops, received NULL in call_data"));
g_warning ("received NULL in call_data");
return;
}
@ -1812,8 +1810,7 @@ ed_do_rename_gradient_callback (GtkWidget *widget,
if (!gradient_name)
{
g_message (_("ed_do_rename_gradient_callback(): "
"oops, received NULL in call_data"));
g_warning ("received NULL in call_data");
return;
}
@ -1827,8 +1824,7 @@ ed_do_rename_gradient_callback (GtkWidget *widget,
if (!grad || !grad_list)
{
g_message (_("ed_do_rename_gradient_callback(): "
"oops, can't find gradient to rename"));
g_warning ("can't find gradient to rename");
return;
}
@ -1929,8 +1925,7 @@ ed_do_delete_gradient_callback (GtkWidget *widget,
}
if (tmp == NULL)
gimp_fatal_error (_("ed_do_delete_gradient_callback(): "
"Could not find gradient to delete!"));
gimp_fatal_error ("Could not find gradient to delete!");
/* Delete gradient from gradients list */
gradients_list = g_slist_remove (gradients_list, curr_gradient);
@ -2010,8 +2005,7 @@ ed_do_save_pov_callback (GtkWidget *widget,
file = fopen (filename, "wb");
if (!file)
g_message (_("ed_do_save_pov_callback(): oops, could not open \"%s\""),
filename);
g_message (_("Could not open \"%s\""), filename);
else
{
fprintf (file, "/* color_map file created by the GIMP */\n");
@ -2745,8 +2739,8 @@ control_do_hint (gint x,
break;
default:
g_message ("control_do_hint: oops, in_handle is true "
"yet we got handle type %d", (int) handle);
g_warning ("in_handle is true yet we got handle type %d",
(int) handle);
break;
}
}
@ -2883,8 +2877,8 @@ control_button_press (gint x,
return;
default:
g_message ("control_button_press(): oops, in_handle is true "
"yet we got handle type %d", (int) handle);
g_warning ("in_handle is true yet we got handle type %d",
(int) handle);
return;
}
}
@ -2933,8 +2927,7 @@ control_point_in_handle (gint x,
break;
default:
g_message ("control_point_in_handle(): oops, can not handle drag mode %d",
(int) handle);
g_warning ("can not handle drag mode %d", (int) handle);
return FALSE;
}
@ -3028,7 +3021,7 @@ control_motion (gint x)
break;
default:
gimp_fatal_error (_("control_motion(): Attempt to move bogus handle %d"),
gimp_fatal_error ("Attempt to move bogus handle %d",
(int) g_editor->control_drag_mode);
break;
}

View File

@ -773,7 +773,7 @@ gradient_get_color_at (gradient_t *gradient,
default:
grad_dump_gradient (gradient, stderr);
gimp_fatal_error (_("gradient_get_color_at(): Unknown gradient type %d"),
gimp_fatal_error ("gradient_get_color_at(): Unknown gradient type %d",
(int) seg->type);
break;
}
@ -830,7 +830,7 @@ gradient_get_color_at (gradient_t *gradient,
default:
grad_dump_gradient (gradient, stderr);
gimp_fatal_error (_("gradient_get_color_at(): Unknown coloring mode %d"),
gimp_fatal_error ("gradient_get_color_at(): Unknown coloring mode %d",
(int) seg->color);
break;
}
@ -1658,8 +1658,7 @@ ed_do_new_gradient_callback (GtkWidget *widget,
if (!gradient_name)
{
g_message (_("ed_do_new_gradient_callback(): "
"oops, received NULL in call_data"));
g_warning ("received NULL in call_data");
return;
}
@ -1725,8 +1724,7 @@ ed_do_copy_gradient_callback (GtkWidget *widget,
if (!gradient_name)
{
g_message (_("ed_do_copy_gradient_callback(): "
"oops, received NULL in call_data"));
g_warning ("received NULL in call_data");
return;
}
@ -1812,8 +1810,7 @@ ed_do_rename_gradient_callback (GtkWidget *widget,
if (!gradient_name)
{
g_message (_("ed_do_rename_gradient_callback(): "
"oops, received NULL in call_data"));
g_warning ("received NULL in call_data");
return;
}
@ -1827,8 +1824,7 @@ ed_do_rename_gradient_callback (GtkWidget *widget,
if (!grad || !grad_list)
{
g_message (_("ed_do_rename_gradient_callback(): "
"oops, can't find gradient to rename"));
g_warning ("can't find gradient to rename");
return;
}
@ -1929,8 +1925,7 @@ ed_do_delete_gradient_callback (GtkWidget *widget,
}
if (tmp == NULL)
gimp_fatal_error (_("ed_do_delete_gradient_callback(): "
"Could not find gradient to delete!"));
gimp_fatal_error ("Could not find gradient to delete!");
/* Delete gradient from gradients list */
gradients_list = g_slist_remove (gradients_list, curr_gradient);
@ -2010,8 +2005,7 @@ ed_do_save_pov_callback (GtkWidget *widget,
file = fopen (filename, "wb");
if (!file)
g_message (_("ed_do_save_pov_callback(): oops, could not open \"%s\""),
filename);
g_message (_("Could not open \"%s\""), filename);
else
{
fprintf (file, "/* color_map file created by the GIMP */\n");
@ -2745,8 +2739,8 @@ control_do_hint (gint x,
break;
default:
g_message ("control_do_hint: oops, in_handle is true "
"yet we got handle type %d", (int) handle);
g_warning ("in_handle is true yet we got handle type %d",
(int) handle);
break;
}
}
@ -2883,8 +2877,8 @@ control_button_press (gint x,
return;
default:
g_message ("control_button_press(): oops, in_handle is true "
"yet we got handle type %d", (int) handle);
g_warning ("in_handle is true yet we got handle type %d",
(int) handle);
return;
}
}
@ -2933,8 +2927,7 @@ control_point_in_handle (gint x,
break;
default:
g_message ("control_point_in_handle(): oops, can not handle drag mode %d",
(int) handle);
g_warning ("can not handle drag mode %d", (int) handle);
return FALSE;
}
@ -3028,7 +3021,7 @@ control_motion (gint x)
break;
default:
gimp_fatal_error (_("control_motion(): Attempt to move bogus handle %d"),
gimp_fatal_error ("Attempt to move bogus handle %d",
(int) g_editor->control_drag_mode);
break;
}

View File

@ -231,8 +231,8 @@ about_dialog_create (gint timeout)
gtk_widget_push_style (style);
gtk_style_unref (style);
label_text = g_strdup_printf("%s%s%s", _("Version "), GIMP_VERSION,
_(" brought to you by"));
label_text = g_strdup_printf (_("Version %s brought to you by"),
GIMP_VERSION);
label = gtk_label_new (label_text);
g_free(label_text);
label_text=NULL;

View File

@ -404,7 +404,7 @@ brush_select_new (gchar *title,
bsp->brush_name = gtk_label_new (_("No Brushes available"));
gtk_box_pack_start (GTK_BOX (util_box), bsp->brush_name, FALSE, FALSE, 4);
bsp->brush_size = gtk_label_new (_("(0 X 0)"));
bsp->brush_size = gtk_label_new ("(0 x 0)");
gtk_box_pack_start (GTK_BOX (util_box), bsp->brush_size, FALSE, FALSE, 2);
gtk_widget_show (bsp->brush_name);
@ -1420,7 +1420,7 @@ update_active_brush_field (BrushSelect *bsp)
gtk_label_set_text (GTK_LABEL (bsp->brush_name), brush->name);
/* Set brush size */
g_snprintf (buf, sizeof (buf), _("(%d X %d)"),
g_snprintf (buf, sizeof (buf), "(%d x %d)",
brush->mask->width, brush->mask->height);
gtk_label_set_text (GTK_LABEL (bsp->brush_size), buf);

View File

@ -773,7 +773,7 @@ gradient_get_color_at (gradient_t *gradient,
default:
grad_dump_gradient (gradient, stderr);
gimp_fatal_error (_("gradient_get_color_at(): Unknown gradient type %d"),
gimp_fatal_error ("gradient_get_color_at(): Unknown gradient type %d",
(int) seg->type);
break;
}
@ -830,7 +830,7 @@ gradient_get_color_at (gradient_t *gradient,
default:
grad_dump_gradient (gradient, stderr);
gimp_fatal_error (_("gradient_get_color_at(): Unknown coloring mode %d"),
gimp_fatal_error ("gradient_get_color_at(): Unknown coloring mode %d",
(int) seg->color);
break;
}
@ -1658,8 +1658,7 @@ ed_do_new_gradient_callback (GtkWidget *widget,
if (!gradient_name)
{
g_message (_("ed_do_new_gradient_callback(): "
"oops, received NULL in call_data"));
g_warning ("received NULL in call_data");
return;
}
@ -1725,8 +1724,7 @@ ed_do_copy_gradient_callback (GtkWidget *widget,
if (!gradient_name)
{
g_message (_("ed_do_copy_gradient_callback(): "
"oops, received NULL in call_data"));
g_warning ("received NULL in call_data");
return;
}
@ -1812,8 +1810,7 @@ ed_do_rename_gradient_callback (GtkWidget *widget,
if (!gradient_name)
{
g_message (_("ed_do_rename_gradient_callback(): "
"oops, received NULL in call_data"));
g_warning ("received NULL in call_data");
return;
}
@ -1827,8 +1824,7 @@ ed_do_rename_gradient_callback (GtkWidget *widget,
if (!grad || !grad_list)
{
g_message (_("ed_do_rename_gradient_callback(): "
"oops, can't find gradient to rename"));
g_warning ("can't find gradient to rename");
return;
}
@ -1929,8 +1925,7 @@ ed_do_delete_gradient_callback (GtkWidget *widget,
}
if (tmp == NULL)
gimp_fatal_error (_("ed_do_delete_gradient_callback(): "
"Could not find gradient to delete!"));
gimp_fatal_error ("Could not find gradient to delete!");
/* Delete gradient from gradients list */
gradients_list = g_slist_remove (gradients_list, curr_gradient);
@ -2010,8 +2005,7 @@ ed_do_save_pov_callback (GtkWidget *widget,
file = fopen (filename, "wb");
if (!file)
g_message (_("ed_do_save_pov_callback(): oops, could not open \"%s\""),
filename);
g_message (_("Could not open \"%s\""), filename);
else
{
fprintf (file, "/* color_map file created by the GIMP */\n");
@ -2745,8 +2739,8 @@ control_do_hint (gint x,
break;
default:
g_message ("control_do_hint: oops, in_handle is true "
"yet we got handle type %d", (int) handle);
g_warning ("in_handle is true yet we got handle type %d",
(int) handle);
break;
}
}
@ -2883,8 +2877,8 @@ control_button_press (gint x,
return;
default:
g_message ("control_button_press(): oops, in_handle is true "
"yet we got handle type %d", (int) handle);
g_warning ("in_handle is true yet we got handle type %d",
(int) handle);
return;
}
}
@ -2933,8 +2927,7 @@ control_point_in_handle (gint x,
break;
default:
g_message ("control_point_in_handle(): oops, can not handle drag mode %d",
(int) handle);
g_warning ("can not handle drag mode %d", (int) handle);
return FALSE;
}
@ -3028,7 +3021,7 @@ control_motion (gint x)
break;
default:
gimp_fatal_error (_("control_motion(): Attempt to move bogus handle %d"),
gimp_fatal_error ("Attempt to move bogus handle %d",
(int) g_editor->control_drag_mode);
break;
}

View File

@ -122,7 +122,7 @@ update_field (InfoField *field)
break;
default:
g_warning (_("Unknown info_dialog field type."));
g_warning ("Unknown info_dialog field type.");
break;
}

View File

@ -64,12 +64,13 @@ static void help_debug_cmd_callback (GtkWidget *widget,
gpointer callback_data,
guint callback_action);
static gchar* G_GNUC_UNUSED dummyMenus[] =
static gchar G_GNUC_UNUSED *dummy_entries[] =
{
N_("/File/MRU00 "),
N_("/File/Dialogs"),
N_("/View/Zoom"),
N_("/Stack")
N_("/Filters/Render/Clouds"),
N_("/Filters/Render/Nature"),
N_("/Filters/Render/Pattern"),
N_("/Filters/Colors/Map"),
N_("/Filters/Misc")
};
static GSList *last_opened_raw_filenames = NULL;
@ -80,7 +81,7 @@ static GimpItemFactoryEntry toolbox_entries[] =
{
/* <Toolbox>/File */
{ { N_("/File/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/File"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/File/New..."), "<control>N", file_new_cmd_callback, 0 },
"file/dialogs/file_new.html", NULL },
@ -89,28 +90,28 @@ static GimpItemFactoryEntry toolbox_entries[] =
/* <Toolbox>/File/Acquire */
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Acquire/tearoff1"), NULL, NULL, 0, "<Tearoff>" },
{ { N_("/File/Acquire"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Preferences..."), NULL, file_pref_cmd_callback, 0 },
"file/dialogs/preferences/preferences.html", NULL },
/* <Toolbox>/File/Dialogs */
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Dialogs/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/File/Dialogs"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/File/Dialogs/Layers & Channels..."), "<control>L", dialogs_lc_cmd_callback, 0 },
"file/dialogs/layers_and_channels.html", NULL },
{ { N_("/File/Dialogs/Tool Options..."), "<control><shift>T", dialogs_tool_options_cmd_callback, 0 },
"file/dialogs/tool_options.html", NULL },
{ { N_("/File/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Dialogs/Brushes..."), "<control><shift>B", dialogs_brushes_cmd_callback, 0 },
"file/dialogs/brush_selection.html", NULL },
@ -123,14 +124,14 @@ static GimpItemFactoryEntry toolbox_entries[] =
{ { N_("/File/Dialogs/Indexed Palette..."), NULL, dialogs_indexed_palette_cmd_callback, 0 },
"file/dialogs/indexed_palette.html", NULL },
{ { N_("/File/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Dialogs/Input Devices..."), NULL, dialogs_input_devices_cmd_callback, 0 },
"file/dialogs/input_devices.html", NULL },
{ { N_("/File/Dialogs/Device Status..."), NULL, dialogs_device_status_cmd_callback, 0 },
"file/dialogs/device_status.html", NULL },
{ { N_("/File/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Dialogs/Document Index..."), NULL, raise_idea_callback, 0 },
"file/dialogs/document_index.html", NULL },
@ -139,27 +140,25 @@ static GimpItemFactoryEntry toolbox_entries[] =
{ { N_("/File/Dialogs/Display Filters..."), NULL, dialogs_display_filters_cmd_callback, 0 },
"file/dialogs/display_filters/display_filters.html", NULL },
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Toolbox>/Xtns */
{ { N_("/Xtns/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Xtns"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Xtns/Module Browser..."), NULL, dialogs_module_browser_cmd_callback, 0 },
"dialogs/module_browser.html", NULL },
{ { N_("/Xtns/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Xtns/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Toolbox>/Help */
{ { N_("/Help"), NULL, NULL, 0, "<LastBranch>" },
NULL, NULL },
{ { N_("/Help/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
NULL, NULL },
{ { N_("/Help/Help..."), "F1", help_help_cmd_callback, 0 },
"help/dialogs/help.html", NULL },
{ { N_("/Help/Context Help..."), "<shift>F1", help_context_help_cmd_callback, 0 },
@ -176,7 +175,7 @@ static guint n_toolbox_entries = (sizeof (toolbox_entries) /
static GtkItemFactory *toolbox_factory = NULL;
static GimpItemFactoryEntry file_menu_separator =
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL };
static GimpItemFactoryEntry toolbox_end =
@ -187,12 +186,12 @@ static GimpItemFactoryEntry toolbox_end =
static GimpItemFactoryEntry image_entries[] =
{
{ { N_("/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { "/tearoff1", NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
NULL, NULL },
/* <Image>/File */
{ { N_("/File/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/File"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/File/New..."), "<control>N", file_new_cmd_callback, 1 },
"file/dialogs/file_new.html", NULL },
@ -205,26 +204,26 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/File/Revert"), NULL, file_revert_cmd_callback, 0 },
"file/revert.html", NULL },
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_( "/File/Close"), "<control>W", file_close_cmd_callback, 0 },
"file/close.html", NULL },
{ { N_("/File/Quit"), "<control>Q", file_quit_cmd_callback, 0 },
"file/quit.html", NULL },
{ { N_("/File/---moved"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---moved", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Edit */
{ { N_("/Edit/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Edit"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Edit/Undo"), "<control>Z", edit_undo_cmd_callback, 0 },
"edit/undo.html", NULL },
{ { N_("/Edit/Redo"), "<control>R", edit_redo_cmd_callback, 0 },
"edit/redo.html", NULL },
{ { N_("/Edit/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Edit/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Edit/Cut"), "<control>X", edit_cut_cmd_callback, 0 },
"edit/cut.html", NULL },
@ -239,7 +238,7 @@ static GimpItemFactoryEntry image_entries[] =
/* <Image>/Edit/Buffer */
{ { N_("/Edit/Buffer/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Edit/Buffer"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Edit/Buffer/Cut Named..."), "<control><shift>X", edit_named_cut_cmd_callback, 0 },
"edit/dialogs/cut_named.html", NULL },
@ -248,7 +247,7 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Edit/Buffer/Paste Named..."), "<control><shift>V", edit_named_paste_cmd_callback, 0 },
"edit/dialogs/paste_named.html", NULL },
{ { N_("/Edit/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Edit/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Edit/Clear"), "<control>K", edit_clear_cmd_callback, 0 },
"edit/clear.html", NULL },
@ -257,12 +256,12 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Edit/Stroke"), NULL, edit_stroke_cmd_callback, 0 },
"edit/stroke.html", NULL },
{ { N_("/Edit/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Edit/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Select */
{ { N_("/Select/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Select"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Select/Invert"), "<control>I", select_invert_cmd_callback, 0 },
"select/invert.html", NULL },
@ -273,7 +272,7 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Select/Float"), "<control><shift>L", select_float_cmd_callback, 0 },
"select/float.html", NULL },
{ { N_("/Select/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Select/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Select/Feather..."), "<control><shift>F", select_feather_cmd_callback, 0 },
"select/dialogs/feather_selection.html", NULL },
@ -286,14 +285,14 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Select/Border..."), "<control><shift>B", select_border_cmd_callback, 0 },
"select/dialogs/border_selection.html", NULL },
{ { N_("/Select/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Select/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Select/Save To Channel"), NULL, select_save_cmd_callback, 0 },
"select/save_to_channel.html", NULL },
/* <Image>/View */
{ { N_("/View/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/View"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/View/Zoom In"), "equal", view_zoomin_cmd_callback, 0 },
"view/zoom.html", NULL },
@ -302,7 +301,7 @@ static GimpItemFactoryEntry image_entries[] =
/* <Image>/View/Zoom */
{ { N_("/View/Zoom/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/View/Zoom"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/View/Zoom/16:1"), NULL, view_zoom_16_1_cmd_callback, 0 },
"view/zoom.html", NULL },
@ -326,7 +325,7 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/View/Dot for dot"), NULL, view_dot_for_dot_cmd_callback, 0, "<ToggleItem>" },
"view/dot_for_dot.html", NULL },
{ { N_("/View/---"), NULL, NULL, 0, "<Separator>" },
{ { "/View/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/View/Info Window..."), "<control><shift>I", view_info_window_cmd_callback, 0 },
"view/dialogs/info_window.html", NULL },
@ -335,7 +334,7 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/View/Undo history..."), NULL, view_undo_history_cmd_callback, 0},
"view/dialogs/undo_history.html", NULL },
{ { N_("/View/---"), NULL, NULL, 0, "<Separator>" },
{ { "/View/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/View/Toggle Selection"), "<control>T", view_toggle_selection_cmd_callback, 0, "<ToggleItem>" },
"view/toggle_selection.html", NULL },
@ -348,24 +347,24 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/View/Snap To Guides"), NULL, view_snap_to_guides_cmd_callback, 0, "<ToggleItem>" },
"view/snap_to_guides.html", NULL },
{ { N_("/View/---"), NULL, NULL, 0, "<Separator>" },
{ { "/View/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/View/New View"), NULL, view_new_view_cmd_callback, 0 },
"view/new_view.html", NULL },
{ { N_("/View/Shrink Wrap"), "<control>E", view_shrink_wrap_cmd_callback, 0 },
"view/shrink_wrap.html", NULL },
{ { N_("/View/---"), NULL, NULL, 0, "<Separator>" },
{ { "/View/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Image */
{ { N_("/Image/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
/* <Image>/Image/Mode */
{ { N_("/Image/Mode/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Mode"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Mode/RGB"), "<alt>R", image_convert_rgb_cmd_callback, 0 },
"image/mode/convert_to_rgb.html", NULL },
@ -374,53 +373,53 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Image/Mode/Indexed..."), "<alt>I", image_convert_indexed_cmd_callback, 0 },
"image/mode/dialogs/convert_to_indexed.html", NULL },
{ { N_("/Image/Mode/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/Mode/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Image/Colors */
{ { N_("/Image/Colors/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Colors"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Colors/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/Colors/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Image/Colors/Desaturate"), NULL, image_desaturate_cmd_callback, 0 },
"image/colors/desaturate.html", NULL },
{ { N_("/Image/Colors/Invert"), NULL, image_invert_cmd_callback, 0 },
"image/colors/invert.html", NULL },
{ { N_("/Image/Colors/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/Colors/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Image/Colors/Auto */
{ { N_("/Image/Colors/Auto/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Colors/Auto"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Colors/Auto/Equalize"), NULL, image_equalize_cmd_callback, 0 },
"image/colors/auto/equalize.html", NULL },
{ { N_("/Image/Colors/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/Colors/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Image/Alpha */
{ { N_("/Image/Alpha/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Alpha"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Alpha/Add Alpha Channel"), NULL, layers_add_alpha_channel_cmd_callback, 0 },
"layers/add_alpha_channel.html", NULL },
/* <Image>/Image/Transforms */
{ { N_("/Image/Transforms/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Transforms"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Transforms/Offset..."), "<control><shift>O", image_offset_cmd_callback, 0 },
"image/transforms/dialogs/offset.html", NULL },
{ { N_("/Image/Transforms/Rotate/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Transforms/Rotate"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Transforms/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/Transforms/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Image/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Image/Canvas Size..."), NULL, image_resize_cmd_callback, 0 },
"image/dialogs/canvas_size.html", NULL },
@ -429,19 +428,19 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Image/Duplicate"), "<control>D", image_duplicate_cmd_callback, 0 },
"image/duplicate.html", NULL },
{ { N_("/Image/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Layers */
{ { N_("/Layers/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Layers"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Layers/Layers & Channels..."), "<control>L", dialogs_lc_cmd_callback, 0 },
"dialogs/layers_and_channels.html", NULL },
/* <Image>/Layers/Stack */
{ { N_("/Layers/Stack/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Layers/Stack"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Layers/Stack/Previous Layer"), "Prior", layers_previous_cmd_callback, 0 },
"layers/stack/stack.html#previous_layer", NULL },
@ -455,15 +454,15 @@ static GimpItemFactoryEntry image_entries[] =
"layers/stack/stack.html#layer_to_top", NULL },
{ { N_("/Layers/Stack/Layer to Bottom"), "<control>Next", layers_lower_to_bottom_cmd_callback, 0 },
"layers/stack/stack.html#layer_to_bottom", NULL },
{ { N_("/Layers/Stack/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Layers/Stack/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Layers/Rotate */
{ { N_("/Layers/Rotate/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Layers/Rotate"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Layers/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Layers/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Layers/Anchor Layer"), "<control>H", layers_anchor_cmd_callback, 0 },
"layers/anchor_layer.html", NULL },
@ -472,24 +471,24 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Layers/Flatten Image"), NULL, layers_flatten_cmd_callback, 0 },
"layers/flatten_image.html", NULL },
{ { N_("/Layers/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Layers/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Layers/Mask To Selection"), NULL, layers_mask_select_cmd_callback, 0 },
"layers/mask_to_selection.html", NULL },
{ { N_("/Layers/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Layers/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Layers/Add Alpha Channel"), NULL, layers_add_alpha_channel_cmd_callback, 0 },
"layers/add_alpha_channel.html", NULL },
{ { N_("/Layers/Alpha To Selection"), NULL, layers_alpha_select_cmd_callback, 0 },
"layers/alpha_to_selection.html", NULL },
{ { N_("/Layers/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Layers/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Tools */
{ { N_("/Tools/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Tools"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Tools/Toolbox"), NULL, toolbox_raise_callback, 0 },
"toolbox/toolbox.html", NULL },
@ -498,36 +497,82 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Tools/Swap Colors"), "X", tools_swap_colors_cmd_callback, 0 },
"toolbox/toolbox.html#swap_colors", NULL },
{ { N_("/Tools/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Tools/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Filters */
{ { N_("/Filters/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Filters"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Repeat last"), "<alt>F", filters_repeat_cmd_callback, 0x0 },
"filters/repeat_last.html", NULL },
{ { N_("/Filters/Re-show last"), "<alt><shift>F", filters_repeat_cmd_callback, 0x1 },
"filters/reshow_last.html", NULL },
{ { N_("/Filters/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Filters/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Filters/Blur"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Colors"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { "/Filters/Colors/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Filters/Noise"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Edge-Detect"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Enhance"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Generic"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { "/Filters/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Filters/Glass Effects"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Light Effects"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Distorts"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Artistic"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Map"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Render"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Web"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { "/Filters/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Filters/Animation"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Combine"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { "/Filters/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Filters/Toys"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
/* <Image>/Script-Fu */
{ { N_("/Script-Fu/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Script-Fu"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
/* <Image>/Dialogs */
{ { N_("/Dialogs/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Dialogs"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Dialogs/Layers & Channels..."), "<control>L", dialogs_lc_cmd_callback, 0 },
"dialogs/layers_and_channels.html", NULL },
{ { N_("/Dialogs/Tool Options..."), NULL, dialogs_tool_options_cmd_callback, 0 },
"dialogs/tool_options.html", NULL },
{ { N_("/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Dialogs/Brushes..."), "<control><shift>B", dialogs_brushes_cmd_callback, 0 },
"dialogs/brush_selection.html", NULL },
@ -540,14 +585,14 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Dialogs/Indexed Palette..."), NULL, dialogs_indexed_palette_cmd_callback, 0 },
"dialogs/indexed_palette.html", NULL },
{ { N_("/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Dialogs/Input Devices..."), NULL, dialogs_input_devices_cmd_callback, 0 },
"dialogs/input_devices.html", NULL },
{ { N_("/Dialogs/Device Status..."), NULL, dialogs_device_status_cmd_callback, 0 },
"dialogs/device_status.html", NULL },
{ { N_("/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Dialogs/Document Index..."), NULL, raise_idea_callback, 0 },
"dialogs/document_index.html", NULL },
@ -597,6 +642,8 @@ static GimpItemFactoryEntry layers_entries[] =
/* <Layers>/Stack */
{ { N_("/Stack"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Stack/Previous Layer"), "Prior", layers_dialog_previous_layer_callback, 0 },
"stack/stack.html#previous_layer", NULL },
{ { N_("/Stack/Next Layer"), "Next", layers_dialog_next_layer_callback, 0 },
@ -815,54 +862,59 @@ void
menus_create_item_from_full_path (GimpItemFactoryEntry *entry,
gpointer callback_data)
{
GtkItemFactory *ifactory;
GtkWidget *menu_item;
gboolean redo_image_menu = FALSE;
GtkItemFactory *item_factory;
GString *tearoff_path;
gchar *path;
if (initialize)
menus_init ();
tearoff_path = g_string_new ("");
path = entry->entry.path;
item_factory = gtk_item_factory_from_path (path);
if (! strncmp (entry->entry.path, "<Image>", 7))
if (!item_factory)
{
g_warning ("entry refers to unknown item factory: \"%s\"", path);
return;
}
if ((item_factory == image_factory) ||
(item_factory == toolbox_factory))
{
gint factory_length;
gchar *p;
p = strchr (entry->entry.path + 8, '/');
tearoff_path = g_string_new ("");
p = strchr (entry->entry.path, '/');
factory_length = p - entry->entry.path;
/* skip the first slash */
if (p)
p = strchr (p + 1, '/');
while (p)
{
g_string_assign (tearoff_path, entry->entry.path + 7);
g_string_assign (tearoff_path, entry->entry.path + factory_length);
g_string_truncate (tearoff_path,
p - entry->entry.path + 1 - 7);
p - entry->entry.path + 1 - factory_length);
g_string_append (tearoff_path, "tearoff1");
if (! gtk_item_factory_get_widget (image_factory,
if (! gtk_item_factory_get_widget (item_factory,
tearoff_path->str))
{
GimpItemFactoryEntry tearoff_entry =
{ { tearoff_path->str, NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { tearoff_path->str, NULL, tearoff_cmd_callback, 0,
"<Tearoff>" },
NULL, NULL };
menus_create_item (image_factory, &tearoff_entry, NULL, 2);
menus_create_item (item_factory, &tearoff_entry, NULL, 2);
}
p = strchr (p + 1, '/');
}
redo_image_menu = TRUE;
}
g_string_free (tearoff_path, TRUE);
path = entry->entry.path;
ifactory = gtk_item_factory_from_path (path);
if (!ifactory)
{
g_warning ("entry refers to unknown item factory: \"%s\"", path);
return;
}
while (*path != '>')
@ -871,25 +923,7 @@ menus_create_item_from_full_path (GimpItemFactoryEntry *entry,
entry->entry.path = path;
menus_create_item (ifactory, entry, callback_data, 2);
if (redo_image_menu)
{
menu_item = gtk_item_factory_get_widget (image_factory,
"<Image>/File/---moved");
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, -1);
menu_item = gtk_item_factory_get_widget (image_factory,
"<Image>/File/Close");
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, -1);
menu_item = gtk_item_factory_get_widget (image_factory,
"<Image>/File/Quit");
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, -1);
}
menus_create_item (item_factory, entry, callback_data, 2);
}
static void
@ -897,6 +931,8 @@ menus_filters_subdirs_to_top (GtkMenu *menu)
{
GtkMenuItem *menu_item;
GList *list;
gboolean submenus_passed = FALSE;
gboolean separator_found = FALSE;
gint pos;
pos = 1;
@ -906,14 +942,26 @@ menus_filters_subdirs_to_top (GtkMenu *menu)
menu_item = GTK_MENU_ITEM (list->data);
if (menu_item->submenu)
{
if (submenus_passed)
{
menus_filters_subdirs_to_top (GTK_MENU (menu_item->submenu));
gtk_menu_reorder_child (menu, GTK_WIDGET (menu_item), pos);
pos++;
}
}
if (pos > 1)
pos++;
}
else
{
submenus_passed = TRUE;
}
if (! GTK_BIN (menu_item)->child &&
menu_item != GTK_MENU_SHELL (menu)->children->data)
separator_found = TRUE;
}
if ((pos > 1) && !separator_found)
{
GtkWidget *separator;
@ -926,10 +974,10 @@ menus_filters_subdirs_to_top (GtkMenu *menu)
void
menus_reorder_plugins (void)
{
static gchar *xtns_plugins[] = { "/Xtns/DB Browser...",
"/Xtns/PDB Explorer",
"/Xtns/Plugin Details...",
"/Xtns/Parasite Editor" };
static gchar *xtns_plugins[] = { "DB Browser...",
"PDB Explorer",
"Plugin Details...",
"Parasite Editor" };
static gint n_xtns_plugins = (sizeof (xtns_plugins) /
sizeof (xtns_plugins[0]));
@ -939,6 +987,12 @@ menus_reorder_plugins (void)
static gint n_rotate_plugins = (sizeof (rotate_plugins) /
sizeof (rotate_plugins[0]));
static gchar *image_file_entries[] = { "---moved",
"Close",
"Quit" };
static gint n_image_file_entries = (sizeof (image_file_entries) /
sizeof (image_file_entries[0]));
GtkWidget *menu;
GtkWidget *menu_item;
GList *list;
@ -949,8 +1003,10 @@ menus_reorder_plugins (void)
pos = 2;
for (i = 0; i < n_xtns_plugins; i++)
{
menu_item = gtk_item_factory_get_widget (toolbox_factory,
xtns_plugins[i]);
path = g_strconcat ("/Xtns/", xtns_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (toolbox_factory, path);
g_free (path);
if (menu_item && menu_item->parent)
{
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, pos);
@ -964,6 +1020,46 @@ menus_reorder_plugins (void)
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, 3);
/* Reorder Rotate plugin menu entries */
pos = 2;
for (i = 0; i < n_rotate_plugins; i++)
{
path = g_strconcat ("/Image/Transforms/Rotate/", rotate_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
g_free (path);
if (menu_item && menu_item->parent)
{
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, pos);
pos++;
}
}
pos = 2;
for (i = 0; i < n_rotate_plugins; i++)
{
path = g_strconcat ("/Layers/Rotate/", rotate_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
g_free (path);
if (menu_item && menu_item->parent)
{
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, pos);
pos++;
}
}
/* Reorder <Image>/File */
for (i = 0; i < n_image_file_entries; i++)
{
path = g_strconcat ("/File/", image_file_entries[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
g_free (path);
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, -1);
}
/* Find the <Image>/Filters menu... */
menu_item = gtk_item_factory_get_widget (image_factory,
"/Filters/Repeat last");
@ -980,30 +1076,20 @@ menus_reorder_plugins (void)
menus_filters_subdirs_to_top (GTK_MENU (menu_item->submenu));
}
/* Reorder Rotate plugin menu entries */
pos = 2;
for (i = 0; i < n_rotate_plugins; i++)
/* Find the <Toolbox>/Xtns menu... */
menu_item = gtk_item_factory_get_widget (toolbox_factory,
"/Xtns/Module Browser...");
if (!menu_item || !menu_item->parent)
return;
menu = menu_item->parent;
/* ...and reorder all submenus of it's submenus */
for (list = GTK_MENU_SHELL (menu)->children; list; list = g_list_next (list))
{
path = g_strconcat ("/Image/Transforms/Rotate/", rotate_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
if (menu_item && menu_item->parent)
{
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, pos);
pos++;
}
g_free (path);
}
pos = 2;
for (i = 0; i < n_rotate_plugins; i++)
{
path = g_strconcat ("/Layers/Rotate/", rotate_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
if (menu_item && menu_item->parent)
{
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, pos);
pos++;
}
g_free (path);
GtkMenuItem *menu_item = GTK_MENU_ITEM (list->data);
if (menu_item->submenu)
menus_filters_subdirs_to_top (GTK_MENU (menu_item->submenu));
}
}
@ -1144,7 +1230,7 @@ menus_last_opened_update_labels (void)
g_string_sprintf (entry_filename, "%d. %s", i,
g_basename (((GString *) filename_slist->data)->str));
g_string_sprintf (path, N_("/File/MRU%02d"), i);
g_string_sprintf (path, "/File/MRU%02d", i);
widget = gtk_item_factory_get_widget (toolbox_factory, path->str);
if (widget != NULL) {
@ -1164,18 +1250,17 @@ void
menus_last_opened_add (gchar *filename)
{
GString *raw_filename;
GSList *item;
GSList *list;
GtkWidget *widget;
guint num_entries;
/* ignore the add if we've already got the filename on the list */
item = last_opened_raw_filenames;
while (item)
for (list = last_opened_raw_filenames; list; list = g_slist_next (list))
{
raw_filename = item->data;
raw_filename = list->data;
if (!strcmp (raw_filename->str, filename))
return;
item = g_slist_next (item);
}
num_entries = g_slist_length (last_opened_raw_filenames);
@ -1232,7 +1317,7 @@ menus_init_mru (void)
last_opened_entries[i].help_page = "file/last_opened.html";
last_opened_entries[i].description = NULL;
g_snprintf (path, MRU_MENU_ENTRY_SIZE, N_("/File/MRU%02d"), i + 1);
g_snprintf (path, MRU_MENU_ENTRY_SIZE, "/File/MRU%02d", i + 1);
if (accelerator != NULL)
g_snprintf (accelerator, MRU_MENU_ACCEL_SIZE, "<control>%d", i + 1);
}
@ -1365,6 +1450,27 @@ menus_create_items (GtkItemFactory *item_factory,
entries + i,
callback_data,
callback_type);
if (((item_factory == toolbox_factory) ||
(item_factory == image_factory)) &&
entries[i].entry.item_type &&
strstr (entries[i].entry.item_type, "Branch>"))
{
gchar *tearoff_path;
tearoff_path = g_strconcat (entries[i].entry.path, "/tearoff1", NULL);
{
GimpItemFactoryEntry tearoff_entry =
{ { tearoff_path, NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
NULL, NULL
};
menus_create_item (item_factory, &tearoff_entry, NULL, 2);
}
g_free (tearoff_path);
}
}
}
@ -1375,7 +1481,7 @@ menus_init_toolbox (void)
gtk_object_set_data (GTK_OBJECT (toolbox_factory), "help_path",
(gpointer) "toolbox");
gtk_item_factory_set_translate_func (toolbox_factory, menu_translate,
NULL, NULL);
"<Toolbox>", NULL);
menus_create_items (toolbox_factory, n_toolbox_entries,
toolbox_entries, NULL, 2);
menus_init_mru ();
@ -1406,7 +1512,7 @@ menus_init (void)
(gpointer) "image");
gtk_item_factory_set_translate_func (image_factory,
menu_translate,
NULL, NULL);
"<Image>", NULL);
menus_create_items (image_factory,
n_image_entries,
image_entries,
@ -1520,33 +1626,26 @@ menu_translate (const gchar *path,
{
static gchar menupath[MENUPATH_SIZE];
gchar *retval;
gchar *factory;
factory = (gchar *) data;
menupath[MENUPATH_SIZE - 1] = '\0';
strncpy (menupath, path, MENUPATH_SIZE -1);
if ((strstr (path, "/tearoff1") != NULL) ||
(strstr (path, "/---") != NULL) ||
(strstr (path, "/MRU") != NULL))
return menupath;
retval = gettext (path);
if (strcmp (path, retval))
return retval;
strncpy (menupath, path, MENUPATH_SIZE - 1);
strncat (menupath, "/tearoff1", MENUPATH_SIZE - 1 - strlen (menupath));
retval = gettext (menupath);
if (strcmp (menupath, retval))
if (!strcmp (path, retval) && factory)
{
strncpy (menupath, retval, MENUPATH_SIZE - 1);
*(strrchr(menupath, '/')) = '\0';
return menupath;
}
else
{
strcpy (menupath, "<Image>");
strncat (menupath, path, MENUPATH_SIZE - 1 - strlen ("<Image>"));
retval = dgettext ("gimp-std-plugins", menupath) + strlen ("<Image>");
if (!strcmp (path, retval))
{
strcpy (menupath, "<Toolbox>");
strncat (menupath, path, MENUPATH_SIZE - 1 - strlen ("<Toolbox>"));
retval = dgettext ("gimp-std-plugins", menupath) + strlen ("<Toolbox>");
}
strcpy (menupath, factory);
strncat (menupath, path, MENUPATH_SIZE - 1 - strlen (factory));
retval = dgettext ("gimp-std-plugins", menupath) + strlen (factory);
}
return retval;

View File

@ -642,10 +642,10 @@ plug_in_def_add (PlugInDef *plug_in_def)
* of one of these things, but Nick Lamb's alien/unknown format
* loader needs to be able to register no extensions, prefixes or
* magics. -- austin 13/Feb/99 */
tmp = plug_in_def->proc_defs;
while (tmp)
for (tmp = plug_in_def->proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
if (!proc_def->extensions && !proc_def->prefixes && !proc_def->magics &&
proc_def->menu_path &&
(!strncmp (proc_def->menu_path, "<Load>", 6) ||
@ -653,12 +653,9 @@ plug_in_def_add (PlugInDef *plug_in_def)
{
proc_def->extensions = g_strdup("");
}
tmp = tmp->next;
}
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
tplug_in_def = tmp->data;
@ -685,8 +682,6 @@ plug_in_def_add (PlugInDef *plug_in_def)
}
return;
}
tmp = tmp->next;
}
write_pluginrc = TRUE;
@ -695,35 +690,29 @@ plug_in_def_add (PlugInDef *plug_in_def)
g_free (plug_in_def);
}
char*
plug_in_menu_path (char *name)
gchar *
plug_in_menu_path (gchar *name)
{
PlugInDef *plug_in_def;
PlugInProcDef *proc_def;
GSList *tmp, *tmp2;
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
plug_in_def = tmp->data;
tmp = tmp->next;
tmp2 = plug_in_def->proc_defs;
while (tmp2)
for (tmp2 = plug_in_def->proc_defs; tmp2; tmp2 = g_slist_next (tmp2))
{
proc_def = tmp2->data;
tmp2 = tmp2->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
}
}
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
@ -733,10 +722,10 @@ plug_in_menu_path (char *name)
}
PlugIn*
plug_in_new (char *name)
plug_in_new (gchar *name)
{
PlugIn *plug_in;
char *path;
gchar *path;
if (!g_path_is_absolute (name))
{
@ -813,7 +802,7 @@ plug_in_destroy (PlugIn *plug_in)
}
}
int
gint
plug_in_open (PlugIn *plug_in)
{
int my_read[2];
@ -950,17 +939,17 @@ plug_in_open (PlugIn *plug_in)
}
plug_in->open = TRUE;
return 1;
return TRUE;
}
return 0;
return FALSE;
}
void
plug_in_close (PlugIn *plug_in,
int kill_it)
gint kill_it)
{
int status;
gint status;
#ifndef G_OS_WIN32
struct timeval tv;
#endif
@ -1244,13 +1233,11 @@ plug_in_set_menu_sensitivity (GimpImageType type)
{
PlugInProcDef *proc_def;
GSList *tmp;
int sensitive = FALSE;
gboolean sensitive = FALSE;
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (proc_def->image_types_val && proc_def->menu_path)
{
@ -1280,6 +1267,7 @@ plug_in_set_menu_sensitivity (GimpImageType type)
}
menus_set_sensitive (proc_def->menu_path, sensitive);
if (last_plug_in && (last_plug_in == &(proc_def->db_info)))
{
menus_set_sensitive ("<Image>/Filters/Repeat last", sensitive);
@ -2478,7 +2466,7 @@ plug_in_proc_def_remove (PlugInProcDef *proc_def)
{
/* Destroy the menu item */
if (proc_def->menu_path)
menus_destroy (gettext(proc_def->menu_path));
menus_destroy (proc_def->menu_path);
/* Unregister the procedural database entry */
procedural_db_unregister (proc_def->db_info.name);

View File

@ -642,10 +642,10 @@ plug_in_def_add (PlugInDef *plug_in_def)
* of one of these things, but Nick Lamb's alien/unknown format
* loader needs to be able to register no extensions, prefixes or
* magics. -- austin 13/Feb/99 */
tmp = plug_in_def->proc_defs;
while (tmp)
for (tmp = plug_in_def->proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
if (!proc_def->extensions && !proc_def->prefixes && !proc_def->magics &&
proc_def->menu_path &&
(!strncmp (proc_def->menu_path, "<Load>", 6) ||
@ -653,12 +653,9 @@ plug_in_def_add (PlugInDef *plug_in_def)
{
proc_def->extensions = g_strdup("");
}
tmp = tmp->next;
}
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
tplug_in_def = tmp->data;
@ -685,8 +682,6 @@ plug_in_def_add (PlugInDef *plug_in_def)
}
return;
}
tmp = tmp->next;
}
write_pluginrc = TRUE;
@ -695,35 +690,29 @@ plug_in_def_add (PlugInDef *plug_in_def)
g_free (plug_in_def);
}
char*
plug_in_menu_path (char *name)
gchar *
plug_in_menu_path (gchar *name)
{
PlugInDef *plug_in_def;
PlugInProcDef *proc_def;
GSList *tmp, *tmp2;
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
plug_in_def = tmp->data;
tmp = tmp->next;
tmp2 = plug_in_def->proc_defs;
while (tmp2)
for (tmp2 = plug_in_def->proc_defs; tmp2; tmp2 = g_slist_next (tmp2))
{
proc_def = tmp2->data;
tmp2 = tmp2->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
}
}
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
@ -733,10 +722,10 @@ plug_in_menu_path (char *name)
}
PlugIn*
plug_in_new (char *name)
plug_in_new (gchar *name)
{
PlugIn *plug_in;
char *path;
gchar *path;
if (!g_path_is_absolute (name))
{
@ -813,7 +802,7 @@ plug_in_destroy (PlugIn *plug_in)
}
}
int
gint
plug_in_open (PlugIn *plug_in)
{
int my_read[2];
@ -950,17 +939,17 @@ plug_in_open (PlugIn *plug_in)
}
plug_in->open = TRUE;
return 1;
return TRUE;
}
return 0;
return FALSE;
}
void
plug_in_close (PlugIn *plug_in,
int kill_it)
gint kill_it)
{
int status;
gint status;
#ifndef G_OS_WIN32
struct timeval tv;
#endif
@ -1244,13 +1233,11 @@ plug_in_set_menu_sensitivity (GimpImageType type)
{
PlugInProcDef *proc_def;
GSList *tmp;
int sensitive = FALSE;
gboolean sensitive = FALSE;
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (proc_def->image_types_val && proc_def->menu_path)
{
@ -1280,6 +1267,7 @@ plug_in_set_menu_sensitivity (GimpImageType type)
}
menus_set_sensitive (proc_def->menu_path, sensitive);
if (last_plug_in && (last_plug_in == &(proc_def->db_info)))
{
menus_set_sensitive ("<Image>/Filters/Repeat last", sensitive);
@ -2478,7 +2466,7 @@ plug_in_proc_def_remove (PlugInProcDef *proc_def)
{
/* Destroy the menu item */
if (proc_def->menu_path)
menus_destroy (gettext(proc_def->menu_path));
menus_destroy (proc_def->menu_path);
/* Unregister the procedural database entry */
procedural_db_unregister (proc_def->db_info.name);

View File

@ -122,7 +122,7 @@ update_field (InfoField *field)
break;
default:
g_warning (_("Unknown info_dialog field type."));
g_warning ("Unknown info_dialog field type.");
break;
}

View File

@ -64,12 +64,13 @@ static void help_debug_cmd_callback (GtkWidget *widget,
gpointer callback_data,
guint callback_action);
static gchar* G_GNUC_UNUSED dummyMenus[] =
static gchar G_GNUC_UNUSED *dummy_entries[] =
{
N_("/File/MRU00 "),
N_("/File/Dialogs"),
N_("/View/Zoom"),
N_("/Stack")
N_("/Filters/Render/Clouds"),
N_("/Filters/Render/Nature"),
N_("/Filters/Render/Pattern"),
N_("/Filters/Colors/Map"),
N_("/Filters/Misc")
};
static GSList *last_opened_raw_filenames = NULL;
@ -80,7 +81,7 @@ static GimpItemFactoryEntry toolbox_entries[] =
{
/* <Toolbox>/File */
{ { N_("/File/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/File"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/File/New..."), "<control>N", file_new_cmd_callback, 0 },
"file/dialogs/file_new.html", NULL },
@ -89,28 +90,28 @@ static GimpItemFactoryEntry toolbox_entries[] =
/* <Toolbox>/File/Acquire */
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Acquire/tearoff1"), NULL, NULL, 0, "<Tearoff>" },
{ { N_("/File/Acquire"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Preferences..."), NULL, file_pref_cmd_callback, 0 },
"file/dialogs/preferences/preferences.html", NULL },
/* <Toolbox>/File/Dialogs */
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Dialogs/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/File/Dialogs"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/File/Dialogs/Layers & Channels..."), "<control>L", dialogs_lc_cmd_callback, 0 },
"file/dialogs/layers_and_channels.html", NULL },
{ { N_("/File/Dialogs/Tool Options..."), "<control><shift>T", dialogs_tool_options_cmd_callback, 0 },
"file/dialogs/tool_options.html", NULL },
{ { N_("/File/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Dialogs/Brushes..."), "<control><shift>B", dialogs_brushes_cmd_callback, 0 },
"file/dialogs/brush_selection.html", NULL },
@ -123,14 +124,14 @@ static GimpItemFactoryEntry toolbox_entries[] =
{ { N_("/File/Dialogs/Indexed Palette..."), NULL, dialogs_indexed_palette_cmd_callback, 0 },
"file/dialogs/indexed_palette.html", NULL },
{ { N_("/File/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Dialogs/Input Devices..."), NULL, dialogs_input_devices_cmd_callback, 0 },
"file/dialogs/input_devices.html", NULL },
{ { N_("/File/Dialogs/Device Status..."), NULL, dialogs_device_status_cmd_callback, 0 },
"file/dialogs/device_status.html", NULL },
{ { N_("/File/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Dialogs/Document Index..."), NULL, raise_idea_callback, 0 },
"file/dialogs/document_index.html", NULL },
@ -139,27 +140,25 @@ static GimpItemFactoryEntry toolbox_entries[] =
{ { N_("/File/Dialogs/Display Filters..."), NULL, dialogs_display_filters_cmd_callback, 0 },
"file/dialogs/display_filters/display_filters.html", NULL },
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Toolbox>/Xtns */
{ { N_("/Xtns/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Xtns"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Xtns/Module Browser..."), NULL, dialogs_module_browser_cmd_callback, 0 },
"dialogs/module_browser.html", NULL },
{ { N_("/Xtns/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Xtns/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Toolbox>/Help */
{ { N_("/Help"), NULL, NULL, 0, "<LastBranch>" },
NULL, NULL },
{ { N_("/Help/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
NULL, NULL },
{ { N_("/Help/Help..."), "F1", help_help_cmd_callback, 0 },
"help/dialogs/help.html", NULL },
{ { N_("/Help/Context Help..."), "<shift>F1", help_context_help_cmd_callback, 0 },
@ -176,7 +175,7 @@ static guint n_toolbox_entries = (sizeof (toolbox_entries) /
static GtkItemFactory *toolbox_factory = NULL;
static GimpItemFactoryEntry file_menu_separator =
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL };
static GimpItemFactoryEntry toolbox_end =
@ -187,12 +186,12 @@ static GimpItemFactoryEntry toolbox_end =
static GimpItemFactoryEntry image_entries[] =
{
{ { N_("/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { "/tearoff1", NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
NULL, NULL },
/* <Image>/File */
{ { N_("/File/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/File"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/File/New..."), "<control>N", file_new_cmd_callback, 1 },
"file/dialogs/file_new.html", NULL },
@ -205,26 +204,26 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/File/Revert"), NULL, file_revert_cmd_callback, 0 },
"file/revert.html", NULL },
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_( "/File/Close"), "<control>W", file_close_cmd_callback, 0 },
"file/close.html", NULL },
{ { N_("/File/Quit"), "<control>Q", file_quit_cmd_callback, 0 },
"file/quit.html", NULL },
{ { N_("/File/---moved"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---moved", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Edit */
{ { N_("/Edit/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Edit"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Edit/Undo"), "<control>Z", edit_undo_cmd_callback, 0 },
"edit/undo.html", NULL },
{ { N_("/Edit/Redo"), "<control>R", edit_redo_cmd_callback, 0 },
"edit/redo.html", NULL },
{ { N_("/Edit/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Edit/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Edit/Cut"), "<control>X", edit_cut_cmd_callback, 0 },
"edit/cut.html", NULL },
@ -239,7 +238,7 @@ static GimpItemFactoryEntry image_entries[] =
/* <Image>/Edit/Buffer */
{ { N_("/Edit/Buffer/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Edit/Buffer"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Edit/Buffer/Cut Named..."), "<control><shift>X", edit_named_cut_cmd_callback, 0 },
"edit/dialogs/cut_named.html", NULL },
@ -248,7 +247,7 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Edit/Buffer/Paste Named..."), "<control><shift>V", edit_named_paste_cmd_callback, 0 },
"edit/dialogs/paste_named.html", NULL },
{ { N_("/Edit/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Edit/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Edit/Clear"), "<control>K", edit_clear_cmd_callback, 0 },
"edit/clear.html", NULL },
@ -257,12 +256,12 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Edit/Stroke"), NULL, edit_stroke_cmd_callback, 0 },
"edit/stroke.html", NULL },
{ { N_("/Edit/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Edit/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Select */
{ { N_("/Select/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Select"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Select/Invert"), "<control>I", select_invert_cmd_callback, 0 },
"select/invert.html", NULL },
@ -273,7 +272,7 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Select/Float"), "<control><shift>L", select_float_cmd_callback, 0 },
"select/float.html", NULL },
{ { N_("/Select/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Select/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Select/Feather..."), "<control><shift>F", select_feather_cmd_callback, 0 },
"select/dialogs/feather_selection.html", NULL },
@ -286,14 +285,14 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Select/Border..."), "<control><shift>B", select_border_cmd_callback, 0 },
"select/dialogs/border_selection.html", NULL },
{ { N_("/Select/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Select/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Select/Save To Channel"), NULL, select_save_cmd_callback, 0 },
"select/save_to_channel.html", NULL },
/* <Image>/View */
{ { N_("/View/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/View"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/View/Zoom In"), "equal", view_zoomin_cmd_callback, 0 },
"view/zoom.html", NULL },
@ -302,7 +301,7 @@ static GimpItemFactoryEntry image_entries[] =
/* <Image>/View/Zoom */
{ { N_("/View/Zoom/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/View/Zoom"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/View/Zoom/16:1"), NULL, view_zoom_16_1_cmd_callback, 0 },
"view/zoom.html", NULL },
@ -326,7 +325,7 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/View/Dot for dot"), NULL, view_dot_for_dot_cmd_callback, 0, "<ToggleItem>" },
"view/dot_for_dot.html", NULL },
{ { N_("/View/---"), NULL, NULL, 0, "<Separator>" },
{ { "/View/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/View/Info Window..."), "<control><shift>I", view_info_window_cmd_callback, 0 },
"view/dialogs/info_window.html", NULL },
@ -335,7 +334,7 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/View/Undo history..."), NULL, view_undo_history_cmd_callback, 0},
"view/dialogs/undo_history.html", NULL },
{ { N_("/View/---"), NULL, NULL, 0, "<Separator>" },
{ { "/View/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/View/Toggle Selection"), "<control>T", view_toggle_selection_cmd_callback, 0, "<ToggleItem>" },
"view/toggle_selection.html", NULL },
@ -348,24 +347,24 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/View/Snap To Guides"), NULL, view_snap_to_guides_cmd_callback, 0, "<ToggleItem>" },
"view/snap_to_guides.html", NULL },
{ { N_("/View/---"), NULL, NULL, 0, "<Separator>" },
{ { "/View/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/View/New View"), NULL, view_new_view_cmd_callback, 0 },
"view/new_view.html", NULL },
{ { N_("/View/Shrink Wrap"), "<control>E", view_shrink_wrap_cmd_callback, 0 },
"view/shrink_wrap.html", NULL },
{ { N_("/View/---"), NULL, NULL, 0, "<Separator>" },
{ { "/View/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Image */
{ { N_("/Image/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
/* <Image>/Image/Mode */
{ { N_("/Image/Mode/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Mode"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Mode/RGB"), "<alt>R", image_convert_rgb_cmd_callback, 0 },
"image/mode/convert_to_rgb.html", NULL },
@ -374,53 +373,53 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Image/Mode/Indexed..."), "<alt>I", image_convert_indexed_cmd_callback, 0 },
"image/mode/dialogs/convert_to_indexed.html", NULL },
{ { N_("/Image/Mode/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/Mode/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Image/Colors */
{ { N_("/Image/Colors/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Colors"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Colors/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/Colors/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Image/Colors/Desaturate"), NULL, image_desaturate_cmd_callback, 0 },
"image/colors/desaturate.html", NULL },
{ { N_("/Image/Colors/Invert"), NULL, image_invert_cmd_callback, 0 },
"image/colors/invert.html", NULL },
{ { N_("/Image/Colors/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/Colors/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Image/Colors/Auto */
{ { N_("/Image/Colors/Auto/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Colors/Auto"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Colors/Auto/Equalize"), NULL, image_equalize_cmd_callback, 0 },
"image/colors/auto/equalize.html", NULL },
{ { N_("/Image/Colors/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/Colors/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Image/Alpha */
{ { N_("/Image/Alpha/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Alpha"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Alpha/Add Alpha Channel"), NULL, layers_add_alpha_channel_cmd_callback, 0 },
"layers/add_alpha_channel.html", NULL },
/* <Image>/Image/Transforms */
{ { N_("/Image/Transforms/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Transforms"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Transforms/Offset..."), "<control><shift>O", image_offset_cmd_callback, 0 },
"image/transforms/dialogs/offset.html", NULL },
{ { N_("/Image/Transforms/Rotate/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Transforms/Rotate"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Transforms/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/Transforms/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Image/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Image/Canvas Size..."), NULL, image_resize_cmd_callback, 0 },
"image/dialogs/canvas_size.html", NULL },
@ -429,19 +428,19 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Image/Duplicate"), "<control>D", image_duplicate_cmd_callback, 0 },
"image/duplicate.html", NULL },
{ { N_("/Image/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Layers */
{ { N_("/Layers/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Layers"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Layers/Layers & Channels..."), "<control>L", dialogs_lc_cmd_callback, 0 },
"dialogs/layers_and_channels.html", NULL },
/* <Image>/Layers/Stack */
{ { N_("/Layers/Stack/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Layers/Stack"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Layers/Stack/Previous Layer"), "Prior", layers_previous_cmd_callback, 0 },
"layers/stack/stack.html#previous_layer", NULL },
@ -455,15 +454,15 @@ static GimpItemFactoryEntry image_entries[] =
"layers/stack/stack.html#layer_to_top", NULL },
{ { N_("/Layers/Stack/Layer to Bottom"), "<control>Next", layers_lower_to_bottom_cmd_callback, 0 },
"layers/stack/stack.html#layer_to_bottom", NULL },
{ { N_("/Layers/Stack/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Layers/Stack/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Layers/Rotate */
{ { N_("/Layers/Rotate/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Layers/Rotate"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Layers/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Layers/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Layers/Anchor Layer"), "<control>H", layers_anchor_cmd_callback, 0 },
"layers/anchor_layer.html", NULL },
@ -472,24 +471,24 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Layers/Flatten Image"), NULL, layers_flatten_cmd_callback, 0 },
"layers/flatten_image.html", NULL },
{ { N_("/Layers/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Layers/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Layers/Mask To Selection"), NULL, layers_mask_select_cmd_callback, 0 },
"layers/mask_to_selection.html", NULL },
{ { N_("/Layers/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Layers/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Layers/Add Alpha Channel"), NULL, layers_add_alpha_channel_cmd_callback, 0 },
"layers/add_alpha_channel.html", NULL },
{ { N_("/Layers/Alpha To Selection"), NULL, layers_alpha_select_cmd_callback, 0 },
"layers/alpha_to_selection.html", NULL },
{ { N_("/Layers/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Layers/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Tools */
{ { N_("/Tools/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Tools"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Tools/Toolbox"), NULL, toolbox_raise_callback, 0 },
"toolbox/toolbox.html", NULL },
@ -498,36 +497,82 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Tools/Swap Colors"), "X", tools_swap_colors_cmd_callback, 0 },
"toolbox/toolbox.html#swap_colors", NULL },
{ { N_("/Tools/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Tools/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Filters */
{ { N_("/Filters/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Filters"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Repeat last"), "<alt>F", filters_repeat_cmd_callback, 0x0 },
"filters/repeat_last.html", NULL },
{ { N_("/Filters/Re-show last"), "<alt><shift>F", filters_repeat_cmd_callback, 0x1 },
"filters/reshow_last.html", NULL },
{ { N_("/Filters/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Filters/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Filters/Blur"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Colors"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { "/Filters/Colors/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Filters/Noise"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Edge-Detect"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Enhance"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Generic"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { "/Filters/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Filters/Glass Effects"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Light Effects"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Distorts"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Artistic"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Map"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Render"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Web"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { "/Filters/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Filters/Animation"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Combine"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { "/Filters/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Filters/Toys"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
/* <Image>/Script-Fu */
{ { N_("/Script-Fu/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Script-Fu"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
/* <Image>/Dialogs */
{ { N_("/Dialogs/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Dialogs"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Dialogs/Layers & Channels..."), "<control>L", dialogs_lc_cmd_callback, 0 },
"dialogs/layers_and_channels.html", NULL },
{ { N_("/Dialogs/Tool Options..."), NULL, dialogs_tool_options_cmd_callback, 0 },
"dialogs/tool_options.html", NULL },
{ { N_("/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Dialogs/Brushes..."), "<control><shift>B", dialogs_brushes_cmd_callback, 0 },
"dialogs/brush_selection.html", NULL },
@ -540,14 +585,14 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Dialogs/Indexed Palette..."), NULL, dialogs_indexed_palette_cmd_callback, 0 },
"dialogs/indexed_palette.html", NULL },
{ { N_("/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Dialogs/Input Devices..."), NULL, dialogs_input_devices_cmd_callback, 0 },
"dialogs/input_devices.html", NULL },
{ { N_("/Dialogs/Device Status..."), NULL, dialogs_device_status_cmd_callback, 0 },
"dialogs/device_status.html", NULL },
{ { N_("/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Dialogs/Document Index..."), NULL, raise_idea_callback, 0 },
"dialogs/document_index.html", NULL },
@ -597,6 +642,8 @@ static GimpItemFactoryEntry layers_entries[] =
/* <Layers>/Stack */
{ { N_("/Stack"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Stack/Previous Layer"), "Prior", layers_dialog_previous_layer_callback, 0 },
"stack/stack.html#previous_layer", NULL },
{ { N_("/Stack/Next Layer"), "Next", layers_dialog_next_layer_callback, 0 },
@ -815,54 +862,59 @@ void
menus_create_item_from_full_path (GimpItemFactoryEntry *entry,
gpointer callback_data)
{
GtkItemFactory *ifactory;
GtkWidget *menu_item;
gboolean redo_image_menu = FALSE;
GtkItemFactory *item_factory;
GString *tearoff_path;
gchar *path;
if (initialize)
menus_init ();
tearoff_path = g_string_new ("");
path = entry->entry.path;
item_factory = gtk_item_factory_from_path (path);
if (! strncmp (entry->entry.path, "<Image>", 7))
if (!item_factory)
{
g_warning ("entry refers to unknown item factory: \"%s\"", path);
return;
}
if ((item_factory == image_factory) ||
(item_factory == toolbox_factory))
{
gint factory_length;
gchar *p;
p = strchr (entry->entry.path + 8, '/');
tearoff_path = g_string_new ("");
p = strchr (entry->entry.path, '/');
factory_length = p - entry->entry.path;
/* skip the first slash */
if (p)
p = strchr (p + 1, '/');
while (p)
{
g_string_assign (tearoff_path, entry->entry.path + 7);
g_string_assign (tearoff_path, entry->entry.path + factory_length);
g_string_truncate (tearoff_path,
p - entry->entry.path + 1 - 7);
p - entry->entry.path + 1 - factory_length);
g_string_append (tearoff_path, "tearoff1");
if (! gtk_item_factory_get_widget (image_factory,
if (! gtk_item_factory_get_widget (item_factory,
tearoff_path->str))
{
GimpItemFactoryEntry tearoff_entry =
{ { tearoff_path->str, NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { tearoff_path->str, NULL, tearoff_cmd_callback, 0,
"<Tearoff>" },
NULL, NULL };
menus_create_item (image_factory, &tearoff_entry, NULL, 2);
menus_create_item (item_factory, &tearoff_entry, NULL, 2);
}
p = strchr (p + 1, '/');
}
redo_image_menu = TRUE;
}
g_string_free (tearoff_path, TRUE);
path = entry->entry.path;
ifactory = gtk_item_factory_from_path (path);
if (!ifactory)
{
g_warning ("entry refers to unknown item factory: \"%s\"", path);
return;
}
while (*path != '>')
@ -871,25 +923,7 @@ menus_create_item_from_full_path (GimpItemFactoryEntry *entry,
entry->entry.path = path;
menus_create_item (ifactory, entry, callback_data, 2);
if (redo_image_menu)
{
menu_item = gtk_item_factory_get_widget (image_factory,
"<Image>/File/---moved");
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, -1);
menu_item = gtk_item_factory_get_widget (image_factory,
"<Image>/File/Close");
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, -1);
menu_item = gtk_item_factory_get_widget (image_factory,
"<Image>/File/Quit");
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, -1);
}
menus_create_item (item_factory, entry, callback_data, 2);
}
static void
@ -897,6 +931,8 @@ menus_filters_subdirs_to_top (GtkMenu *menu)
{
GtkMenuItem *menu_item;
GList *list;
gboolean submenus_passed = FALSE;
gboolean separator_found = FALSE;
gint pos;
pos = 1;
@ -906,14 +942,26 @@ menus_filters_subdirs_to_top (GtkMenu *menu)
menu_item = GTK_MENU_ITEM (list->data);
if (menu_item->submenu)
{
if (submenus_passed)
{
menus_filters_subdirs_to_top (GTK_MENU (menu_item->submenu));
gtk_menu_reorder_child (menu, GTK_WIDGET (menu_item), pos);
pos++;
}
}
if (pos > 1)
pos++;
}
else
{
submenus_passed = TRUE;
}
if (! GTK_BIN (menu_item)->child &&
menu_item != GTK_MENU_SHELL (menu)->children->data)
separator_found = TRUE;
}
if ((pos > 1) && !separator_found)
{
GtkWidget *separator;
@ -926,10 +974,10 @@ menus_filters_subdirs_to_top (GtkMenu *menu)
void
menus_reorder_plugins (void)
{
static gchar *xtns_plugins[] = { "/Xtns/DB Browser...",
"/Xtns/PDB Explorer",
"/Xtns/Plugin Details...",
"/Xtns/Parasite Editor" };
static gchar *xtns_plugins[] = { "DB Browser...",
"PDB Explorer",
"Plugin Details...",
"Parasite Editor" };
static gint n_xtns_plugins = (sizeof (xtns_plugins) /
sizeof (xtns_plugins[0]));
@ -939,6 +987,12 @@ menus_reorder_plugins (void)
static gint n_rotate_plugins = (sizeof (rotate_plugins) /
sizeof (rotate_plugins[0]));
static gchar *image_file_entries[] = { "---moved",
"Close",
"Quit" };
static gint n_image_file_entries = (sizeof (image_file_entries) /
sizeof (image_file_entries[0]));
GtkWidget *menu;
GtkWidget *menu_item;
GList *list;
@ -949,8 +1003,10 @@ menus_reorder_plugins (void)
pos = 2;
for (i = 0; i < n_xtns_plugins; i++)
{
menu_item = gtk_item_factory_get_widget (toolbox_factory,
xtns_plugins[i]);
path = g_strconcat ("/Xtns/", xtns_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (toolbox_factory, path);
g_free (path);
if (menu_item && menu_item->parent)
{
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, pos);
@ -964,6 +1020,46 @@ menus_reorder_plugins (void)
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, 3);
/* Reorder Rotate plugin menu entries */
pos = 2;
for (i = 0; i < n_rotate_plugins; i++)
{
path = g_strconcat ("/Image/Transforms/Rotate/", rotate_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
g_free (path);
if (menu_item && menu_item->parent)
{
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, pos);
pos++;
}
}
pos = 2;
for (i = 0; i < n_rotate_plugins; i++)
{
path = g_strconcat ("/Layers/Rotate/", rotate_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
g_free (path);
if (menu_item && menu_item->parent)
{
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, pos);
pos++;
}
}
/* Reorder <Image>/File */
for (i = 0; i < n_image_file_entries; i++)
{
path = g_strconcat ("/File/", image_file_entries[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
g_free (path);
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, -1);
}
/* Find the <Image>/Filters menu... */
menu_item = gtk_item_factory_get_widget (image_factory,
"/Filters/Repeat last");
@ -980,30 +1076,20 @@ menus_reorder_plugins (void)
menus_filters_subdirs_to_top (GTK_MENU (menu_item->submenu));
}
/* Reorder Rotate plugin menu entries */
pos = 2;
for (i = 0; i < n_rotate_plugins; i++)
/* Find the <Toolbox>/Xtns menu... */
menu_item = gtk_item_factory_get_widget (toolbox_factory,
"/Xtns/Module Browser...");
if (!menu_item || !menu_item->parent)
return;
menu = menu_item->parent;
/* ...and reorder all submenus of it's submenus */
for (list = GTK_MENU_SHELL (menu)->children; list; list = g_list_next (list))
{
path = g_strconcat ("/Image/Transforms/Rotate/", rotate_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
if (menu_item && menu_item->parent)
{
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, pos);
pos++;
}
g_free (path);
}
pos = 2;
for (i = 0; i < n_rotate_plugins; i++)
{
path = g_strconcat ("/Layers/Rotate/", rotate_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
if (menu_item && menu_item->parent)
{
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, pos);
pos++;
}
g_free (path);
GtkMenuItem *menu_item = GTK_MENU_ITEM (list->data);
if (menu_item->submenu)
menus_filters_subdirs_to_top (GTK_MENU (menu_item->submenu));
}
}
@ -1144,7 +1230,7 @@ menus_last_opened_update_labels (void)
g_string_sprintf (entry_filename, "%d. %s", i,
g_basename (((GString *) filename_slist->data)->str));
g_string_sprintf (path, N_("/File/MRU%02d"), i);
g_string_sprintf (path, "/File/MRU%02d", i);
widget = gtk_item_factory_get_widget (toolbox_factory, path->str);
if (widget != NULL) {
@ -1164,18 +1250,17 @@ void
menus_last_opened_add (gchar *filename)
{
GString *raw_filename;
GSList *item;
GSList *list;
GtkWidget *widget;
guint num_entries;
/* ignore the add if we've already got the filename on the list */
item = last_opened_raw_filenames;
while (item)
for (list = last_opened_raw_filenames; list; list = g_slist_next (list))
{
raw_filename = item->data;
raw_filename = list->data;
if (!strcmp (raw_filename->str, filename))
return;
item = g_slist_next (item);
}
num_entries = g_slist_length (last_opened_raw_filenames);
@ -1232,7 +1317,7 @@ menus_init_mru (void)
last_opened_entries[i].help_page = "file/last_opened.html";
last_opened_entries[i].description = NULL;
g_snprintf (path, MRU_MENU_ENTRY_SIZE, N_("/File/MRU%02d"), i + 1);
g_snprintf (path, MRU_MENU_ENTRY_SIZE, "/File/MRU%02d", i + 1);
if (accelerator != NULL)
g_snprintf (accelerator, MRU_MENU_ACCEL_SIZE, "<control>%d", i + 1);
}
@ -1365,6 +1450,27 @@ menus_create_items (GtkItemFactory *item_factory,
entries + i,
callback_data,
callback_type);
if (((item_factory == toolbox_factory) ||
(item_factory == image_factory)) &&
entries[i].entry.item_type &&
strstr (entries[i].entry.item_type, "Branch>"))
{
gchar *tearoff_path;
tearoff_path = g_strconcat (entries[i].entry.path, "/tearoff1", NULL);
{
GimpItemFactoryEntry tearoff_entry =
{ { tearoff_path, NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
NULL, NULL
};
menus_create_item (item_factory, &tearoff_entry, NULL, 2);
}
g_free (tearoff_path);
}
}
}
@ -1375,7 +1481,7 @@ menus_init_toolbox (void)
gtk_object_set_data (GTK_OBJECT (toolbox_factory), "help_path",
(gpointer) "toolbox");
gtk_item_factory_set_translate_func (toolbox_factory, menu_translate,
NULL, NULL);
"<Toolbox>", NULL);
menus_create_items (toolbox_factory, n_toolbox_entries,
toolbox_entries, NULL, 2);
menus_init_mru ();
@ -1406,7 +1512,7 @@ menus_init (void)
(gpointer) "image");
gtk_item_factory_set_translate_func (image_factory,
menu_translate,
NULL, NULL);
"<Image>", NULL);
menus_create_items (image_factory,
n_image_entries,
image_entries,
@ -1520,33 +1626,26 @@ menu_translate (const gchar *path,
{
static gchar menupath[MENUPATH_SIZE];
gchar *retval;
gchar *factory;
factory = (gchar *) data;
menupath[MENUPATH_SIZE - 1] = '\0';
strncpy (menupath, path, MENUPATH_SIZE -1);
if ((strstr (path, "/tearoff1") != NULL) ||
(strstr (path, "/---") != NULL) ||
(strstr (path, "/MRU") != NULL))
return menupath;
retval = gettext (path);
if (strcmp (path, retval))
return retval;
strncpy (menupath, path, MENUPATH_SIZE - 1);
strncat (menupath, "/tearoff1", MENUPATH_SIZE - 1 - strlen (menupath));
retval = gettext (menupath);
if (strcmp (menupath, retval))
if (!strcmp (path, retval) && factory)
{
strncpy (menupath, retval, MENUPATH_SIZE - 1);
*(strrchr(menupath, '/')) = '\0';
return menupath;
}
else
{
strcpy (menupath, "<Image>");
strncat (menupath, path, MENUPATH_SIZE - 1 - strlen ("<Image>"));
retval = dgettext ("gimp-std-plugins", menupath) + strlen ("<Image>");
if (!strcmp (path, retval))
{
strcpy (menupath, "<Toolbox>");
strncat (menupath, path, MENUPATH_SIZE - 1 - strlen ("<Toolbox>"));
retval = dgettext ("gimp-std-plugins", menupath) + strlen ("<Toolbox>");
}
strcpy (menupath, factory);
strncat (menupath, path, MENUPATH_SIZE - 1 - strlen (factory));
retval = dgettext ("gimp-std-plugins", menupath) + strlen (factory);
}
return retval;

View File

@ -64,12 +64,13 @@ static void help_debug_cmd_callback (GtkWidget *widget,
gpointer callback_data,
guint callback_action);
static gchar* G_GNUC_UNUSED dummyMenus[] =
static gchar G_GNUC_UNUSED *dummy_entries[] =
{
N_("/File/MRU00 "),
N_("/File/Dialogs"),
N_("/View/Zoom"),
N_("/Stack")
N_("/Filters/Render/Clouds"),
N_("/Filters/Render/Nature"),
N_("/Filters/Render/Pattern"),
N_("/Filters/Colors/Map"),
N_("/Filters/Misc")
};
static GSList *last_opened_raw_filenames = NULL;
@ -80,7 +81,7 @@ static GimpItemFactoryEntry toolbox_entries[] =
{
/* <Toolbox>/File */
{ { N_("/File/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/File"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/File/New..."), "<control>N", file_new_cmd_callback, 0 },
"file/dialogs/file_new.html", NULL },
@ -89,28 +90,28 @@ static GimpItemFactoryEntry toolbox_entries[] =
/* <Toolbox>/File/Acquire */
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Acquire/tearoff1"), NULL, NULL, 0, "<Tearoff>" },
{ { N_("/File/Acquire"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Preferences..."), NULL, file_pref_cmd_callback, 0 },
"file/dialogs/preferences/preferences.html", NULL },
/* <Toolbox>/File/Dialogs */
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Dialogs/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/File/Dialogs"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/File/Dialogs/Layers & Channels..."), "<control>L", dialogs_lc_cmd_callback, 0 },
"file/dialogs/layers_and_channels.html", NULL },
{ { N_("/File/Dialogs/Tool Options..."), "<control><shift>T", dialogs_tool_options_cmd_callback, 0 },
"file/dialogs/tool_options.html", NULL },
{ { N_("/File/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Dialogs/Brushes..."), "<control><shift>B", dialogs_brushes_cmd_callback, 0 },
"file/dialogs/brush_selection.html", NULL },
@ -123,14 +124,14 @@ static GimpItemFactoryEntry toolbox_entries[] =
{ { N_("/File/Dialogs/Indexed Palette..."), NULL, dialogs_indexed_palette_cmd_callback, 0 },
"file/dialogs/indexed_palette.html", NULL },
{ { N_("/File/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Dialogs/Input Devices..."), NULL, dialogs_input_devices_cmd_callback, 0 },
"file/dialogs/input_devices.html", NULL },
{ { N_("/File/Dialogs/Device Status..."), NULL, dialogs_device_status_cmd_callback, 0 },
"file/dialogs/device_status.html", NULL },
{ { N_("/File/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Dialogs/Document Index..."), NULL, raise_idea_callback, 0 },
"file/dialogs/document_index.html", NULL },
@ -139,27 +140,25 @@ static GimpItemFactoryEntry toolbox_entries[] =
{ { N_("/File/Dialogs/Display Filters..."), NULL, dialogs_display_filters_cmd_callback, 0 },
"file/dialogs/display_filters/display_filters.html", NULL },
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Toolbox>/Xtns */
{ { N_("/Xtns/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Xtns"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Xtns/Module Browser..."), NULL, dialogs_module_browser_cmd_callback, 0 },
"dialogs/module_browser.html", NULL },
{ { N_("/Xtns/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Xtns/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Toolbox>/Help */
{ { N_("/Help"), NULL, NULL, 0, "<LastBranch>" },
NULL, NULL },
{ { N_("/Help/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
NULL, NULL },
{ { N_("/Help/Help..."), "F1", help_help_cmd_callback, 0 },
"help/dialogs/help.html", NULL },
{ { N_("/Help/Context Help..."), "<shift>F1", help_context_help_cmd_callback, 0 },
@ -176,7 +175,7 @@ static guint n_toolbox_entries = (sizeof (toolbox_entries) /
static GtkItemFactory *toolbox_factory = NULL;
static GimpItemFactoryEntry file_menu_separator =
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL };
static GimpItemFactoryEntry toolbox_end =
@ -187,12 +186,12 @@ static GimpItemFactoryEntry toolbox_end =
static GimpItemFactoryEntry image_entries[] =
{
{ { N_("/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { "/tearoff1", NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
NULL, NULL },
/* <Image>/File */
{ { N_("/File/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/File"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/File/New..."), "<control>N", file_new_cmd_callback, 1 },
"file/dialogs/file_new.html", NULL },
@ -205,26 +204,26 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/File/Revert"), NULL, file_revert_cmd_callback, 0 },
"file/revert.html", NULL },
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_( "/File/Close"), "<control>W", file_close_cmd_callback, 0 },
"file/close.html", NULL },
{ { N_("/File/Quit"), "<control>Q", file_quit_cmd_callback, 0 },
"file/quit.html", NULL },
{ { N_("/File/---moved"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---moved", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Edit */
{ { N_("/Edit/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Edit"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Edit/Undo"), "<control>Z", edit_undo_cmd_callback, 0 },
"edit/undo.html", NULL },
{ { N_("/Edit/Redo"), "<control>R", edit_redo_cmd_callback, 0 },
"edit/redo.html", NULL },
{ { N_("/Edit/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Edit/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Edit/Cut"), "<control>X", edit_cut_cmd_callback, 0 },
"edit/cut.html", NULL },
@ -239,7 +238,7 @@ static GimpItemFactoryEntry image_entries[] =
/* <Image>/Edit/Buffer */
{ { N_("/Edit/Buffer/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Edit/Buffer"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Edit/Buffer/Cut Named..."), "<control><shift>X", edit_named_cut_cmd_callback, 0 },
"edit/dialogs/cut_named.html", NULL },
@ -248,7 +247,7 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Edit/Buffer/Paste Named..."), "<control><shift>V", edit_named_paste_cmd_callback, 0 },
"edit/dialogs/paste_named.html", NULL },
{ { N_("/Edit/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Edit/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Edit/Clear"), "<control>K", edit_clear_cmd_callback, 0 },
"edit/clear.html", NULL },
@ -257,12 +256,12 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Edit/Stroke"), NULL, edit_stroke_cmd_callback, 0 },
"edit/stroke.html", NULL },
{ { N_("/Edit/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Edit/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Select */
{ { N_("/Select/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Select"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Select/Invert"), "<control>I", select_invert_cmd_callback, 0 },
"select/invert.html", NULL },
@ -273,7 +272,7 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Select/Float"), "<control><shift>L", select_float_cmd_callback, 0 },
"select/float.html", NULL },
{ { N_("/Select/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Select/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Select/Feather..."), "<control><shift>F", select_feather_cmd_callback, 0 },
"select/dialogs/feather_selection.html", NULL },
@ -286,14 +285,14 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Select/Border..."), "<control><shift>B", select_border_cmd_callback, 0 },
"select/dialogs/border_selection.html", NULL },
{ { N_("/Select/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Select/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Select/Save To Channel"), NULL, select_save_cmd_callback, 0 },
"select/save_to_channel.html", NULL },
/* <Image>/View */
{ { N_("/View/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/View"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/View/Zoom In"), "equal", view_zoomin_cmd_callback, 0 },
"view/zoom.html", NULL },
@ -302,7 +301,7 @@ static GimpItemFactoryEntry image_entries[] =
/* <Image>/View/Zoom */
{ { N_("/View/Zoom/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/View/Zoom"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/View/Zoom/16:1"), NULL, view_zoom_16_1_cmd_callback, 0 },
"view/zoom.html", NULL },
@ -326,7 +325,7 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/View/Dot for dot"), NULL, view_dot_for_dot_cmd_callback, 0, "<ToggleItem>" },
"view/dot_for_dot.html", NULL },
{ { N_("/View/---"), NULL, NULL, 0, "<Separator>" },
{ { "/View/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/View/Info Window..."), "<control><shift>I", view_info_window_cmd_callback, 0 },
"view/dialogs/info_window.html", NULL },
@ -335,7 +334,7 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/View/Undo history..."), NULL, view_undo_history_cmd_callback, 0},
"view/dialogs/undo_history.html", NULL },
{ { N_("/View/---"), NULL, NULL, 0, "<Separator>" },
{ { "/View/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/View/Toggle Selection"), "<control>T", view_toggle_selection_cmd_callback, 0, "<ToggleItem>" },
"view/toggle_selection.html", NULL },
@ -348,24 +347,24 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/View/Snap To Guides"), NULL, view_snap_to_guides_cmd_callback, 0, "<ToggleItem>" },
"view/snap_to_guides.html", NULL },
{ { N_("/View/---"), NULL, NULL, 0, "<Separator>" },
{ { "/View/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/View/New View"), NULL, view_new_view_cmd_callback, 0 },
"view/new_view.html", NULL },
{ { N_("/View/Shrink Wrap"), "<control>E", view_shrink_wrap_cmd_callback, 0 },
"view/shrink_wrap.html", NULL },
{ { N_("/View/---"), NULL, NULL, 0, "<Separator>" },
{ { "/View/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Image */
{ { N_("/Image/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
/* <Image>/Image/Mode */
{ { N_("/Image/Mode/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Mode"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Mode/RGB"), "<alt>R", image_convert_rgb_cmd_callback, 0 },
"image/mode/convert_to_rgb.html", NULL },
@ -374,53 +373,53 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Image/Mode/Indexed..."), "<alt>I", image_convert_indexed_cmd_callback, 0 },
"image/mode/dialogs/convert_to_indexed.html", NULL },
{ { N_("/Image/Mode/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/Mode/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Image/Colors */
{ { N_("/Image/Colors/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Colors"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Colors/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/Colors/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Image/Colors/Desaturate"), NULL, image_desaturate_cmd_callback, 0 },
"image/colors/desaturate.html", NULL },
{ { N_("/Image/Colors/Invert"), NULL, image_invert_cmd_callback, 0 },
"image/colors/invert.html", NULL },
{ { N_("/Image/Colors/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/Colors/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Image/Colors/Auto */
{ { N_("/Image/Colors/Auto/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Colors/Auto"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Colors/Auto/Equalize"), NULL, image_equalize_cmd_callback, 0 },
"image/colors/auto/equalize.html", NULL },
{ { N_("/Image/Colors/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/Colors/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Image/Alpha */
{ { N_("/Image/Alpha/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Alpha"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Alpha/Add Alpha Channel"), NULL, layers_add_alpha_channel_cmd_callback, 0 },
"layers/add_alpha_channel.html", NULL },
/* <Image>/Image/Transforms */
{ { N_("/Image/Transforms/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Transforms"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Transforms/Offset..."), "<control><shift>O", image_offset_cmd_callback, 0 },
"image/transforms/dialogs/offset.html", NULL },
{ { N_("/Image/Transforms/Rotate/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Transforms/Rotate"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Transforms/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/Transforms/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Image/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Image/Canvas Size..."), NULL, image_resize_cmd_callback, 0 },
"image/dialogs/canvas_size.html", NULL },
@ -429,19 +428,19 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Image/Duplicate"), "<control>D", image_duplicate_cmd_callback, 0 },
"image/duplicate.html", NULL },
{ { N_("/Image/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Layers */
{ { N_("/Layers/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Layers"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Layers/Layers & Channels..."), "<control>L", dialogs_lc_cmd_callback, 0 },
"dialogs/layers_and_channels.html", NULL },
/* <Image>/Layers/Stack */
{ { N_("/Layers/Stack/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Layers/Stack"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Layers/Stack/Previous Layer"), "Prior", layers_previous_cmd_callback, 0 },
"layers/stack/stack.html#previous_layer", NULL },
@ -455,15 +454,15 @@ static GimpItemFactoryEntry image_entries[] =
"layers/stack/stack.html#layer_to_top", NULL },
{ { N_("/Layers/Stack/Layer to Bottom"), "<control>Next", layers_lower_to_bottom_cmd_callback, 0 },
"layers/stack/stack.html#layer_to_bottom", NULL },
{ { N_("/Layers/Stack/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Layers/Stack/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Layers/Rotate */
{ { N_("/Layers/Rotate/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Layers/Rotate"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Layers/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Layers/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Layers/Anchor Layer"), "<control>H", layers_anchor_cmd_callback, 0 },
"layers/anchor_layer.html", NULL },
@ -472,24 +471,24 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Layers/Flatten Image"), NULL, layers_flatten_cmd_callback, 0 },
"layers/flatten_image.html", NULL },
{ { N_("/Layers/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Layers/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Layers/Mask To Selection"), NULL, layers_mask_select_cmd_callback, 0 },
"layers/mask_to_selection.html", NULL },
{ { N_("/Layers/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Layers/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Layers/Add Alpha Channel"), NULL, layers_add_alpha_channel_cmd_callback, 0 },
"layers/add_alpha_channel.html", NULL },
{ { N_("/Layers/Alpha To Selection"), NULL, layers_alpha_select_cmd_callback, 0 },
"layers/alpha_to_selection.html", NULL },
{ { N_("/Layers/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Layers/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Tools */
{ { N_("/Tools/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Tools"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Tools/Toolbox"), NULL, toolbox_raise_callback, 0 },
"toolbox/toolbox.html", NULL },
@ -498,36 +497,82 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Tools/Swap Colors"), "X", tools_swap_colors_cmd_callback, 0 },
"toolbox/toolbox.html#swap_colors", NULL },
{ { N_("/Tools/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Tools/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Filters */
{ { N_("/Filters/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Filters"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Repeat last"), "<alt>F", filters_repeat_cmd_callback, 0x0 },
"filters/repeat_last.html", NULL },
{ { N_("/Filters/Re-show last"), "<alt><shift>F", filters_repeat_cmd_callback, 0x1 },
"filters/reshow_last.html", NULL },
{ { N_("/Filters/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Filters/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Filters/Blur"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Colors"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { "/Filters/Colors/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Filters/Noise"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Edge-Detect"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Enhance"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Generic"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { "/Filters/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Filters/Glass Effects"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Light Effects"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Distorts"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Artistic"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Map"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Render"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Web"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { "/Filters/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Filters/Animation"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Combine"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { "/Filters/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Filters/Toys"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
/* <Image>/Script-Fu */
{ { N_("/Script-Fu/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Script-Fu"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
/* <Image>/Dialogs */
{ { N_("/Dialogs/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Dialogs"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Dialogs/Layers & Channels..."), "<control>L", dialogs_lc_cmd_callback, 0 },
"dialogs/layers_and_channels.html", NULL },
{ { N_("/Dialogs/Tool Options..."), NULL, dialogs_tool_options_cmd_callback, 0 },
"dialogs/tool_options.html", NULL },
{ { N_("/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Dialogs/Brushes..."), "<control><shift>B", dialogs_brushes_cmd_callback, 0 },
"dialogs/brush_selection.html", NULL },
@ -540,14 +585,14 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Dialogs/Indexed Palette..."), NULL, dialogs_indexed_palette_cmd_callback, 0 },
"dialogs/indexed_palette.html", NULL },
{ { N_("/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Dialogs/Input Devices..."), NULL, dialogs_input_devices_cmd_callback, 0 },
"dialogs/input_devices.html", NULL },
{ { N_("/Dialogs/Device Status..."), NULL, dialogs_device_status_cmd_callback, 0 },
"dialogs/device_status.html", NULL },
{ { N_("/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Dialogs/Document Index..."), NULL, raise_idea_callback, 0 },
"dialogs/document_index.html", NULL },
@ -597,6 +642,8 @@ static GimpItemFactoryEntry layers_entries[] =
/* <Layers>/Stack */
{ { N_("/Stack"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Stack/Previous Layer"), "Prior", layers_dialog_previous_layer_callback, 0 },
"stack/stack.html#previous_layer", NULL },
{ { N_("/Stack/Next Layer"), "Next", layers_dialog_next_layer_callback, 0 },
@ -815,54 +862,59 @@ void
menus_create_item_from_full_path (GimpItemFactoryEntry *entry,
gpointer callback_data)
{
GtkItemFactory *ifactory;
GtkWidget *menu_item;
gboolean redo_image_menu = FALSE;
GtkItemFactory *item_factory;
GString *tearoff_path;
gchar *path;
if (initialize)
menus_init ();
tearoff_path = g_string_new ("");
path = entry->entry.path;
item_factory = gtk_item_factory_from_path (path);
if (! strncmp (entry->entry.path, "<Image>", 7))
if (!item_factory)
{
g_warning ("entry refers to unknown item factory: \"%s\"", path);
return;
}
if ((item_factory == image_factory) ||
(item_factory == toolbox_factory))
{
gint factory_length;
gchar *p;
p = strchr (entry->entry.path + 8, '/');
tearoff_path = g_string_new ("");
p = strchr (entry->entry.path, '/');
factory_length = p - entry->entry.path;
/* skip the first slash */
if (p)
p = strchr (p + 1, '/');
while (p)
{
g_string_assign (tearoff_path, entry->entry.path + 7);
g_string_assign (tearoff_path, entry->entry.path + factory_length);
g_string_truncate (tearoff_path,
p - entry->entry.path + 1 - 7);
p - entry->entry.path + 1 - factory_length);
g_string_append (tearoff_path, "tearoff1");
if (! gtk_item_factory_get_widget (image_factory,
if (! gtk_item_factory_get_widget (item_factory,
tearoff_path->str))
{
GimpItemFactoryEntry tearoff_entry =
{ { tearoff_path->str, NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { tearoff_path->str, NULL, tearoff_cmd_callback, 0,
"<Tearoff>" },
NULL, NULL };
menus_create_item (image_factory, &tearoff_entry, NULL, 2);
menus_create_item (item_factory, &tearoff_entry, NULL, 2);
}
p = strchr (p + 1, '/');
}
redo_image_menu = TRUE;
}
g_string_free (tearoff_path, TRUE);
path = entry->entry.path;
ifactory = gtk_item_factory_from_path (path);
if (!ifactory)
{
g_warning ("entry refers to unknown item factory: \"%s\"", path);
return;
}
while (*path != '>')
@ -871,25 +923,7 @@ menus_create_item_from_full_path (GimpItemFactoryEntry *entry,
entry->entry.path = path;
menus_create_item (ifactory, entry, callback_data, 2);
if (redo_image_menu)
{
menu_item = gtk_item_factory_get_widget (image_factory,
"<Image>/File/---moved");
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, -1);
menu_item = gtk_item_factory_get_widget (image_factory,
"<Image>/File/Close");
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, -1);
menu_item = gtk_item_factory_get_widget (image_factory,
"<Image>/File/Quit");
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, -1);
}
menus_create_item (item_factory, entry, callback_data, 2);
}
static void
@ -897,6 +931,8 @@ menus_filters_subdirs_to_top (GtkMenu *menu)
{
GtkMenuItem *menu_item;
GList *list;
gboolean submenus_passed = FALSE;
gboolean separator_found = FALSE;
gint pos;
pos = 1;
@ -906,14 +942,26 @@ menus_filters_subdirs_to_top (GtkMenu *menu)
menu_item = GTK_MENU_ITEM (list->data);
if (menu_item->submenu)
{
if (submenus_passed)
{
menus_filters_subdirs_to_top (GTK_MENU (menu_item->submenu));
gtk_menu_reorder_child (menu, GTK_WIDGET (menu_item), pos);
pos++;
}
}
if (pos > 1)
pos++;
}
else
{
submenus_passed = TRUE;
}
if (! GTK_BIN (menu_item)->child &&
menu_item != GTK_MENU_SHELL (menu)->children->data)
separator_found = TRUE;
}
if ((pos > 1) && !separator_found)
{
GtkWidget *separator;
@ -926,10 +974,10 @@ menus_filters_subdirs_to_top (GtkMenu *menu)
void
menus_reorder_plugins (void)
{
static gchar *xtns_plugins[] = { "/Xtns/DB Browser...",
"/Xtns/PDB Explorer",
"/Xtns/Plugin Details...",
"/Xtns/Parasite Editor" };
static gchar *xtns_plugins[] = { "DB Browser...",
"PDB Explorer",
"Plugin Details...",
"Parasite Editor" };
static gint n_xtns_plugins = (sizeof (xtns_plugins) /
sizeof (xtns_plugins[0]));
@ -939,6 +987,12 @@ menus_reorder_plugins (void)
static gint n_rotate_plugins = (sizeof (rotate_plugins) /
sizeof (rotate_plugins[0]));
static gchar *image_file_entries[] = { "---moved",
"Close",
"Quit" };
static gint n_image_file_entries = (sizeof (image_file_entries) /
sizeof (image_file_entries[0]));
GtkWidget *menu;
GtkWidget *menu_item;
GList *list;
@ -949,8 +1003,10 @@ menus_reorder_plugins (void)
pos = 2;
for (i = 0; i < n_xtns_plugins; i++)
{
menu_item = gtk_item_factory_get_widget (toolbox_factory,
xtns_plugins[i]);
path = g_strconcat ("/Xtns/", xtns_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (toolbox_factory, path);
g_free (path);
if (menu_item && menu_item->parent)
{
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, pos);
@ -964,6 +1020,46 @@ menus_reorder_plugins (void)
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, 3);
/* Reorder Rotate plugin menu entries */
pos = 2;
for (i = 0; i < n_rotate_plugins; i++)
{
path = g_strconcat ("/Image/Transforms/Rotate/", rotate_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
g_free (path);
if (menu_item && menu_item->parent)
{
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, pos);
pos++;
}
}
pos = 2;
for (i = 0; i < n_rotate_plugins; i++)
{
path = g_strconcat ("/Layers/Rotate/", rotate_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
g_free (path);
if (menu_item && menu_item->parent)
{
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, pos);
pos++;
}
}
/* Reorder <Image>/File */
for (i = 0; i < n_image_file_entries; i++)
{
path = g_strconcat ("/File/", image_file_entries[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
g_free (path);
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, -1);
}
/* Find the <Image>/Filters menu... */
menu_item = gtk_item_factory_get_widget (image_factory,
"/Filters/Repeat last");
@ -980,30 +1076,20 @@ menus_reorder_plugins (void)
menus_filters_subdirs_to_top (GTK_MENU (menu_item->submenu));
}
/* Reorder Rotate plugin menu entries */
pos = 2;
for (i = 0; i < n_rotate_plugins; i++)
/* Find the <Toolbox>/Xtns menu... */
menu_item = gtk_item_factory_get_widget (toolbox_factory,
"/Xtns/Module Browser...");
if (!menu_item || !menu_item->parent)
return;
menu = menu_item->parent;
/* ...and reorder all submenus of it's submenus */
for (list = GTK_MENU_SHELL (menu)->children; list; list = g_list_next (list))
{
path = g_strconcat ("/Image/Transforms/Rotate/", rotate_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
if (menu_item && menu_item->parent)
{
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, pos);
pos++;
}
g_free (path);
}
pos = 2;
for (i = 0; i < n_rotate_plugins; i++)
{
path = g_strconcat ("/Layers/Rotate/", rotate_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
if (menu_item && menu_item->parent)
{
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, pos);
pos++;
}
g_free (path);
GtkMenuItem *menu_item = GTK_MENU_ITEM (list->data);
if (menu_item->submenu)
menus_filters_subdirs_to_top (GTK_MENU (menu_item->submenu));
}
}
@ -1144,7 +1230,7 @@ menus_last_opened_update_labels (void)
g_string_sprintf (entry_filename, "%d. %s", i,
g_basename (((GString *) filename_slist->data)->str));
g_string_sprintf (path, N_("/File/MRU%02d"), i);
g_string_sprintf (path, "/File/MRU%02d", i);
widget = gtk_item_factory_get_widget (toolbox_factory, path->str);
if (widget != NULL) {
@ -1164,18 +1250,17 @@ void
menus_last_opened_add (gchar *filename)
{
GString *raw_filename;
GSList *item;
GSList *list;
GtkWidget *widget;
guint num_entries;
/* ignore the add if we've already got the filename on the list */
item = last_opened_raw_filenames;
while (item)
for (list = last_opened_raw_filenames; list; list = g_slist_next (list))
{
raw_filename = item->data;
raw_filename = list->data;
if (!strcmp (raw_filename->str, filename))
return;
item = g_slist_next (item);
}
num_entries = g_slist_length (last_opened_raw_filenames);
@ -1232,7 +1317,7 @@ menus_init_mru (void)
last_opened_entries[i].help_page = "file/last_opened.html";
last_opened_entries[i].description = NULL;
g_snprintf (path, MRU_MENU_ENTRY_SIZE, N_("/File/MRU%02d"), i + 1);
g_snprintf (path, MRU_MENU_ENTRY_SIZE, "/File/MRU%02d", i + 1);
if (accelerator != NULL)
g_snprintf (accelerator, MRU_MENU_ACCEL_SIZE, "<control>%d", i + 1);
}
@ -1365,6 +1450,27 @@ menus_create_items (GtkItemFactory *item_factory,
entries + i,
callback_data,
callback_type);
if (((item_factory == toolbox_factory) ||
(item_factory == image_factory)) &&
entries[i].entry.item_type &&
strstr (entries[i].entry.item_type, "Branch>"))
{
gchar *tearoff_path;
tearoff_path = g_strconcat (entries[i].entry.path, "/tearoff1", NULL);
{
GimpItemFactoryEntry tearoff_entry =
{ { tearoff_path, NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
NULL, NULL
};
menus_create_item (item_factory, &tearoff_entry, NULL, 2);
}
g_free (tearoff_path);
}
}
}
@ -1375,7 +1481,7 @@ menus_init_toolbox (void)
gtk_object_set_data (GTK_OBJECT (toolbox_factory), "help_path",
(gpointer) "toolbox");
gtk_item_factory_set_translate_func (toolbox_factory, menu_translate,
NULL, NULL);
"<Toolbox>", NULL);
menus_create_items (toolbox_factory, n_toolbox_entries,
toolbox_entries, NULL, 2);
menus_init_mru ();
@ -1406,7 +1512,7 @@ menus_init (void)
(gpointer) "image");
gtk_item_factory_set_translate_func (image_factory,
menu_translate,
NULL, NULL);
"<Image>", NULL);
menus_create_items (image_factory,
n_image_entries,
image_entries,
@ -1520,33 +1626,26 @@ menu_translate (const gchar *path,
{
static gchar menupath[MENUPATH_SIZE];
gchar *retval;
gchar *factory;
factory = (gchar *) data;
menupath[MENUPATH_SIZE - 1] = '\0';
strncpy (menupath, path, MENUPATH_SIZE -1);
if ((strstr (path, "/tearoff1") != NULL) ||
(strstr (path, "/---") != NULL) ||
(strstr (path, "/MRU") != NULL))
return menupath;
retval = gettext (path);
if (strcmp (path, retval))
return retval;
strncpy (menupath, path, MENUPATH_SIZE - 1);
strncat (menupath, "/tearoff1", MENUPATH_SIZE - 1 - strlen (menupath));
retval = gettext (menupath);
if (strcmp (menupath, retval))
if (!strcmp (path, retval) && factory)
{
strncpy (menupath, retval, MENUPATH_SIZE - 1);
*(strrchr(menupath, '/')) = '\0';
return menupath;
}
else
{
strcpy (menupath, "<Image>");
strncat (menupath, path, MENUPATH_SIZE - 1 - strlen ("<Image>"));
retval = dgettext ("gimp-std-plugins", menupath) + strlen ("<Image>");
if (!strcmp (path, retval))
{
strcpy (menupath, "<Toolbox>");
strncat (menupath, path, MENUPATH_SIZE - 1 - strlen ("<Toolbox>"));
retval = dgettext ("gimp-std-plugins", menupath) + strlen ("<Toolbox>");
}
strcpy (menupath, factory);
strncat (menupath, path, MENUPATH_SIZE - 1 - strlen (factory));
retval = dgettext ("gimp-std-plugins", menupath) + strlen (factory);
}
return retval;

View File

@ -642,10 +642,10 @@ plug_in_def_add (PlugInDef *plug_in_def)
* of one of these things, but Nick Lamb's alien/unknown format
* loader needs to be able to register no extensions, prefixes or
* magics. -- austin 13/Feb/99 */
tmp = plug_in_def->proc_defs;
while (tmp)
for (tmp = plug_in_def->proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
if (!proc_def->extensions && !proc_def->prefixes && !proc_def->magics &&
proc_def->menu_path &&
(!strncmp (proc_def->menu_path, "<Load>", 6) ||
@ -653,12 +653,9 @@ plug_in_def_add (PlugInDef *plug_in_def)
{
proc_def->extensions = g_strdup("");
}
tmp = tmp->next;
}
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
tplug_in_def = tmp->data;
@ -685,8 +682,6 @@ plug_in_def_add (PlugInDef *plug_in_def)
}
return;
}
tmp = tmp->next;
}
write_pluginrc = TRUE;
@ -695,35 +690,29 @@ plug_in_def_add (PlugInDef *plug_in_def)
g_free (plug_in_def);
}
char*
plug_in_menu_path (char *name)
gchar *
plug_in_menu_path (gchar *name)
{
PlugInDef *plug_in_def;
PlugInProcDef *proc_def;
GSList *tmp, *tmp2;
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
plug_in_def = tmp->data;
tmp = tmp->next;
tmp2 = plug_in_def->proc_defs;
while (tmp2)
for (tmp2 = plug_in_def->proc_defs; tmp2; tmp2 = g_slist_next (tmp2))
{
proc_def = tmp2->data;
tmp2 = tmp2->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
}
}
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
@ -733,10 +722,10 @@ plug_in_menu_path (char *name)
}
PlugIn*
plug_in_new (char *name)
plug_in_new (gchar *name)
{
PlugIn *plug_in;
char *path;
gchar *path;
if (!g_path_is_absolute (name))
{
@ -813,7 +802,7 @@ plug_in_destroy (PlugIn *plug_in)
}
}
int
gint
plug_in_open (PlugIn *plug_in)
{
int my_read[2];
@ -950,17 +939,17 @@ plug_in_open (PlugIn *plug_in)
}
plug_in->open = TRUE;
return 1;
return TRUE;
}
return 0;
return FALSE;
}
void
plug_in_close (PlugIn *plug_in,
int kill_it)
gint kill_it)
{
int status;
gint status;
#ifndef G_OS_WIN32
struct timeval tv;
#endif
@ -1244,13 +1233,11 @@ plug_in_set_menu_sensitivity (GimpImageType type)
{
PlugInProcDef *proc_def;
GSList *tmp;
int sensitive = FALSE;
gboolean sensitive = FALSE;
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (proc_def->image_types_val && proc_def->menu_path)
{
@ -1280,6 +1267,7 @@ plug_in_set_menu_sensitivity (GimpImageType type)
}
menus_set_sensitive (proc_def->menu_path, sensitive);
if (last_plug_in && (last_plug_in == &(proc_def->db_info)))
{
menus_set_sensitive ("<Image>/Filters/Repeat last", sensitive);
@ -2478,7 +2466,7 @@ plug_in_proc_def_remove (PlugInProcDef *proc_def)
{
/* Destroy the menu item */
if (proc_def->menu_path)
menus_destroy (gettext(proc_def->menu_path));
menus_destroy (proc_def->menu_path);
/* Unregister the procedural database entry */
procedural_db_unregister (proc_def->db_info.name);

View File

@ -642,10 +642,10 @@ plug_in_def_add (PlugInDef *plug_in_def)
* of one of these things, but Nick Lamb's alien/unknown format
* loader needs to be able to register no extensions, prefixes or
* magics. -- austin 13/Feb/99 */
tmp = plug_in_def->proc_defs;
while (tmp)
for (tmp = plug_in_def->proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
if (!proc_def->extensions && !proc_def->prefixes && !proc_def->magics &&
proc_def->menu_path &&
(!strncmp (proc_def->menu_path, "<Load>", 6) ||
@ -653,12 +653,9 @@ plug_in_def_add (PlugInDef *plug_in_def)
{
proc_def->extensions = g_strdup("");
}
tmp = tmp->next;
}
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
tplug_in_def = tmp->data;
@ -685,8 +682,6 @@ plug_in_def_add (PlugInDef *plug_in_def)
}
return;
}
tmp = tmp->next;
}
write_pluginrc = TRUE;
@ -695,35 +690,29 @@ plug_in_def_add (PlugInDef *plug_in_def)
g_free (plug_in_def);
}
char*
plug_in_menu_path (char *name)
gchar *
plug_in_menu_path (gchar *name)
{
PlugInDef *plug_in_def;
PlugInProcDef *proc_def;
GSList *tmp, *tmp2;
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
plug_in_def = tmp->data;
tmp = tmp->next;
tmp2 = plug_in_def->proc_defs;
while (tmp2)
for (tmp2 = plug_in_def->proc_defs; tmp2; tmp2 = g_slist_next (tmp2))
{
proc_def = tmp2->data;
tmp2 = tmp2->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
}
}
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
@ -733,10 +722,10 @@ plug_in_menu_path (char *name)
}
PlugIn*
plug_in_new (char *name)
plug_in_new (gchar *name)
{
PlugIn *plug_in;
char *path;
gchar *path;
if (!g_path_is_absolute (name))
{
@ -813,7 +802,7 @@ plug_in_destroy (PlugIn *plug_in)
}
}
int
gint
plug_in_open (PlugIn *plug_in)
{
int my_read[2];
@ -950,17 +939,17 @@ plug_in_open (PlugIn *plug_in)
}
plug_in->open = TRUE;
return 1;
return TRUE;
}
return 0;
return FALSE;
}
void
plug_in_close (PlugIn *plug_in,
int kill_it)
gint kill_it)
{
int status;
gint status;
#ifndef G_OS_WIN32
struct timeval tv;
#endif
@ -1244,13 +1233,11 @@ plug_in_set_menu_sensitivity (GimpImageType type)
{
PlugInProcDef *proc_def;
GSList *tmp;
int sensitive = FALSE;
gboolean sensitive = FALSE;
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (proc_def->image_types_val && proc_def->menu_path)
{
@ -1280,6 +1267,7 @@ plug_in_set_menu_sensitivity (GimpImageType type)
}
menus_set_sensitive (proc_def->menu_path, sensitive);
if (last_plug_in && (last_plug_in == &(proc_def->db_info)))
{
menus_set_sensitive ("<Image>/Filters/Repeat last", sensitive);
@ -2478,7 +2466,7 @@ plug_in_proc_def_remove (PlugInProcDef *proc_def)
{
/* Destroy the menu item */
if (proc_def->menu_path)
menus_destroy (gettext(proc_def->menu_path));
menus_destroy (proc_def->menu_path);
/* Unregister the procedural database entry */
procedural_db_unregister (proc_def->db_info.name);

View File

@ -642,10 +642,10 @@ plug_in_def_add (PlugInDef *plug_in_def)
* of one of these things, but Nick Lamb's alien/unknown format
* loader needs to be able to register no extensions, prefixes or
* magics. -- austin 13/Feb/99 */
tmp = plug_in_def->proc_defs;
while (tmp)
for (tmp = plug_in_def->proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
if (!proc_def->extensions && !proc_def->prefixes && !proc_def->magics &&
proc_def->menu_path &&
(!strncmp (proc_def->menu_path, "<Load>", 6) ||
@ -653,12 +653,9 @@ plug_in_def_add (PlugInDef *plug_in_def)
{
proc_def->extensions = g_strdup("");
}
tmp = tmp->next;
}
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
tplug_in_def = tmp->data;
@ -685,8 +682,6 @@ plug_in_def_add (PlugInDef *plug_in_def)
}
return;
}
tmp = tmp->next;
}
write_pluginrc = TRUE;
@ -695,35 +690,29 @@ plug_in_def_add (PlugInDef *plug_in_def)
g_free (plug_in_def);
}
char*
plug_in_menu_path (char *name)
gchar *
plug_in_menu_path (gchar *name)
{
PlugInDef *plug_in_def;
PlugInProcDef *proc_def;
GSList *tmp, *tmp2;
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
plug_in_def = tmp->data;
tmp = tmp->next;
tmp2 = plug_in_def->proc_defs;
while (tmp2)
for (tmp2 = plug_in_def->proc_defs; tmp2; tmp2 = g_slist_next (tmp2))
{
proc_def = tmp2->data;
tmp2 = tmp2->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
}
}
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
@ -733,10 +722,10 @@ plug_in_menu_path (char *name)
}
PlugIn*
plug_in_new (char *name)
plug_in_new (gchar *name)
{
PlugIn *plug_in;
char *path;
gchar *path;
if (!g_path_is_absolute (name))
{
@ -813,7 +802,7 @@ plug_in_destroy (PlugIn *plug_in)
}
}
int
gint
plug_in_open (PlugIn *plug_in)
{
int my_read[2];
@ -950,17 +939,17 @@ plug_in_open (PlugIn *plug_in)
}
plug_in->open = TRUE;
return 1;
return TRUE;
}
return 0;
return FALSE;
}
void
plug_in_close (PlugIn *plug_in,
int kill_it)
gint kill_it)
{
int status;
gint status;
#ifndef G_OS_WIN32
struct timeval tv;
#endif
@ -1244,13 +1233,11 @@ plug_in_set_menu_sensitivity (GimpImageType type)
{
PlugInProcDef *proc_def;
GSList *tmp;
int sensitive = FALSE;
gboolean sensitive = FALSE;
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (proc_def->image_types_val && proc_def->menu_path)
{
@ -1280,6 +1267,7 @@ plug_in_set_menu_sensitivity (GimpImageType type)
}
menus_set_sensitive (proc_def->menu_path, sensitive);
if (last_plug_in && (last_plug_in == &(proc_def->db_info)))
{
menus_set_sensitive ("<Image>/Filters/Repeat last", sensitive);
@ -2478,7 +2466,7 @@ plug_in_proc_def_remove (PlugInProcDef *proc_def)
{
/* Destroy the menu item */
if (proc_def->menu_path)
menus_destroy (gettext(proc_def->menu_path));
menus_destroy (proc_def->menu_path);
/* Unregister the procedural database entry */
procedural_db_unregister (proc_def->db_info.name);

View File

@ -642,10 +642,10 @@ plug_in_def_add (PlugInDef *plug_in_def)
* of one of these things, but Nick Lamb's alien/unknown format
* loader needs to be able to register no extensions, prefixes or
* magics. -- austin 13/Feb/99 */
tmp = plug_in_def->proc_defs;
while (tmp)
for (tmp = plug_in_def->proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
if (!proc_def->extensions && !proc_def->prefixes && !proc_def->magics &&
proc_def->menu_path &&
(!strncmp (proc_def->menu_path, "<Load>", 6) ||
@ -653,12 +653,9 @@ plug_in_def_add (PlugInDef *plug_in_def)
{
proc_def->extensions = g_strdup("");
}
tmp = tmp->next;
}
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
tplug_in_def = tmp->data;
@ -685,8 +682,6 @@ plug_in_def_add (PlugInDef *plug_in_def)
}
return;
}
tmp = tmp->next;
}
write_pluginrc = TRUE;
@ -695,35 +690,29 @@ plug_in_def_add (PlugInDef *plug_in_def)
g_free (plug_in_def);
}
char*
plug_in_menu_path (char *name)
gchar *
plug_in_menu_path (gchar *name)
{
PlugInDef *plug_in_def;
PlugInProcDef *proc_def;
GSList *tmp, *tmp2;
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
plug_in_def = tmp->data;
tmp = tmp->next;
tmp2 = plug_in_def->proc_defs;
while (tmp2)
for (tmp2 = plug_in_def->proc_defs; tmp2; tmp2 = g_slist_next (tmp2))
{
proc_def = tmp2->data;
tmp2 = tmp2->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
}
}
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
@ -733,10 +722,10 @@ plug_in_menu_path (char *name)
}
PlugIn*
plug_in_new (char *name)
plug_in_new (gchar *name)
{
PlugIn *plug_in;
char *path;
gchar *path;
if (!g_path_is_absolute (name))
{
@ -813,7 +802,7 @@ plug_in_destroy (PlugIn *plug_in)
}
}
int
gint
plug_in_open (PlugIn *plug_in)
{
int my_read[2];
@ -950,17 +939,17 @@ plug_in_open (PlugIn *plug_in)
}
plug_in->open = TRUE;
return 1;
return TRUE;
}
return 0;
return FALSE;
}
void
plug_in_close (PlugIn *plug_in,
int kill_it)
gint kill_it)
{
int status;
gint status;
#ifndef G_OS_WIN32
struct timeval tv;
#endif
@ -1244,13 +1233,11 @@ plug_in_set_menu_sensitivity (GimpImageType type)
{
PlugInProcDef *proc_def;
GSList *tmp;
int sensitive = FALSE;
gboolean sensitive = FALSE;
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (proc_def->image_types_val && proc_def->menu_path)
{
@ -1280,6 +1267,7 @@ plug_in_set_menu_sensitivity (GimpImageType type)
}
menus_set_sensitive (proc_def->menu_path, sensitive);
if (last_plug_in && (last_plug_in == &(proc_def->db_info)))
{
menus_set_sensitive ("<Image>/Filters/Repeat last", sensitive);
@ -2478,7 +2466,7 @@ plug_in_proc_def_remove (PlugInProcDef *proc_def)
{
/* Destroy the menu item */
if (proc_def->menu_path)
menus_destroy (gettext(proc_def->menu_path));
menus_destroy (proc_def->menu_path);
/* Unregister the procedural database entry */
procedural_db_unregister (proc_def->db_info.name);

View File

@ -642,10 +642,10 @@ plug_in_def_add (PlugInDef *plug_in_def)
* of one of these things, but Nick Lamb's alien/unknown format
* loader needs to be able to register no extensions, prefixes or
* magics. -- austin 13/Feb/99 */
tmp = plug_in_def->proc_defs;
while (tmp)
for (tmp = plug_in_def->proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
if (!proc_def->extensions && !proc_def->prefixes && !proc_def->magics &&
proc_def->menu_path &&
(!strncmp (proc_def->menu_path, "<Load>", 6) ||
@ -653,12 +653,9 @@ plug_in_def_add (PlugInDef *plug_in_def)
{
proc_def->extensions = g_strdup("");
}
tmp = tmp->next;
}
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
tplug_in_def = tmp->data;
@ -685,8 +682,6 @@ plug_in_def_add (PlugInDef *plug_in_def)
}
return;
}
tmp = tmp->next;
}
write_pluginrc = TRUE;
@ -695,35 +690,29 @@ plug_in_def_add (PlugInDef *plug_in_def)
g_free (plug_in_def);
}
char*
plug_in_menu_path (char *name)
gchar *
plug_in_menu_path (gchar *name)
{
PlugInDef *plug_in_def;
PlugInProcDef *proc_def;
GSList *tmp, *tmp2;
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
plug_in_def = tmp->data;
tmp = tmp->next;
tmp2 = plug_in_def->proc_defs;
while (tmp2)
for (tmp2 = plug_in_def->proc_defs; tmp2; tmp2 = g_slist_next (tmp2))
{
proc_def = tmp2->data;
tmp2 = tmp2->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
}
}
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
@ -733,10 +722,10 @@ plug_in_menu_path (char *name)
}
PlugIn*
plug_in_new (char *name)
plug_in_new (gchar *name)
{
PlugIn *plug_in;
char *path;
gchar *path;
if (!g_path_is_absolute (name))
{
@ -813,7 +802,7 @@ plug_in_destroy (PlugIn *plug_in)
}
}
int
gint
plug_in_open (PlugIn *plug_in)
{
int my_read[2];
@ -950,17 +939,17 @@ plug_in_open (PlugIn *plug_in)
}
plug_in->open = TRUE;
return 1;
return TRUE;
}
return 0;
return FALSE;
}
void
plug_in_close (PlugIn *plug_in,
int kill_it)
gint kill_it)
{
int status;
gint status;
#ifndef G_OS_WIN32
struct timeval tv;
#endif
@ -1244,13 +1233,11 @@ plug_in_set_menu_sensitivity (GimpImageType type)
{
PlugInProcDef *proc_def;
GSList *tmp;
int sensitive = FALSE;
gboolean sensitive = FALSE;
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (proc_def->image_types_val && proc_def->menu_path)
{
@ -1280,6 +1267,7 @@ plug_in_set_menu_sensitivity (GimpImageType type)
}
menus_set_sensitive (proc_def->menu_path, sensitive);
if (last_plug_in && (last_plug_in == &(proc_def->db_info)))
{
menus_set_sensitive ("<Image>/Filters/Repeat last", sensitive);
@ -2478,7 +2466,7 @@ plug_in_proc_def_remove (PlugInProcDef *proc_def)
{
/* Destroy the menu item */
if (proc_def->menu_path)
menus_destroy (gettext(proc_def->menu_path));
menus_destroy (proc_def->menu_path);
/* Unregister the procedural database entry */
procedural_db_unregister (proc_def->db_info.name);

View File

@ -642,10 +642,10 @@ plug_in_def_add (PlugInDef *plug_in_def)
* of one of these things, but Nick Lamb's alien/unknown format
* loader needs to be able to register no extensions, prefixes or
* magics. -- austin 13/Feb/99 */
tmp = plug_in_def->proc_defs;
while (tmp)
for (tmp = plug_in_def->proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
if (!proc_def->extensions && !proc_def->prefixes && !proc_def->magics &&
proc_def->menu_path &&
(!strncmp (proc_def->menu_path, "<Load>", 6) ||
@ -653,12 +653,9 @@ plug_in_def_add (PlugInDef *plug_in_def)
{
proc_def->extensions = g_strdup("");
}
tmp = tmp->next;
}
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
tplug_in_def = tmp->data;
@ -685,8 +682,6 @@ plug_in_def_add (PlugInDef *plug_in_def)
}
return;
}
tmp = tmp->next;
}
write_pluginrc = TRUE;
@ -695,35 +690,29 @@ plug_in_def_add (PlugInDef *plug_in_def)
g_free (plug_in_def);
}
char*
plug_in_menu_path (char *name)
gchar *
plug_in_menu_path (gchar *name)
{
PlugInDef *plug_in_def;
PlugInProcDef *proc_def;
GSList *tmp, *tmp2;
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
plug_in_def = tmp->data;
tmp = tmp->next;
tmp2 = plug_in_def->proc_defs;
while (tmp2)
for (tmp2 = plug_in_def->proc_defs; tmp2; tmp2 = g_slist_next (tmp2))
{
proc_def = tmp2->data;
tmp2 = tmp2->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
}
}
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
@ -733,10 +722,10 @@ plug_in_menu_path (char *name)
}
PlugIn*
plug_in_new (char *name)
plug_in_new (gchar *name)
{
PlugIn *plug_in;
char *path;
gchar *path;
if (!g_path_is_absolute (name))
{
@ -813,7 +802,7 @@ plug_in_destroy (PlugIn *plug_in)
}
}
int
gint
plug_in_open (PlugIn *plug_in)
{
int my_read[2];
@ -950,17 +939,17 @@ plug_in_open (PlugIn *plug_in)
}
plug_in->open = TRUE;
return 1;
return TRUE;
}
return 0;
return FALSE;
}
void
plug_in_close (PlugIn *plug_in,
int kill_it)
gint kill_it)
{
int status;
gint status;
#ifndef G_OS_WIN32
struct timeval tv;
#endif
@ -1244,13 +1233,11 @@ plug_in_set_menu_sensitivity (GimpImageType type)
{
PlugInProcDef *proc_def;
GSList *tmp;
int sensitive = FALSE;
gboolean sensitive = FALSE;
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (proc_def->image_types_val && proc_def->menu_path)
{
@ -1280,6 +1267,7 @@ plug_in_set_menu_sensitivity (GimpImageType type)
}
menus_set_sensitive (proc_def->menu_path, sensitive);
if (last_plug_in && (last_plug_in == &(proc_def->db_info)))
{
menus_set_sensitive ("<Image>/Filters/Repeat last", sensitive);
@ -2478,7 +2466,7 @@ plug_in_proc_def_remove (PlugInProcDef *proc_def)
{
/* Destroy the menu item */
if (proc_def->menu_path)
menus_destroy (gettext(proc_def->menu_path));
menus_destroy (proc_def->menu_path);
/* Unregister the procedural database entry */
procedural_db_unregister (proc_def->db_info.name);

View File

@ -642,10 +642,10 @@ plug_in_def_add (PlugInDef *plug_in_def)
* of one of these things, but Nick Lamb's alien/unknown format
* loader needs to be able to register no extensions, prefixes or
* magics. -- austin 13/Feb/99 */
tmp = plug_in_def->proc_defs;
while (tmp)
for (tmp = plug_in_def->proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
if (!proc_def->extensions && !proc_def->prefixes && !proc_def->magics &&
proc_def->menu_path &&
(!strncmp (proc_def->menu_path, "<Load>", 6) ||
@ -653,12 +653,9 @@ plug_in_def_add (PlugInDef *plug_in_def)
{
proc_def->extensions = g_strdup("");
}
tmp = tmp->next;
}
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
tplug_in_def = tmp->data;
@ -685,8 +682,6 @@ plug_in_def_add (PlugInDef *plug_in_def)
}
return;
}
tmp = tmp->next;
}
write_pluginrc = TRUE;
@ -695,35 +690,29 @@ plug_in_def_add (PlugInDef *plug_in_def)
g_free (plug_in_def);
}
char*
plug_in_menu_path (char *name)
gchar *
plug_in_menu_path (gchar *name)
{
PlugInDef *plug_in_def;
PlugInProcDef *proc_def;
GSList *tmp, *tmp2;
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
plug_in_def = tmp->data;
tmp = tmp->next;
tmp2 = plug_in_def->proc_defs;
while (tmp2)
for (tmp2 = plug_in_def->proc_defs; tmp2; tmp2 = g_slist_next (tmp2))
{
proc_def = tmp2->data;
tmp2 = tmp2->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
}
}
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
@ -733,10 +722,10 @@ plug_in_menu_path (char *name)
}
PlugIn*
plug_in_new (char *name)
plug_in_new (gchar *name)
{
PlugIn *plug_in;
char *path;
gchar *path;
if (!g_path_is_absolute (name))
{
@ -813,7 +802,7 @@ plug_in_destroy (PlugIn *plug_in)
}
}
int
gint
plug_in_open (PlugIn *plug_in)
{
int my_read[2];
@ -950,17 +939,17 @@ plug_in_open (PlugIn *plug_in)
}
plug_in->open = TRUE;
return 1;
return TRUE;
}
return 0;
return FALSE;
}
void
plug_in_close (PlugIn *plug_in,
int kill_it)
gint kill_it)
{
int status;
gint status;
#ifndef G_OS_WIN32
struct timeval tv;
#endif
@ -1244,13 +1233,11 @@ plug_in_set_menu_sensitivity (GimpImageType type)
{
PlugInProcDef *proc_def;
GSList *tmp;
int sensitive = FALSE;
gboolean sensitive = FALSE;
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (proc_def->image_types_val && proc_def->menu_path)
{
@ -1280,6 +1267,7 @@ plug_in_set_menu_sensitivity (GimpImageType type)
}
menus_set_sensitive (proc_def->menu_path, sensitive);
if (last_plug_in && (last_plug_in == &(proc_def->db_info)))
{
menus_set_sensitive ("<Image>/Filters/Repeat last", sensitive);
@ -2478,7 +2466,7 @@ plug_in_proc_def_remove (PlugInProcDef *proc_def)
{
/* Destroy the menu item */
if (proc_def->menu_path)
menus_destroy (gettext(proc_def->menu_path));
menus_destroy (proc_def->menu_path);
/* Unregister the procedural database entry */
procedural_db_unregister (proc_def->db_info.name);

View File

@ -642,10 +642,10 @@ plug_in_def_add (PlugInDef *plug_in_def)
* of one of these things, but Nick Lamb's alien/unknown format
* loader needs to be able to register no extensions, prefixes or
* magics. -- austin 13/Feb/99 */
tmp = plug_in_def->proc_defs;
while (tmp)
for (tmp = plug_in_def->proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
if (!proc_def->extensions && !proc_def->prefixes && !proc_def->magics &&
proc_def->menu_path &&
(!strncmp (proc_def->menu_path, "<Load>", 6) ||
@ -653,12 +653,9 @@ plug_in_def_add (PlugInDef *plug_in_def)
{
proc_def->extensions = g_strdup("");
}
tmp = tmp->next;
}
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
tplug_in_def = tmp->data;
@ -685,8 +682,6 @@ plug_in_def_add (PlugInDef *plug_in_def)
}
return;
}
tmp = tmp->next;
}
write_pluginrc = TRUE;
@ -695,35 +690,29 @@ plug_in_def_add (PlugInDef *plug_in_def)
g_free (plug_in_def);
}
char*
plug_in_menu_path (char *name)
gchar *
plug_in_menu_path (gchar *name)
{
PlugInDef *plug_in_def;
PlugInProcDef *proc_def;
GSList *tmp, *tmp2;
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
plug_in_def = tmp->data;
tmp = tmp->next;
tmp2 = plug_in_def->proc_defs;
while (tmp2)
for (tmp2 = plug_in_def->proc_defs; tmp2; tmp2 = g_slist_next (tmp2))
{
proc_def = tmp2->data;
tmp2 = tmp2->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
}
}
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
@ -733,10 +722,10 @@ plug_in_menu_path (char *name)
}
PlugIn*
plug_in_new (char *name)
plug_in_new (gchar *name)
{
PlugIn *plug_in;
char *path;
gchar *path;
if (!g_path_is_absolute (name))
{
@ -813,7 +802,7 @@ plug_in_destroy (PlugIn *plug_in)
}
}
int
gint
plug_in_open (PlugIn *plug_in)
{
int my_read[2];
@ -950,17 +939,17 @@ plug_in_open (PlugIn *plug_in)
}
plug_in->open = TRUE;
return 1;
return TRUE;
}
return 0;
return FALSE;
}
void
plug_in_close (PlugIn *plug_in,
int kill_it)
gint kill_it)
{
int status;
gint status;
#ifndef G_OS_WIN32
struct timeval tv;
#endif
@ -1244,13 +1233,11 @@ plug_in_set_menu_sensitivity (GimpImageType type)
{
PlugInProcDef *proc_def;
GSList *tmp;
int sensitive = FALSE;
gboolean sensitive = FALSE;
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (proc_def->image_types_val && proc_def->menu_path)
{
@ -1280,6 +1267,7 @@ plug_in_set_menu_sensitivity (GimpImageType type)
}
menus_set_sensitive (proc_def->menu_path, sensitive);
if (last_plug_in && (last_plug_in == &(proc_def->db_info)))
{
menus_set_sensitive ("<Image>/Filters/Repeat last", sensitive);
@ -2478,7 +2466,7 @@ plug_in_proc_def_remove (PlugInProcDef *proc_def)
{
/* Destroy the menu item */
if (proc_def->menu_path)
menus_destroy (gettext(proc_def->menu_path));
menus_destroy (proc_def->menu_path);
/* Unregister the procedural database entry */
procedural_db_unregister (proc_def->db_info.name);

View File

@ -642,10 +642,10 @@ plug_in_def_add (PlugInDef *plug_in_def)
* of one of these things, but Nick Lamb's alien/unknown format
* loader needs to be able to register no extensions, prefixes or
* magics. -- austin 13/Feb/99 */
tmp = plug_in_def->proc_defs;
while (tmp)
for (tmp = plug_in_def->proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
if (!proc_def->extensions && !proc_def->prefixes && !proc_def->magics &&
proc_def->menu_path &&
(!strncmp (proc_def->menu_path, "<Load>", 6) ||
@ -653,12 +653,9 @@ plug_in_def_add (PlugInDef *plug_in_def)
{
proc_def->extensions = g_strdup("");
}
tmp = tmp->next;
}
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
tplug_in_def = tmp->data;
@ -685,8 +682,6 @@ plug_in_def_add (PlugInDef *plug_in_def)
}
return;
}
tmp = tmp->next;
}
write_pluginrc = TRUE;
@ -695,35 +690,29 @@ plug_in_def_add (PlugInDef *plug_in_def)
g_free (plug_in_def);
}
char*
plug_in_menu_path (char *name)
gchar *
plug_in_menu_path (gchar *name)
{
PlugInDef *plug_in_def;
PlugInProcDef *proc_def;
GSList *tmp, *tmp2;
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
plug_in_def = tmp->data;
tmp = tmp->next;
tmp2 = plug_in_def->proc_defs;
while (tmp2)
for (tmp2 = plug_in_def->proc_defs; tmp2; tmp2 = g_slist_next (tmp2))
{
proc_def = tmp2->data;
tmp2 = tmp2->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
}
}
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
@ -733,10 +722,10 @@ plug_in_menu_path (char *name)
}
PlugIn*
plug_in_new (char *name)
plug_in_new (gchar *name)
{
PlugIn *plug_in;
char *path;
gchar *path;
if (!g_path_is_absolute (name))
{
@ -813,7 +802,7 @@ plug_in_destroy (PlugIn *plug_in)
}
}
int
gint
plug_in_open (PlugIn *plug_in)
{
int my_read[2];
@ -950,17 +939,17 @@ plug_in_open (PlugIn *plug_in)
}
plug_in->open = TRUE;
return 1;
return TRUE;
}
return 0;
return FALSE;
}
void
plug_in_close (PlugIn *plug_in,
int kill_it)
gint kill_it)
{
int status;
gint status;
#ifndef G_OS_WIN32
struct timeval tv;
#endif
@ -1244,13 +1233,11 @@ plug_in_set_menu_sensitivity (GimpImageType type)
{
PlugInProcDef *proc_def;
GSList *tmp;
int sensitive = FALSE;
gboolean sensitive = FALSE;
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (proc_def->image_types_val && proc_def->menu_path)
{
@ -1280,6 +1267,7 @@ plug_in_set_menu_sensitivity (GimpImageType type)
}
menus_set_sensitive (proc_def->menu_path, sensitive);
if (last_plug_in && (last_plug_in == &(proc_def->db_info)))
{
menus_set_sensitive ("<Image>/Filters/Repeat last", sensitive);
@ -2478,7 +2466,7 @@ plug_in_proc_def_remove (PlugInProcDef *proc_def)
{
/* Destroy the menu item */
if (proc_def->menu_path)
menus_destroy (gettext(proc_def->menu_path));
menus_destroy (proc_def->menu_path);
/* Unregister the procedural database entry */
procedural_db_unregister (proc_def->db_info.name);

View File

@ -642,10 +642,10 @@ plug_in_def_add (PlugInDef *plug_in_def)
* of one of these things, but Nick Lamb's alien/unknown format
* loader needs to be able to register no extensions, prefixes or
* magics. -- austin 13/Feb/99 */
tmp = plug_in_def->proc_defs;
while (tmp)
for (tmp = plug_in_def->proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
if (!proc_def->extensions && !proc_def->prefixes && !proc_def->magics &&
proc_def->menu_path &&
(!strncmp (proc_def->menu_path, "<Load>", 6) ||
@ -653,12 +653,9 @@ plug_in_def_add (PlugInDef *plug_in_def)
{
proc_def->extensions = g_strdup("");
}
tmp = tmp->next;
}
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
tplug_in_def = tmp->data;
@ -685,8 +682,6 @@ plug_in_def_add (PlugInDef *plug_in_def)
}
return;
}
tmp = tmp->next;
}
write_pluginrc = TRUE;
@ -695,35 +690,29 @@ plug_in_def_add (PlugInDef *plug_in_def)
g_free (plug_in_def);
}
char*
plug_in_menu_path (char *name)
gchar *
plug_in_menu_path (gchar *name)
{
PlugInDef *plug_in_def;
PlugInProcDef *proc_def;
GSList *tmp, *tmp2;
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
plug_in_def = tmp->data;
tmp = tmp->next;
tmp2 = plug_in_def->proc_defs;
while (tmp2)
for (tmp2 = plug_in_def->proc_defs; tmp2; tmp2 = g_slist_next (tmp2))
{
proc_def = tmp2->data;
tmp2 = tmp2->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
}
}
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
@ -733,10 +722,10 @@ plug_in_menu_path (char *name)
}
PlugIn*
plug_in_new (char *name)
plug_in_new (gchar *name)
{
PlugIn *plug_in;
char *path;
gchar *path;
if (!g_path_is_absolute (name))
{
@ -813,7 +802,7 @@ plug_in_destroy (PlugIn *plug_in)
}
}
int
gint
plug_in_open (PlugIn *plug_in)
{
int my_read[2];
@ -950,17 +939,17 @@ plug_in_open (PlugIn *plug_in)
}
plug_in->open = TRUE;
return 1;
return TRUE;
}
return 0;
return FALSE;
}
void
plug_in_close (PlugIn *plug_in,
int kill_it)
gint kill_it)
{
int status;
gint status;
#ifndef G_OS_WIN32
struct timeval tv;
#endif
@ -1244,13 +1233,11 @@ plug_in_set_menu_sensitivity (GimpImageType type)
{
PlugInProcDef *proc_def;
GSList *tmp;
int sensitive = FALSE;
gboolean sensitive = FALSE;
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (proc_def->image_types_val && proc_def->menu_path)
{
@ -1280,6 +1267,7 @@ plug_in_set_menu_sensitivity (GimpImageType type)
}
menus_set_sensitive (proc_def->menu_path, sensitive);
if (last_plug_in && (last_plug_in == &(proc_def->db_info)))
{
menus_set_sensitive ("<Image>/Filters/Repeat last", sensitive);
@ -2478,7 +2466,7 @@ plug_in_proc_def_remove (PlugInProcDef *proc_def)
{
/* Destroy the menu item */
if (proc_def->menu_path)
menus_destroy (gettext(proc_def->menu_path));
menus_destroy (proc_def->menu_path);
/* Unregister the procedural database entry */
procedural_db_unregister (proc_def->db_info.name);

View File

@ -642,10 +642,10 @@ plug_in_def_add (PlugInDef *plug_in_def)
* of one of these things, but Nick Lamb's alien/unknown format
* loader needs to be able to register no extensions, prefixes or
* magics. -- austin 13/Feb/99 */
tmp = plug_in_def->proc_defs;
while (tmp)
for (tmp = plug_in_def->proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
if (!proc_def->extensions && !proc_def->prefixes && !proc_def->magics &&
proc_def->menu_path &&
(!strncmp (proc_def->menu_path, "<Load>", 6) ||
@ -653,12 +653,9 @@ plug_in_def_add (PlugInDef *plug_in_def)
{
proc_def->extensions = g_strdup("");
}
tmp = tmp->next;
}
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
tplug_in_def = tmp->data;
@ -685,8 +682,6 @@ plug_in_def_add (PlugInDef *plug_in_def)
}
return;
}
tmp = tmp->next;
}
write_pluginrc = TRUE;
@ -695,35 +690,29 @@ plug_in_def_add (PlugInDef *plug_in_def)
g_free (plug_in_def);
}
char*
plug_in_menu_path (char *name)
gchar *
plug_in_menu_path (gchar *name)
{
PlugInDef *plug_in_def;
PlugInProcDef *proc_def;
GSList *tmp, *tmp2;
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
plug_in_def = tmp->data;
tmp = tmp->next;
tmp2 = plug_in_def->proc_defs;
while (tmp2)
for (tmp2 = plug_in_def->proc_defs; tmp2; tmp2 = g_slist_next (tmp2))
{
proc_def = tmp2->data;
tmp2 = tmp2->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
}
}
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
@ -733,10 +722,10 @@ plug_in_menu_path (char *name)
}
PlugIn*
plug_in_new (char *name)
plug_in_new (gchar *name)
{
PlugIn *plug_in;
char *path;
gchar *path;
if (!g_path_is_absolute (name))
{
@ -813,7 +802,7 @@ plug_in_destroy (PlugIn *plug_in)
}
}
int
gint
plug_in_open (PlugIn *plug_in)
{
int my_read[2];
@ -950,17 +939,17 @@ plug_in_open (PlugIn *plug_in)
}
plug_in->open = TRUE;
return 1;
return TRUE;
}
return 0;
return FALSE;
}
void
plug_in_close (PlugIn *plug_in,
int kill_it)
gint kill_it)
{
int status;
gint status;
#ifndef G_OS_WIN32
struct timeval tv;
#endif
@ -1244,13 +1233,11 @@ plug_in_set_menu_sensitivity (GimpImageType type)
{
PlugInProcDef *proc_def;
GSList *tmp;
int sensitive = FALSE;
gboolean sensitive = FALSE;
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (proc_def->image_types_val && proc_def->menu_path)
{
@ -1280,6 +1267,7 @@ plug_in_set_menu_sensitivity (GimpImageType type)
}
menus_set_sensitive (proc_def->menu_path, sensitive);
if (last_plug_in && (last_plug_in == &(proc_def->db_info)))
{
menus_set_sensitive ("<Image>/Filters/Repeat last", sensitive);
@ -2478,7 +2466,7 @@ plug_in_proc_def_remove (PlugInProcDef *proc_def)
{
/* Destroy the menu item */
if (proc_def->menu_path)
menus_destroy (gettext(proc_def->menu_path));
menus_destroy (proc_def->menu_path);
/* Unregister the procedural database entry */
procedural_db_unregister (proc_def->db_info.name);

View File

@ -642,10 +642,10 @@ plug_in_def_add (PlugInDef *plug_in_def)
* of one of these things, but Nick Lamb's alien/unknown format
* loader needs to be able to register no extensions, prefixes or
* magics. -- austin 13/Feb/99 */
tmp = plug_in_def->proc_defs;
while (tmp)
for (tmp = plug_in_def->proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
if (!proc_def->extensions && !proc_def->prefixes && !proc_def->magics &&
proc_def->menu_path &&
(!strncmp (proc_def->menu_path, "<Load>", 6) ||
@ -653,12 +653,9 @@ plug_in_def_add (PlugInDef *plug_in_def)
{
proc_def->extensions = g_strdup("");
}
tmp = tmp->next;
}
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
tplug_in_def = tmp->data;
@ -685,8 +682,6 @@ plug_in_def_add (PlugInDef *plug_in_def)
}
return;
}
tmp = tmp->next;
}
write_pluginrc = TRUE;
@ -695,35 +690,29 @@ plug_in_def_add (PlugInDef *plug_in_def)
g_free (plug_in_def);
}
char*
plug_in_menu_path (char *name)
gchar *
plug_in_menu_path (gchar *name)
{
PlugInDef *plug_in_def;
PlugInProcDef *proc_def;
GSList *tmp, *tmp2;
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
plug_in_def = tmp->data;
tmp = tmp->next;
tmp2 = plug_in_def->proc_defs;
while (tmp2)
for (tmp2 = plug_in_def->proc_defs; tmp2; tmp2 = g_slist_next (tmp2))
{
proc_def = tmp2->data;
tmp2 = tmp2->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
}
}
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
@ -733,10 +722,10 @@ plug_in_menu_path (char *name)
}
PlugIn*
plug_in_new (char *name)
plug_in_new (gchar *name)
{
PlugIn *plug_in;
char *path;
gchar *path;
if (!g_path_is_absolute (name))
{
@ -813,7 +802,7 @@ plug_in_destroy (PlugIn *plug_in)
}
}
int
gint
plug_in_open (PlugIn *plug_in)
{
int my_read[2];
@ -950,17 +939,17 @@ plug_in_open (PlugIn *plug_in)
}
plug_in->open = TRUE;
return 1;
return TRUE;
}
return 0;
return FALSE;
}
void
plug_in_close (PlugIn *plug_in,
int kill_it)
gint kill_it)
{
int status;
gint status;
#ifndef G_OS_WIN32
struct timeval tv;
#endif
@ -1244,13 +1233,11 @@ plug_in_set_menu_sensitivity (GimpImageType type)
{
PlugInProcDef *proc_def;
GSList *tmp;
int sensitive = FALSE;
gboolean sensitive = FALSE;
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (proc_def->image_types_val && proc_def->menu_path)
{
@ -1280,6 +1267,7 @@ plug_in_set_menu_sensitivity (GimpImageType type)
}
menus_set_sensitive (proc_def->menu_path, sensitive);
if (last_plug_in && (last_plug_in == &(proc_def->db_info)))
{
menus_set_sensitive ("<Image>/Filters/Repeat last", sensitive);
@ -2478,7 +2466,7 @@ plug_in_proc_def_remove (PlugInProcDef *proc_def)
{
/* Destroy the menu item */
if (proc_def->menu_path)
menus_destroy (gettext(proc_def->menu_path));
menus_destroy (proc_def->menu_path);
/* Unregister the procedural database entry */
procedural_db_unregister (proc_def->db_info.name);

View File

@ -642,10 +642,10 @@ plug_in_def_add (PlugInDef *plug_in_def)
* of one of these things, but Nick Lamb's alien/unknown format
* loader needs to be able to register no extensions, prefixes or
* magics. -- austin 13/Feb/99 */
tmp = plug_in_def->proc_defs;
while (tmp)
for (tmp = plug_in_def->proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
if (!proc_def->extensions && !proc_def->prefixes && !proc_def->magics &&
proc_def->menu_path &&
(!strncmp (proc_def->menu_path, "<Load>", 6) ||
@ -653,12 +653,9 @@ plug_in_def_add (PlugInDef *plug_in_def)
{
proc_def->extensions = g_strdup("");
}
tmp = tmp->next;
}
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
tplug_in_def = tmp->data;
@ -685,8 +682,6 @@ plug_in_def_add (PlugInDef *plug_in_def)
}
return;
}
tmp = tmp->next;
}
write_pluginrc = TRUE;
@ -695,35 +690,29 @@ plug_in_def_add (PlugInDef *plug_in_def)
g_free (plug_in_def);
}
char*
plug_in_menu_path (char *name)
gchar *
plug_in_menu_path (gchar *name)
{
PlugInDef *plug_in_def;
PlugInProcDef *proc_def;
GSList *tmp, *tmp2;
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
plug_in_def = tmp->data;
tmp = tmp->next;
tmp2 = plug_in_def->proc_defs;
while (tmp2)
for (tmp2 = plug_in_def->proc_defs; tmp2; tmp2 = g_slist_next (tmp2))
{
proc_def = tmp2->data;
tmp2 = tmp2->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
}
}
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
@ -733,10 +722,10 @@ plug_in_menu_path (char *name)
}
PlugIn*
plug_in_new (char *name)
plug_in_new (gchar *name)
{
PlugIn *plug_in;
char *path;
gchar *path;
if (!g_path_is_absolute (name))
{
@ -813,7 +802,7 @@ plug_in_destroy (PlugIn *plug_in)
}
}
int
gint
plug_in_open (PlugIn *plug_in)
{
int my_read[2];
@ -950,17 +939,17 @@ plug_in_open (PlugIn *plug_in)
}
plug_in->open = TRUE;
return 1;
return TRUE;
}
return 0;
return FALSE;
}
void
plug_in_close (PlugIn *plug_in,
int kill_it)
gint kill_it)
{
int status;
gint status;
#ifndef G_OS_WIN32
struct timeval tv;
#endif
@ -1244,13 +1233,11 @@ plug_in_set_menu_sensitivity (GimpImageType type)
{
PlugInProcDef *proc_def;
GSList *tmp;
int sensitive = FALSE;
gboolean sensitive = FALSE;
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (proc_def->image_types_val && proc_def->menu_path)
{
@ -1280,6 +1267,7 @@ plug_in_set_menu_sensitivity (GimpImageType type)
}
menus_set_sensitive (proc_def->menu_path, sensitive);
if (last_plug_in && (last_plug_in == &(proc_def->db_info)))
{
menus_set_sensitive ("<Image>/Filters/Repeat last", sensitive);
@ -2478,7 +2466,7 @@ plug_in_proc_def_remove (PlugInProcDef *proc_def)
{
/* Destroy the menu item */
if (proc_def->menu_path)
menus_destroy (gettext(proc_def->menu_path));
menus_destroy (proc_def->menu_path);
/* Unregister the procedural database entry */
procedural_db_unregister (proc_def->db_info.name);

View File

@ -642,10 +642,10 @@ plug_in_def_add (PlugInDef *plug_in_def)
* of one of these things, but Nick Lamb's alien/unknown format
* loader needs to be able to register no extensions, prefixes or
* magics. -- austin 13/Feb/99 */
tmp = plug_in_def->proc_defs;
while (tmp)
for (tmp = plug_in_def->proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
if (!proc_def->extensions && !proc_def->prefixes && !proc_def->magics &&
proc_def->menu_path &&
(!strncmp (proc_def->menu_path, "<Load>", 6) ||
@ -653,12 +653,9 @@ plug_in_def_add (PlugInDef *plug_in_def)
{
proc_def->extensions = g_strdup("");
}
tmp = tmp->next;
}
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
tplug_in_def = tmp->data;
@ -685,8 +682,6 @@ plug_in_def_add (PlugInDef *plug_in_def)
}
return;
}
tmp = tmp->next;
}
write_pluginrc = TRUE;
@ -695,35 +690,29 @@ plug_in_def_add (PlugInDef *plug_in_def)
g_free (plug_in_def);
}
char*
plug_in_menu_path (char *name)
gchar *
plug_in_menu_path (gchar *name)
{
PlugInDef *plug_in_def;
PlugInProcDef *proc_def;
GSList *tmp, *tmp2;
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
plug_in_def = tmp->data;
tmp = tmp->next;
tmp2 = plug_in_def->proc_defs;
while (tmp2)
for (tmp2 = plug_in_def->proc_defs; tmp2; tmp2 = g_slist_next (tmp2))
{
proc_def = tmp2->data;
tmp2 = tmp2->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
}
}
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
@ -733,10 +722,10 @@ plug_in_menu_path (char *name)
}
PlugIn*
plug_in_new (char *name)
plug_in_new (gchar *name)
{
PlugIn *plug_in;
char *path;
gchar *path;
if (!g_path_is_absolute (name))
{
@ -813,7 +802,7 @@ plug_in_destroy (PlugIn *plug_in)
}
}
int
gint
plug_in_open (PlugIn *plug_in)
{
int my_read[2];
@ -950,17 +939,17 @@ plug_in_open (PlugIn *plug_in)
}
plug_in->open = TRUE;
return 1;
return TRUE;
}
return 0;
return FALSE;
}
void
plug_in_close (PlugIn *plug_in,
int kill_it)
gint kill_it)
{
int status;
gint status;
#ifndef G_OS_WIN32
struct timeval tv;
#endif
@ -1244,13 +1233,11 @@ plug_in_set_menu_sensitivity (GimpImageType type)
{
PlugInProcDef *proc_def;
GSList *tmp;
int sensitive = FALSE;
gboolean sensitive = FALSE;
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (proc_def->image_types_val && proc_def->menu_path)
{
@ -1280,6 +1267,7 @@ plug_in_set_menu_sensitivity (GimpImageType type)
}
menus_set_sensitive (proc_def->menu_path, sensitive);
if (last_plug_in && (last_plug_in == &(proc_def->db_info)))
{
menus_set_sensitive ("<Image>/Filters/Repeat last", sensitive);
@ -2478,7 +2466,7 @@ plug_in_proc_def_remove (PlugInProcDef *proc_def)
{
/* Destroy the menu item */
if (proc_def->menu_path)
menus_destroy (gettext(proc_def->menu_path));
menus_destroy (proc_def->menu_path);
/* Unregister the procedural database entry */
procedural_db_unregister (proc_def->db_info.name);

View File

@ -642,10 +642,10 @@ plug_in_def_add (PlugInDef *plug_in_def)
* of one of these things, but Nick Lamb's alien/unknown format
* loader needs to be able to register no extensions, prefixes or
* magics. -- austin 13/Feb/99 */
tmp = plug_in_def->proc_defs;
while (tmp)
for (tmp = plug_in_def->proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
if (!proc_def->extensions && !proc_def->prefixes && !proc_def->magics &&
proc_def->menu_path &&
(!strncmp (proc_def->menu_path, "<Load>", 6) ||
@ -653,12 +653,9 @@ plug_in_def_add (PlugInDef *plug_in_def)
{
proc_def->extensions = g_strdup("");
}
tmp = tmp->next;
}
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
tplug_in_def = tmp->data;
@ -685,8 +682,6 @@ plug_in_def_add (PlugInDef *plug_in_def)
}
return;
}
tmp = tmp->next;
}
write_pluginrc = TRUE;
@ -695,35 +690,29 @@ plug_in_def_add (PlugInDef *plug_in_def)
g_free (plug_in_def);
}
char*
plug_in_menu_path (char *name)
gchar *
plug_in_menu_path (gchar *name)
{
PlugInDef *plug_in_def;
PlugInProcDef *proc_def;
GSList *tmp, *tmp2;
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
plug_in_def = tmp->data;
tmp = tmp->next;
tmp2 = plug_in_def->proc_defs;
while (tmp2)
for (tmp2 = plug_in_def->proc_defs; tmp2; tmp2 = g_slist_next (tmp2))
{
proc_def = tmp2->data;
tmp2 = tmp2->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
}
}
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
@ -733,10 +722,10 @@ plug_in_menu_path (char *name)
}
PlugIn*
plug_in_new (char *name)
plug_in_new (gchar *name)
{
PlugIn *plug_in;
char *path;
gchar *path;
if (!g_path_is_absolute (name))
{
@ -813,7 +802,7 @@ plug_in_destroy (PlugIn *plug_in)
}
}
int
gint
plug_in_open (PlugIn *plug_in)
{
int my_read[2];
@ -950,17 +939,17 @@ plug_in_open (PlugIn *plug_in)
}
plug_in->open = TRUE;
return 1;
return TRUE;
}
return 0;
return FALSE;
}
void
plug_in_close (PlugIn *plug_in,
int kill_it)
gint kill_it)
{
int status;
gint status;
#ifndef G_OS_WIN32
struct timeval tv;
#endif
@ -1244,13 +1233,11 @@ plug_in_set_menu_sensitivity (GimpImageType type)
{
PlugInProcDef *proc_def;
GSList *tmp;
int sensitive = FALSE;
gboolean sensitive = FALSE;
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (proc_def->image_types_val && proc_def->menu_path)
{
@ -1280,6 +1267,7 @@ plug_in_set_menu_sensitivity (GimpImageType type)
}
menus_set_sensitive (proc_def->menu_path, sensitive);
if (last_plug_in && (last_plug_in == &(proc_def->db_info)))
{
menus_set_sensitive ("<Image>/Filters/Repeat last", sensitive);
@ -2478,7 +2466,7 @@ plug_in_proc_def_remove (PlugInProcDef *proc_def)
{
/* Destroy the menu item */
if (proc_def->menu_path)
menus_destroy (gettext(proc_def->menu_path));
menus_destroy (proc_def->menu_path);
/* Unregister the procedural database entry */
procedural_db_unregister (proc_def->db_info.name);

View File

@ -642,10 +642,10 @@ plug_in_def_add (PlugInDef *plug_in_def)
* of one of these things, but Nick Lamb's alien/unknown format
* loader needs to be able to register no extensions, prefixes or
* magics. -- austin 13/Feb/99 */
tmp = plug_in_def->proc_defs;
while (tmp)
for (tmp = plug_in_def->proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
if (!proc_def->extensions && !proc_def->prefixes && !proc_def->magics &&
proc_def->menu_path &&
(!strncmp (proc_def->menu_path, "<Load>", 6) ||
@ -653,12 +653,9 @@ plug_in_def_add (PlugInDef *plug_in_def)
{
proc_def->extensions = g_strdup("");
}
tmp = tmp->next;
}
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
tplug_in_def = tmp->data;
@ -685,8 +682,6 @@ plug_in_def_add (PlugInDef *plug_in_def)
}
return;
}
tmp = tmp->next;
}
write_pluginrc = TRUE;
@ -695,35 +690,29 @@ plug_in_def_add (PlugInDef *plug_in_def)
g_free (plug_in_def);
}
char*
plug_in_menu_path (char *name)
gchar *
plug_in_menu_path (gchar *name)
{
PlugInDef *plug_in_def;
PlugInProcDef *proc_def;
GSList *tmp, *tmp2;
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
plug_in_def = tmp->data;
tmp = tmp->next;
tmp2 = plug_in_def->proc_defs;
while (tmp2)
for (tmp2 = plug_in_def->proc_defs; tmp2; tmp2 = g_slist_next (tmp2))
{
proc_def = tmp2->data;
tmp2 = tmp2->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
}
}
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
@ -733,10 +722,10 @@ plug_in_menu_path (char *name)
}
PlugIn*
plug_in_new (char *name)
plug_in_new (gchar *name)
{
PlugIn *plug_in;
char *path;
gchar *path;
if (!g_path_is_absolute (name))
{
@ -813,7 +802,7 @@ plug_in_destroy (PlugIn *plug_in)
}
}
int
gint
plug_in_open (PlugIn *plug_in)
{
int my_read[2];
@ -950,17 +939,17 @@ plug_in_open (PlugIn *plug_in)
}
plug_in->open = TRUE;
return 1;
return TRUE;
}
return 0;
return FALSE;
}
void
plug_in_close (PlugIn *plug_in,
int kill_it)
gint kill_it)
{
int status;
gint status;
#ifndef G_OS_WIN32
struct timeval tv;
#endif
@ -1244,13 +1233,11 @@ plug_in_set_menu_sensitivity (GimpImageType type)
{
PlugInProcDef *proc_def;
GSList *tmp;
int sensitive = FALSE;
gboolean sensitive = FALSE;
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (proc_def->image_types_val && proc_def->menu_path)
{
@ -1280,6 +1267,7 @@ plug_in_set_menu_sensitivity (GimpImageType type)
}
menus_set_sensitive (proc_def->menu_path, sensitive);
if (last_plug_in && (last_plug_in == &(proc_def->db_info)))
{
menus_set_sensitive ("<Image>/Filters/Repeat last", sensitive);
@ -2478,7 +2466,7 @@ plug_in_proc_def_remove (PlugInProcDef *proc_def)
{
/* Destroy the menu item */
if (proc_def->menu_path)
menus_destroy (gettext(proc_def->menu_path));
menus_destroy (proc_def->menu_path);
/* Unregister the procedural database entry */
procedural_db_unregister (proc_def->db_info.name);

View File

@ -642,10 +642,10 @@ plug_in_def_add (PlugInDef *plug_in_def)
* of one of these things, but Nick Lamb's alien/unknown format
* loader needs to be able to register no extensions, prefixes or
* magics. -- austin 13/Feb/99 */
tmp = plug_in_def->proc_defs;
while (tmp)
for (tmp = plug_in_def->proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
if (!proc_def->extensions && !proc_def->prefixes && !proc_def->magics &&
proc_def->menu_path &&
(!strncmp (proc_def->menu_path, "<Load>", 6) ||
@ -653,12 +653,9 @@ plug_in_def_add (PlugInDef *plug_in_def)
{
proc_def->extensions = g_strdup("");
}
tmp = tmp->next;
}
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
tplug_in_def = tmp->data;
@ -685,8 +682,6 @@ plug_in_def_add (PlugInDef *plug_in_def)
}
return;
}
tmp = tmp->next;
}
write_pluginrc = TRUE;
@ -695,35 +690,29 @@ plug_in_def_add (PlugInDef *plug_in_def)
g_free (plug_in_def);
}
char*
plug_in_menu_path (char *name)
gchar *
plug_in_menu_path (gchar *name)
{
PlugInDef *plug_in_def;
PlugInProcDef *proc_def;
GSList *tmp, *tmp2;
tmp = plug_in_defs;
while (tmp)
for (tmp = plug_in_defs; tmp; tmp = g_slist_next (tmp))
{
plug_in_def = tmp->data;
tmp = tmp->next;
tmp2 = plug_in_def->proc_defs;
while (tmp2)
for (tmp2 = plug_in_def->proc_defs; tmp2; tmp2 = g_slist_next (tmp2))
{
proc_def = tmp2->data;
tmp2 = tmp2->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
}
}
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (strcmp (proc_def->db_info.name, name) == 0)
return proc_def->menu_path;
@ -733,10 +722,10 @@ plug_in_menu_path (char *name)
}
PlugIn*
plug_in_new (char *name)
plug_in_new (gchar *name)
{
PlugIn *plug_in;
char *path;
gchar *path;
if (!g_path_is_absolute (name))
{
@ -813,7 +802,7 @@ plug_in_destroy (PlugIn *plug_in)
}
}
int
gint
plug_in_open (PlugIn *plug_in)
{
int my_read[2];
@ -950,17 +939,17 @@ plug_in_open (PlugIn *plug_in)
}
plug_in->open = TRUE;
return 1;
return TRUE;
}
return 0;
return FALSE;
}
void
plug_in_close (PlugIn *plug_in,
int kill_it)
gint kill_it)
{
int status;
gint status;
#ifndef G_OS_WIN32
struct timeval tv;
#endif
@ -1244,13 +1233,11 @@ plug_in_set_menu_sensitivity (GimpImageType type)
{
PlugInProcDef *proc_def;
GSList *tmp;
int sensitive = FALSE;
gboolean sensitive = FALSE;
tmp = proc_defs;
while (tmp)
for (tmp = proc_defs; tmp; tmp = g_slist_next (tmp))
{
proc_def = tmp->data;
tmp = tmp->next;
if (proc_def->image_types_val && proc_def->menu_path)
{
@ -1280,6 +1267,7 @@ plug_in_set_menu_sensitivity (GimpImageType type)
}
menus_set_sensitive (proc_def->menu_path, sensitive);
if (last_plug_in && (last_plug_in == &(proc_def->db_info)))
{
menus_set_sensitive ("<Image>/Filters/Repeat last", sensitive);
@ -2478,7 +2466,7 @@ plug_in_proc_def_remove (PlugInProcDef *proc_def)
{
/* Destroy the menu item */
if (proc_def->menu_path)
menus_destroy (gettext(proc_def->menu_path));
menus_destroy (proc_def->menu_path);
/* Unregister the procedural database entry */
procedural_db_unregister (proc_def->db_info.name);

View File

@ -245,7 +245,7 @@ selection_options_init (SelectionOptions *options,
_("Intelligent Scissors Options") :
((tool_type == BY_COLOR_SELECT) ?
_("By-Color Select Options") :
_("ERROR: Unknown Selection Type")))))))),
"ERROR: Unknown Selection Type"))))))),
reset_func);
/* the main vbox */
@ -558,7 +558,7 @@ paint_options_init (PaintOptions *options,
_("Smudge Options") :
((tool_type == XINPUT_AIRBRUSH) ?
_("Xinput Airbrush Options") :
_("ERROR: Unknown Paint Type"))))))))))))),
"ERROR: Unknown Paint Type")))))))))))),
reset_func);
/* initialize the paint options structure */

View File

@ -70,7 +70,7 @@ add_point (int num_pts,
global_pts = (GdkPoint *) g_realloc ((void *) global_pts, sizeof (GdkPoint) * max_segs);
if (!global_pts)
gimp_fatal_error (_("add_point(): Unable to reallocate points array in free_select."));
gimp_fatal_error ("add_point(): Unable to reallocate points array in free_select.");
}
global_pts[num_pts].x = x;

View File

@ -70,7 +70,7 @@ add_point (int num_pts,
global_pts = (GdkPoint *) g_realloc ((void *) global_pts, sizeof (GdkPoint) * max_segs);
if (!global_pts)
gimp_fatal_error (_("add_point(): Unable to reallocate points array in free_select."));
gimp_fatal_error ("add_point(): Unable to reallocate points array in free_select.");
}
global_pts[num_pts].x = x;

View File

@ -245,7 +245,7 @@ selection_options_init (SelectionOptions *options,
_("Intelligent Scissors Options") :
((tool_type == BY_COLOR_SELECT) ?
_("By-Color Select Options") :
_("ERROR: Unknown Selection Type")))))))),
"ERROR: Unknown Selection Type"))))))),
reset_func);
/* the main vbox */
@ -558,7 +558,7 @@ paint_options_init (PaintOptions *options,
_("Smudge Options") :
((tool_type == XINPUT_AIRBRUSH) ?
_("Xinput Airbrush Options") :
_("ERROR: Unknown Paint Type"))))))))))))),
"ERROR: Unknown Paint Type")))))))))))),
reset_func);
/* initialize the paint options structure */

View File

@ -773,7 +773,7 @@ gradient_get_color_at (gradient_t *gradient,
default:
grad_dump_gradient (gradient, stderr);
gimp_fatal_error (_("gradient_get_color_at(): Unknown gradient type %d"),
gimp_fatal_error ("gradient_get_color_at(): Unknown gradient type %d",
(int) seg->type);
break;
}
@ -830,7 +830,7 @@ gradient_get_color_at (gradient_t *gradient,
default:
grad_dump_gradient (gradient, stderr);
gimp_fatal_error (_("gradient_get_color_at(): Unknown coloring mode %d"),
gimp_fatal_error ("gradient_get_color_at(): Unknown coloring mode %d",
(int) seg->color);
break;
}
@ -1658,8 +1658,7 @@ ed_do_new_gradient_callback (GtkWidget *widget,
if (!gradient_name)
{
g_message (_("ed_do_new_gradient_callback(): "
"oops, received NULL in call_data"));
g_warning ("received NULL in call_data");
return;
}
@ -1725,8 +1724,7 @@ ed_do_copy_gradient_callback (GtkWidget *widget,
if (!gradient_name)
{
g_message (_("ed_do_copy_gradient_callback(): "
"oops, received NULL in call_data"));
g_warning ("received NULL in call_data");
return;
}
@ -1812,8 +1810,7 @@ ed_do_rename_gradient_callback (GtkWidget *widget,
if (!gradient_name)
{
g_message (_("ed_do_rename_gradient_callback(): "
"oops, received NULL in call_data"));
g_warning ("received NULL in call_data");
return;
}
@ -1827,8 +1824,7 @@ ed_do_rename_gradient_callback (GtkWidget *widget,
if (!grad || !grad_list)
{
g_message (_("ed_do_rename_gradient_callback(): "
"oops, can't find gradient to rename"));
g_warning ("can't find gradient to rename");
return;
}
@ -1929,8 +1925,7 @@ ed_do_delete_gradient_callback (GtkWidget *widget,
}
if (tmp == NULL)
gimp_fatal_error (_("ed_do_delete_gradient_callback(): "
"Could not find gradient to delete!"));
gimp_fatal_error ("Could not find gradient to delete!");
/* Delete gradient from gradients list */
gradients_list = g_slist_remove (gradients_list, curr_gradient);
@ -2010,8 +2005,7 @@ ed_do_save_pov_callback (GtkWidget *widget,
file = fopen (filename, "wb");
if (!file)
g_message (_("ed_do_save_pov_callback(): oops, could not open \"%s\""),
filename);
g_message (_("Could not open \"%s\""), filename);
else
{
fprintf (file, "/* color_map file created by the GIMP */\n");
@ -2745,8 +2739,8 @@ control_do_hint (gint x,
break;
default:
g_message ("control_do_hint: oops, in_handle is true "
"yet we got handle type %d", (int) handle);
g_warning ("in_handle is true yet we got handle type %d",
(int) handle);
break;
}
}
@ -2883,8 +2877,8 @@ control_button_press (gint x,
return;
default:
g_message ("control_button_press(): oops, in_handle is true "
"yet we got handle type %d", (int) handle);
g_warning ("in_handle is true yet we got handle type %d",
(int) handle);
return;
}
}
@ -2933,8 +2927,7 @@ control_point_in_handle (gint x,
break;
default:
g_message ("control_point_in_handle(): oops, can not handle drag mode %d",
(int) handle);
g_warning ("can not handle drag mode %d", (int) handle);
return FALSE;
}
@ -3028,7 +3021,7 @@ control_motion (gint x)
break;
default:
gimp_fatal_error (_("control_motion(): Attempt to move bogus handle %d"),
gimp_fatal_error ("Attempt to move bogus handle %d",
(int) g_editor->control_drag_mode);
break;
}

View File

@ -64,12 +64,13 @@ static void help_debug_cmd_callback (GtkWidget *widget,
gpointer callback_data,
guint callback_action);
static gchar* G_GNUC_UNUSED dummyMenus[] =
static gchar G_GNUC_UNUSED *dummy_entries[] =
{
N_("/File/MRU00 "),
N_("/File/Dialogs"),
N_("/View/Zoom"),
N_("/Stack")
N_("/Filters/Render/Clouds"),
N_("/Filters/Render/Nature"),
N_("/Filters/Render/Pattern"),
N_("/Filters/Colors/Map"),
N_("/Filters/Misc")
};
static GSList *last_opened_raw_filenames = NULL;
@ -80,7 +81,7 @@ static GimpItemFactoryEntry toolbox_entries[] =
{
/* <Toolbox>/File */
{ { N_("/File/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/File"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/File/New..."), "<control>N", file_new_cmd_callback, 0 },
"file/dialogs/file_new.html", NULL },
@ -89,28 +90,28 @@ static GimpItemFactoryEntry toolbox_entries[] =
/* <Toolbox>/File/Acquire */
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Acquire/tearoff1"), NULL, NULL, 0, "<Tearoff>" },
{ { N_("/File/Acquire"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Preferences..."), NULL, file_pref_cmd_callback, 0 },
"file/dialogs/preferences/preferences.html", NULL },
/* <Toolbox>/File/Dialogs */
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Dialogs/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/File/Dialogs"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/File/Dialogs/Layers & Channels..."), "<control>L", dialogs_lc_cmd_callback, 0 },
"file/dialogs/layers_and_channels.html", NULL },
{ { N_("/File/Dialogs/Tool Options..."), "<control><shift>T", dialogs_tool_options_cmd_callback, 0 },
"file/dialogs/tool_options.html", NULL },
{ { N_("/File/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Dialogs/Brushes..."), "<control><shift>B", dialogs_brushes_cmd_callback, 0 },
"file/dialogs/brush_selection.html", NULL },
@ -123,14 +124,14 @@ static GimpItemFactoryEntry toolbox_entries[] =
{ { N_("/File/Dialogs/Indexed Palette..."), NULL, dialogs_indexed_palette_cmd_callback, 0 },
"file/dialogs/indexed_palette.html", NULL },
{ { N_("/File/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Dialogs/Input Devices..."), NULL, dialogs_input_devices_cmd_callback, 0 },
"file/dialogs/input_devices.html", NULL },
{ { N_("/File/Dialogs/Device Status..."), NULL, dialogs_device_status_cmd_callback, 0 },
"file/dialogs/device_status.html", NULL },
{ { N_("/File/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/Dialogs/Document Index..."), NULL, raise_idea_callback, 0 },
"file/dialogs/document_index.html", NULL },
@ -139,27 +140,25 @@ static GimpItemFactoryEntry toolbox_entries[] =
{ { N_("/File/Dialogs/Display Filters..."), NULL, dialogs_display_filters_cmd_callback, 0 },
"file/dialogs/display_filters/display_filters.html", NULL },
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Toolbox>/Xtns */
{ { N_("/Xtns/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Xtns"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Xtns/Module Browser..."), NULL, dialogs_module_browser_cmd_callback, 0 },
"dialogs/module_browser.html", NULL },
{ { N_("/Xtns/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Xtns/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Toolbox>/Help */
{ { N_("/Help"), NULL, NULL, 0, "<LastBranch>" },
NULL, NULL },
{ { N_("/Help/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
NULL, NULL },
{ { N_("/Help/Help..."), "F1", help_help_cmd_callback, 0 },
"help/dialogs/help.html", NULL },
{ { N_("/Help/Context Help..."), "<shift>F1", help_context_help_cmd_callback, 0 },
@ -176,7 +175,7 @@ static guint n_toolbox_entries = (sizeof (toolbox_entries) /
static GtkItemFactory *toolbox_factory = NULL;
static GimpItemFactoryEntry file_menu_separator =
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL };
static GimpItemFactoryEntry toolbox_end =
@ -187,12 +186,12 @@ static GimpItemFactoryEntry toolbox_end =
static GimpItemFactoryEntry image_entries[] =
{
{ { N_("/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { "/tearoff1", NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
NULL, NULL },
/* <Image>/File */
{ { N_("/File/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/File"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/File/New..."), "<control>N", file_new_cmd_callback, 1 },
"file/dialogs/file_new.html", NULL },
@ -205,26 +204,26 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/File/Revert"), NULL, file_revert_cmd_callback, 0 },
"file/revert.html", NULL },
{ { N_("/File/---"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_( "/File/Close"), "<control>W", file_close_cmd_callback, 0 },
"file/close.html", NULL },
{ { N_("/File/Quit"), "<control>Q", file_quit_cmd_callback, 0 },
"file/quit.html", NULL },
{ { N_("/File/---moved"), NULL, NULL, 0, "<Separator>" },
{ { "/File/---moved", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Edit */
{ { N_("/Edit/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Edit"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Edit/Undo"), "<control>Z", edit_undo_cmd_callback, 0 },
"edit/undo.html", NULL },
{ { N_("/Edit/Redo"), "<control>R", edit_redo_cmd_callback, 0 },
"edit/redo.html", NULL },
{ { N_("/Edit/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Edit/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Edit/Cut"), "<control>X", edit_cut_cmd_callback, 0 },
"edit/cut.html", NULL },
@ -239,7 +238,7 @@ static GimpItemFactoryEntry image_entries[] =
/* <Image>/Edit/Buffer */
{ { N_("/Edit/Buffer/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Edit/Buffer"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Edit/Buffer/Cut Named..."), "<control><shift>X", edit_named_cut_cmd_callback, 0 },
"edit/dialogs/cut_named.html", NULL },
@ -248,7 +247,7 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Edit/Buffer/Paste Named..."), "<control><shift>V", edit_named_paste_cmd_callback, 0 },
"edit/dialogs/paste_named.html", NULL },
{ { N_("/Edit/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Edit/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Edit/Clear"), "<control>K", edit_clear_cmd_callback, 0 },
"edit/clear.html", NULL },
@ -257,12 +256,12 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Edit/Stroke"), NULL, edit_stroke_cmd_callback, 0 },
"edit/stroke.html", NULL },
{ { N_("/Edit/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Edit/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Select */
{ { N_("/Select/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Select"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Select/Invert"), "<control>I", select_invert_cmd_callback, 0 },
"select/invert.html", NULL },
@ -273,7 +272,7 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Select/Float"), "<control><shift>L", select_float_cmd_callback, 0 },
"select/float.html", NULL },
{ { N_("/Select/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Select/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Select/Feather..."), "<control><shift>F", select_feather_cmd_callback, 0 },
"select/dialogs/feather_selection.html", NULL },
@ -286,14 +285,14 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Select/Border..."), "<control><shift>B", select_border_cmd_callback, 0 },
"select/dialogs/border_selection.html", NULL },
{ { N_("/Select/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Select/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Select/Save To Channel"), NULL, select_save_cmd_callback, 0 },
"select/save_to_channel.html", NULL },
/* <Image>/View */
{ { N_("/View/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/View"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/View/Zoom In"), "equal", view_zoomin_cmd_callback, 0 },
"view/zoom.html", NULL },
@ -302,7 +301,7 @@ static GimpItemFactoryEntry image_entries[] =
/* <Image>/View/Zoom */
{ { N_("/View/Zoom/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/View/Zoom"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/View/Zoom/16:1"), NULL, view_zoom_16_1_cmd_callback, 0 },
"view/zoom.html", NULL },
@ -326,7 +325,7 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/View/Dot for dot"), NULL, view_dot_for_dot_cmd_callback, 0, "<ToggleItem>" },
"view/dot_for_dot.html", NULL },
{ { N_("/View/---"), NULL, NULL, 0, "<Separator>" },
{ { "/View/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/View/Info Window..."), "<control><shift>I", view_info_window_cmd_callback, 0 },
"view/dialogs/info_window.html", NULL },
@ -335,7 +334,7 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/View/Undo history..."), NULL, view_undo_history_cmd_callback, 0},
"view/dialogs/undo_history.html", NULL },
{ { N_("/View/---"), NULL, NULL, 0, "<Separator>" },
{ { "/View/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/View/Toggle Selection"), "<control>T", view_toggle_selection_cmd_callback, 0, "<ToggleItem>" },
"view/toggle_selection.html", NULL },
@ -348,24 +347,24 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/View/Snap To Guides"), NULL, view_snap_to_guides_cmd_callback, 0, "<ToggleItem>" },
"view/snap_to_guides.html", NULL },
{ { N_("/View/---"), NULL, NULL, 0, "<Separator>" },
{ { "/View/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/View/New View"), NULL, view_new_view_cmd_callback, 0 },
"view/new_view.html", NULL },
{ { N_("/View/Shrink Wrap"), "<control>E", view_shrink_wrap_cmd_callback, 0 },
"view/shrink_wrap.html", NULL },
{ { N_("/View/---"), NULL, NULL, 0, "<Separator>" },
{ { "/View/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Image */
{ { N_("/Image/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
/* <Image>/Image/Mode */
{ { N_("/Image/Mode/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Mode"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Mode/RGB"), "<alt>R", image_convert_rgb_cmd_callback, 0 },
"image/mode/convert_to_rgb.html", NULL },
@ -374,53 +373,53 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Image/Mode/Indexed..."), "<alt>I", image_convert_indexed_cmd_callback, 0 },
"image/mode/dialogs/convert_to_indexed.html", NULL },
{ { N_("/Image/Mode/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/Mode/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Image/Colors */
{ { N_("/Image/Colors/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Colors"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Colors/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/Colors/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Image/Colors/Desaturate"), NULL, image_desaturate_cmd_callback, 0 },
"image/colors/desaturate.html", NULL },
{ { N_("/Image/Colors/Invert"), NULL, image_invert_cmd_callback, 0 },
"image/colors/invert.html", NULL },
{ { N_("/Image/Colors/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/Colors/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Image/Colors/Auto */
{ { N_("/Image/Colors/Auto/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Colors/Auto"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Colors/Auto/Equalize"), NULL, image_equalize_cmd_callback, 0 },
"image/colors/auto/equalize.html", NULL },
{ { N_("/Image/Colors/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/Colors/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Image/Alpha */
{ { N_("/Image/Alpha/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Alpha"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Alpha/Add Alpha Channel"), NULL, layers_add_alpha_channel_cmd_callback, 0 },
"layers/add_alpha_channel.html", NULL },
/* <Image>/Image/Transforms */
{ { N_("/Image/Transforms/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Transforms"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Transforms/Offset..."), "<control><shift>O", image_offset_cmd_callback, 0 },
"image/transforms/dialogs/offset.html", NULL },
{ { N_("/Image/Transforms/Rotate/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Image/Transforms/Rotate"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Image/Transforms/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/Transforms/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Image/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Image/Canvas Size..."), NULL, image_resize_cmd_callback, 0 },
"image/dialogs/canvas_size.html", NULL },
@ -429,19 +428,19 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Image/Duplicate"), "<control>D", image_duplicate_cmd_callback, 0 },
"image/duplicate.html", NULL },
{ { N_("/Image/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Image/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Layers */
{ { N_("/Layers/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Layers"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Layers/Layers & Channels..."), "<control>L", dialogs_lc_cmd_callback, 0 },
"dialogs/layers_and_channels.html", NULL },
/* <Image>/Layers/Stack */
{ { N_("/Layers/Stack/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Layers/Stack"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Layers/Stack/Previous Layer"), "Prior", layers_previous_cmd_callback, 0 },
"layers/stack/stack.html#previous_layer", NULL },
@ -455,15 +454,15 @@ static GimpItemFactoryEntry image_entries[] =
"layers/stack/stack.html#layer_to_top", NULL },
{ { N_("/Layers/Stack/Layer to Bottom"), "<control>Next", layers_lower_to_bottom_cmd_callback, 0 },
"layers/stack/stack.html#layer_to_bottom", NULL },
{ { N_("/Layers/Stack/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Layers/Stack/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Layers/Rotate */
{ { N_("/Layers/Rotate/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Layers/Rotate"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Layers/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Layers/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Layers/Anchor Layer"), "<control>H", layers_anchor_cmd_callback, 0 },
"layers/anchor_layer.html", NULL },
@ -472,24 +471,24 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Layers/Flatten Image"), NULL, layers_flatten_cmd_callback, 0 },
"layers/flatten_image.html", NULL },
{ { N_("/Layers/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Layers/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Layers/Mask To Selection"), NULL, layers_mask_select_cmd_callback, 0 },
"layers/mask_to_selection.html", NULL },
{ { N_("/Layers/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Layers/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Layers/Add Alpha Channel"), NULL, layers_add_alpha_channel_cmd_callback, 0 },
"layers/add_alpha_channel.html", NULL },
{ { N_("/Layers/Alpha To Selection"), NULL, layers_alpha_select_cmd_callback, 0 },
"layers/alpha_to_selection.html", NULL },
{ { N_("/Layers/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Layers/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Tools */
{ { N_("/Tools/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Tools"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Tools/Toolbox"), NULL, toolbox_raise_callback, 0 },
"toolbox/toolbox.html", NULL },
@ -498,36 +497,82 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Tools/Swap Colors"), "X", tools_swap_colors_cmd_callback, 0 },
"toolbox/toolbox.html#swap_colors", NULL },
{ { N_("/Tools/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Tools/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
/* <Image>/Filters */
{ { N_("/Filters/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Filters"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Repeat last"), "<alt>F", filters_repeat_cmd_callback, 0x0 },
"filters/repeat_last.html", NULL },
{ { N_("/Filters/Re-show last"), "<alt><shift>F", filters_repeat_cmd_callback, 0x1 },
"filters/reshow_last.html", NULL },
{ { N_("/Filters/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Filters/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Filters/Blur"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Colors"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { "/Filters/Colors/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Filters/Noise"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Edge-Detect"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Enhance"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Generic"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { "/Filters/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Filters/Glass Effects"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Light Effects"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Distorts"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Artistic"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Map"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Render"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Web"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { "/Filters/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Filters/Animation"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Filters/Combine"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { "/Filters/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Filters/Toys"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
/* <Image>/Script-Fu */
{ { N_("/Script-Fu/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Script-Fu"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
/* <Image>/Dialogs */
{ { N_("/Dialogs/tearoff1"), NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { N_("/Dialogs"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Dialogs/Layers & Channels..."), "<control>L", dialogs_lc_cmd_callback, 0 },
"dialogs/layers_and_channels.html", NULL },
{ { N_("/Dialogs/Tool Options..."), NULL, dialogs_tool_options_cmd_callback, 0 },
"dialogs/tool_options.html", NULL },
{ { N_("/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Dialogs/Brushes..."), "<control><shift>B", dialogs_brushes_cmd_callback, 0 },
"dialogs/brush_selection.html", NULL },
@ -540,14 +585,14 @@ static GimpItemFactoryEntry image_entries[] =
{ { N_("/Dialogs/Indexed Palette..."), NULL, dialogs_indexed_palette_cmd_callback, 0 },
"dialogs/indexed_palette.html", NULL },
{ { N_("/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Dialogs/Input Devices..."), NULL, dialogs_input_devices_cmd_callback, 0 },
"dialogs/input_devices.html", NULL },
{ { N_("/Dialogs/Device Status..."), NULL, dialogs_device_status_cmd_callback, 0 },
"dialogs/device_status.html", NULL },
{ { N_("/Dialogs/---"), NULL, NULL, 0, "<Separator>" },
{ { "/Dialogs/---", NULL, NULL, 0, "<Separator>" },
NULL, NULL },
{ { N_("/Dialogs/Document Index..."), NULL, raise_idea_callback, 0 },
"dialogs/document_index.html", NULL },
@ -597,6 +642,8 @@ static GimpItemFactoryEntry layers_entries[] =
/* <Layers>/Stack */
{ { N_("/Stack"), NULL, NULL, 0, "<Branch>" },
NULL, NULL },
{ { N_("/Stack/Previous Layer"), "Prior", layers_dialog_previous_layer_callback, 0 },
"stack/stack.html#previous_layer", NULL },
{ { N_("/Stack/Next Layer"), "Next", layers_dialog_next_layer_callback, 0 },
@ -815,54 +862,59 @@ void
menus_create_item_from_full_path (GimpItemFactoryEntry *entry,
gpointer callback_data)
{
GtkItemFactory *ifactory;
GtkWidget *menu_item;
gboolean redo_image_menu = FALSE;
GtkItemFactory *item_factory;
GString *tearoff_path;
gchar *path;
if (initialize)
menus_init ();
tearoff_path = g_string_new ("");
path = entry->entry.path;
item_factory = gtk_item_factory_from_path (path);
if (! strncmp (entry->entry.path, "<Image>", 7))
if (!item_factory)
{
g_warning ("entry refers to unknown item factory: \"%s\"", path);
return;
}
if ((item_factory == image_factory) ||
(item_factory == toolbox_factory))
{
gint factory_length;
gchar *p;
p = strchr (entry->entry.path + 8, '/');
tearoff_path = g_string_new ("");
p = strchr (entry->entry.path, '/');
factory_length = p - entry->entry.path;
/* skip the first slash */
if (p)
p = strchr (p + 1, '/');
while (p)
{
g_string_assign (tearoff_path, entry->entry.path + 7);
g_string_assign (tearoff_path, entry->entry.path + factory_length);
g_string_truncate (tearoff_path,
p - entry->entry.path + 1 - 7);
p - entry->entry.path + 1 - factory_length);
g_string_append (tearoff_path, "tearoff1");
if (! gtk_item_factory_get_widget (image_factory,
if (! gtk_item_factory_get_widget (item_factory,
tearoff_path->str))
{
GimpItemFactoryEntry tearoff_entry =
{ { tearoff_path->str, NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
{ { tearoff_path->str, NULL, tearoff_cmd_callback, 0,
"<Tearoff>" },
NULL, NULL };
menus_create_item (image_factory, &tearoff_entry, NULL, 2);
menus_create_item (item_factory, &tearoff_entry, NULL, 2);
}
p = strchr (p + 1, '/');
}
redo_image_menu = TRUE;
}
g_string_free (tearoff_path, TRUE);
path = entry->entry.path;
ifactory = gtk_item_factory_from_path (path);
if (!ifactory)
{
g_warning ("entry refers to unknown item factory: \"%s\"", path);
return;
}
while (*path != '>')
@ -871,25 +923,7 @@ menus_create_item_from_full_path (GimpItemFactoryEntry *entry,
entry->entry.path = path;
menus_create_item (ifactory, entry, callback_data, 2);
if (redo_image_menu)
{
menu_item = gtk_item_factory_get_widget (image_factory,
"<Image>/File/---moved");
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, -1);
menu_item = gtk_item_factory_get_widget (image_factory,
"<Image>/File/Close");
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, -1);
menu_item = gtk_item_factory_get_widget (image_factory,
"<Image>/File/Quit");
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, -1);
}
menus_create_item (item_factory, entry, callback_data, 2);
}
static void
@ -897,6 +931,8 @@ menus_filters_subdirs_to_top (GtkMenu *menu)
{
GtkMenuItem *menu_item;
GList *list;
gboolean submenus_passed = FALSE;
gboolean separator_found = FALSE;
gint pos;
pos = 1;
@ -906,14 +942,26 @@ menus_filters_subdirs_to_top (GtkMenu *menu)
menu_item = GTK_MENU_ITEM (list->data);
if (menu_item->submenu)
{
if (submenus_passed)
{
menus_filters_subdirs_to_top (GTK_MENU (menu_item->submenu));
gtk_menu_reorder_child (menu, GTK_WIDGET (menu_item), pos);
pos++;
}
}
if (pos > 1)
pos++;
}
else
{
submenus_passed = TRUE;
}
if (! GTK_BIN (menu_item)->child &&
menu_item != GTK_MENU_SHELL (menu)->children->data)
separator_found = TRUE;
}
if ((pos > 1) && !separator_found)
{
GtkWidget *separator;
@ -926,10 +974,10 @@ menus_filters_subdirs_to_top (GtkMenu *menu)
void
menus_reorder_plugins (void)
{
static gchar *xtns_plugins[] = { "/Xtns/DB Browser...",
"/Xtns/PDB Explorer",
"/Xtns/Plugin Details...",
"/Xtns/Parasite Editor" };
static gchar *xtns_plugins[] = { "DB Browser...",
"PDB Explorer",
"Plugin Details...",
"Parasite Editor" };
static gint n_xtns_plugins = (sizeof (xtns_plugins) /
sizeof (xtns_plugins[0]));
@ -939,6 +987,12 @@ menus_reorder_plugins (void)
static gint n_rotate_plugins = (sizeof (rotate_plugins) /
sizeof (rotate_plugins[0]));
static gchar *image_file_entries[] = { "---moved",
"Close",
"Quit" };
static gint n_image_file_entries = (sizeof (image_file_entries) /
sizeof (image_file_entries[0]));
GtkWidget *menu;
GtkWidget *menu_item;
GList *list;
@ -949,8 +1003,10 @@ menus_reorder_plugins (void)
pos = 2;
for (i = 0; i < n_xtns_plugins; i++)
{
menu_item = gtk_item_factory_get_widget (toolbox_factory,
xtns_plugins[i]);
path = g_strconcat ("/Xtns/", xtns_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (toolbox_factory, path);
g_free (path);
if (menu_item && menu_item->parent)
{
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, pos);
@ -964,6 +1020,46 @@ menus_reorder_plugins (void)
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, 3);
/* Reorder Rotate plugin menu entries */
pos = 2;
for (i = 0; i < n_rotate_plugins; i++)
{
path = g_strconcat ("/Image/Transforms/Rotate/", rotate_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
g_free (path);
if (menu_item && menu_item->parent)
{
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, pos);
pos++;
}
}
pos = 2;
for (i = 0; i < n_rotate_plugins; i++)
{
path = g_strconcat ("/Layers/Rotate/", rotate_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
g_free (path);
if (menu_item && menu_item->parent)
{
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, pos);
pos++;
}
}
/* Reorder <Image>/File */
for (i = 0; i < n_image_file_entries; i++)
{
path = g_strconcat ("/File/", image_file_entries[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
g_free (path);
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, -1);
}
/* Find the <Image>/Filters menu... */
menu_item = gtk_item_factory_get_widget (image_factory,
"/Filters/Repeat last");
@ -980,30 +1076,20 @@ menus_reorder_plugins (void)
menus_filters_subdirs_to_top (GTK_MENU (menu_item->submenu));
}
/* Reorder Rotate plugin menu entries */
pos = 2;
for (i = 0; i < n_rotate_plugins; i++)
/* Find the <Toolbox>/Xtns menu... */
menu_item = gtk_item_factory_get_widget (toolbox_factory,
"/Xtns/Module Browser...");
if (!menu_item || !menu_item->parent)
return;
menu = menu_item->parent;
/* ...and reorder all submenus of it's submenus */
for (list = GTK_MENU_SHELL (menu)->children; list; list = g_list_next (list))
{
path = g_strconcat ("/Image/Transforms/Rotate/", rotate_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
if (menu_item && menu_item->parent)
{
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, pos);
pos++;
}
g_free (path);
}
pos = 2;
for (i = 0; i < n_rotate_plugins; i++)
{
path = g_strconcat ("/Layers/Rotate/", rotate_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
if (menu_item && menu_item->parent)
{
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, pos);
pos++;
}
g_free (path);
GtkMenuItem *menu_item = GTK_MENU_ITEM (list->data);
if (menu_item->submenu)
menus_filters_subdirs_to_top (GTK_MENU (menu_item->submenu));
}
}
@ -1144,7 +1230,7 @@ menus_last_opened_update_labels (void)
g_string_sprintf (entry_filename, "%d. %s", i,
g_basename (((GString *) filename_slist->data)->str));
g_string_sprintf (path, N_("/File/MRU%02d"), i);
g_string_sprintf (path, "/File/MRU%02d", i);
widget = gtk_item_factory_get_widget (toolbox_factory, path->str);
if (widget != NULL) {
@ -1164,18 +1250,17 @@ void
menus_last_opened_add (gchar *filename)
{
GString *raw_filename;
GSList *item;
GSList *list;
GtkWidget *widget;
guint num_entries;
/* ignore the add if we've already got the filename on the list */
item = last_opened_raw_filenames;
while (item)
for (list = last_opened_raw_filenames; list; list = g_slist_next (list))
{
raw_filename = item->data;
raw_filename = list->data;
if (!strcmp (raw_filename->str, filename))
return;
item = g_slist_next (item);
}
num_entries = g_slist_length (last_opened_raw_filenames);
@ -1232,7 +1317,7 @@ menus_init_mru (void)
last_opened_entries[i].help_page = "file/last_opened.html";
last_opened_entries[i].description = NULL;
g_snprintf (path, MRU_MENU_ENTRY_SIZE, N_("/File/MRU%02d"), i + 1);
g_snprintf (path, MRU_MENU_ENTRY_SIZE, "/File/MRU%02d", i + 1);
if (accelerator != NULL)
g_snprintf (accelerator, MRU_MENU_ACCEL_SIZE, "<control>%d", i + 1);
}
@ -1365,6 +1450,27 @@ menus_create_items (GtkItemFactory *item_factory,
entries + i,
callback_data,
callback_type);
if (((item_factory == toolbox_factory) ||
(item_factory == image_factory)) &&
entries[i].entry.item_type &&
strstr (entries[i].entry.item_type, "Branch>"))
{
gchar *tearoff_path;
tearoff_path = g_strconcat (entries[i].entry.path, "/tearoff1", NULL);
{
GimpItemFactoryEntry tearoff_entry =
{ { tearoff_path, NULL, tearoff_cmd_callback, 0, "<Tearoff>" },
NULL, NULL
};
menus_create_item (item_factory, &tearoff_entry, NULL, 2);
}
g_free (tearoff_path);
}
}
}
@ -1375,7 +1481,7 @@ menus_init_toolbox (void)
gtk_object_set_data (GTK_OBJECT (toolbox_factory), "help_path",
(gpointer) "toolbox");
gtk_item_factory_set_translate_func (toolbox_factory, menu_translate,
NULL, NULL);
"<Toolbox>", NULL);
menus_create_items (toolbox_factory, n_toolbox_entries,
toolbox_entries, NULL, 2);
menus_init_mru ();
@ -1406,7 +1512,7 @@ menus_init (void)
(gpointer) "image");
gtk_item_factory_set_translate_func (image_factory,
menu_translate,
NULL, NULL);
"<Image>", NULL);
menus_create_items (image_factory,
n_image_entries,
image_entries,
@ -1520,33 +1626,26 @@ menu_translate (const gchar *path,
{
static gchar menupath[MENUPATH_SIZE];
gchar *retval;
gchar *factory;
factory = (gchar *) data;
menupath[MENUPATH_SIZE - 1] = '\0';
strncpy (menupath, path, MENUPATH_SIZE -1);
if ((strstr (path, "/tearoff1") != NULL) ||
(strstr (path, "/---") != NULL) ||
(strstr (path, "/MRU") != NULL))
return menupath;
retval = gettext (path);
if (strcmp (path, retval))
return retval;
strncpy (menupath, path, MENUPATH_SIZE - 1);
strncat (menupath, "/tearoff1", MENUPATH_SIZE - 1 - strlen (menupath));
retval = gettext (menupath);
if (strcmp (menupath, retval))
if (!strcmp (path, retval) && factory)
{
strncpy (menupath, retval, MENUPATH_SIZE - 1);
*(strrchr(menupath, '/')) = '\0';
return menupath;
}
else
{
strcpy (menupath, "<Image>");
strncat (menupath, path, MENUPATH_SIZE - 1 - strlen ("<Image>"));
retval = dgettext ("gimp-std-plugins", menupath) + strlen ("<Image>");
if (!strcmp (path, retval))
{
strcpy (menupath, "<Toolbox>");
strncat (menupath, path, MENUPATH_SIZE - 1 - strlen ("<Toolbox>"));
retval = dgettext ("gimp-std-plugins", menupath) + strlen ("<Toolbox>");
}
strcpy (menupath, factory);
strncat (menupath, path, MENUPATH_SIZE - 1 - strlen (factory));
retval = dgettext ("gimp-std-plugins", menupath) + strlen (factory);
}
return retval;

View File

@ -1833,7 +1833,7 @@ query ()
"Adam D. Moss (adam@foxbox.org)",
"Adam D. Moss (adam@foxbox.org)",
"2nd March 1997",
"<Image>/Filters/Misc/Video...",
"<Image>/Filters/Distorts/Video...",
"RGB*",
PROC_PLUG_IN,
nargs, nreturn_vals,

View File

@ -139,7 +139,7 @@ static void query()
"Maurits Rijk",
"Maurits Rijk",
"1998-1999",
N_("<Image>/Filters/Misc/ImageMap..."),
N_("<Image>/Filters/Web/ImageMap..."),
"RGB*, GRAY*, INDEXED*",
PROC_PLUG_IN,
nargs, nreturn_vals,

View File

@ -39,25 +39,25 @@ msgid "illegal parasite specification, expected three array members"
msgstr ""
msgid "<Toolbox>/Xtns/Render/Golden Mean"
msgstr "<Toolbox>/Xtn/Erzeuge/Goldener Schnitt"
msgstr "<Toolbox>/Xtns/Erzeuge/Goldener Schnitt"
msgid "Last Modified"
msgstr "Zuletzt verändert"
msgid "<Toolbox>/Xtns/Visual Scriptor"
msgstr "<Toolbox>/Xtn/Visual Scriptor"
msgstr "<Toolbox>/Xtns/Visual Scriptor"
msgid "<Toolbox>/Xtns/Render/Logos/Firetext"
msgstr "<Toolbox>/Xtn/Erzeuge/Logo/Feuerlogo"
msgstr "<Toolbox>/Xtns/Erzeuge/Logo/Feuerlogo"
msgid "unable to read '$fn': $!"
msgstr ""
msgid "<Toolbox>/Xtns/Render/Povray/Texture"
msgstr "<Toolbox>/Xtn/Render/Povray/Textur"
msgstr "<Toolbox>/Xtns/Render/Povray/Textur"
msgid "<Toolbox>/Xtns/Render/Povray/Preferences"
msgstr "<Toolbox>/Xtn/Erzeuge/Povray/Einstellungen"
msgstr "<Toolbox>/Xtns/Erzeuge/Povray/Einstellungen"
msgid "Unable to read temporary image tile $tmp: $!"
msgstr ""
@ -70,7 +70,7 @@ msgid "Font Selection Dialog ($desc)"
msgstr "Schirftartenauswahl ($desc)"
msgid "<Toolbox>/Xtns/Render/Pixelgenerator"
msgstr "<Toolbox>/Xtn/Erzeuge/Pixelgenerator"
msgstr "<Toolbox>/Xtns/Erzeuge/Pixelgenerator"
msgid "xlfd_unpack: unmatched XLFD '$fontname'\n"
msgstr ""
@ -307,7 +307,7 @@ msgstr ""
"Menüpfad _muß_ mit <Image>, <Toolbox>, <Load>, <Save> oder <None> anfangen!"
msgid "<Toolbox>/Xtns/Perl/Server"
msgstr "<Toolbox>/Xtn/Perl/Server"
msgstr "<Toolbox>/Xtns/Perl/Server"
msgid "accepted unix connection"
msgstr "Unix-Verbindung angenommen"
@ -388,7 +388,7 @@ msgstr "Konnte Referenz auf Typ '%s' nicht konvertieren"
#, fuzzy
msgid "<Toolbox>/Xtns/Render/Logos/Inner Bevel"
msgstr "<Toolbox>/Xtn/Erzeuge/Logo/Feuerlogo"
msgstr "<Toolbox>/Xtns/Erzeuge/Logo/Feuerlogo"
#, fuzzy
msgid "<Image>/Filters/Render/Random Blends"
@ -423,7 +423,7 @@ msgid "<Image>/Filters/Render/Terral Text"
msgstr "<Image>/Filter/Render/Terraltext"
msgid "<Toolbox>/Xtns/PDB Explorer"
msgstr "<Toolbox>/Xtn/PDB-Buch"
msgstr "<Toolbox>/Xtns/PDB-Buch"
msgid "<Toolbox>/Xtns/Create_Images"
msgstr "<Toolbox>/Xtns/Create_Images"
@ -479,7 +479,7 @@ msgstr "Auf Standardwerte zur
#, fuzzy
msgid "<Toolbox>/Xtns/Gimp::Fu Example"
msgstr "<Toolbox>/Xtn/PDB-Buch"
msgstr "<Toolbox>/Xtns/PDB-Buch"
msgid ""
"Usage: $0 [gimp-args..] [interface-args..] [script-args..]\n"
@ -527,7 +527,7 @@ msgid "Cannot call '$AUTOLOAD' at this time"
msgstr ""
msgid "<Toolbox>/Xtns/Render/Yin-Yang"
msgstr "<Toolbox>/Xtn/Erzeuge/Yin-Yang"
msgstr "<Toolbox>/Xtns/Erzeuge/Yin-Yang"
msgid "arguments to main not yet supported!"
msgstr ""
@ -554,7 +554,7 @@ msgid "get current background colour from the gimp"
msgstr "Übernehme die aktuelle Hintergrundfarbe von Gimp"
msgid "<Toolbox>/Xtns/Render/Font Table"
msgstr "<Toolbox>/Xtn/Erzeuge/Fonttabelle"
msgstr "<Toolbox>/Xtns/Erzeuge/Fonttabelle"
msgid ""
"Internal error: asked to deobjectify an object not in the cache, please report!"
@ -584,7 +584,7 @@ msgid "<Image>/Filters/Distorts/MirrorSplit"
msgstr "<Image>/Filter/"
msgid "<Toolbox>/Xtns/Animation/Billboard"
msgstr "<Toolbox>/Xtn/Animation/Billboard"
msgstr "<Toolbox>/Xtns/Animation/Billboard"
msgid "<Image>/Filters/Misc/Border Average"
msgstr "<Image>/Filter/Verschiedenes/Rahmenfarbe"
@ -626,7 +626,7 @@ msgstr ""
#, fuzzy
msgid "<Toolbox>/Xtns/Render/Bricks"
msgstr "<Toolbox>/Xtn/Erzeuge/Yin-Yang"
msgstr "<Toolbox>/Xtns/Erzeuge/Yin-Yang"
msgid "WARNING: client disconnected while holding an active lock\n"
msgstr ""
@ -669,7 +669,7 @@ msgid "Save"
msgstr "Speichern"
msgid "<Toolbox>/Xtns/Perl/Control Center"
msgstr "<Toolbox>/Xtn/Perl/Kontrollcenter"
msgstr "<Toolbox>/Xtns/Perl/Kontrollcenter"
msgid "Function Info"
msgstr "Mehr Info"
@ -735,7 +735,7 @@ msgstr "[abgebrochen]\n"
#, fuzzy
msgid "<Toolbox>/Xtns/Homepage-Logo"
msgstr "<Toolbox>/Xtn/Homepagelogo"
msgstr "<Toolbox>/Xtns/Homepagelogo"
msgid "Date/Version"
msgstr "Datum/Version"
@ -773,7 +773,7 @@ msgstr ""
#, fuzzy
msgid "<Toolbox>/Xtns/Perl Example Plug-in"
msgstr "<Toolbox>/Xtn/PDB-Buch"
msgstr "<Toolbox>/Xtns/PDB-Buch"
msgid "unable to accept unix connection: $!\n"
msgstr "Konnte Unix-Verbindung nicht annehmen: $!\n"
@ -834,7 +834,7 @@ msgid " = [argument error]\n"
msgstr " = [Argumentfehler]\n"
msgid "<Toolbox>/Xtns/"
msgstr "<Toolbox>/Xtn/"
msgstr "<Toolbox>/Xtns/"
msgid "plug-in returned %d more values than expected"
msgstr ""
@ -861,52 +861,52 @@ msgid "not enough"
msgstr "nicht genügend"
msgid "<Toolbox>/Xtns/Perl-Fu/Logos/3D Outline"
msgstr "<Toolbox>/Xtn/Erzeuge/Logo/3D Outline"
msgstr "<Toolbox>/Xtns/Erzeuge/Logo/3D Outline"
msgid "accepting connections on $unix_path"
msgstr "Akzeptiere Verbindungen auf $unix_path"
#~ msgid "<Toolbox>/Xtns/Animation/Seth Spin"
#~ msgstr "<Toolbox>/Xtn/Animation/Seth's Dreher"
#~ msgstr "<Toolbox>/Xtns/Animation/Seth's Dreher"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Speed text"
#~ msgstr "<Toolbox>/Xtn/Perl/Server"
#~ msgstr "<Toolbox>/Xtns/Perl/Server"
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Glossy"
#~ msgstr "<Toolbox>/Xtns/Perl-Fu/Logos/Glossy"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Crystal"
#~ msgstr "<Toolbox>/Xtn/Perl/Kontrollcenter"
#~ msgstr "<Toolbox>/Xtns/Perl/Kontrollcenter"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Carved"
#~ msgstr "<Toolbox>/Xtn/Perl/Server"
#~ msgstr "<Toolbox>/Xtns/Perl/Server"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Bovination"
#~ msgstr "<Toolbox>/Xtn/Perl/Kontrollcenter"
#~ msgstr "<Toolbox>/Xtns/Perl/Kontrollcenter"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Frosty"
#~ msgstr "<Toolbox>/Xtn/Perl/Kontrollcenter"
#~ msgstr "<Toolbox>/Xtns/Perl/Kontrollcenter"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Chrome"
#~ msgstr "<Toolbox>/Xtn/Perl/Server"
#~ msgstr "<Toolbox>/Xtns/Perl/Server"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Neon"
#~ msgstr "<Toolbox>/Xtn/Perl/Kontrollcenter"
#~ msgstr "<Toolbox>/Xtns/Perl/Kontrollcenter"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Textured"
#~ msgstr "<Toolbox>/Xtn/Perl/Server"
#~ msgstr "<Toolbox>/Xtns/Perl/Server"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Chalk"
#~ msgstr "<Toolbox>/Xtn/Perl/Kontrollcenter"
#~ msgstr "<Toolbox>/Xtns/Perl/Kontrollcenter"
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Particle Trace"
#~ msgstr "<Toolbox>/Xtns/Perl-Fu/Logos/Particle Trace"
@ -916,52 +916,52 @@ msgstr "Akzeptiere Verbindungen auf $unix_path"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Comic Book"
#~ msgstr "<Toolbox>/Xtn/Perl/Kontrollcenter"
#~ msgstr "<Toolbox>/Xtns/Perl/Kontrollcenter"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Starscape"
#~ msgstr "<Toolbox>/Xtn/Perl/Server"
#~ msgstr "<Toolbox>/Xtns/Perl/Server"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Newsprint text"
#~ msgstr "<Toolbox>/Xtn/Perl/Kontrollcenter"
#~ msgstr "<Toolbox>/Xtns/Perl/Kontrollcenter"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Gradient Bevel"
#~ msgstr "<Toolbox>/Xtn/Perl/Kontrollcenter"
#~ msgstr "<Toolbox>/Xtns/Perl/Kontrollcenter"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Blended"
#~ msgstr "<Toolbox>/Xtn/Perl/Kontrollcenter"
#~ msgstr "<Toolbox>/Xtns/Perl/Kontrollcenter"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Basic I"
#~ msgstr "<Toolbox>/Xtn/Perl/Kontrollcenter"
#~ msgstr "<Toolbox>/Xtns/Perl/Kontrollcenter"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Glowing Hot"
#~ msgstr "<Toolbox>/Xtn/Perl/Kontrollcenter"
#~ msgstr "<Toolbox>/Xtns/Perl/Kontrollcenter"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Starburst"
#~ msgstr "<Toolbox>/Xtn/Perl/Server"
#~ msgstr "<Toolbox>/Xtns/Perl/Server"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Alien Glow"
#~ msgstr "<Toolbox>/Xtn/Perl/Kontrollcenter"
#~ msgstr "<Toolbox>/Xtns/Perl/Kontrollcenter"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Basic II"
#~ msgstr "<Toolbox>/Xtn/Perl/Kontrollcenter"
#~ msgstr "<Toolbox>/Xtns/Perl/Kontrollcenter"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Imigre-26"
#~ msgstr "<Toolbox>/Xtn/Perl/Server"
#~ msgstr "<Toolbox>/Xtns/Perl/Server"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/SOTA Chrome"
#~ msgstr "<Toolbox>/Xtn/Perl/Server"
#~ msgstr "<Toolbox>/Xtns/Perl/Server"
#, fuzzy
#~ msgid "<Toolbox>/Xtns/Perl-Fu/Logos/Cool Metal"
#~ msgstr "<Toolbox>/Xtn/Perl/Kontrollcenter"
#~ msgstr "<Toolbox>/Xtns/Perl/Kontrollcenter"

View File

@ -1,3 +1,11 @@
1999-11-25 Michael Natterer <mitch@gimp.org>
* de.po
*jp.po: did a 'make update-po' to get the new menu paths. All
other *.po files seems to be somehow broken.
* de.po: updated some "..." in the plug-ins menu paths.
1999-11-25 Yukihiro Nakai <nakai@gnome.gr.jp>
* ja.po: Update from SHIRASAKI Yasuhiro

View File

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: GIMP 1.1.10\n"
"POT-Creation-Date: 1999-11-24 15:16-0800\n"
"POT-Creation-Date: 1999-11-25 10:23+0100\n"
"PO-Revision-Date: 1999-11-22 23:17+0100\n"
"Last-Translator: Sven Neumann <sven@gimp.org>\n"
"Language-Team: German <de@li.org>\n"
@ -26,9 +26,8 @@ msgid "1th May 1997"
msgstr ""
#: plug-ins/AlienMap/AlienMap.c:194
#, fuzzy
msgid "<Image>/Filters/Colors/Map/Alien Map..."
msgstr "<Image>/Filter/Farben/Abbilden/Alien Map"
msgstr "<Image>/Filter/Farben/Abbilden/Alien Map..."
#: plug-ins/AlienMap/AlienMap.c:379
msgid "AlienMap: Transforming ..."
@ -198,7 +197,7 @@ msgstr "Abbrechen"
#: plug-ins/AlienMap/AlienMap.c:878 plug-ins/AlienMap2/AlienMap2.c:801
msgid "Reject any changes and close plug-in"
msgstr ""
msgstr "Alle Änderungen verwerfen und Plug-In beenden"
#: plug-ins/AlienMap/AlienMap.c:880 plug-ins/AlienMap2/AlienMap2.c:803
#: plug-ins/gimpressionist/gimpressionist.c:506
@ -240,9 +239,8 @@ msgid "24th April 1998"
msgstr ""
#: plug-ins/AlienMap2/AlienMap2.c:217
#, fuzzy
msgid "<Image>/Filters/Colors/Map/Alien Map 2..."
msgstr "<Image>/Filter/Farben/Abbilden/Alien Map 2"
msgstr "<Image>/Filter/Farben/Abbilden/Alien Map 2..."
#: plug-ins/AlienMap2/AlienMap2.c:392
msgid "AlienMap2: Transforming ..."
@ -369,9 +367,8 @@ msgid "No help yet"
msgstr "Keine Hilfe vorhanden"
#: plug-ins/Lighting/lighting_main.c:177
#, fuzzy
msgid "<Image>/Filters/Light Effects/Lighting Effects..."
msgstr "<Image>/Filter/Licht-Effekte/Lichteffekte"
msgstr "<Image>/Filter/Licht-Effekte/Lichteffekte..."
#: plug-ins/Lighting/lighting_ui.c:34
msgid "Point light"
@ -433,7 +430,7 @@ msgstr "Transparenter Hintergrund"
#: plug-ins/Lighting/lighting_ui.c:580 plug-ins/common/lic.c:1009
msgid "Create new image"
msgstr "Erstelle neues Bild"
msgstr "Neues Bild erzeugen"
#: plug-ins/Lighting/lighting_ui.c:582
msgid "High preview quality"
@ -796,9 +793,8 @@ msgid "Borderaverage"
msgstr "Rand"
#: plug-ins/borderaverage/borderaverage.c:98
#, fuzzy
msgid "<Image>/Filters/Colors/Border Average..."
msgstr "<Image>/Filter/Farben/Randmittelwert"
msgstr "<Image>/Filter/Farben/Randmittelwert..."
#: plug-ins/borderaverage/borderaverage.c:350
msgid "Border Size"
@ -1056,9 +1052,8 @@ msgstr ""
"einer Parameter-Datei, womit man den CML_explorer steuern kann."
#: plug-ins/common/CML_explorer.c:494
#, fuzzy
msgid "<Image>/Filters/Render/Pattern/CML explorer..."
msgstr "<Image>/Filter/Render/Muster/Gitter"
msgstr "<Image>/Filter/Render/Muster/CML Exlorer..."
#: plug-ins/common/CML_explorer.c:796
msgid "CML_explorer: evoluting..."
@ -1333,9 +1328,8 @@ msgstr ""
"abzuspielen."
#: plug-ins/common/animationplay.c:252
#, fuzzy
msgid "<Image>/Filters/Animation/Animation Playback..."
msgstr "<Image>/Filter/Animation/Animation abspielen"
msgstr "<Image>/Filter/Animation/Animation abspielen..."
#: plug-ins/common/animationplay.c:664
msgid "Animation Playback: "
@ -1386,7 +1380,7 @@ msgstr "Dieses plug-in optimiert eine Ebenen-basierte Animation."
#: plug-ins/common/animoptimize.c:136
msgid "<Image>/Filters/Animation/Animation Optimize"
msgstr "<Image>/Filter/Animation/Animation Optimieren"
msgstr "<Image>/Filter/Animation/Animation optimieren"
#: plug-ins/common/animoptimize.c:143
msgid ""
@ -1400,7 +1394,7 @@ msgstr ""
#: plug-ins/common/animoptimize.c:152
msgid "<Image>/Filters/Animation/Animation UnOptimize"
msgstr "<Image>/Filter/Animation/Animation Deoptimieren"
msgstr "<Image>/Filter/Animation/Animation deoptimieren"
#: plug-ins/common/animoptimize.c:296
msgid "Optimizing Animation..."
@ -1425,9 +1419,8 @@ msgstr ""
"(Lupe) über das Bild zu zeichnen"
#: plug-ins/common/apply_lens.c:137
#, fuzzy
msgid "<Image>/Filters/Glass Effects/Apply Lens..."
msgstr "<Image>/Filter/Glas-Effekte/Lupeneffekt"
msgstr "<Image>/Filter/Glas-Effekte/Lupeneffekt..."
#: plug-ins/common/apply_lens.c:196
msgid "Applying lens..."
@ -1534,9 +1527,8 @@ msgstr ""
"indizierten Bildern."
#: plug-ins/common/blur.c:208
#, fuzzy
msgid "<Image>/Filters/Blur/Blur..."
msgstr "<Image>/Filter/Aufweichen/Aufweichen"
msgstr "<Image>/Filter/Weichzeichnen/Weichzeichnen..."
#: plug-ins/common/blur.c:627
msgid "Accept settings and apply filter to image"
@ -1639,9 +1631,8 @@ msgid ""
msgstr ""
#: plug-ins/common/bumpmap.c:348
#, fuzzy
msgid "<Image>/Filters/Map/Bump Map..."
msgstr "<Image>/Filter/Abbilden/Bumpmap"
msgstr "<Image>/Filter/Abbilden/Bumpmap..."
#: plug-ins/common/bumpmap.c:494
msgid "Bump-mapping..."
@ -1761,9 +1752,8 @@ msgid "Adds a checkerboard pattern to an image"
msgstr "Fügt einem Bild ein Schachbrett-Muster hinzu"
#: plug-ins/common/checkerboard.c:102
#, fuzzy
msgid "<Image>/Filters/Render/Pattern/Checkerboard..."
msgstr "<Image>/Filter/Render/Muster/Schachbrett"
msgstr "<Image>/Filter/Render/Muster/Schachbrett..."
#: plug-ins/common/checkerboard.c:164
msgid "Adding Checkerboard..."
@ -1827,9 +1817,8 @@ msgid "Makes an average of the RGB channels and uses it to set the color"
msgstr "Berechnet den Durchschnitt der RGB-Kanäle und setzt damit die Farbe"
#: plug-ins/common/colorify.c:126
#, fuzzy
msgid "<Image>/Filters/Colors/Colorify..."
msgstr "<Image>/Filter/Farben/Einfärben"
msgstr "<Image>/Filter/Farben/Einfärben..."
#: plug-ins/common/colorify.c:195
msgid "Colorifying..."
@ -1868,9 +1857,8 @@ msgid "7th Aug 1999"
msgstr ""
#: plug-ins/common/colortoalpha.c:114
#, fuzzy
msgid "<Image>/Filters/Colors/Color To Alpha..."
msgstr "<Image>/Filter/Farben/Farbe zu Transparenz"
msgstr "<Image>/Filter/Farben/Farbe zu Transparenz..."
#: plug-ins/common/colortoalpha.c:404
msgid "Color To Alpha"
@ -2066,9 +2054,8 @@ msgid "A generic 5x5 convolution matrix"
msgstr "Ein generisches 5x5 Verwickelungs-Matrix (convolution-matrix)"
#: plug-ins/common/convmatrix.c:178
#, fuzzy
msgid "<Image>/Filters/Generic/Convolution Matrix..."
msgstr "<Image>/Filter/Generisch/Verwickelungs-Matrix"
msgstr "<Image>/Filter/Generisch/Verwicklungs-Matrix..."
#: plug-ins/common/convmatrix.c:239
msgid "Applying convolution"
@ -2128,9 +2115,8 @@ msgid "Help not yet written for this plug-in"
msgstr "Die Hilfe für diese plug-in wurde noch nicht geschrieben"
#: plug-ins/common/cubism.c:177
#, fuzzy
msgid "<Image>/Filters/Artistic/Cubism..."
msgstr "<Image>/Filter/Künstlerisch/Kubismus"
msgstr "<Image>/Filter/Künstlerisch/Kubismus..."
#: plug-ins/common/cubism.c:289
msgid "Cubistic Transformation"
@ -2294,9 +2280,8 @@ msgstr ""
"Tiefen-Map-Wert an der Stelle hat."
#: plug-ins/common/depthmerge.c:202
#, fuzzy
msgid "<Image>/Filters/Combine/Depth Merge..."
msgstr "<Image>/Filter/Kombinieren/TiefenKombination"
msgstr "<Image>/Filter/Kombinieren/TiefenKombination..."
#: plug-ins/common/depthmerge.c:369
msgid "Depth-merging..."
@ -2351,9 +2336,8 @@ msgstr ""
"Dieses plug-in versucht, vertikale Streifen aus einem Bild zu entfernen."
#: plug-ins/common/destripe.c:153
#, fuzzy
msgid "<Image>/Filters/Enhance/Destripe..."
msgstr "<Image>/Filter/Verbessern/Streifen entfernen"
msgstr "<Image>/Filter/Verbessern/Streifen entfernen..."
#: plug-ins/common/destripe.c:356
msgid "Destriping..."
@ -2389,9 +2373,8 @@ msgid "Compose several images to a roll film"
msgstr ""
#: plug-ins/common/film.c:229
#, fuzzy
msgid "<Image>/Filters/Combine/Film..."
msgstr "<Image>/Filter/Kombinieren/Film"
msgstr "<Image>/Filter/Kombinieren/Film..."
#: plug-ins/common/film.c:316
msgid "Composing Images..."
@ -2737,13 +2720,12 @@ msgid "no help available"
msgstr ""
#: plug-ins/common/grid.c:128
#, fuzzy
msgid "<Image>/Filters/Render/Pattern/Grid..."
msgstr "<Image>/Filter/Render/Muster/Gitter"
msgstr "<Image>/Filter/Render/Muster/Gitter..."
#: plug-ins/common/grid.c:214
msgid "Drawing Grid..."
msgstr ""
msgstr "Zeichne Gitter..."
#: plug-ins/common/grid.c:444 plug-ins/imagemap/imap_toolbar.c:164
msgid "Grid"
@ -3026,9 +3008,8 @@ msgid "Creates a Van Gogh effect (Line Integral Convolution)"
msgstr "Erstellt einen Van Gogh-Effekt (Line Integral Convolution)"
#: plug-ins/common/lic.c:1319
#, fuzzy
msgid "<Image>/Filters/Map/Van Gogh (LIC)..."
msgstr "<Image>/Filter/Abbilden/Van Gogh (LIC)"
msgstr "<Image>/Filter/Abbilden/Van Gogh (LIC)..."
#: plug-ins/common/lic.c:1441
msgid "Noninteractive not yet implemented! Sorry.\n"
@ -3105,7 +3086,6 @@ msgid ""
msgstr ""
#: plug-ins/common/mapcolor.c:146
#, fuzzy
msgid "<Image>/Filters/Colors/Map/Adjust FG-BG"
msgstr "<Image>/Filter/Farben/Abbilden/VG-HG vertauschen"
@ -3116,9 +3096,8 @@ msgid ""
msgstr ""
#: plug-ins/common/mapcolor.c:160
#, fuzzy
msgid "<Image>/Filters/Colors/Map/Color Mapping..."
msgstr "<Image>/Filter/Farben/Abbilden/Farben vertauschen"
msgstr "<Image>/Filter/Farben/Abbilden/Farben vertauschen..."
#: plug-ins/common/mapcolor.c:205
msgid ""
@ -3141,7 +3120,6 @@ msgid "Map colors"
msgstr "Farbe"
#: plug-ins/common/mapcolor.c:399
#, fuzzy
msgid "To:"
msgstr "Bis:"
@ -3171,7 +3149,7 @@ msgstr ""
#: plug-ins/common/normalize.c:83
msgid "<Image>/Image/Colors/Auto/Normalize"
msgstr "<Image>/Farben/Auto/Normalisieren"
msgstr "<Image>/Image/Farben/Auto/Normalisieren"
#: plug-ins/common/normalize.c:115
msgid "Normalizing..."
@ -3193,9 +3171,8 @@ msgid ""
msgstr ""
#: plug-ins/common/nova.c:246
#, fuzzy
msgid "<Image>/Filters/Light Effects/SuperNova..."
msgstr "<Image>/Filter/Licht-Effekte/Lichteffekte"
msgstr "<Image>/Filter/Licht-Effekte/SuperNova..."
#: plug-ins/common/nova.c:326
msgid "Rendering SuperNova..."
@ -3248,9 +3225,8 @@ msgstr ""
"'mask_size' gesteuert."
#: plug-ins/common/oilify.c:127
#, fuzzy
msgid "<Image>/Filters/Artistic/Oilify..."
msgstr "<Image>/Filter/Künstlerisch/Ölgemälde"
msgstr "<Image>/Filter/Künstlerisch/Ölgemälde..."
#: plug-ins/common/oilify.c:198
msgid "Oil Painting..."
@ -3355,9 +3331,8 @@ msgid "September 31, 1999"
msgstr ""
#: plug-ins/common/papertile.c:942
#, fuzzy
msgid "<Image>/Filters/Map/Paper Tile..."
msgstr "<Image>/Filter/Abbilden/Papierschnipsel"
msgstr "<Image>/Filter/Abbilden/Papierschnipsel..."
#: plug-ins/common/png.c:156
msgid "Loads files in PNG file format"
@ -3573,13 +3548,11 @@ msgid "Preview size"
msgstr "Grösse der Vorschau"
#: plug-ins/common/psp.c:462
#, fuzzy
msgid "Save as PSP"
msgstr "Als BMP sichern"
msgstr "Als PSP sichern"
#. file save type
#: plug-ins/common/psp.c:494
#, fuzzy
msgid "Data Compression"
msgstr "Kompressionsgrad"
@ -3756,9 +3729,8 @@ msgstr ""
"oder Akrylfarbe."
#: plug-ins/common/warp.c:306
#, fuzzy
msgid "<Image>/Filters/Map/Warp..."
msgstr "<Image>/Filter/Abbilden/Warp"
msgstr "<Image>/Filter/Abbilden/Warp..."
#: plug-ins/common/warp.c:477
msgid "Warp"
@ -4543,18 +4515,16 @@ msgid "This plugin duplicates the current frames on disk n-times."
msgstr "Dieses plug-in dupliziert die Datei des momentanen Frame n-mal."
#: plug-ins/gap/gap_main.c:422
#, fuzzy
msgid "<Image>/Video/Duplicate Frames..."
msgstr "<Image>/Video/Frames duplizieren"
msgstr "<Image>/Video/Frames duplizieren..."
#: plug-ins/gap/gap_main.c:429
msgid "This plugin exchanges content of the current with destination frame."
msgstr "Dieses plug-in tauscht den momentanen Frame mit dem Ziel-Frame aus."
#: plug-ins/gap/gap_main.c:434
#, fuzzy
msgid "<Image>/Video/Exchange Frame..."
msgstr "<Image>/Video/Frames austauschen"
msgstr "<Image>/Video/Frames austauschen..."
#: plug-ins/gap/gap_main.c:441
msgid ""
@ -4566,9 +4536,8 @@ msgstr ""
"variieren."
#: plug-ins/gap/gap_main.c:446
#, fuzzy
msgid "<Image>/Video/Move Path..."
msgstr "<Image>/Video/Pfad verschieben"
msgstr "<Image>/Video/Pfad verschieben..."
#: plug-ins/gap/gap_main.c:453
msgid ""
@ -4582,9 +4551,8 @@ msgstr ""
# besser ?
#: plug-ins/gap/gap_main.c:458
#, fuzzy
msgid "<Image>/Video/Frames to Image..."
msgstr "<Image>/Video/Frames zu Bild"
msgstr "<Image>/Video/Frames zu Bild..."
#: plug-ins/gap/gap_main.c:465
msgid "This plugin flattens the given range of frame-images (on disk)"
@ -4592,11 +4560,9 @@ msgstr ""
"Dieses plug-in fügt in den angegebenen Frames die Ebenen zusammen\n"
"(Auf Festplatte)."
# ;-) TODO!
#: plug-ins/gap/gap_main.c:470
#, fuzzy
msgid "<Image>/Video/Frames Flatten..."
msgstr "<Image>/Video/Frames plattmachen"
msgstr "<Image>/Video/Frames plattmachen..."
#: plug-ins/gap/gap_main.c:477
msgid ""
@ -4607,9 +4573,8 @@ msgstr ""
"(auf Festplatte). Ausnahme: die letzte verbliebene Ebene wird nicht entfernt."
#: plug-ins/gap/gap_main.c:482
#, fuzzy
msgid "<Image>/Video/Frames LayerDel..."
msgstr "<Image>/Video/Frames Ebene entfernen"
msgstr "<Image>/Video/Frames Ebene entfernen..."
#: plug-ins/gap/gap_main.c:489 plug-ins/gap/gap_main.c:501
msgid ""
@ -4620,9 +4585,8 @@ msgstr ""
"(auf Festplatte), abhängig von der Erweiterung."
#: plug-ins/gap/gap_main.c:506
#, fuzzy
msgid "<Image>/Video/Frames Convert..."
msgstr "<Image>/Video/Frames konvertieren"
msgstr "<Image>/Video/Frames konvertieren..."
#: plug-ins/gap/gap_main.c:513
msgid ""
@ -4633,9 +4597,8 @@ msgstr ""
"Eingabewerten 'new_width/new_height' (auf Festplatte)."
#: plug-ins/gap/gap_main.c:518
#, fuzzy
msgid "<Image>/Video/Frames Resize..."
msgstr "<Image>/Video/Frames Grösse verändern"
msgstr "<Image>/Video/Frames Grösse verändern..."
#: plug-ins/gap/gap_main.c:525
msgid ""
@ -4646,9 +4609,8 @@ msgstr ""
"'new_width/new_height' festgelegte Grösse zu (auf Festplatte)."
#: plug-ins/gap/gap_main.c:530
#, fuzzy
msgid "<Image>/Video/Frames Crop..."
msgstr "<Image>/Video/Frames zuschneiden"
msgstr "<Image>/Video/Frames zuschneiden..."
#: plug-ins/gap/gap_main.c:537
msgid ""
@ -4659,9 +4621,8 @@ msgstr ""
"durch die Eingabewerte 'new_width/new_height' (auf Festplatte)."
#: plug-ins/gap/gap_main.c:542
#, fuzzy
msgid "<Image>/Video/Frames Scale..."
msgstr "<Image>/Video/Frames skalieren"
msgstr "<Image>/Video/Frames skalieren..."
#: plug-ins/gap/gap_main.c:549
msgid ""
@ -4672,11 +4633,9 @@ msgstr ""
"Festplatte).\n"
"Jede Ebene wird als ein Frame gespeichert."
# zu lang ?
#: plug-ins/gap/gap_main.c:554
#, fuzzy
msgid "<Image>/Video/Split Img to Frames..."
msgstr "<Image>/Video/Teile Bild in Frames"
msgstr "<Image>/Video/Teile Bild in Frames..."
#: plug-ins/gap/gap_main.c:561
msgid ""
@ -4689,9 +4648,8 @@ msgstr ""
"(mpeg_encode muss auf ihrem System installiert sein)"
#: plug-ins/gap/gap_main.c:566
#, fuzzy
msgid "<Image>/Video/Encode/MPEG1..."
msgstr "<Image>/Video/Frames MPEG2-kodieren"
msgstr "<Image>/Video/Kodieren//MPEG1..."
#: plug-ins/gap/gap_main.c:574
msgid ""
@ -4705,9 +4663,8 @@ msgstr ""
"(mpeg2encode muss auf ihrem System installiert sein)"
#: plug-ins/gap/gap_main.c:579
#, fuzzy
msgid "<Image>/Video/Encode/MPEG2 mpeg2encode...)"
msgstr "<Image>/Video/Frames MPEG2-kodieren"
msgstr "<Image>/Video/Kodieren/MPEG2..."
#: plug-ins/gap/gap_main.c:587
msgid ""
@ -4718,9 +4675,8 @@ msgstr ""
"Festplatte; frame_0001.xcf->frame_0002.xcf,2->3,...,n->1)."
#: plug-ins/gap/gap_main.c:592
#, fuzzy
msgid "<Image>/Video/Framesequence Shift..."
msgstr "<Image>/Video/Frame-Reihenfolge verschieben"
msgstr "<Image>/Video/Frame-Reihenfolge verschieben..."
#: plug-ins/gap/gap_main.c:599
msgid ""
@ -4731,9 +4687,8 @@ msgstr ""
"gegebenen Frames."
#: plug-ins/gap/gap_main.c:604
#, fuzzy
msgid "<Image>/Video/Frames Modify..."
msgstr "<Image>/Video/Frames modifizieren"
msgstr "<Image>/Video/Frames modifizieren..."
#. Layer select modes
#: plug-ins/gap/gap_mod_layer.c:84 plug-ins/gap/gap_range_ops.c:552
@ -5742,7 +5697,6 @@ msgstr ""
"(nur relevant für indizierte Bilder)"
#: plug-ins/gap/gap_range_ops.c:337
#, fuzzy
msgid "Dither Options"
msgstr "Dithering Einstellungen"
@ -6129,9 +6083,8 @@ msgid "GIMP Dynamic Text"
msgstr ""
#: plug-ins/gdyntext/gdyntext.c:153
#, fuzzy
msgid "<Image>/Filters/Render/Dynamic Text..."
msgstr "<Image>/Filter/Render/Sinus"
msgstr "<Image>/Filter/Render/Dynamischer Text..."
#: plug-ins/gdyntext/gdyntext.c:304
msgid ""
@ -6380,9 +6333,8 @@ msgid "Performs various artistic operations on an image"
msgstr "Wendet verschiedene künstlerische Effekte auf ein Bild an"
#: plug-ins/gimpressionist/gimp.c:105
#, fuzzy
msgid "<Image>/Filters/Artistic/GIMPressionist..."
msgstr "<Image>/Filter/Künstlerisch/GIMPressionist"
msgstr "<Image>/Filter/Künstlerisch/GIMPressionist..."
#: plug-ins/gimpressionist/gimp.c:294
msgid "Painting..."
@ -7090,19 +7042,18 @@ msgid ""
msgstr ""
#: plug-ins/ifscompose/ifscompose.c:354
#, fuzzy
msgid "<Image>/Filters/Render/Nature/IfsCompose..."
msgstr "<Image>/Filter/Render/Natur/IfsCompose"
msgstr "<Image>/Filter/Render/Natur/IfsCompose..."
#. X
#: plug-ins/ifscompose/ifscompose.c:503
msgid "X"
msgstr ""
msgstr "X"
#. Y
#: plug-ins/ifscompose/ifscompose.c:517
msgid "Y"
msgstr ""
msgstr "Y"
#. Asym
#: plug-ins/ifscompose/ifscompose.c:559
@ -7543,9 +7494,8 @@ msgid "Creates a clickable imagemap."
msgstr "Erstelle neues Bild"
#: plug-ins/imagemap/imap_main.c:142
#, fuzzy
msgid "<Image>/Filters/Misc/ImageMap..."
msgstr "<Image>/Datei/Verschicke Bild..."
msgid "<Image>/Filters/Web/ImageMap..."
msgstr "<Image>/Filter/Web/ImageMap..."
#: plug-ins/imagemap/imap_main.c:669
msgid "Data changed"
@ -7699,9 +7649,8 @@ msgid "Convert the input drawable into a collection of tiles"
msgstr "Konvertiere das angegebene Bild in eine Sammlung von Kacheln"
#: plug-ins/mosaic/mosaic.c:331
#, fuzzy
msgid "<Image>/Filters/Artistic/Mosaic..."
msgstr "<Image>/Filter/Künstlerisch/Mosaik"
msgstr "<Image>/Filter/Künstlerisch/Mosaik..."
#. progress bar for gradient finding
#: plug-ins/mosaic/mosaic.c:452
@ -8234,9 +8183,8 @@ msgid "Provides an interface which allows interactive scheme development."
msgstr ""
#: plug-ins/script-fu/script-fu.c:158
#, fuzzy
msgid "<Toolbox>/Xtns/Script-Fu/Console..."
msgstr "Skript-Fu Konsole"
msgstr "<Toolbox>/Xtns/Script-Fu/Skript-Fu/Konsole..."
#: plug-ins/script-fu/script-fu.c:165 plug-ins/script-fu/script-fu.c:166
msgid "Provides a server for remote script-fu operation"
@ -8244,7 +8192,7 @@ msgstr ""
#: plug-ins/script-fu/script-fu.c:170
msgid "<Toolbox>/Xtns/Script-Fu/Server..."
msgstr ""
msgstr "<Toolbox>/Xtns/Script-Fu/Server..."
#: plug-ins/script-fu/script-fu.c:178
msgid "Evaluate scheme code"
@ -8297,9 +8245,8 @@ msgid "Generates a texture with sinus functions"
msgstr ""
#: plug-ins/sinus/sinus.c:173
#, fuzzy
msgid "<Image>/Filters/Render/Sinus..."
msgstr "<Image>/Filter/Render/Sinus"
msgstr "<Image>/Filter/Render/Sinus..."
#. Create Main window with a vbox
#. ==============================
@ -8343,7 +8290,7 @@ msgstr "Farben"
#. if in grey scale, the colors are necessarily black and white
#: plug-ins/sinus/sinus.c:740
msgid "The colors are white and black."
msgstr ""
msgstr "Die Fraben sind schwarz und weiss."
#: plug-ins/sinus/sinus.c:754
msgid "First Color"
@ -8388,11 +8335,9 @@ msgid "This function applies a canvas texture map to the drawable."
msgstr "Diese Funktion fügt dem Bild einen Leinwand-Effekt hinzu."
#: plug-ins/struc/struc.c:112
#, fuzzy
msgid "<Image>/Filters/Artistic/Apply Canvas..."
msgstr "<Image>/Filter/Künstlerisch/Leinwand anwenden"
msgstr "<Image>/Filter/Künstlerisch/Leinwand anwenden..."
# ?????? TODO
#: plug-ins/struc/struc.c:233
msgid "Struc"
msgstr "Leinwand anwenden"
@ -8570,7 +8515,7 @@ msgstr "Mehr..."
#: libgimp/gimpunitmenu.c:452
msgid "Unit Selection"
msgstr "Einheit Auswahl"
msgstr "Einheit auswählen"
#: libgimp/gimpunitmenu.c:478
msgid "Unit "

View File

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: gimp 1.1.13\n"
"POT-Creation-Date: 1999-11-24 16:01+0900\n"
"POT-Creation-Date: 1999-11-25 10:23+0100\n"
"PO-Revision-Date: 1999-11-24 16:13+09:00\n"
"Last-Translator: 白崎 泰弘 <yasuhiro@awa.tohoku.ac.jp>\n"
"Language-Team: Japanese <translation@gnome.gr.jp>\n"
@ -135,7 +135,7 @@ msgstr "
#: plug-ins/common/film.c:1238 plug-ins/common/gif.c:1293
#: plug-ins/common/grid.c:461 plug-ins/common/jpeg.c:1569
#: plug-ins/common/lic.c:1251 plug-ins/common/mail.c:502
#: plug-ins/common/mapcolor.c:336 plug-ins/common/nova.c:410
#: plug-ins/common/mapcolor.c:340 plug-ins/common/nova.c:410
#: plug-ins/common/oilify.c:468 plug-ins/common/png.c:978
#: plug-ins/common/ps.c:2123 plug-ins/common/ps.c:2387
#: plug-ins/common/psp.c:476 plug-ins/common/threshold_alpha.c:474
@ -149,7 +149,7 @@ msgstr "
#: plug-ins/gimpressionist/orientmap.c:626
#: plug-ins/gimpressionist/presets.c:392 plug-ins/gimpressionist/sizemap.c:485
#: plug-ins/ifscompose/ifscompose.c:813 plug-ins/mosaic/mosaic.c:572
#: plug-ins/print/print.c:1147 plug-ins/script-fu/script-fu-scripts.c:1358
#: plug-ins/print/print.c:1147 plug-ins/script-fu/script-fu-scripts.c:1355
#: plug-ins/script-fu/script-fu-server.c:559 plug-ins/sel2path/sel2path.c:350
#: plug-ins/struc/struc.c:247
msgid "OK"
@ -172,7 +172,7 @@ msgstr "
#: plug-ins/common/film.c:1247 plug-ins/common/gif.c:1194
#: plug-ins/common/gif.c:1302 plug-ins/common/grid.c:470
#: plug-ins/common/jpeg.c:1578 plug-ins/common/lic.c:1260
#: plug-ins/common/mail.c:511 plug-ins/common/mapcolor.c:345
#: plug-ins/common/mail.c:511 plug-ins/common/mapcolor.c:349
#: plug-ins/common/nova.c:419 plug-ins/common/oilify.c:477
#: plug-ins/common/papertile.c:524 plug-ins/common/png.c:987
#: plug-ins/common/ps.c:2132 plug-ins/common/ps.c:2396
@ -189,7 +189,7 @@ msgstr "
#: plug-ins/gimpressionist/presets.c:400 plug-ins/gimpressionist/sizemap.c:499
#: plug-ins/ifscompose/ifscompose.c:822 plug-ins/mosaic/mosaic.c:581
#: plug-ins/print/print.c:1044 plug-ins/print/print.c:1155
#: plug-ins/script-fu/script-fu-scripts.c:1367
#: plug-ins/script-fu/script-fu-scripts.c:1364
#: plug-ins/script-fu/script-fu-server.c:568 plug-ins/sel2path/sel2path.c:359
#: plug-ins/struc/struc.c:256
msgid "Cancel"
@ -1342,7 +1342,7 @@ msgstr "
#: plug-ins/helpbrowser/helpbrowser.c:787
#: plug-ins/ifscompose/ifscompose.c:1249
#: plug-ins/script-fu/script-fu-console.c:205
#: plug-ins/script-fu/script-fu-scripts.c:1858
#: plug-ins/script-fu/script-fu-scripts.c:1855
msgid "Close"
msgstr "閉じる"
@ -1844,7 +1844,7 @@ msgstr "<Image>/
msgid "Color To Alpha"
msgstr "色を透明度へ"
#: plug-ins/common/colortoalpha.c:436 plug-ins/common/mapcolor.c:395
#: plug-ins/common/colortoalpha.c:436 plug-ins/common/mapcolor.c:399
msgid "From:"
msgstr "元:"
@ -3022,58 +3022,68 @@ msgstr "MIME"
msgid "mail: some sort of error with the file extension or lack thereof \n"
msgstr "mail: ファイル拡張子に関するエラーが発生しました\n"
#: plug-ins/common/mapcolor.c:98
#: plug-ins/common/mapcolor.c:100
msgid "First source color"
msgstr ""
#: plug-ins/common/mapcolor.c:99
#: plug-ins/common/mapcolor.c:101
msgid "Second source color"
msgstr ""
#: plug-ins/common/mapcolor.c:100
#: plug-ins/common/mapcolor.c:102
msgid "First destination color"
msgstr ""
#: plug-ins/common/mapcolor.c:101
#: plug-ins/common/mapcolor.c:103
msgid "Second destination color"
msgstr ""
#: plug-ins/common/mapcolor.c:135
#: plug-ins/common/mapcolor.c:139
msgid ""
"Adjust current foreground/background color in the drawable to black/white"
msgstr ""
#: plug-ins/common/mapcolor.c:137
#: plug-ins/common/mapcolor.c:141
msgid ""
"The current foreground color is mapped to black, the current background "
"color is mapped to white."
msgstr ""
#: plug-ins/common/mapcolor.c:142
#: plug-ins/common/mapcolor.c:146
msgid "<Image>/Filters/Colors/Map/Adjust FG-BG"
msgstr ""
#: plug-ins/common/mapcolor.c:149 plug-ins/common/mapcolor.c:151
#: plug-ins/common/mapcolor.c:153 plug-ins/common/mapcolor.c:155
msgid ""
"Map two source colors to two destination colors. Other colors are mapped by "
"interpolation."
msgstr ""
#: plug-ins/common/mapcolor.c:156
#: plug-ins/common/mapcolor.c:160
msgid "<Image>/Filters/Colors/Map/Color Mapping..."
msgstr ""
#: plug-ins/common/mapcolor.c:201
#: plug-ins/common/mapcolor.c:205
msgid ""
"Color Mapping / Adjust FG/BG:\n"
"Cannot operate on grey/indexed images"
msgstr ""
#: plug-ins/common/mapcolor.c:225
#: plug-ins/common/mapcolor.c:229
msgid "Adjusting Foreground/Background"
msgstr ""
#: plug-ins/common/mapcolor.c:395
#: plug-ins/common/mapcolor.c:275
#, fuzzy
msgid "Mapping colors"
msgstr "色をマップするためのメモリが無い"
#: plug-ins/common/mapcolor.c:326
#, fuzzy
msgid "Map colors"
msgstr "カラー"
#: plug-ins/common/mapcolor.c:399
msgid "To:"
msgstr ""
@ -3096,8 +3106,8 @@ msgstr ""
"個々のチャンネルに対して操作を行うようなことはしません. "
"多くの人はコントラスト自動伸長ではなく, "
"こちらの機能の方を望んでいるようです. コントラスト自動伸長の方を用いるのは, "
"元画像が本来白黒なのに画像に色が着いてしまっている場合にそれを取り除くためだ"
"でしょう."
"元画像が本来白黒なのに画像に色が着いてしまっている場合にそれを取り除くためだ<EFBFBD>"
"韻任靴腓<EFBFBD>."
#: plug-ins/common/normalize.c:83
msgid "<Image>/Image/Colors/Auto/Normalize"
@ -6874,7 +6884,7 @@ msgid "Copying IFS to image (%d/%d)..."
msgstr ""
#: plug-ins/imagemap/imap_about.c:33
#: plug-ins/script-fu/script-fu-scripts.c:1375
#: plug-ins/script-fu/script-fu-scripts.c:1372
msgid "About"
msgstr ""
@ -7167,7 +7177,8 @@ msgid "Creates a clickable imagemap."
msgstr "クリッカブルマップ画像作成."
#: plug-ins/imagemap/imap_main.c:142
msgid "<Image>/Filters/Misc/ImageMap..."
#, fuzzy
msgid "<Image>/Filters/Web/ImageMap..."
msgstr "<Image>/フィルタ/その他/イメージマップ..."
#: plug-ins/imagemap/imap_main.c:669
@ -7758,65 +7769,65 @@ msgid "Script-Fu evaluate mode allows only noninteractive invocation"
msgstr ""
#. the script arguments frame
#: plug-ins/script-fu/script-fu-scripts.c:1140
#: plug-ins/script-fu/script-fu-scripts.c:1137
msgid "Script Arguments"
msgstr ""
#: plug-ins/script-fu/script-fu-scripts.c:1203
#: plug-ins/script-fu/script-fu-scripts.c:1200
msgid "Script-Fu Color Selection"
msgstr "Script-Fu 色選択"
#: plug-ins/script-fu/script-fu-scripts.c:1210
#: plug-ins/script-fu/script-fu-scripts.c:1207
msgid "Script Toggle"
msgstr ""
#: plug-ins/script-fu/script-fu-scripts.c:1263
#: plug-ins/script-fu/script-fu-scripts.c:1260
msgid "Script-Fu File Selection"
msgstr ""
#: plug-ins/script-fu/script-fu-scripts.c:1292
#: plug-ins/script-fu/script-fu-scripts.c:1289
msgid "Script-fu Pattern Selection"
msgstr ""
#: plug-ins/script-fu/script-fu-scripts.c:1298
#: plug-ins/script-fu/script-fu-scripts.c:1295
msgid "Script-Fu Gradient Selection"
msgstr ""
#: plug-ins/script-fu/script-fu-scripts.c:1306
#: plug-ins/script-fu/script-fu-scripts.c:1303
msgid "Script-Fu Brush Selection"
msgstr ""
#: plug-ins/script-fu/script-fu-scripts.c:1341
#: plug-ins/script-fu/script-fu-scripts.c:1338
msgid " Reset to Defaults "
msgstr ""
#: plug-ins/script-fu/script-fu-scripts.c:1475
#: plug-ins/script-fu/script-fu-scripts.c:1472
msgid "NOT SET"
msgstr ""
#: plug-ins/script-fu/script-fu-scripts.c:1546
#: plug-ins/script-fu/script-fu-scripts.c:1543
msgid ""
"At least one font you've choosen is invalid.\n"
"Please check your settings.\n"
msgstr ""
#: plug-ins/script-fu/script-fu-scripts.c:1811
#: plug-ins/script-fu/script-fu-scripts.c:1808
msgid "Author: "
msgstr "作者: "
#: plug-ins/script-fu/script-fu-scripts.c:1821
#: plug-ins/script-fu/script-fu-scripts.c:1818
msgid "Copyright: "
msgstr ""
#: plug-ins/script-fu/script-fu-scripts.c:1831
#: plug-ins/script-fu/script-fu-scripts.c:1828
msgid "Date: "
msgstr ""
#: plug-ins/script-fu/script-fu-scripts.c:1843
#: plug-ins/script-fu/script-fu-scripts.c:1840
msgid "Image types: "
msgstr "画像種: "
#: plug-ins/script-fu/script-fu-scripts.c:1999
#: plug-ins/script-fu/script-fu-scripts.c:1996
msgid "Script-Fu Font Selection"
msgstr ""

View File

@ -1,3 +1,9 @@
1999-11-25 Michael Natterer <mitch@gimp.org>
* *.po: did a 'make update-po' to get the new menus paths.
* de.po: translated the menus paths. Various cleanups.
1999-11-25 Yukihiro Nakai <nakai@gnome.gr.jp>
* ja.po: Update from SHIRASAKI Yasuhiro.

1073
po/cs.po

File diff suppressed because it is too large Load Diff

1047
po/da.po

File diff suppressed because it is too large Load Diff

1315
po/de.po

File diff suppressed because it is too large Load Diff

1012
po/fi.po

File diff suppressed because it is too large Load Diff

1067
po/fr.po

File diff suppressed because it is too large Load Diff

1033
po/hu.po

File diff suppressed because it is too large Load Diff

1083
po/it.po

File diff suppressed because it is too large Load Diff

1097
po/ja.po

File diff suppressed because it is too large Load Diff

4202
po/ko.po

File diff suppressed because it is too large Load Diff

970
po/nl.po

File diff suppressed because it is too large Load Diff

1061
po/no.po

File diff suppressed because it is too large Load Diff

1052
po/pl.po

File diff suppressed because it is too large Load Diff

1074
po/ru.po

File diff suppressed because it is too large Load Diff

1026
po/sk.po

File diff suppressed because it is too large Load Diff

1005
po/sv.po

File diff suppressed because it is too large Load Diff