diff options
Diffstat (limited to 'src/ui/icons.cpp')
| -rw-r--r-- | src/ui/icons.cpp | 696 |
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 : |
