From 8e49d182158e3da7e80d336c676af41308b9a3f4 Mon Sep 17 00:00:00 2001 From: Andreas Butti Date: Wed, 26 Dec 2018 17:36:11 +0100 Subject: [PATCH] New Layer Menu --- src/gui/toolbarMenubar/ToolPageLayer.cpp | 25 ++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/gui/toolbarMenubar/ToolPageLayer.cpp b/src/gui/toolbarMenubar/ToolPageLayer.cpp index a7a56de9..7b36bd54 100644 --- a/src/gui/toolbarMenubar/ToolPageLayer.cpp +++ b/src/gui/toolbarMenubar/ToolPageLayer.cpp @@ -90,9 +90,6 @@ void ToolPageLayer::addSpecialButtonTop() XOJ_CHECK_TYPE(ToolPageLayer); GtkWidget* itShowAll = createSpecialMenuEntry(_("Show all")); - GtkWidget* itHideAll = createSpecialMenuEntry(_("Hide all")); - createSeparator(); - g_signal_connect(itShowAll, "activate", G_CALLBACK( +[](GtkWidget* menu, ToolPageLayer* self) { @@ -101,12 +98,25 @@ void ToolPageLayer::addSpecialButtonTop() }), this); + GtkWidget* itHideAll = createSpecialMenuEntry(_("Hide all")); g_signal_connect(itHideAll, "activate", G_CALLBACK( +[](GtkWidget* menu, ToolPageLayer* self) { XOJ_CHECK_TYPE_OBJ(self, ToolPageLayer); self->lc->hideAllLayer(); }), this); + + createSeparator(); + + GtkWidget* itNewLayer = createSpecialMenuEntry(_("Create new layer")); + g_signal_connect(itNewLayer, "activate", G_CALLBACK( + +[](GtkWidget* menu, ToolPageLayer* self) + { + XOJ_CHECK_TYPE_OBJ(self, ToolPageLayer); + self->lc->addNewLayer(); + }), this); + + createSeparator(); } void ToolPageLayer::selectLayer(int layerId) @@ -246,18 +256,17 @@ void ToolPageLayer::updateMenu() addSpecialButtonTop(); - int layer = lc->getLayerCount(); - for (; layer > 0; layer--) + int layerCount = lc->getLayerCount(); + for (int layer = layerCount; layer > 0; layer--) { createLayerMenuItem(FS(_F("Layer {1}") % layer), layer); createLayerMenuItemShow(layer); menuY++; } - if (layer > 0) + if (layerCount > 0) { - gtk_menu_attach(GTK_MENU(menu), gtk_separator_menu_item_new(), 0, MENU_WIDTH, menuY, menuY + 1); - menuY++; + createSeparator(); } createLayerMenuItem(_("Background"), 0);