diff --git a/src/gui/Layout.cpp b/src/gui/Layout.cpp
index 14d9ab12..bde605fd 100644
--- a/src/gui/Layout.cpp
+++ b/src/gui/Layout.cpp
@@ -51,23 +51,6 @@ void Layout::checkScroll(GtkAdjustment* adjustment, double& lastScroll)
XOJ_CHECK_TYPE(Layout);
lastScroll = gtk_adjustment_get_value(adjustment);
-
-/**
- * This causes issues.
- *
- * Disabling devices does not work
- * Removing Touch mask does not work
- *
- * So an X11 / Wayland etc. implementation should be created
- */
-// ToolHandler* h = view->getControl()->getToolHandler();
-//
-// if (!view->shouldIgnoreTouchEvents() || h->getToolType() == TOOL_HAND)
-// {
-// lastScroll = gtk_adjustment_get_value(adjustment);
-// return;
-// }
-// gtk_adjustment_set_value(adjustment, lastScroll);
}
/**
diff --git a/src/gui/toolbarMenubar/ToolMenuHandler.cpp b/src/gui/toolbarMenubar/ToolMenuHandler.cpp
index d6030932..a866ef4a 100644
--- a/src/gui/toolbarMenubar/ToolMenuHandler.cpp
+++ b/src/gui/toolbarMenubar/ToolMenuHandler.cpp
@@ -283,28 +283,19 @@ void ToolMenuHandler::initPenToolItem()
{
XOJ_CHECK_TYPE(ToolMenuHandler);
- ToolButton* tbPen = new ToolButton(listener, gui, "PEN", ACTION_TOOL_PEN, GROUP_TOOL, true, "tool_pencil.svg",
- _("Pen"), gui->get("menuToolsPen"));
+ ToolButton* tbPen = new ToolButton(listener, gui, "PEN", ACTION_TOOL_PEN, GROUP_TOOL, true, "tool_pencil.svg", _("Pen"));
registerMenupoint(tbPen->registerPopupMenuEntry(_("standard"), "line-style-plain.svg"),
ACTION_TOOL_LINE_STYLE_PLAIN, GROUP_LINE_STYLE);
- registerMenupoint(gui->get("penStandard"),
- ACTION_TOOL_LINE_STYLE_PLAIN, GROUP_LINE_STYLE);
registerMenupoint(tbPen->registerPopupMenuEntry(_("dashed"), "line-style-dash.svg"),
ACTION_TOOL_LINE_STYLE_DASH, GROUP_LINE_STYLE);
- registerMenupoint(gui->get("penStyleDashed"),
- ACTION_TOOL_LINE_STYLE_DASH, GROUP_LINE_STYLE);
registerMenupoint(tbPen->registerPopupMenuEntry(_("dash-/ doted"), "line-style-dash-dot.svg"),
ACTION_TOOL_LINE_STYLE_DASH_DOT, GROUP_LINE_STYLE);
- registerMenupoint(gui->get("penStyleDashDotted"),
- ACTION_TOOL_LINE_STYLE_DASH_DOT, GROUP_LINE_STYLE);
registerMenupoint(tbPen->registerPopupMenuEntry(_("dotted"), "line-style-dot.svg"),
ACTION_TOOL_LINE_STYLE_DOT, GROUP_LINE_STYLE);
- registerMenupoint(gui->get("penStyleDotted"),
- ACTION_TOOL_LINE_STYLE_DOT, GROUP_LINE_STYLE);
addToolItem(tbPen);
}
@@ -314,16 +305,11 @@ void ToolMenuHandler::initEraserToolItem()
XOJ_CHECK_TYPE(ToolMenuHandler);
ToolButton* tbEraser = new ToolButton(listener, gui, "ERASER", ACTION_TOOL_ERASER, GROUP_TOOL, true,
- "tool_eraser.svg", _("Eraser"), gui->get("menuToolsEraser"));
+ "tool_eraser.svg", _("Eraser"));
registerMenupoint(tbEraser->registerPopupMenuEntry(_("standard")), ACTION_TOOL_ERASER_STANDARD, GROUP_ERASER_MODE);
- registerMenupoint(gui->get("eraserStandard"), ACTION_TOOL_ERASER_STANDARD, GROUP_ERASER_MODE);
-
registerMenupoint(tbEraser->registerPopupMenuEntry(_("whiteout")), ACTION_TOOL_ERASER_WHITEOUT, GROUP_ERASER_MODE);
- registerMenupoint(gui->get("eraserWhiteout"), ACTION_TOOL_ERASER_WHITEOUT, GROUP_ERASER_MODE);
-
registerMenupoint(tbEraser->registerPopupMenuEntry(_("delete stroke")), ACTION_TOOL_ERASER_DELETE_STROKE, GROUP_ERASER_MODE);
- registerMenupoint(gui->get("eraserDeleteStrokes"), ACTION_TOOL_ERASER_DELETE_STROKE, GROUP_ERASER_MODE);
addToolItem(tbEraser);
}
@@ -333,7 +319,18 @@ void ToolMenuHandler::signalConnectCallback(GtkBuilder* builder, GObject* object
{
XOJ_CHECK_TYPE_OBJ(self, ToolMenuHandler);
- ActionType action = ActionType_fromString(handlerName);
+ string actionName = handlerName;
+ string groupName = "";
+
+ size_t pos = actionName.find(':');
+ if (pos != string::npos)
+ {
+ groupName = actionName.substr(pos + 1);
+ actionName = actionName.substr(0, pos);
+ }
+
+ ActionGroup group = GROUP_NOGROUP;
+ ActionType action = ActionType_fromString(actionName);
if (action == ACTION_NONE)
{
@@ -341,6 +338,11 @@ void ToolMenuHandler::signalConnectCallback(GtkBuilder* builder, GObject* object
return;
}
+ if (groupName != "")
+ {
+ group = ActionGroup_fromString(groupName);
+ }
+
if (GTK_IS_MENU_ITEM(object))
{
for (AbstractToolItem* it : self->toolItems)
@@ -354,7 +356,7 @@ void ToolMenuHandler::signalConnectCallback(GtkBuilder* builder, GObject* object
}
// There is no toolbar item -> register the menu only
- self->registerMenupoint(GTK_WIDGET(object), action);
+ self->registerMenupoint(GTK_WIDGET(object), action, group);
}
else
{
@@ -362,171 +364,158 @@ void ToolMenuHandler::signalConnectCallback(GtkBuilder* builder, GObject* object
}
}
+// Use GTK Stock icon
+#define ADD_STOCK_ITEM(name, action, stockIcon, text) addToolItem(new ToolButton(listener, name, action, stockIcon, text))
+
+// Use Custom loading Icon
+#define ADD_CUSTOM_ITEM(name, action, icon, text) addToolItem(new ToolButton(listener, gui, name, action, icon, text))
+
+// Use Custom loading Icon, toggle item
+// switchOnly: You can select pen, eraser etc. but you cannot unselect pen.
+#define ADD_CUSTOM_ITEM_TGL(name, action, group, switchOnly, icon, text) addToolItem(new ToolButton(listener, gui, name, action, group, switchOnly, icon, text))
+
void ToolMenuHandler::initToolItems()
{
XOJ_CHECK_TYPE(ToolMenuHandler);
- addToolItem(new ToolButton(listener, "NEW", ACTION_NEW, "document-new", _("New Xournal")));
- addToolItem(new ToolButton(listener, "OPEN", ACTION_OPEN, "document-open", _("Open file")));
+ // Items ordered by menu, if possible.
+ // There are some entries which are not available in the menu, like the Zoom slider
+ // All menu items without tool icon are not listed here - they are connected by Glade Signals
- addToolItem(new ToolButton(listener, "SAVE", ACTION_SAVE, "document-save", _("Save")));
+ // Menu File
+ // ************************************************************************
- addToolItem(new ToolButton(listener, "CUT", ACTION_CUT, "edit-cut", _("Cut")));
- addToolItem(new ToolButton(listener, "COPY", ACTION_COPY, "edit-copy", _("Copy")));
- addToolItem(new ToolButton(listener, "PASTE", ACTION_PASTE, "edit-paste", _("Paste")));
+ ADD_STOCK_ITEM("NEW", ACTION_NEW, "document-new", _("New Xournal"));
+ ADD_STOCK_ITEM("OPEN", ACTION_OPEN, "document-open", _("Open file"));
+ ADD_STOCK_ITEM("SAVE", ACTION_SAVE, "document-save", _("Save"));
- addToolItem(new ToolButton(listener, "SEARCH", ACTION_SEARCH, "edit-find", _("Search")));
+ // Menu Edit
+ // ************************************************************************
- undoButton = new ToolButton(listener, "UNDO", ACTION_UNDO, "edit-undo", _("Undo"), gui->get("menuEditUndo"));
- redoButton = new ToolButton(listener, "REDO", ACTION_REDO, "edit-redo", _("Redo"), gui->get("menuEditRedo"));
+ // Undo / Redo Texts are updated from code, therefore a reference is hold for this items
+ undoButton = new ToolButton(listener, "UNDO", ACTION_UNDO, "edit-undo", _("Undo"));
+ redoButton = new ToolButton(listener, "REDO", ACTION_REDO, "edit-redo", _("Redo"));
addToolItem(undoButton);
addToolItem(redoButton);
- addToolItem(new ToolButton(listener, "GOTO_FIRST", ACTION_GOTO_FIRST, "go-first", _("Go to first page")));
- addToolItem(new ToolButton(listener, "GOTO_BACK", ACTION_GOTO_BACK, "go-previous", _("Back")));
+ ADD_STOCK_ITEM("CUT", ACTION_CUT, "edit-cut", _("Cut"));
+ ADD_STOCK_ITEM("COPY", ACTION_COPY, "edit-copy", _("Copy"));
+ ADD_STOCK_ITEM("PASTE", ACTION_PASTE, "edit-paste", _("Paste"));
- addToolItem(new ToolButton(listener, gui, "GOTO_PAGE", ACTION_GOTO_PAGE, "goto.svg", _("Go to page")));
+ ADD_STOCK_ITEM("SEARCH", ACTION_SEARCH, "edit-find", _("Search"));
- addToolItem(new ToolButton(listener, "GOTO_NEXT", ACTION_GOTO_NEXT, "go-next", _("Next")));
- addToolItem(new ToolButton(listener, "GOTO_LAST", ACTION_GOTO_LAST, "go-last", _("Go to last page")));
+ ADD_STOCK_ITEM("DELETE", ACTION_DELETE, "edit-delete", _("Delete"));
- addToolItem(new ToolButton(listener, "GOTO_PREVIOUS_LAYER", ACTION_GOTO_PREVIOUS_LAYER, "go-previous", _("Go to previous layer")));
- addToolItem(new ToolButton(listener, "GOTO_NEXT_LAYER", ACTION_GOTO_NEXT_LAYER, "go-next", _("Go to next layer")));
- addToolItem(new ToolButton(listener, "GOTO_TOP_LAYER", ACTION_GOTO_TOP_LAYER, "go-top", _("Go to top layer")));
+ // Icon snapping.svg made by www.freepik.com from www.flaticon.com
+ ADD_CUSTOM_ITEM_TGL("ROTATION_SNAPPING", ACTION_ROTATION_SNAPPING, GROUP_SNAPPING, false, "snapping.svg", _("Rotation Snapping"));
+ ADD_CUSTOM_ITEM_TGL("GRID_SNAPPING", ACTION_GRID_SNAPPING, GROUP_GRID_SNAPPING, false, "grid_snapping.svg", _("Grid Snapping"));
- addToolItem(new ToolButton(listener, gui, "GOTO_NEXT_ANNOTATED_PAGE", ACTION_GOTO_NEXT_ANNOTATED_PAGE,
- "nextAnnotatedPage.svg", _("Next annotated page")));
+ // Menu View
+ // ************************************************************************
- addToolItem(new ToolButton(listener, "ZOOM_OUT", ACTION_ZOOM_OUT, "zoom-out", _("Zoom out")));
- addToolItem(new ToolButton(listener, "ZOOM_IN", ACTION_ZOOM_IN, "zoom-in", _("Zoom in")));
- addToolItem(new ToolButton(listener, "ZOOM_FIT", ACTION_ZOOM_FIT, "zoom-fit-best", _("Zoom fit to screen")));
- addToolItem(new ToolButton(listener, "ZOOM_100", ACTION_ZOOM_100, "zoom-original", _("Zoom to 100%")));
+ ADD_CUSTOM_ITEM_TGL("TWO_PAGES", ACTION_VIEW_TWO_PAGES, GROUP_TWOPAGES, false, "showtwopages.svg", _("Two pages"));
+ ADD_CUSTOM_ITEM_TGL("PRESENTATION_MODE", ACTION_VIEW_PRESENTATION_MODE, GROUP_PRESENTATION_MODE, false, "showtwopages.svg", _("Presentation mode"));
+ ADD_CUSTOM_ITEM_TGL("FULLSCREEN", ACTION_FULLSCREEN, GROUP_FULLSCREEN, false, "fullscreen.svg", _("Toggle fullscreen"));
- addToolItem(new ToolButton(listener, gui, "FULLSCREEN", ACTION_FULLSCREEN, GROUP_FULLSCREEN, false,
- "fullscreen.svg", _("Toggle fullscreen")));
+ ADD_STOCK_ITEM("ZOOM_OUT", ACTION_ZOOM_OUT, "zoom-out", _("Zoom out"));
+ ADD_STOCK_ITEM("ZOOM_IN", ACTION_ZOOM_IN, "zoom-in", _("Zoom in"));
+ ADD_STOCK_ITEM("ZOOM_FIT", ACTION_ZOOM_FIT, "zoom-fit-best", _("Zoom fit to screen"));
+ ADD_STOCK_ITEM("ZOOM_100", ACTION_ZOOM_100, "zoom-original", _("Zoom to 100%"));
- addToolItem(new ToolButton(listener, gui, "RECSTOP", ACTION_RECSTOP, GROUP_REC, false,
- "rec.svg", _("Rec / Stop"), gui->get("menuRecStop")));
+ // Menu Navigation
+ // ************************************************************************
- //Icon snapping.svg made by www.freepik.com from www.flaticon.com
- addToolItem(new ToolButton(listener, gui, "ROTATION_SNAPPING", ACTION_ROTATION_SNAPPING, GROUP_SNAPPING, false,
- "snapping.svg", _("Rotation Snapping")));
+ ADD_STOCK_ITEM("GOTO_FIRST", ACTION_GOTO_FIRST, "go-first", _("Go to first page"));
+ ADD_STOCK_ITEM("GOTO_BACK", ACTION_GOTO_BACK, "go-previous", _("Back"));
+ ADD_CUSTOM_ITEM("GOTO_PAGE", ACTION_GOTO_PAGE, "goto.svg", _("Go to page"));
+ ADD_STOCK_ITEM("GOTO_NEXT", ACTION_GOTO_NEXT, "go-next", _("Next"));
+ ADD_STOCK_ITEM("GOTO_LAST", ACTION_GOTO_LAST, "go-last", _("Go to last page"));
- addToolItem(new ToolButton(listener, gui, "GRID_SNAPPING", ACTION_GRID_SNAPPING, GROUP_GRID_SNAPPING, false,
- "grid_snapping.svg", _("Grid Snapping")));
+ ADD_STOCK_ITEM("GOTO_PREVIOUS_LAYER", ACTION_GOTO_PREVIOUS_LAYER, "go-previous", _("Go to previous layer"));
+ ADD_STOCK_ITEM("GOTO_NEXT_LAYER", ACTION_GOTO_NEXT_LAYER, "go-next", _("Go to next layer"));
+ ADD_STOCK_ITEM("GOTO_TOP_LAYER", ACTION_GOTO_TOP_LAYER, "go-top", _("Go to top layer"));
- addToolItem(new ColorToolItem(listener, toolHandler, this->parent, 0xff0000, true));
+ ADD_CUSTOM_ITEM("GOTO_NEXT_ANNOTATED_PAGE", ACTION_GOTO_NEXT_ANNOTATED_PAGE, "nextAnnotatedPage.svg", _("Next annotated page"));
- initPenToolItem();
- initEraserToolItem();
+ // Menu Journal
+ // ************************************************************************
+
+ ToolButton* tbInsertNewPage = new ToolButton(listener, gui, "INSERT_NEW_PAGE", ACTION_NEW_PAGE_AFTER, "addPage.svg", _("Insert page"));
+ addToolItem(tbInsertNewPage);
+ tbInsertNewPage->setPopupMenu(this->newPageType->getMenu());
- addToolItem(new ToolButton(listener, gui, "DELETE_CURRENT_PAGE", ACTION_DELETE_PAGE, "delPage.svg", _("Delete current page")));
+ ADD_CUSTOM_ITEM("DELETE_CURRENT_PAGE", ACTION_DELETE_PAGE, "delPage.svg", _("Delete current page"));
- addToolItem(new ToolSelectCombocontrol(this, listener, gui, "SELECT"));
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(gui->get("menuJournalPaperBackground")), pageBackgroundChangeController->getMenu());
- addToolItem(new ToolDrawCombocontrol(this, listener, gui, "DRAW"));
+ // Menu Tool
+ // ************************************************************************
- ToolButton* tbInsertNewPage = new ToolButton(listener, gui, "INSERT_NEW_PAGE", ACTION_NEW_PAGE_AFTER,
- "addPage.svg", _("Insert page"));
- addToolItem(tbInsertNewPage);
- tbInsertNewPage->setPopupMenu(this->newPageType->getMenu());
+ initPenToolItem();
+ initEraserToolItem();
- addToolItem(new ToolButton(listener, gui, "HILIGHTER", ACTION_TOOL_HILIGHTER, GROUP_TOOL, true,
- "tool_highlighter.svg", _("Highlighter"), gui->get("menuToolsHighlighter")));
- addToolItem(new ToolButton(listener, gui, "TEXT", ACTION_TOOL_TEXT, GROUP_TOOL, true,
- "tool_text.svg", _("Text"), gui->get("menuToolsText")));
- addToolItem(new ToolButton(listener, gui, "IMAGE", ACTION_TOOL_IMAGE, GROUP_TOOL, true,
- "tool_image.svg", _("Image"), gui->get("menuToolsImage")));
-
- addToolItem(new ToolButton(listener, gui, "SELECT_REGION", ACTION_TOOL_SELECT_REGION, GROUP_TOOL, true,
- "lasso.svg", _("Select Region"), gui->get("menuToolsSelectRegion")));
- addToolItem(new ToolButton(listener, gui, "SELECT_RECTANGLE", ACTION_TOOL_SELECT_RECT, GROUP_TOOL, true,
- "rect-select.svg", _("Select Rectangle"), gui->get("menuToolsSelectRectangle")));
- addToolItem(new ToolButton(listener, gui, "SELECT_OBJECT", ACTION_TOOL_SELECT_OBJECT, GROUP_TOOL, true,
- "object-select.svg", _("Select Object"), gui->get("menuToolsSelectObject")));
-
- addToolItem(new ToolButton(listener, gui, "PLAY_OBJECT", ACTION_TOOL_PLAY_OBJECT, GROUP_TOOL, true,
- "object-play.svg", _("Play Object"), gui->get("menuToolsPlayObject")));
-
- addToolItem(new ToolButton(listener, gui, "DRAW_CIRCLE", ACTION_TOOL_DRAW_CIRCLE, GROUP_RULER, false,
- "circle-draw.svg", _("Draw Circle"), gui->get("menuToolsDrawCircle")));
- addToolItem(new ToolButton(listener, gui, "DRAW_RECTANGLE", ACTION_TOOL_DRAW_RECT, GROUP_RULER, false,
- "rect-draw.svg", _("Draw Rectangle"), gui->get("menuToolsDrawRect")));
- addToolItem(new ToolButton(listener, gui, "DRAW_ARROW", ACTION_TOOL_DRAW_ARROW, GROUP_RULER, false,
- "arrow-draw.svg", _("Draw Arrow"), gui->get("menuToolsDrawArrow")));
- addToolItem(new ToolButton(listener, gui, "DRAW_COORDINATE_SYSTEM", ACTION_TOOL_DRAW_COORDINATE_SYSTEM, GROUP_RULER, false,
- "coordinate-system-draw.svg", _("Draw coordinate system"), gui->get("menuToolsDrawCoordinateSystem")));
-
- addToolItem(new ToolButton(listener, gui, "VERTICAL_SPACE", ACTION_TOOL_VERTICAL_SPACE, GROUP_TOOL, true,
- "stretch.svg", _("Vertical Space"), gui->get("menuToolsVerticalSpace")));
- addToolItem(new ToolButton(listener, gui, "HAND", ACTION_TOOL_HAND, GROUP_TOOL, true, "hand.svg", _("Hand"),
- gui->get("menuToolsHand")));
-
- addToolItem(new ToolButton(listener, gui, "SHAPE_RECOGNIZER", ACTION_SHAPE_RECOGNIZER, GROUP_RULER, false,
- "shape_recognizer.svg", _("Shape Recognizer"), gui->get("menuToolsShapeRecognizer")));
- addToolItem(new ToolButton(listener, gui, "RULER", ACTION_RULER, GROUP_RULER, false,
- "ruler.svg", _("Ruler"), gui->get("menuToolsRuler")));
-
- addToolItem(new ToolButton(listener, gui, "FINE", ACTION_SIZE_FINE, GROUP_SIZE, true,
- "thickness_thin.svg", _("Thin")));
- addToolItem(new ToolButton(listener, gui, "MEDIUM", ACTION_SIZE_MEDIUM, GROUP_SIZE, true,
- "thickness_medium.svg", _("Medium")));
- addToolItem(new ToolButton(listener, gui, "THICK", ACTION_SIZE_THICK, GROUP_SIZE, true,
- "thickness_thick.svg", _("Thick")));
-
- addToolItem(new ToolButton(listener, gui, "DEFAULT_TOOL", ACTION_TOOL_DEFAULT, GROUP_NOGROUP, false,
- "default.svg", _("Default Tool"), gui->get("menuToolsDefault")));
-
- addToolItem(new ToolButton(listener, gui, "TOOL_FILL", ACTION_TOOL_FILL, GROUP_FILL, false,
- "fill.svg", _("Fill")));
+ ADD_CUSTOM_ITEM_TGL("HILIGHTER", ACTION_TOOL_HILIGHTER, GROUP_TOOL, true, "tool_highlighter.svg", _("Highlighter"));
+ ADD_CUSTOM_ITEM_TGL("TEXT", ACTION_TOOL_TEXT, GROUP_TOOL, true, "tool_text.svg", _("Text"));
+ ADD_CUSTOM_ITEM_TGL("IMAGE", ACTION_TOOL_IMAGE, GROUP_TOOL, true, "tool_image.svg", _("Image"));
+ ADD_CUSTOM_ITEM("DEFAULT_TOOL", ACTION_TOOL_DEFAULT, "default.svg", _("Default Tool"));
+
+ ADD_CUSTOM_ITEM_TGL("SHAPE_RECOGNIZER", ACTION_SHAPE_RECOGNIZER, GROUP_RULER, false, "shape_recognizer.svg", _("Shape Recognizer"));
+ ADD_CUSTOM_ITEM_TGL("DRAW_RECTANGLE", ACTION_TOOL_DRAW_RECT, GROUP_RULER, false, "rect-draw.svg", _("Draw Rectangle"));
+ ADD_CUSTOM_ITEM_TGL("DRAW_CIRCLE", ACTION_TOOL_DRAW_CIRCLE, GROUP_RULER, false, "circle-draw.svg", _("Draw Circle"));
+ ADD_CUSTOM_ITEM_TGL("DRAW_ARROW", ACTION_TOOL_DRAW_ARROW, GROUP_RULER, false, "arrow-draw.svg", _("Draw Arrow"));
+ ADD_CUSTOM_ITEM_TGL("DRAW_COORDINATE_SYSTEM", ACTION_TOOL_DRAW_COORDINATE_SYSTEM, GROUP_RULER, false, "coordinate-system-draw.svg", _("Draw coordinate system"));
+ ADD_CUSTOM_ITEM_TGL("RULER", ACTION_RULER, GROUP_RULER, false, "ruler.svg", _("Ruler"));
+
+ ADD_CUSTOM_ITEM_TGL("SELECT_REGION", ACTION_TOOL_SELECT_REGION, GROUP_TOOL, true, "lasso.svg", _("Select Region"));
+ ADD_CUSTOM_ITEM_TGL("SELECT_RECTANGLE", ACTION_TOOL_SELECT_RECT, GROUP_TOOL, true, "rect-select.svg", _("Select Rectangle"));
+ ADD_CUSTOM_ITEM_TGL("SELECT_OBJECT", ACTION_TOOL_SELECT_OBJECT, GROUP_TOOL, true, "object-select.svg", _("Select Object"));
+ ADD_CUSTOM_ITEM_TGL("VERTICAL_SPACE", ACTION_TOOL_VERTICAL_SPACE, GROUP_TOOL, true, "stretch.svg", _("Vertical Space"));
+ ADD_CUSTOM_ITEM_TGL("PLAY_OBJECT", ACTION_TOOL_PLAY_OBJECT, GROUP_TOOL, true, "object-play.svg", _("Play Object"));
+ ADD_CUSTOM_ITEM_TGL("HAND", ACTION_TOOL_HAND, GROUP_TOOL, true, "hand.svg", _("Hand"));
fontButton = new FontButton(listener, gui, "SELECT_FONT", ACTION_FONT_BUTTON_CHANGED, _("Select Font"));
addToolItem(fontButton);
+ ADD_CUSTOM_ITEM_TGL("RECSTOP", ACTION_RECSTOP, GROUP_REC, false, "rec.svg", _("Rec / Stop"));
+
+ // Menu Help
+ // ************************************************************************
+ // All tools are registered by the Glade Signals
+
+
+ ///////////////////////////////////////////////////////////////////////////
+
+
// Footer tools
+ // ************************************************************************
toolPageSpinner = new ToolPageSpinner(gui, listener, "PAGE_SPIN", ACTION_FOOTER_PAGESPIN);
addToolItem(toolPageSpinner);
ToolZoomSlider* toolZoomSlider = new ToolZoomSlider(listener, "ZOOM_SLIDER", ACTION_FOOTER_ZOOM_SLIDER, zoom);
addToolItem(toolZoomSlider);
- addToolItem(new ToolButton(listener, gui, "TWO_PAGES", ACTION_VIEW_TWO_PAGES, GROUP_TWOPAGES, false,
- "showtwopages.svg", _("Two pages")));
-
- addToolItem(new ToolButton(listener, gui, "PRESENTATION_MODE", ACTION_VIEW_PRESENTATION_MODE, GROUP_PRESENTATION_MODE, false,
- "showtwopages.svg", _("Presentation mode")));
-
toolPageLayer = new ToolPageLayer(control->getLayerController(), gui, listener, "LAYER", ACTION_FOOTER_LAYER);
addToolItem(toolPageLayer);
- gtk_menu_item_set_submenu(GTK_MENU_ITEM(gui->get("menuJournalPaperBackground")), pageBackgroundChangeController->getMenu());
-
- addToolItem(new ToolButton(listener, "DELETE", ACTION_DELETE, "edit-delete", _("Delete")));
-
- registerMenupoint(gui->get("eraserFine"), ACTION_TOOL_ERASER_SIZE_FINE, GROUP_ERASER_SIZE);
- registerMenupoint(gui->get("eraserMedium"), ACTION_TOOL_ERASER_SIZE_MEDIUM, GROUP_ERASER_SIZE);
- registerMenupoint(gui->get("eraserThick"), ACTION_TOOL_ERASER_SIZE_THICK, GROUP_ERASER_SIZE);
+ ADD_CUSTOM_ITEM_TGL("TOOL_FILL", ACTION_TOOL_FILL, GROUP_FILL, false, "fill.svg", _("Fill"));
- registerMenupoint(gui->get("penthicknessVeryFine"), ACTION_TOOL_PEN_SIZE_VERY_THIN, GROUP_PEN_SIZE);
- registerMenupoint(gui->get("penthicknessFine"), ACTION_TOOL_PEN_SIZE_FINE, GROUP_PEN_SIZE);
- registerMenupoint(gui->get("penthicknessMedium"), ACTION_TOOL_PEN_SIZE_MEDIUM, GROUP_PEN_SIZE);
- registerMenupoint(gui->get("penthicknessThick"), ACTION_TOOL_PEN_SIZE_THICK, GROUP_PEN_SIZE);
- registerMenupoint(gui->get("penthicknessVeryThick"), ACTION_TOOL_PEN_SIZE_VERY_THICK, GROUP_PEN_SIZE);
- registerMenupoint(gui->get("penFill"), ACTION_TOOL_PEN_FILL, GROUP_PEN_FILL);
- registerMenupoint(gui->get("penFillTransparency"), ACTION_TOOL_PEN_FILL_TRANSPARENCY);
+ // Non-menu items
+ // ************************************************************************
- registerMenupoint(gui->get("highlighterFine"), ACTION_TOOL_HILIGHTER_SIZE_FINE, GROUP_HILIGHTER_SIZE);
- registerMenupoint(gui->get("highlighterMedium"), ACTION_TOOL_HILIGHTER_SIZE_MEDIUM, GROUP_HILIGHTER_SIZE);
- registerMenupoint(gui->get("highlighterThick"), ACTION_TOOL_HILIGHTER_SIZE_THICK, GROUP_HILIGHTER_SIZE);
+ // Color item - not in the menu
+ addToolItem(new ColorToolItem(listener, toolHandler, this->parent, 0xff0000, true));
- registerMenupoint(gui->get("highlighterFill"), ACTION_TOOL_HILIGHTER_FILL, GROUP_HILIGHTER_FILL);
- registerMenupoint(gui->get("highlighterFillTransparency"), ACTION_TOOL_HILIGHTER_FILL_TRANSPARENCY);
+ addToolItem(new ToolSelectCombocontrol(this, listener, gui, "SELECT"));
+ addToolItem(new ToolDrawCombocontrol(this, listener, gui, "DRAW"));
- registerMenupoint(gui->get("menuToolsTextFont"), ACTION_SELECT_FONT);
+ // General tool configuration - working for every tool which support it
+ ADD_CUSTOM_ITEM_TGL("FINE", ACTION_SIZE_FINE, GROUP_SIZE, true, "thickness_thin.svg", _("Thin"));
+ ADD_CUSTOM_ITEM_TGL("MEDIUM", ACTION_SIZE_MEDIUM, GROUP_SIZE, true, "thickness_medium.svg", _("Medium"));
+ ADD_CUSTOM_ITEM_TGL("THICK", ACTION_SIZE_THICK, GROUP_SIZE, true, "thickness_thick.svg", _("Thick"));
- registerMenupoint(gui->get("menuEditTex"), ACTION_TEX);
+ // now connect all Glade Signals
gtk_builder_connect_signals_full(gui->getBuilder(), (GtkBuilderConnectFunc)signalConnectCallback, this);
}
diff --git a/ui/main.glade b/ui/main.glade
index 923ad17d..8ca6c641 100644
--- a/ui/main.glade
+++ b/ui/main.glade
@@ -92,8 +92,8 @@
True
True
-
+
@@ -119,8 +119,8 @@
Export as...
True
-
+
@@ -172,6 +172,7 @@
False
True
True
+
@@ -182,6 +183,7 @@
False
True
True
+
@@ -421,8 +423,8 @@
True
True
-
+
@@ -433,8 +435,8 @@
True
True
-
+
@@ -722,6 +724,7 @@
_Pen
True
True
+
@@ -732,6 +735,7 @@
_Eraser
True
True
+
@@ -742,6 +746,7 @@
_Highlighter
True
True
+
@@ -752,6 +757,7 @@
_Text
True
True
+
@@ -762,6 +768,7 @@
_Image
True
True
+
@@ -771,6 +778,7 @@
False
_Default Tools
True
+
@@ -785,6 +793,7 @@
False
_Shape Recognizer
True
+
@@ -794,6 +803,7 @@
False
Draw Rectangle
True
+
@@ -803,6 +813,7 @@
False
Draw Circle
True
+
@@ -812,6 +823,7 @@
False
Draw Arrow
True
+
@@ -821,6 +833,7 @@
False
Draw Arrow
True
+
@@ -830,6 +843,7 @@
False
Draw _Line
True
+
@@ -846,6 +860,7 @@
Select Region
True
True
+
@@ -856,6 +871,7 @@
Select Rectangle
True
True
+
@@ -866,6 +882,7 @@
Select Object
True
True
+
@@ -876,6 +893,7 @@
_Vertical Space
True
True
+
@@ -887,6 +905,7 @@
Play Object
True
True
+
@@ -896,6 +915,7 @@
H_and Tool
True
True
+
@@ -922,6 +942,7 @@
_very fine
True
True
+
@@ -931,6 +952,7 @@
_fine
True
True
+
@@ -940,6 +962,7 @@
_medium
True
True
+
@@ -949,6 +972,7 @@
_thick
True
True
+
@@ -958,6 +982,7 @@
ver_y thick
True
True
+
@@ -973,6 +998,7 @@
standard
True
True
+
@@ -982,6 +1008,7 @@
dashed
True
True
+
@@ -991,6 +1018,7 @@
dash-/ doted
True
True
+
@@ -1000,6 +1028,7 @@
dotted
True
True
+
@@ -1014,6 +1043,7 @@
False
Fi_ll
True
+
@@ -1022,6 +1052,7 @@
False
Fill transparency
True
+
@@ -1045,6 +1076,7 @@
_fine
True
True
+
@@ -1054,6 +1086,7 @@
_medium
True
True
+
@@ -1063,6 +1096,7 @@
_thick
True
True
+
@@ -1078,6 +1112,7 @@
_standard
True
True
+
@@ -1087,6 +1122,7 @@
_whiteout
True
True
+
@@ -1096,6 +1132,7 @@
_delete strokes
True
True
+
@@ -1119,6 +1156,7 @@
_fine
True
True
+
@@ -1128,6 +1166,7 @@
_medium
True
True
+
@@ -1137,6 +1176,7 @@
_thick
True
True
+
@@ -1151,6 +1191,7 @@
False
Fi_ll
True
+
@@ -1159,6 +1200,7 @@
False
Fill transparency
True
+
@@ -1171,6 +1213,7 @@
False
Text Font...
True
+
@@ -1180,6 +1223,7 @@
True
False
Rec-Stop
+
@@ -1188,6 +1232,7 @@
False
Add/Edit Tex
True
+