/**
* Create menu popup on demand
+ * @full: offer cut/copy options as well - not just the new layer options
*/
-static GtkWidget* layers_panel_create_popup ( VikLayersPanel *vlp )
+static GtkWidget* layers_panel_create_popup ( VikLayersPanel *vlp, gboolean full )
{
GtkWidget *menu = gtk_menu_new ();
GtkWidget *menuitem;
guint ii;
- for ( ii = 0; ii < G_N_ELEMENTS(entries); ii++ ) {
- if ( entries[ii].stock_id ) {
- menuitem = gtk_image_menu_item_new_with_mnemonic ( entries[ii].label );
- gtk_image_menu_item_set_image ( (GtkImageMenuItem*)menuitem, gtk_image_new_from_stock (entries[ii].stock_id, GTK_ICON_SIZE_MENU) );
- }
- else
- menuitem = gtk_menu_item_new_with_mnemonic ( entries[ii].label );
+ if ( full ) {
+ for ( ii = 0; ii < G_N_ELEMENTS(entries); ii++ ) {
+ if ( entries[ii].stock_id ) {
+ menuitem = gtk_image_menu_item_new_with_mnemonic ( entries[ii].label );
+ gtk_image_menu_item_set_image ( (GtkImageMenuItem*)menuitem, gtk_image_new_from_stock (entries[ii].stock_id, GTK_ICON_SIZE_MENU) );
+ }
+ else
+ menuitem = gtk_menu_item_new_with_mnemonic ( entries[ii].label );
- g_signal_connect_swapped ( G_OBJECT(menuitem), "activate", G_CALLBACK(entries[ii].callback), vlp );
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
- gtk_widget_show ( menuitem );
+ g_signal_connect_swapped ( G_OBJECT(menuitem), "activate", G_CALLBACK(entries[ii].callback), vlp );
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
+ gtk_widget_show ( menuitem );
+ }
}
GtkWidget *submenu = gtk_menu_new();
pasteimage = gtk_image_new_from_stock ( GTK_STOCK_PASTE, GTK_ICON_SIZE_SMALL_TOOLBAR );
pastebutton = gtk_button_new ( );
gtk_container_add ( GTK_CONTAINER(pastebutton),pasteimage );
- gtk_widget_set_tooltip_text ( GTK_WIDGET(pastebutton), _("Paste layer below selected layer"));
+ gtk_widget_set_tooltip_text ( GTK_WIDGET(pastebutton), _("Paste layer into selected container layer or otherwise above selected layer"));
gtk_box_pack_start ( GTK_BOX(hbox), pastebutton, TRUE, TRUE, 0 );
g_signal_connect_swapped ( G_OBJECT(pastebutton), "clicked", G_CALLBACK(vik_layers_panel_paste_selected), vlp );
VikLayer *layer = VIK_LAYER(vik_treeview_item_get_pointer ( vlp->vt, iter ));
if ( layer->type == VIK_LAYER_AGGREGATE )
- menu = GTK_MENU ( layers_panel_create_popup ( vlp ) );
+ menu = GTK_MENU ( layers_panel_create_popup ( vlp, TRUE ) );
else
{
GtkWidget *del, *prop;
gtk_menu_shell_append (GTK_MENU_SHELL (menu), del);
gtk_widget_show ( del );
}
-
- vik_layer_add_menu_items ( layer, menu, vlp );
- }
+ }
+ vik_layer_add_menu_items ( layer, menu, vlp );
}
else
{
}
else
{
- menu = GTK_MENU ( layers_panel_create_popup ( vlp ) );
+ menu = GTK_MENU ( layers_panel_create_popup ( vlp, FALSE ) );
}
gtk_menu_popup ( menu, NULL, NULL, NULL, NULL, mouse_button, gtk_get_current_event_time() );
}