Merge pull request #793 from andreasb242/glade-actions

Glade actions
presentation
andreasb242 7 years ago committed by GitHub
commit 8b81e3dd5a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 17
      src/gui/Layout.cpp
  2. 259
      src/gui/toolbarMenubar/ToolMenuHandler.cpp
  3. 53
      ui/main.glade

@ -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);
}
/**

@ -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);
}

@ -92,8 +92,8 @@
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="ACTION_SAVE_AS" swapped="no"/>
<accelerator key="s" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
<accelerator key="u" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<accelerator key="s" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
</object>
</child>
<child>
@ -119,8 +119,8 @@
<property name="label" translatable="yes">Export as...</property>
<property name="use_underline">True</property>
<signal name="activate" handler="ACTION_EXPORT_AS" swapped="no"/>
<accelerator key="e" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
<accelerator key="i" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<accelerator key="e" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
</object>
</child>
<child>
@ -172,6 +172,7 @@
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="ACTION_UNDO" swapped="no"/>
<accelerator key="z" signal="activate" modifiers="GDK_CONTROL_MASK"/>
</object>
</child>
@ -182,6 +183,7 @@
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="ACTION_REDO" swapped="no"/>
<accelerator key="y" signal="activate" modifiers="GDK_CONTROL_MASK"/>
</object>
</child>
@ -421,8 +423,8 @@
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="ACTION_ZOOM_IN" swapped="no"/>
<accelerator key="plus" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<accelerator key="KP_Add" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<accelerator key="plus" signal="activate" modifiers="GDK_CONTROL_MASK"/>
</object>
</child>
<child>
@ -433,8 +435,8 @@
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="ACTION_ZOOM_OUT" swapped="no"/>
<accelerator key="minus" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<accelerator key="KP_Subtract" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<accelerator key="minus" signal="activate" modifiers="GDK_CONTROL_MASK"/>
</object>
</child>
<child>
@ -722,6 +724,7 @@
<property name="label" translatable="yes">_Pen</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_PEN" swapped="no"/>
<accelerator key="p" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
</object>
</child>
@ -732,6 +735,7 @@
<property name="label" translatable="yes">_Eraser</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_ERASER" swapped="no"/>
<accelerator key="e" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
</object>
</child>
@ -742,6 +746,7 @@
<property name="label" translatable="yes">_Highlighter</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_HILIGHTER" swapped="no"/>
<accelerator key="h" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
</object>
</child>
@ -752,6 +757,7 @@
<property name="label" translatable="yes">_Text</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_TEXT" swapped="no"/>
<accelerator key="t" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
</object>
</child>
@ -762,6 +768,7 @@
<property name="label" translatable="yes">_Image</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_IMAGE" swapped="no"/>
<accelerator key="i" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
</object>
</child>
@ -771,6 +778,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes">_Default Tools</property>
<property name="use_underline">True</property>
<signal name="activate" handler="ACTION_TOOL_DEFAULT" swapped="no"/>
</object>
</child>
<child>
@ -785,6 +793,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes">_Shape Recognizer</property>
<property name="use_underline">True</property>
<signal name="toggled" handler="ACTION_SHAPE_RECOGNIZER" swapped="no"/>
<accelerator key="1" signal="activate" modifiers="GDK_CONTROL_MASK"/>
</object>
</child>
@ -794,6 +803,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes">Draw Rectangle</property>
<property name="use_underline">True</property>
<signal name="toggled" handler="ACTION_TOOL_DRAW_RECT" swapped="no"/>
<accelerator key="2" signal="activate" modifiers="GDK_CONTROL_MASK"/>
</object>
</child>
@ -803,6 +813,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes">Draw Circle</property>
<property name="use_underline">True</property>
<signal name="toggled" handler="ACTION_TOOL_DRAW_CIRCLE" swapped="no"/>
<accelerator key="3" signal="activate" modifiers="GDK_CONTROL_MASK"/>
</object>
</child>
@ -812,6 +823,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes">Draw Arrow</property>
<property name="use_underline">True</property>
<signal name="toggled" handler="ACTION_TOOL_DRAW_ARROW" swapped="no"/>
<accelerator key="4" signal="activate" modifiers="GDK_CONTROL_MASK"/>
</object>
</child>
@ -821,6 +833,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes">Draw Arrow</property>
<property name="use_underline">True</property>
<signal name="toggled" handler="ACTION_TOOL_DRAW_COORDINATE_SYSTEM" swapped="no"/>
<accelerator key="5" signal="activate" modifiers="GDK_CONTROL_MASK"/>
</object>
</child>
@ -830,6 +843,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes">Draw _Line</property>
<property name="use_underline">True</property>
<signal name="toggled" handler="ACTION_RULER" swapped="no"/>
<accelerator key="6" signal="activate" modifiers="GDK_CONTROL_MASK"/>
</object>
</child>
@ -846,6 +860,7 @@
<property name="label" translatable="yes">Select Region</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_SELECT_REGION" swapped="no"/>
<accelerator key="g" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
</object>
</child>
@ -856,6 +871,7 @@
<property name="label" translatable="yes">Select Rectangle</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_SELECT_RECT" swapped="no"/>
<accelerator key="r" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
</object>
</child>
@ -866,6 +882,7 @@
<property name="label" translatable="yes">Select Object</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_SELECT_OBJECT" swapped="no"/>
<accelerator key="o" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
</object>
</child>
@ -876,6 +893,7 @@
<property name="label" translatable="yes">_Vertical Space</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_VERTICAL_SPACE" swapped="no"/>
<accelerator key="v" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
</object>
</child>
@ -887,6 +905,7 @@
<property name="label" translatable="yes">Play Object</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_PLAY_OBJECT" swapped="no"/>
</object>
</child>
<child>
@ -896,6 +915,7 @@
<property name="label" translatable="yes">H_and Tool</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_HAND" swapped="no"/>
<accelerator key="a" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
</object>
</child>
@ -922,6 +942,7 @@
<property name="label" translatable="yes">_very fine</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_PEN_SIZE_VERY_THIN:GROUP_PEN_SIZE" swapped="no"/>
</object>
</child>
<child>
@ -931,6 +952,7 @@
<property name="label" translatable="yes">_fine</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_PEN_SIZE_FINE:GROUP_PEN_SIZE" swapped="no"/>
</object>
</child>
<child>
@ -940,6 +962,7 @@
<property name="label" translatable="yes">_medium</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_PEN_SIZE_MEDIUM:GROUP_PEN_SIZE" swapped="no"/>
</object>
</child>
<child>
@ -949,6 +972,7 @@
<property name="label" translatable="yes">_thick</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_PEN_SIZE_THICK:GROUP_PEN_SIZE" swapped="no"/>
</object>
</child>
<child>
@ -958,6 +982,7 @@
<property name="label" translatable="yes">ver_y thick</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_PEN_SIZE_VERY_THICK:GROUP_PEN_SIZE" swapped="no"/>
</object>
</child>
<child>
@ -973,6 +998,7 @@
<property name="label" translatable="yes">standard</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_LINE_STYLE_PLAIN:GROUP_LINE_STYLE" swapped="no"/>
</object>
</child>
<child>
@ -982,6 +1008,7 @@
<property name="label" translatable="yes">dashed</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_LINE_STYLE_DASH:GROUP_LINE_STYLE" swapped="no"/>
</object>
</child>
<child>
@ -991,6 +1018,7 @@
<property name="label" translatable="yes">dash-/ doted</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_LINE_STYLE_DASH_DOT:GROUP_LINE_STYLE" swapped="no"/>
</object>
</child>
<child>
@ -1000,6 +1028,7 @@
<property name="label" translatable="yes">dotted</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_LINE_STYLE_DOT:GROUP_LINE_STYLE" swapped="no"/>
</object>
</child>
<child>
@ -1014,6 +1043,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes">Fi_ll</property>
<property name="use_underline">True</property>
<signal name="toggled" handler="ACTION_TOOL_PEN_FILL:GROUP_PEN_FILL" swapped="no"/>
</object>
</child>
<child>
@ -1022,6 +1052,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes">Fill transparency</property>
<property name="use_underline">True</property>
<signal name="activate" handler="ACTION_TOOL_PEN_FILL_TRANSPARENCY" swapped="no"/>
</object>
</child>
</object>
@ -1045,6 +1076,7 @@
<property name="label" translatable="yes">_fine</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_ERASER_SIZE_FINE:GROUP_ERASER_SIZE" swapped="no"/>
</object>
</child>
<child>
@ -1054,6 +1086,7 @@
<property name="label" translatable="yes">_medium</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_ERASER_SIZE_MEDIUM:GROUP_ERASER_SIZE" swapped="no"/>
</object>
</child>
<child>
@ -1063,6 +1096,7 @@
<property name="label" translatable="yes">_thick</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_ERASER_SIZE_THICK:GROUP_ERASER_SIZE" swapped="no"/>
</object>
</child>
<child>
@ -1078,6 +1112,7 @@
<property name="label" translatable="yes">_standard</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_ERASER_STANDARD:GROUP_ERASER_MODE" swapped="no"/>
</object>
</child>
<child>
@ -1087,6 +1122,7 @@
<property name="label" translatable="yes">_whiteout</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_ERASER_WHITEOUT:GROUP_ERASER_MODE" swapped="no"/>
</object>
</child>
<child>
@ -1096,6 +1132,7 @@
<property name="label" translatable="yes">_delete strokes</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_ERASER_DELETE_STROKE:GROUP_ERASER_MODE" swapped="no"/>
</object>
</child>
</object>
@ -1119,6 +1156,7 @@
<property name="label" translatable="yes">_fine</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_HILIGHTER_SIZE_FINE:GROUP_HILIGHTER_SIZE" swapped="no"/>
</object>
</child>
<child>
@ -1128,6 +1166,7 @@
<property name="label" translatable="yes">_medium</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_HILIGHTER_SIZE_MEDIUM:GROUP_HILIGHTER_SIZE" swapped="no"/>
</object>
</child>
<child>
@ -1137,6 +1176,7 @@
<property name="label" translatable="yes">_thick</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
<signal name="toggled" handler="ACTION_TOOL_HILIGHTER_SIZE_THICK:GROUP_HILIGHTER_SIZE" swapped="no"/>
</object>
</child>
<child>
@ -1151,6 +1191,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes">Fi_ll</property>
<property name="use_underline">True</property>
<signal name="toggled" handler="ACTION_TOOL_HILIGHTER_FILL:GROUP_HILIGHTER_FILL" swapped="no"/>
</object>
</child>
<child>
@ -1159,6 +1200,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes">Fill transparency</property>
<property name="use_underline">True</property>
<signal name="activate" handler="ACTION_TOOL_HILIGHTER_FILL_TRANSPARENCY" swapped="no"/>
</object>
</child>
</object>
@ -1171,6 +1213,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes">Text Font...</property>
<property name="use_underline">True</property>
<signal name="activate" handler="ACTION_SELECT_FONT" swapped="no"/>
<accelerator key="f" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
</object>
</child>
@ -1180,6 +1223,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Rec-Stop</property>
<signal name="toggled" handler="ACTION_RECSTOP" swapped="no"/>
</object>
</child>
<child>
@ -1188,6 +1232,7 @@
<property name="can_focus">False</property>
<property name="label" translatable="yes">Add/Edit Tex</property>
<property name="use_underline">True</property>
<signal name="activate" handler="ACTION_TEX" swapped="no"/>
<accelerator key="x" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
</object>
</child>

Loading…
Cancel
Save