summaryrefslogtreecommitdiffstats
path: root/src/ui/icons.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/icons.cpp')
-rw-r--r--src/ui/icons.cpp696
1 files changed, 696 insertions, 0 deletions
diff --git a/src/ui/icons.cpp b/src/ui/icons.cpp
new file mode 100644
index 000000000..aa8c5d53c
--- /dev/null
+++ b/src/ui/icons.cpp
@@ -0,0 +1,696 @@
+/**
+ * \brief Stock icons for Inkscape-specific menu items and buttons.
+ *
+ * Author:
+ * Derek P. Moore <derekm@hackunix.org>
+ *
+ * Copyright (C) 2004 Derek P. Moore
+ *
+ * Released under GNU GPL. Read the file 'COPYING' for more information.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <gtkmm/iconfactory.h>
+#include <gtkmm/stock.h>
+
+#include "stock.h"
+#include "path-prefix.h"
+
+namespace Inkscape {
+namespace UI {
+namespace Icons {
+
+static Glib::ustring const get_icon_path(char const *utf8_basename);
+
+void
+init()
+{
+ Glib::RefPtr<Gtk::IconFactory> icons = Gtk::IconFactory::create();
+ Gtk::IconSource src;
+
+ // repeat, for every Inkscape stock.h entry that needs an icon.
+ //Gtk::IconSet ;
+ //src.set_icon_name("");
+ //src.set_filename(get_icon_path(".svg"));
+ //.add_source(src);
+ //icons->add(Stock::, );
+
+ // File menu
+ // Open Recent
+ Gtk::IconSet _open_recent;
+ src.set_icon_name("OpenRecent");
+ src.set_filename(get_icon_path("open-recent.svg"));
+ _open_recent.add_source(src);
+ icons->add(Stock::OPEN_RECENT, _open_recent);
+ // Import
+ Gtk::IconSet _import;
+ src.set_icon_name("Import");
+ src.set_filename(get_icon_path("import.svg"));
+ _import.add_source(src);
+ icons->add(Stock::IMPORT, _import);
+ // Export
+ Gtk::IconSet _export;
+ src.set_icon_name("Export");
+ src.set_filename(get_icon_path("export.svg"));
+ _export.add_source(src);
+ icons->add(Stock::EXPORT, _export);
+ // Vacuum Defs
+ Gtk::IconSet _vacuum_defs;
+ src.set_icon_name("VacuumDefs");
+ src.set_filename(get_icon_path("vacuum-defs.svg"));
+ _vacuum_defs.add_source(src);
+ icons->add(Stock::VACUUM_DEFS, _vacuum_defs);
+
+ // Edit menu
+ // Paste In Place
+ Gtk::IconSet _paste_in_place;
+ src.set_icon_name("PasteInPlace");
+ src.set_filename(get_icon_path("paste-in-place.svg"));
+ _paste_in_place.add_source(src);
+ icons->add(Stock::PASTE_IN_PLACE, _paste_in_place);
+ // Paste Style
+ Gtk::IconSet _paste_style;
+ src.set_icon_name("PasteStyle");
+ src.set_filename(get_icon_path("paste-style.svg"));
+ _paste_style.add_source(src);
+ icons->add(Stock::PASTE_STYLE, _paste_style);
+ // Duplicate
+ Gtk::IconSet _duplicate;
+ src.set_icon_name("Duplicate");
+ src.set_filename(get_icon_path("duplicate.svg"));
+ _duplicate.add_source(src);
+ icons->add(Stock::DUPLICATE, _duplicate);
+ // Clone
+ Gtk::IconSet _clone;
+ src.set_icon_name("Clone");
+ src.set_filename(get_icon_path("clone.svg"));
+ _clone.add_source(src);
+ icons->add(Stock::CLONE, _clone);
+ // Unlink Clone
+ Gtk::IconSet _clone_unlink;
+ src.set_icon_name("CloneUnlink");
+ src.set_filename(get_icon_path("clone-unlink.svg"));
+ _clone_unlink.add_source(src);
+ icons->add(Stock::CLONE_UNLINK, _clone_unlink);
+ // Make Bitmap
+ Gtk::IconSet _make_bitmap;
+ src.set_icon_name("MakeBitmap");
+ src.set_filename(get_icon_path("make-bitmap.svg"));
+ _make_bitmap.add_source(src);
+ icons->add(Stock::MAKE_BITMAP, _make_bitmap);
+ // Select All
+ Gtk::IconSet _select_all;
+ src.set_icon_name("SelectAll");
+ src.set_filename(get_icon_path("select-all.svg"));
+ _select_all.add_source(src);
+ icons->add(Stock::SELECT_ALL, _select_all);
+ // XML Editor
+ Gtk::IconSet _xml_editor;
+ src.set_icon_name("XmlEditor");
+ src.set_filename(get_icon_path("xml-editor.svg"));
+ _xml_editor.add_source(src);
+ icons->add(Stock::XML_EDITOR, _xml_editor);
+
+ // View menu
+ // Zoom
+ Gtk::IconSet _zoom;
+ src.set_icon_name("Zoom");
+ src.set_filename(get_icon_path("zoom.svg"));
+ _zoom.add_source(src);
+ icons->add(Stock::ZOOM, _zoom);
+ // Zoom In (use Inkscape icon for consistency over Gtk::Stock::ZOOM_IN)
+ Gtk::IconSet _zoom_in;
+ src.set_icon_name("ZoomIn");
+ src.set_filename(get_icon_path("zoom-in.svg"));
+ _zoom_in.add_source(src);
+ icons->add(Stock::ZOOM_IN, _zoom_in);
+ // Zoom Out (use Inkscape icon for consistency over Gtk::Stock::ZOOM_OUT)
+ Gtk::IconSet _zoom_out;
+ src.set_icon_name("ZoomOut");
+ src.set_filename(get_icon_path("zoom-out.svg"));
+ _zoom_out.add_source(src);
+ icons->add(Stock::ZOOM_OUT, _zoom_out);
+ // Zoom 100% (use Inkscape icon for consistency over Gtk::Stock::ZOOM_100)
+ Gtk::IconSet _zoom_100;
+ src.set_icon_name("Zoom100");
+ src.set_filename(get_icon_path("zoom-100.svg"));
+ _zoom_100.add_source(src);
+ icons->add(Stock::ZOOM_100, _zoom_100);
+ // Zoom 50%
+ Gtk::IconSet _zoom_50;
+ src.set_icon_name("Zoom50");
+ src.set_filename(get_icon_path("zoom-50.svg"));
+ _zoom_50.add_source(src);
+ icons->add(Stock::ZOOM_50, _zoom_50);
+ // Zoom 200%
+ Gtk::IconSet _zoom_200;
+ src.set_icon_name("Zoom200");
+ src.set_filename(get_icon_path("zoom-200.svg"));
+ _zoom_200.add_source(src);
+ icons->add(Stock::ZOOM_200, _zoom_200);
+ // Zoom Selection
+ Gtk::IconSet _zoom_selection;
+ src.set_icon_name("ZoomSelection");
+ src.set_filename(get_icon_path("zoom-selection.svg"));
+ _zoom_selection.add_source(src);
+ icons->add(Stock::ZOOM_SELECTION, _zoom_selection);
+ // Zoom Drawing
+ Gtk::IconSet _zoom_drawing;
+ src.set_icon_name("ZoomDrawing");
+ src.set_filename(get_icon_path("zoom-drawing.svg"));
+ _zoom_drawing.add_source(src);
+ icons->add(Stock::ZOOM_DRAWING, _zoom_drawing);
+ // Zoom Page (use Inkscape icon for consistency over Gtk::Stock::ZOOM_FIT)
+ Gtk::IconSet _zoom_page;
+ src.set_icon_name("ZoomPage");
+ src.set_filename(get_icon_path("zoom-page.svg"));
+ _zoom_page.add_source(src);
+ icons->add(Stock::ZOOM_PAGE, _zoom_page);
+ // Zoom Width
+ Gtk::IconSet _zoom_width;
+ src.set_icon_name("ZoomWidth");
+ src.set_filename(get_icon_path("zoom-width.svg"));
+ _zoom_width.add_source(src);
+ icons->add(Stock::ZOOM_WIDTH, _zoom_width);
+ // Zoom Previous
+ Gtk::IconSet _zoom_prev;
+ src.set_icon_name("ZoomPrev");
+ src.set_filename(get_icon_path("zoom-prev.svg"));
+ _zoom_prev.add_source(src);
+ icons->add(Stock::ZOOM_PREV, _zoom_prev);
+ // Zoom Next
+ Gtk::IconSet _zoom_next;
+ src.set_icon_name("ZoomNext");
+ src.set_filename(get_icon_path("zoom-next.svg"));
+ _zoom_next.add_source(src);
+ icons->add(Stock::ZOOM_NEXT, _zoom_next);
+ // Show/Hide Dialogs
+ Gtk::IconSet _show_hide_dialogs;
+ src.set_icon_name("ShowHideDialogs");
+ src.set_filename(get_icon_path("show-hide-dialogs.svg"));
+ _show_hide_dialogs.add_source(src);
+ icons->add(Stock::SHOW_HIDE_DIALOGS, _show_hide_dialogs);
+ // Grid
+ Gtk::IconSet _grid;
+ src.set_icon_name("Grid");
+ src.set_filename(get_icon_path("grid.svg"));
+ _grid.add_source(src);
+ icons->add(Stock::GRID, _grid);
+ // Guides
+ Gtk::IconSet _guides;
+ src.set_icon_name("Guides");
+ src.set_filename(get_icon_path("guides.svg"));
+ _guides.add_source(src);
+ icons->add(Stock::GUIDES, _guides);
+ // Fullscreen
+ Gtk::IconSet _fullscreen;
+ src.set_icon_name("Fullscreen");
+ src.set_filename(get_icon_path("fullscreen.svg"));
+ _fullscreen.add_source(src);
+ icons->add(Stock::FULLSCREEN, _fullscreen);
+ // Previous Window
+ Gtk::IconSet _window_prev;
+ src.set_icon_name("WindowPrev");
+ src.set_filename(get_icon_path("window-prev.svg"));
+ _window_prev.add_source(src);
+ icons->add(Stock::WINDOW_PREV, _window_prev);
+ // Next Window
+ Gtk::IconSet _window_next;
+ src.set_icon_name("WindowNext");
+ src.set_filename(get_icon_path("window-next.svg"));
+ _window_next.add_source(src);
+ icons->add(Stock::WINDOW_NEXT, _window_next);
+ // Duplicate Window
+ Gtk::IconSet _window_duplicate;
+ src.set_icon_name("WindowDuplicate");
+ src.set_filename(get_icon_path("window-duplicate.svg"));
+ _window_duplicate.add_source(src);
+ icons->add(Stock::WINDOW_DUPLICATE, _window_duplicate);
+
+ // Layer menu
+ // New Layer
+ icons->add(Stock::LAYER_NEW,
+ Gtk::IconSet::lookup_default(Gtk::Stock::NEW));
+ // Delete Layer
+ icons->add(Stock::LAYER_DELETE,
+ Gtk::IconSet::lookup_default(Gtk::Stock::DELETE));
+ // Raise Layer
+ icons->add(Stock::LAYER_RAISE,
+ Gtk::IconSet::lookup_default(Gtk::Stock::GO_UP));
+ // Lower Layer
+ icons->add(Stock::LAYER_LOWER,
+ Gtk::IconSet::lookup_default(Gtk::Stock::GO_DOWN));
+ // Layer to Top
+ icons->add(Stock::LAYER_TO_TOP,
+ Gtk::IconSet::lookup_default(Gtk::Stock::GOTO_TOP));
+ // Layer to Bottom
+ icons->add(Stock::LAYER_TO_BOTTOM,
+ Gtk::IconSet::lookup_default(Gtk::Stock::GOTO_BOTTOM));
+
+ // Object menu
+ // Fill and Stoke
+ Gtk::IconSet _fill_stroke;
+ src.set_icon_name("FillAndStroke");
+ src.set_filename(get_icon_path("fill-stroke.svg"));
+ _fill_stroke.add_source(src);
+ icons->add(Stock::FILL_STROKE, _fill_stroke);
+ // Object Properties
+ Gtk::IconSet _object_properties;
+ src.set_icon_name("ObjectProperties");
+ src.set_filename(get_icon_path("object-properties.svg"));
+ _object_properties.add_source(src);
+ icons->add(Stock::OBJECT_PROPERTIES, _object_properties);
+ // Group
+ Gtk::IconSet _group;
+ src.set_icon_name("Group");
+ src.set_filename(get_icon_path("group.svg"));
+ _group.add_source(src);
+ icons->add(Stock::GROUP, _group);
+ // Ungroup
+ Gtk::IconSet _ungroup;
+ src.set_icon_name("Ungroup");
+ src.set_filename(get_icon_path("ungroup.svg"));
+ _ungroup.add_source(src);
+ icons->add(Stock::UNGROUP, _ungroup);
+ // Raise
+ Gtk::IconSet _raise;
+ src.set_icon_name("Raise");
+ src.set_filename(get_icon_path("raise.svg"));
+ _raise.add_source(src);
+ icons->add(Stock::RAISE, _raise);
+ // Lower
+ Gtk::IconSet _lower;
+ src.set_icon_name("Lower");
+ src.set_filename(get_icon_path("lower.svg"));
+ _lower.add_source(src);
+ icons->add(Stock::LOWER, _lower);
+ // Raise to Top
+ Gtk::IconSet _raise_to_top;
+ src.set_icon_name("RaiseToTop");
+ src.set_filename(get_icon_path("raise-to-top.svg"));
+ _raise_to_top.add_source(src);
+ icons->add(Stock::RAISE_TO_TOP, _raise_to_top);
+ // Lower to Bottom
+ Gtk::IconSet _lower_to_bottom;
+ src.set_icon_name("LowerToBottom");
+ src.set_filename(get_icon_path("lower-to-bottom.svg"));
+ _lower_to_bottom.add_source(src);
+ icons->add(Stock::LOWER_TO_BOTTOM, _lower_to_bottom);
+ // Move to Next Layer
+ Gtk::IconSet _move_to_next_layer;
+ src.set_icon_name("MoveToNextLayer");
+ src.set_filename(get_icon_path("move-to-next-layer.svg"));
+ _move_to_next_layer.add_source(src);
+ icons->add(Stock::MOVE_TO_NEXT_LAYER, _move_to_next_layer);
+ // Move to Previous Layer
+ Gtk::IconSet _move_to_prev_layer;
+ src.set_icon_name("MoveToPrevLayer");
+ src.set_filename(get_icon_path("move-to-prev-layer.svg"));
+ _move_to_prev_layer.add_source(src);
+ icons->add(Stock::MOVE_TO_PREV_LAYER, _move_to_prev_layer);
+ // Move to Top Layer
+ Gtk::IconSet _move_to_top_layer;
+ src.set_icon_name("MoveToTopLayer");
+ src.set_filename(get_icon_path("move-to-top-layer.svg"));
+ _move_to_top_layer.add_source(src);
+ icons->add(Stock::MOVE_TO_TOP_LAYER, _move_to_top_layer);
+ // Move to Bottom Layer
+ Gtk::IconSet _move_to_bottom_layer;
+ src.set_icon_name("MoveToBottomLayer");
+ src.set_filename(get_icon_path("move-to-bottom-layer.svg"));
+ _move_to_bottom_layer.add_source(src);
+ icons->add(Stock::MOVE_TO_BOTTOM_LAYER, _move_to_bottom_layer);
+ // Rotate 90 CW
+ Gtk::IconSet _rotate_90_cw;
+ src.set_icon_name("Rotate90CW");
+ src.set_filename(get_icon_path("rotate-90-cw.svg"));
+ _rotate_90_cw.add_source(src);
+ icons->add(Stock::ROTATE_90_CW, _rotate_90_cw);
+ // Rotate 90 CCW
+ Gtk::IconSet _rotate_90_ccw;
+ src.set_icon_name("Rotate90CCW");
+ src.set_filename(get_icon_path("rotate-90-ccw.svg"));
+ _rotate_90_ccw.add_source(src);
+ icons->add(Stock::ROTATE_90_CCW, _rotate_90_ccw);
+ // Flip Horizontal
+ Gtk::IconSet _flip_horiz;
+ src.set_icon_name("FlipHoriz");
+ src.set_filename(get_icon_path("flip-horiz.svg"));
+ _flip_horiz.add_source(src);
+ icons->add(Stock::FLIP_HORIZ, _flip_horiz);
+ // Flip Vertical
+ Gtk::IconSet _flip_vert;
+ src.set_icon_name("FlipVert");
+ src.set_filename(get_icon_path("flip-vert.svg"));
+ _flip_vert.add_source(src);
+ icons->add(Stock::FLIP_VERT, _flip_vert);
+ // Transform
+ Gtk::IconSet _transform;
+ src.set_icon_name("Transform");
+ src.set_filename(get_icon_path("transform.svg"));
+ _transform.add_source(src);
+ icons->add(Stock::TRANSFORM, _transform);
+ // Transformation
+ Gtk::IconSet _transformation;
+ src.set_icon_name("Transformation");
+ src.set_filename(get_icon_path("transform.svg"));
+ _transformation.add_source(src);
+ icons->add(Stock::TRANSFORMATION, _transformation);
+ // Align and Distribute
+ Gtk::IconSet _align_distribute;
+ src.set_icon_name("AlignAndDistribute");
+ src.set_filename(get_icon_path("align-distribute.svg"));
+ _align_distribute.add_source(src);
+ icons->add(Stock::ALIGN_DISTRIBUTE, _align_distribute);
+
+ // Path menu
+ // Object to Path
+ Gtk::IconSet _object_to_path;
+ src.set_icon_name("ObjectToPath");
+ src.set_filename(get_icon_path("object-to-path.svg"));
+ _object_to_path.add_source(src);
+ icons->add(Stock::OBJECT_TO_PATH, _object_to_path);
+ // Stroke to Path
+ Gtk::IconSet _stroke_to_path;
+ src.set_icon_name("StrokeToPath");
+ src.set_filename(get_icon_path("stroke-to-path.svg"));
+ _stroke_to_path.add_source(src);
+ icons->add(Stock::STROKE_TO_PATH, _stroke_to_path);
+ // Trace
+ Gtk::IconSet _trace;
+ src.set_icon_name("Trace");
+ src.set_filename(get_icon_path("trace.svg"));
+ _trace.add_source(src);
+ icons->add(Stock::TRACE, _trace);
+ // Union
+ Gtk::IconSet _union;
+ src.set_icon_name("Union");
+ src.set_filename(get_icon_path("union.svg"));
+ _union.add_source(src);
+ icons->add(Stock::UNION, _union);
+ // Difference
+ Gtk::IconSet _difference;
+ src.set_icon_name("Difference");
+ src.set_filename(get_icon_path("difference.svg"));
+ _difference.add_source(src);
+ icons->add(Stock::DIFFERENCE, _difference);
+ // Intersection
+ Gtk::IconSet _intersection;
+ src.set_icon_name("Intersection");
+ src.set_filename(get_icon_path("intersection.svg"));
+ _intersection.add_source(src);
+ icons->add(Stock::INTERSECTION, _intersection);
+ // Exclusion
+ Gtk::IconSet _exclusion;
+ src.set_icon_name("Exclusion");
+ src.set_filename(get_icon_path("exclusion.svg"));
+ _exclusion.add_source(src);
+ icons->add(Stock::EXCLUSION, _exclusion);
+ // Division
+ Gtk::IconSet _division;
+ src.set_icon_name("Division");
+ src.set_filename(get_icon_path("division.svg"));
+ _division.add_source(src);
+ icons->add(Stock::DIVISION, _division);
+ // Cut Path
+ Gtk::IconSet _cut_path;
+ src.set_icon_name("CutPath");
+ src.set_filename(get_icon_path("cut-path.svg"));
+ _cut_path.add_source(src);
+ icons->add(Stock::CUT_PATH, _cut_path);
+ // Combine
+ Gtk::IconSet _combine;
+ src.set_icon_name("Combine");
+ src.set_filename(get_icon_path("combine.svg"));
+ _combine.add_source(src);
+ icons->add(Stock::COMBINE, _combine);
+ // Break Apart
+ Gtk::IconSet _break_apart;
+ src.set_icon_name("BreakApart");
+ src.set_filename(get_icon_path("break-apart.svg"));
+ _break_apart.add_source(src);
+ icons->add(Stock::BREAK_APART, _break_apart);
+ // Inset
+ Gtk::IconSet _inset;
+ src.set_icon_name("Inset");
+ src.set_filename(get_icon_path("inset.svg"));
+ _inset.add_source(src);
+ icons->add(Stock::INSET, _inset);
+ // Outset
+ Gtk::IconSet _outset;
+ src.set_icon_name("Outset");
+ src.set_filename(get_icon_path("outset.svg"));
+ _outset.add_source(src);
+ icons->add(Stock::OUTSET, _outset);
+ // Dynamic Offset
+ Gtk::IconSet _offset_dynamic;
+ src.set_icon_name("OffsetDynamic");
+ src.set_filename(get_icon_path("offset-dynamic.svg"));
+ _offset_dynamic.add_source(src);
+ icons->add(Stock::OFFSET_DYNAMIC, _offset_dynamic);
+ // Linked Offset
+ Gtk::IconSet _offset_linked;
+ src.set_icon_name("OffsetLinked");
+ src.set_filename(get_icon_path("offset-linked.svg"));
+ _offset_linked.add_source(src);
+ icons->add(Stock::OFFSET_LINKED, _offset_linked);
+ // Simplify
+ Gtk::IconSet _simplify;
+ src.set_icon_name("Simplify");
+ src.set_filename(get_icon_path("simplify.svg"));
+ _simplify.add_source(src);
+ icons->add(Stock::SIMPLIFY, _simplify);
+ // Reverse
+ Gtk::IconSet _reverse;
+ src.set_icon_name("Reverse");
+ src.set_filename(get_icon_path("reverse.svg"));
+ _reverse.add_source(src);
+ icons->add(Stock::REVERSE, _reverse);
+
+ // Help menu
+ // Keys and Mouse
+ Gtk::IconSet _keys_mouse;
+ src.set_icon_name("KeysAndMouse");
+ src.set_filename(get_icon_path("keys-mouse.svg"));
+ _keys_mouse.add_source(src);
+ icons->add(Stock::KEYS_MOUSE, _keys_mouse);
+ // Tutorials
+ Gtk::IconSet _tutorials;
+ src.set_icon_name("Tutorials");
+ src.set_filename(get_icon_path("tutorials.svg"));
+ _tutorials.add_source(src);
+ icons->add(Stock::TUTORIALS, _tutorials);
+ // About Inkscape
+ Gtk::IconSet _about;
+ src.set_icon_name("About");
+ src.set_filename(get_icon_path("inkscape.svg"));
+ _about.add_source(src);
+ icons->add(Stock::ABOUT, _about);
+ // About Splash
+ Gtk::IconSet _about_splash;
+ src.set_filename(get_icon_path("about41.svg"));
+ src.set_size(Gtk::IconSize::register_new("about", 750, 625));
+ _about_splash.add_source(src);
+ icons->add(Stock::ABOUT_SPLASH, _about_splash);
+ // 42 Don't Panic!
+ Gtk::IconSet _about_42;
+ src.set_filename(get_icon_path("dontpanic.svg"));
+ src.set_size(Gtk::IconSize::register_new("dontpanic", 250, 172));
+ _about_42.add_source(src);
+ icons->add(Stock::ABOUT_42, _about_42);
+ // Quick Help
+ Gtk::IconSet _about_quick_help;
+ src.set_filename(get_icon_path("quick-help.svg"));
+ src.set_size(Gtk::IconSize::from_name("about"));
+ _about_quick_help.add_source(src);
+ icons->add(Stock::ABOUT_QUICK_HELP, _about_quick_help);
+
+ // Tools toolbar
+ // Select tool
+ Gtk::IconSet _tool_select;
+ src.set_icon_name("ToolSelect");
+ src.set_filename(get_icon_path("tool-select.svg"));
+ _tool_select.add_source(src);
+ icons->add(Stock::TOOL_SELECT, _tool_select);
+ // Node tool
+ Gtk::IconSet _tool_node;
+ src.set_icon_name("ToolNode");
+ src.set_filename(get_icon_path("tool-node.svg"));
+ _tool_node.add_source(src);
+ icons->add(Stock::TOOL_NODE, _tool_node);
+ // Zoom tool
+ Gtk::IconSet _tool_zoom;
+ src.set_icon_name("ToolZoom");
+ src.set_filename(get_icon_path("tool-zoom.svg"));
+ _tool_zoom.add_source(src);
+ icons->add(Stock::TOOL_ZOOM, _tool_zoom);
+ // Rect tool
+ Gtk::IconSet _tool_rect;
+ src.set_icon_name("ToolRect");
+ src.set_filename(get_icon_path("tool-rect.svg"));
+ _tool_rect.add_source(src);
+ icons->add(Stock::TOOL_RECT, _tool_rect);
+ // Arc tool
+ Gtk::IconSet _tool_arc;
+ src.set_icon_name("ToolArc");
+ src.set_filename(get_icon_path("tool-arc.svg"));
+ _tool_arc.add_source(src);
+ icons->add(Stock::TOOL_ARC, _tool_arc);
+ // Star tool
+ Gtk::IconSet _tool_star;
+ src.set_icon_name("ToolStar");
+ src.set_filename(get_icon_path("tool-star.svg"));
+ _tool_star.add_source(src);
+ icons->add(Stock::TOOL_STAR, _tool_star);
+ // Spiral tool
+ Gtk::IconSet _tool_spiral;
+ src.set_icon_name("ToolSpiral");
+ src.set_filename(get_icon_path("tool-spiral.svg"));
+ _tool_spiral.add_source(src);
+ icons->add(Stock::TOOL_SPIRAL, _tool_spiral);
+ // Freehand tool
+ Gtk::IconSet _tool_freehand;
+ src.set_icon_name("ToolFreehand");
+ src.set_filename(get_icon_path("tool-freehand.svg"));
+ _tool_freehand.add_source(src);
+ icons->add(Stock::TOOL_FREEHAND, _tool_freehand);
+ // Pen tool
+ Gtk::IconSet _tool_pen;
+ src.set_icon_name("ToolPen");
+ src.set_filename(get_icon_path("tool-pen.svg"));
+ _tool_pen.add_source(src);
+ icons->add(Stock::TOOL_PEN, _tool_pen);
+ // DynaDraw tool
+ Gtk::IconSet _tool_dynadraw;
+ src.set_icon_name("ToolDynaDraw");
+ src.set_filename(get_icon_path("tool-dynadraw.svg"));
+ _tool_dynadraw.add_source(src);
+ icons->add(Stock::TOOL_DYNADRAW, _tool_dynadraw);
+ // Text tool
+ Gtk::IconSet _tool_text;
+ src.set_icon_name("ToolText");
+ src.set_filename(get_icon_path("tool-text.svg"));
+ _tool_text.add_source(src);
+ icons->add(Stock::TOOL_TEXT, _tool_text);
+ // Dropper tool
+ Gtk::IconSet _tool_dropper;
+ src.set_icon_name("ToolDropper");
+ src.set_filename(get_icon_path("tool-dropper.svg"));
+ _tool_dropper.add_source(src);
+ icons->add(Stock::TOOL_DROPPER, _tool_dropper);
+
+ // Select Tool controls
+ Gtk::IconSource small;
+ small.set_size(Gtk::ICON_SIZE_SMALL_TOOLBAR);
+ // Transform Stroke
+ Gtk::IconSet _transform_stroke;
+ small.set_icon_name("TransformStroke");
+ small.set_filename(get_icon_path("transform-stroke.svg"));
+ _transform_stroke.add_source(small);
+ icons->add(Stock::TRANSFORM_STROKE, _transform_stroke);
+ // Transform Corners
+ Gtk::IconSet _transform_corners;
+ small.set_icon_name("TransformCorners");
+ small.set_filename(get_icon_path("transform-corners.svg"));
+ _transform_corners.add_source(small);
+ icons->add(Stock::TRANSFORM_CORNERS, _transform_corners);
+ // Transform Grandient
+ Gtk::IconSet _transform_gradient;
+ small.set_icon_name("TransformGrandient");
+ small.set_filename(get_icon_path("transform-gradient.svg"));
+ _transform_gradient.add_source(small);
+ icons->add(Stock::TRANSFORM_GRADIENT, _transform_gradient);
+ // Transform Pattern
+ Gtk::IconSet _transform_pattern;
+ small.set_icon_name("TransformPattern");
+ small.set_filename(get_icon_path("transform-pattern.svg"));
+ _transform_pattern.add_source(small);
+ icons->add(Stock::TRANSFORM_PATTERN, _transform_pattern);
+
+ // Calligraphy Tool controls
+ // Use Pressure
+ Gtk::IconSet _use_pressure;
+ small.set_icon_name("UsePressure");
+ small.set_filename(get_icon_path("use-pressure.svg"));
+ _use_pressure.add_source(small);
+ icons->add(Stock::USE_PRESSURE, _use_pressure);
+ // Use Tilt
+ Gtk::IconSet _use_tilt;
+ small.set_icon_name("UseTilt");
+ small.set_filename(get_icon_path("use-tilt.svg"));
+ _use_tilt.add_source(small);
+ icons->add(Stock::USE_TILT, _use_tilt);
+
+ // Session playback dialog
+ // Rewind
+ Gtk::IconSet _session_rewind;
+ src.set_icon_name("Rewind");
+ src.set_filename(get_icon_path("session-rew.svg"));
+ _session_rewind.add_source(src);
+ icons->add(Stock::SESSION_PLAYBACK_REW, _session_rewind);
+ // Step backwards
+ Gtk::IconSet _session_stepback;
+ src.set_icon_name("StepBackward");
+ src.set_filename(get_icon_path("session-back1.svg"));
+ _session_stepback.add_source(src);
+ icons->add(Stock::SESSION_PLAYBACK_STEPBACK, _session_stepback);
+ // Pause
+ Gtk::IconSet _session_pause;
+ src.set_icon_name("Pause");
+ src.set_filename(get_icon_path("session-pause.svg"));
+ _session_pause.add_source(src);
+ icons->add(Stock::SESSION_PLAYBACK_PAUSE, _session_pause);
+ // Step forwards
+ Gtk::IconSet _session_stepforward;
+ src.set_icon_name("StepForward");
+ src.set_filename(get_icon_path("session-adv1.svg"));
+ _session_stepforward.add_source(src);
+ icons->add(Stock::SESSION_PLAYBACK_STEPFORWARD, _session_stepforward);
+ // Play
+ Gtk::IconSet _session_play;
+ src.set_icon_name("Play");
+ src.set_filename(get_icon_path("session-play.svg"));
+ _session_play.add_source(src);
+ icons->add(Stock::SESSION_PLAYBACK_PLAY, _session_play);
+
+ icons->add_default();
+}
+
+/** Returns the icon filename (in the operating system encoding used for filenames) whose basename
+ in utf8 encoding is \a utf8_basename.
+**/
+static Glib::ustring const
+get_icon_path(char const *const utf8_basename)
+{
+ /* Given that INKSCAPE_PIXMAPDIR is often a compiled constant, I suppose we should
+ interpret it as utf8: under windows, the encoding for filenames can change from
+ day to day even for a given file. */
+ static char *const opsys_iconsdir = g_filename_from_utf8(INKSCAPE_PIXMAPDIR, -1,
+ NULL, NULL, NULL);
+
+ g_assert(g_utf8_validate(utf8_basename, -1, NULL));
+ char *const opsys_basename = g_filename_from_utf8(utf8_basename, -1, NULL, NULL, NULL);
+ char *const ret_cstr = g_build_filename(opsys_iconsdir, opsys_basename, NULL);
+ Glib::ustring const ret(ret_cstr);
+ g_free(ret_cstr);
+ g_free(opsys_basename);
+ return ret;
+}
+
+} // namespace Icon
+} // namespace UI
+} // namespace Inkscape
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :