app/commands.[ch] app/gdisplay.c for the pleasure of all: a deeper nested

1999-06-01  Michael Natterer  <mitschel@cs.tu-berlin.de>

	* app/commands.[ch]
	* app/gdisplay.c
	* app/menus.c: for the pleasure of all: a deeper nested	submenu ;)

	New <Image>/Layers/Stack submenu. Used the same top/bottom
	shortcuts as in the layers dialog. Bind them to PageUp/Down and
	you will never touch your mouse again to do this.
	I'm thinking of dropping the current <ctrl>+[FBTU] in favour of
	some <modifier>+PageUp/Down combinations. Test it, Tig !)
This commit is contained in:
Michael Natterer 1999-06-01 20:19:49 +00:00 committed by Michael Natterer
parent f30c065875
commit 01a045a4c8
16 changed files with 379 additions and 15 deletions

View File

@ -1,3 +1,15 @@
1999-06-01 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/commands.[ch]
* app/gdisplay.c
* app/menus.c: for the pleasure of all: a deeper nested submenu ;)
New <Image>/Layers/Stack submenu. Used the same top/bottom
shortcuts as in the layers dialog. Bind them to PageUp/Down and
you will never touch your mouse again to do this.
I'm thinking of dropping the current <ctrl>+[FBTU] in favour of
some <modifier>+PageUp/Down combinations. Test it, Tig !)
Tue Jun 1 12:07:57 PDT 1999 Manish Singh <yosh@gimp.org>
* plug-ins/xwd/xwd.c: hackaround for buggy window managers (like
@ -6,7 +18,7 @@ Tue Jun 1 12:07:57 PDT 1999 Manish Singh <yosh@gimp.org>
1999-06-01 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/app_procs.c
* app/gimprc.c: renamed init_parse_buffers() to
* app/gimprc.[ch]: renamed init_parse_buffers() to
parse_buffers_init().
* app/gimprc.[ch] (parse_gimprc_file): return a boolean indicating

View File

@ -828,6 +828,58 @@ image_scale_cmd_callback (GtkWidget *widget,
gtk_widget_show (image_scale->resize->resize_shell);
}
void
layers_previous_cmd_callback (GtkWidget *widget,
gpointer client_data)
{
GDisplay * gdisp;
int current_layer;
Layer *new_layer;
gdisp = gdisplay_active ();
current_layer =
gimage_get_layer_index (gdisp->gimage, gdisp->gimage->active_layer);
/* FIXME: don't use internal knowledge about layer lists
* TODO : implement gimage_get_layer_by_index()
*/
new_layer =
(Layer *) g_slist_nth_data (gdisp->gimage->layers, current_layer - 1);
if (new_layer)
{
gimage_set_active_layer (gdisp->gimage, new_layer);
gdisplays_flush ();
}
}
void
layers_next_cmd_callback (GtkWidget *widget,
gpointer client_data)
{
GDisplay * gdisp;
int current_layer;
Layer *new_layer;
gdisp = gdisplay_active ();
current_layer =
gimage_get_layer_index (gdisp->gimage, gdisp->gimage->active_layer);
/* FIXME: don't use internal knowledge about layer lists
* TODO : implement gimage_get_layer_by_index()
*/
new_layer =
(Layer *) g_slist_nth_data (gdisp->gimage->layers, current_layer + 1);
if (new_layer)
{
gimage_set_active_layer (gdisp->gimage, new_layer);
gdisplays_flush ();
}
}
void
layers_raise_cmd_callback (GtkWidget *widget,
gpointer client_data)
@ -852,6 +904,30 @@ layers_lower_cmd_callback (GtkWidget *widget,
gdisplays_flush ();
}
void
layers_raise_to_top_cmd_callback (GtkWidget *widget,
gpointer client_data)
{
GDisplay * gdisp;
gdisp = gdisplay_active ();
gimage_raise_layer_to_top (gdisp->gimage, gdisp->gimage->active_layer);
gdisplays_flush ();
}
void
layers_lower_to_bottom_cmd_callback (GtkWidget *widget,
gpointer client_data)
{
GDisplay * gdisp;
gdisp = gdisplay_active ();
gimage_lower_layer_to_bottom (gdisp->gimage, gdisp->gimage->active_layer);
gdisplays_flush ();
}
void
layers_anchor_cmd_callback (GtkWidget *widget,
gpointer client_data)

View File

@ -67,8 +67,12 @@ void image_resize_cmd_callback (GtkWidget *, gpointer);
void image_scale_cmd_callback (GtkWidget *, gpointer);
void channel_ops_duplicate_cmd_callback (GtkWidget *, gpointer);
void channel_ops_offset_cmd_callback (GtkWidget *, gpointer);
void layers_previous_cmd_callback (GtkWidget *, gpointer);
void layers_next_cmd_callback (GtkWidget *, gpointer);
void layers_raise_cmd_callback (GtkWidget *, gpointer);
void layers_lower_cmd_callback (GtkWidget *, gpointer);
void layers_raise_to_top_cmd_callback (GtkWidget *, gpointer);
void layers_lower_to_bottom_cmd_callback (GtkWidget *, gpointer);
void layers_anchor_cmd_callback (GtkWidget *, gpointer);
void layers_merge_cmd_callback (GtkWidget *, gpointer);
void layers_flatten_cmd_callback (GtkWidget *, gpointer);

View File

@ -828,6 +828,58 @@ image_scale_cmd_callback (GtkWidget *widget,
gtk_widget_show (image_scale->resize->resize_shell);
}
void
layers_previous_cmd_callback (GtkWidget *widget,
gpointer client_data)
{
GDisplay * gdisp;
int current_layer;
Layer *new_layer;
gdisp = gdisplay_active ();
current_layer =
gimage_get_layer_index (gdisp->gimage, gdisp->gimage->active_layer);
/* FIXME: don't use internal knowledge about layer lists
* TODO : implement gimage_get_layer_by_index()
*/
new_layer =
(Layer *) g_slist_nth_data (gdisp->gimage->layers, current_layer - 1);
if (new_layer)
{
gimage_set_active_layer (gdisp->gimage, new_layer);
gdisplays_flush ();
}
}
void
layers_next_cmd_callback (GtkWidget *widget,
gpointer client_data)
{
GDisplay * gdisp;
int current_layer;
Layer *new_layer;
gdisp = gdisplay_active ();
current_layer =
gimage_get_layer_index (gdisp->gimage, gdisp->gimage->active_layer);
/* FIXME: don't use internal knowledge about layer lists
* TODO : implement gimage_get_layer_by_index()
*/
new_layer =
(Layer *) g_slist_nth_data (gdisp->gimage->layers, current_layer + 1);
if (new_layer)
{
gimage_set_active_layer (gdisp->gimage, new_layer);
gdisplays_flush ();
}
}
void
layers_raise_cmd_callback (GtkWidget *widget,
gpointer client_data)
@ -852,6 +904,30 @@ layers_lower_cmd_callback (GtkWidget *widget,
gdisplays_flush ();
}
void
layers_raise_to_top_cmd_callback (GtkWidget *widget,
gpointer client_data)
{
GDisplay * gdisp;
gdisp = gdisplay_active ();
gimage_raise_layer_to_top (gdisp->gimage, gdisp->gimage->active_layer);
gdisplays_flush ();
}
void
layers_lower_to_bottom_cmd_callback (GtkWidget *widget,
gpointer client_data)
{
GDisplay * gdisp;
gdisp = gdisplay_active ();
gimage_lower_layer_to_bottom (gdisp->gimage, gdisp->gimage->active_layer);
gdisplays_flush ();
}
void
layers_anchor_cmd_callback (GtkWidget *widget,
gpointer client_data)

View File

@ -67,8 +67,12 @@ void image_resize_cmd_callback (GtkWidget *, gpointer);
void image_scale_cmd_callback (GtkWidget *, gpointer);
void channel_ops_duplicate_cmd_callback (GtkWidget *, gpointer);
void channel_ops_offset_cmd_callback (GtkWidget *, gpointer);
void layers_previous_cmd_callback (GtkWidget *, gpointer);
void layers_next_cmd_callback (GtkWidget *, gpointer);
void layers_raise_cmd_callback (GtkWidget *, gpointer);
void layers_lower_cmd_callback (GtkWidget *, gpointer);
void layers_raise_to_top_cmd_callback (GtkWidget *, gpointer);
void layers_lower_to_bottom_cmd_callback (GtkWidget *, gpointer);
void layers_anchor_cmd_callback (GtkWidget *, gpointer);
void layers_merge_cmd_callback (GtkWidget *, gpointer);
void layers_flatten_cmd_callback (GtkWidget *, gpointer);

View File

@ -1564,8 +1564,12 @@ gdisplay_set_menu_sensitivity (GDisplay *gdisp)
type = drawable_type (drawable);
}
menus_set_sensitive (_("<Image>/Layers/Raise Layer"), !fs && !aux && lp && alpha);
menus_set_sensitive (_("<Image>/Layers/Lower Layer"), !fs && !aux && lp && alpha);
menus_set_sensitive (_("<Image>/Layers/Stack/Previous Layer"), !fs && !aux && lp);
menus_set_sensitive (_("<Image>/Layers/Stack/Next Layer"), !fs && !aux && lp);
menus_set_sensitive (_("<Image>/Layers/Stack/Raise Layer"), !fs && !aux && lp && alpha);
menus_set_sensitive (_("<Image>/Layers/Stack/Lower Layer"), !fs && !aux && lp && alpha);
menus_set_sensitive (_("<Image>/Layers/Stack/Raise to Top"), !fs && !aux && lp && alpha);
menus_set_sensitive (_("<Image>/Layers/Stack/Lower to Bottom"), !fs && !aux && lp && alpha);
menus_set_sensitive (_("<Image>/Layers/Anchor Layer"), fs && !aux && lp);
menus_set_sensitive (_("<Image>/Layers/Merge Visible Layers"), !fs && !aux && lp);
menus_set_sensitive (_("<Image>/Layers/Flatten Image"), !fs && !aux && lp);

View File

@ -1564,8 +1564,12 @@ gdisplay_set_menu_sensitivity (GDisplay *gdisp)
type = drawable_type (drawable);
}
menus_set_sensitive (_("<Image>/Layers/Raise Layer"), !fs && !aux && lp && alpha);
menus_set_sensitive (_("<Image>/Layers/Lower Layer"), !fs && !aux && lp && alpha);
menus_set_sensitive (_("<Image>/Layers/Stack/Previous Layer"), !fs && !aux && lp);
menus_set_sensitive (_("<Image>/Layers/Stack/Next Layer"), !fs && !aux && lp);
menus_set_sensitive (_("<Image>/Layers/Stack/Raise Layer"), !fs && !aux && lp && alpha);
menus_set_sensitive (_("<Image>/Layers/Stack/Lower Layer"), !fs && !aux && lp && alpha);
menus_set_sensitive (_("<Image>/Layers/Stack/Raise to Top"), !fs && !aux && lp && alpha);
menus_set_sensitive (_("<Image>/Layers/Stack/Lower to Bottom"), !fs && !aux && lp && alpha);
menus_set_sensitive (_("<Image>/Layers/Anchor Layer"), fs && !aux && lp);
menus_set_sensitive (_("<Image>/Layers/Merge Visible Layers"), !fs && !aux && lp);
menus_set_sensitive (_("<Image>/Layers/Flatten Image"), !fs && !aux && lp);

View File

@ -1564,8 +1564,12 @@ gdisplay_set_menu_sensitivity (GDisplay *gdisp)
type = drawable_type (drawable);
}
menus_set_sensitive (_("<Image>/Layers/Raise Layer"), !fs && !aux && lp && alpha);
menus_set_sensitive (_("<Image>/Layers/Lower Layer"), !fs && !aux && lp && alpha);
menus_set_sensitive (_("<Image>/Layers/Stack/Previous Layer"), !fs && !aux && lp);
menus_set_sensitive (_("<Image>/Layers/Stack/Next Layer"), !fs && !aux && lp);
menus_set_sensitive (_("<Image>/Layers/Stack/Raise Layer"), !fs && !aux && lp && alpha);
menus_set_sensitive (_("<Image>/Layers/Stack/Lower Layer"), !fs && !aux && lp && alpha);
menus_set_sensitive (_("<Image>/Layers/Stack/Raise to Top"), !fs && !aux && lp && alpha);
menus_set_sensitive (_("<Image>/Layers/Stack/Lower to Bottom"), !fs && !aux && lp && alpha);
menus_set_sensitive (_("<Image>/Layers/Anchor Layer"), fs && !aux && lp);
menus_set_sensitive (_("<Image>/Layers/Merge Visible Layers"), !fs && !aux && lp);
menus_set_sensitive (_("<Image>/Layers/Flatten Image"), !fs && !aux && lp);

View File

@ -828,6 +828,58 @@ image_scale_cmd_callback (GtkWidget *widget,
gtk_widget_show (image_scale->resize->resize_shell);
}
void
layers_previous_cmd_callback (GtkWidget *widget,
gpointer client_data)
{
GDisplay * gdisp;
int current_layer;
Layer *new_layer;
gdisp = gdisplay_active ();
current_layer =
gimage_get_layer_index (gdisp->gimage, gdisp->gimage->active_layer);
/* FIXME: don't use internal knowledge about layer lists
* TODO : implement gimage_get_layer_by_index()
*/
new_layer =
(Layer *) g_slist_nth_data (gdisp->gimage->layers, current_layer - 1);
if (new_layer)
{
gimage_set_active_layer (gdisp->gimage, new_layer);
gdisplays_flush ();
}
}
void
layers_next_cmd_callback (GtkWidget *widget,
gpointer client_data)
{
GDisplay * gdisp;
int current_layer;
Layer *new_layer;
gdisp = gdisplay_active ();
current_layer =
gimage_get_layer_index (gdisp->gimage, gdisp->gimage->active_layer);
/* FIXME: don't use internal knowledge about layer lists
* TODO : implement gimage_get_layer_by_index()
*/
new_layer =
(Layer *) g_slist_nth_data (gdisp->gimage->layers, current_layer + 1);
if (new_layer)
{
gimage_set_active_layer (gdisp->gimage, new_layer);
gdisplays_flush ();
}
}
void
layers_raise_cmd_callback (GtkWidget *widget,
gpointer client_data)
@ -852,6 +904,30 @@ layers_lower_cmd_callback (GtkWidget *widget,
gdisplays_flush ();
}
void
layers_raise_to_top_cmd_callback (GtkWidget *widget,
gpointer client_data)
{
GDisplay * gdisp;
gdisp = gdisplay_active ();
gimage_raise_layer_to_top (gdisp->gimage, gdisp->gimage->active_layer);
gdisplays_flush ();
}
void
layers_lower_to_bottom_cmd_callback (GtkWidget *widget,
gpointer client_data)
{
GDisplay * gdisp;
gdisp = gdisplay_active ();
gimage_lower_layer_to_bottom (gdisp->gimage, gdisp->gimage->active_layer);
gdisplays_flush ();
}
void
layers_anchor_cmd_callback (GtkWidget *widget,
gpointer client_data)

View File

@ -67,8 +67,12 @@ void image_resize_cmd_callback (GtkWidget *, gpointer);
void image_scale_cmd_callback (GtkWidget *, gpointer);
void channel_ops_duplicate_cmd_callback (GtkWidget *, gpointer);
void channel_ops_offset_cmd_callback (GtkWidget *, gpointer);
void layers_previous_cmd_callback (GtkWidget *, gpointer);
void layers_next_cmd_callback (GtkWidget *, gpointer);
void layers_raise_cmd_callback (GtkWidget *, gpointer);
void layers_lower_cmd_callback (GtkWidget *, gpointer);
void layers_raise_to_top_cmd_callback (GtkWidget *, gpointer);
void layers_lower_to_bottom_cmd_callback (GtkWidget *, gpointer);
void layers_anchor_cmd_callback (GtkWidget *, gpointer);
void layers_merge_cmd_callback (GtkWidget *, gpointer);
void layers_flatten_cmd_callback (GtkWidget *, gpointer);

View File

@ -828,6 +828,58 @@ image_scale_cmd_callback (GtkWidget *widget,
gtk_widget_show (image_scale->resize->resize_shell);
}
void
layers_previous_cmd_callback (GtkWidget *widget,
gpointer client_data)
{
GDisplay * gdisp;
int current_layer;
Layer *new_layer;
gdisp = gdisplay_active ();
current_layer =
gimage_get_layer_index (gdisp->gimage, gdisp->gimage->active_layer);
/* FIXME: don't use internal knowledge about layer lists
* TODO : implement gimage_get_layer_by_index()
*/
new_layer =
(Layer *) g_slist_nth_data (gdisp->gimage->layers, current_layer - 1);
if (new_layer)
{
gimage_set_active_layer (gdisp->gimage, new_layer);
gdisplays_flush ();
}
}
void
layers_next_cmd_callback (GtkWidget *widget,
gpointer client_data)
{
GDisplay * gdisp;
int current_layer;
Layer *new_layer;
gdisp = gdisplay_active ();
current_layer =
gimage_get_layer_index (gdisp->gimage, gdisp->gimage->active_layer);
/* FIXME: don't use internal knowledge about layer lists
* TODO : implement gimage_get_layer_by_index()
*/
new_layer =
(Layer *) g_slist_nth_data (gdisp->gimage->layers, current_layer + 1);
if (new_layer)
{
gimage_set_active_layer (gdisp->gimage, new_layer);
gdisplays_flush ();
}
}
void
layers_raise_cmd_callback (GtkWidget *widget,
gpointer client_data)
@ -852,6 +904,30 @@ layers_lower_cmd_callback (GtkWidget *widget,
gdisplays_flush ();
}
void
layers_raise_to_top_cmd_callback (GtkWidget *widget,
gpointer client_data)
{
GDisplay * gdisp;
gdisp = gdisplay_active ();
gimage_raise_layer_to_top (gdisp->gimage, gdisp->gimage->active_layer);
gdisplays_flush ();
}
void
layers_lower_to_bottom_cmd_callback (GtkWidget *widget,
gpointer client_data)
{
GDisplay * gdisp;
gdisp = gdisplay_active ();
gimage_lower_layer_to_bottom (gdisp->gimage, gdisp->gimage->active_layer);
gdisplays_flush ();
}
void
layers_anchor_cmd_callback (GtkWidget *widget,
gpointer client_data)

View File

@ -67,8 +67,12 @@ void image_resize_cmd_callback (GtkWidget *, gpointer);
void image_scale_cmd_callback (GtkWidget *, gpointer);
void channel_ops_duplicate_cmd_callback (GtkWidget *, gpointer);
void channel_ops_offset_cmd_callback (GtkWidget *, gpointer);
void layers_previous_cmd_callback (GtkWidget *, gpointer);
void layers_next_cmd_callback (GtkWidget *, gpointer);
void layers_raise_cmd_callback (GtkWidget *, gpointer);
void layers_lower_cmd_callback (GtkWidget *, gpointer);
void layers_raise_to_top_cmd_callback (GtkWidget *, gpointer);
void layers_lower_to_bottom_cmd_callback (GtkWidget *, gpointer);
void layers_anchor_cmd_callback (GtkWidget *, gpointer);
void layers_merge_cmd_callback (GtkWidget *, gpointer);
void layers_flatten_cmd_callback (GtkWidget *, gpointer);

View File

@ -155,8 +155,13 @@ static const GtkItemFactoryEntry image_entries[] =
{ N_("/Image/---"), NULL, NULL, 0, "<Separator>" },
{ N_("/Layers/Layers & Channels..."), "<control>L", dialogs_lc_cmd_callback, 0 },
{ N_("/Layers/Raise Layer"), "<control>F", layers_raise_cmd_callback, 0 },
{ N_("/Layers/Lower Layer"), "<control>B", layers_lower_cmd_callback, 0 },
{ N_("/Layers/Stack/Previous Layer"), NULL, layers_previous_cmd_callback, 0 },
{ N_("/Layers/Stack/Next Layer"), NULL, layers_next_cmd_callback, 0 },
{ N_("/Layers/Stack/Raise Layer"), "<control>F", layers_raise_cmd_callback, 0 },
{ N_("/Layers/Stack/Lower Layer"), "<control>B", layers_lower_cmd_callback, 0 },
{ N_("/Layers/Stack/Raise to Top"), "<control>T", layers_raise_to_top_cmd_callback, 0 },
{ N_("/Layers/Stack/Lower to Bottom"), "<control>U", layers_lower_to_bottom_cmd_callback, 0 },
{ N_("/Layers/---"), NULL, NULL, 0, "<Separator>" },
{ N_("/Layers/Anchor Layer"), "<control>H", layers_anchor_cmd_callback, 0 },
{ N_("/Layers/Merge Visible Layers"), "<control>M", layers_merge_cmd_callback, 0 },
{ N_("/Layers/Flatten Image"), NULL, layers_flatten_cmd_callback, 0 },

View File

@ -155,8 +155,13 @@ static const GtkItemFactoryEntry image_entries[] =
{ N_("/Image/---"), NULL, NULL, 0, "<Separator>" },
{ N_("/Layers/Layers & Channels..."), "<control>L", dialogs_lc_cmd_callback, 0 },
{ N_("/Layers/Raise Layer"), "<control>F", layers_raise_cmd_callback, 0 },
{ N_("/Layers/Lower Layer"), "<control>B", layers_lower_cmd_callback, 0 },
{ N_("/Layers/Stack/Previous Layer"), NULL, layers_previous_cmd_callback, 0 },
{ N_("/Layers/Stack/Next Layer"), NULL, layers_next_cmd_callback, 0 },
{ N_("/Layers/Stack/Raise Layer"), "<control>F", layers_raise_cmd_callback, 0 },
{ N_("/Layers/Stack/Lower Layer"), "<control>B", layers_lower_cmd_callback, 0 },
{ N_("/Layers/Stack/Raise to Top"), "<control>T", layers_raise_to_top_cmd_callback, 0 },
{ N_("/Layers/Stack/Lower to Bottom"), "<control>U", layers_lower_to_bottom_cmd_callback, 0 },
{ N_("/Layers/---"), NULL, NULL, 0, "<Separator>" },
{ N_("/Layers/Anchor Layer"), "<control>H", layers_anchor_cmd_callback, 0 },
{ N_("/Layers/Merge Visible Layers"), "<control>M", layers_merge_cmd_callback, 0 },
{ N_("/Layers/Flatten Image"), NULL, layers_flatten_cmd_callback, 0 },

View File

@ -155,8 +155,13 @@ static const GtkItemFactoryEntry image_entries[] =
{ N_("/Image/---"), NULL, NULL, 0, "<Separator>" },
{ N_("/Layers/Layers & Channels..."), "<control>L", dialogs_lc_cmd_callback, 0 },
{ N_("/Layers/Raise Layer"), "<control>F", layers_raise_cmd_callback, 0 },
{ N_("/Layers/Lower Layer"), "<control>B", layers_lower_cmd_callback, 0 },
{ N_("/Layers/Stack/Previous Layer"), NULL, layers_previous_cmd_callback, 0 },
{ N_("/Layers/Stack/Next Layer"), NULL, layers_next_cmd_callback, 0 },
{ N_("/Layers/Stack/Raise Layer"), "<control>F", layers_raise_cmd_callback, 0 },
{ N_("/Layers/Stack/Lower Layer"), "<control>B", layers_lower_cmd_callback, 0 },
{ N_("/Layers/Stack/Raise to Top"), "<control>T", layers_raise_to_top_cmd_callback, 0 },
{ N_("/Layers/Stack/Lower to Bottom"), "<control>U", layers_lower_to_bottom_cmd_callback, 0 },
{ N_("/Layers/---"), NULL, NULL, 0, "<Separator>" },
{ N_("/Layers/Anchor Layer"), "<control>H", layers_anchor_cmd_callback, 0 },
{ N_("/Layers/Merge Visible Layers"), "<control>M", layers_merge_cmd_callback, 0 },
{ N_("/Layers/Flatten Image"), NULL, layers_flatten_cmd_callback, 0 },

View File

@ -155,8 +155,13 @@ static const GtkItemFactoryEntry image_entries[] =
{ N_("/Image/---"), NULL, NULL, 0, "<Separator>" },
{ N_("/Layers/Layers & Channels..."), "<control>L", dialogs_lc_cmd_callback, 0 },
{ N_("/Layers/Raise Layer"), "<control>F", layers_raise_cmd_callback, 0 },
{ N_("/Layers/Lower Layer"), "<control>B", layers_lower_cmd_callback, 0 },
{ N_("/Layers/Stack/Previous Layer"), NULL, layers_previous_cmd_callback, 0 },
{ N_("/Layers/Stack/Next Layer"), NULL, layers_next_cmd_callback, 0 },
{ N_("/Layers/Stack/Raise Layer"), "<control>F", layers_raise_cmd_callback, 0 },
{ N_("/Layers/Stack/Lower Layer"), "<control>B", layers_lower_cmd_callback, 0 },
{ N_("/Layers/Stack/Raise to Top"), "<control>T", layers_raise_to_top_cmd_callback, 0 },
{ N_("/Layers/Stack/Lower to Bottom"), "<control>U", layers_lower_to_bottom_cmd_callback, 0 },
{ N_("/Layers/---"), NULL, NULL, 0, "<Separator>" },
{ N_("/Layers/Anchor Layer"), "<control>H", layers_anchor_cmd_callback, 0 },
{ N_("/Layers/Merge Visible Layers"), "<control>M", layers_merge_cmd_callback, 0 },
{ N_("/Layers/Flatten Image"), NULL, layers_flatten_cmd_callback, 0 },