<!--
Defines some, but not all, of MyPaint's core UI.
Perhaps an increasing amount.
-->
<interface>

<object class="GtkIconFactory" id="stock_icon_factory">
  <!-- Custom stock icon mapping -->
  <sources>
    <!-- Tool subwindows -->
    <source stock-id="mypaint-tool-brush"
           icon-name="mypaint-tool-brush"/>
    <source stock-id="mypaint-tool-color"
           icon-name="mypaint-tool-paint-color"/>
    <source stock-id="mypaint-tool-scratchpad"
           icon-name="mypaint-tool-scratchpad"/>
    <source stock-id="mypaint-tool-layers"
           icon-name="mypaint-tool-layers"/>
    <!-- View manipulation -->
    <!--
    TODO: make some MyPaint-specific icons for these. Not sure the object-
    names are standard in all sets.
    -->
    <source stock-id="mypaint-view-rotate-left"
           icon-name="mypaint-view-rotate-anticlockwise"/>
    <source stock-id="mypaint-view-rotate-right"
           icon-name="mypaint-view-rotate-clockwise"/>
    <source stock-id="mypaint-view-mirror-horizontal"
           icon-name="mypaint-view-mirror-horizontal"/>
    <source stock-id="mypaint-view-mirror-vertical"
           icon-name="mypaint-view-mirror-vertical"/>
    <!-- Blend modes -->
    <source stock-id="mypaint-brush-blend-modes"
           icon-name="mypaint-brush-blend-modes"/>
    <source stock-id="mypaint-brush-blend-mode-normal"
           icon-name="mypaint-brush-blend-mode-normal"/>
    <source stock-id="mypaint-brush-blend-mode-eraser"
           icon-name="mypaint-brush-blend-mode-eraser"/>
    <source stock-id="mypaint-brush-blend-mode-alpha-lock"
           icon-name="mypaint-brush-blend-mode-alpha-lock"/>
    <source stock-id="mypaint-brush-blend-mode-colorize"
           icon-name="mypaint-brush-blend-mode-colorize"/>
    <!-- Brush modifications -->
    <source stock-id="mypaint-brush-mods-active"
           icon-name="mypaint-brush-mods-active"/>
    <source stock-id="mypaint-brush-mods-inactive"
           icon-name="mypaint-brush-mods-inactive"/>
    <!-- Editing modes -->
    <source stock-id="mypaint-symmetry-mode" icon-name="mypaint-symmetry"/>
    <source stock-id="mypaint-line-mode" icon-name="mypaint-line-mode"/>
    <source stock-id="mypaint-line-mode-freehand"
           icon-name="mypaint-line-mode-freehand"/>
    <source stock-id="mypaint-line-mode-straight"
           icon-name="mypaint-line-mode-straight"/>
    <source stock-id="mypaint-line-mode-sequence"
           icon-name="mypaint-line-mode-sequence"/>
    <source stock-id="mypaint-line-mode-ellipse"
           icon-name="mypaint-line-mode-ellipse"/>
  </sources>
</object><!-- /stock_iconfactory -->


<object class="GtkUIManager" id="app_ui_manager">
  <!-- Defines GtkActions for commands -->
  <!--

    NOTE: each stock_id should be used only once, for the application-wide,
    main-document actions rather than for little things like brushes, palettes
    etc. This is particularly important when reusing regular GTK stock icons
    whose stock items define keyboard shortcuts: when the "little" actions are
    too unimportant to declare their own, the stock accelerators will be used
    instead, which typically isn't what we want.
    
    Use icon-name instead for "little" actions.

  -->
  <ui/><!-- TODO: move menu.xml here? -->
  <child>
    <object class="GtkActionGroup" id="FileActions">
      <!-- Document loading and saving -->
      <child>
        <object class="GtkAction" id="New">
          <property name="stock_id">gtk-new</property>
          <property name="label" translatable="yes"
            context="Menu|File|">New</property>
          <property name="tooltip" translatable="yes"
            >Start with a new blank canvas</property>
          <signal name="activate" handler="new_cb"/>
        </object>
        <accelerator key="n" modifiers="GDK_CONTROL_MASK"/>
      </child>
      <child>
        <object class="GtkAction" id="Open">
          <property name="stock_id">gtk-open</property>
          <property name="label" translatable="yes"
            context="Menu|File|">Open...</property>
          <property name="tooltip" translatable="yes"
            >Open a file, replacing the current painting</property>
          <signal name="activate" handler="open_cb"/>
        </object>
        <accelerator key="o" modifiers="GDK_CONTROL_MASK"/>
      </child>
      <child>
        <object class="GtkAction" id="OpenLast">
          <property name="label" translatable="yes"
            context="Menu|File|">Open Most Recent</property>
          <property name="tooltip" translatable="yes"
            >Open the last file you saved</property>
          <signal name="activate" handler="open_last_cb"/>
        </object>
        <accelerator key="F3"/>
      </child>
      <child>
        <object class="GtkAction" id="Reload">
          <property name="stock_id">gtk-revert-to-saved</property>
          <property name="label" translatable="yes"
            context="Menu|File|">Revert</property>
          <property name="tooltip" translatable="yes"
            >Reload the current file</property>
          <signal name="activate" handler="reload_cb"/>
        </object>
        <accelerator key="F5"/>
      </child>
      <child>
        <object class="GtkAction" id="Save">
          <property name="stock_id">gtk-save</property>
          <property name="label" translatable="yes"
            context="Menu|File|">Save</property>
          <property name="tooltip" translatable="yes"
            >Save to a file</property>
          <signal name="activate" handler="save_cb"/>
        </object>
        <accelerator key="s" modifiers="GDK_CONTROL_MASK"/>
      </child>
      <child>
        <object class="GtkAction" id="SaveAs">
          <property name="stock_id">gtk-save-as</property>
          <property name="label" translatable="yes"
            context="Menu|File|">Save As...</property>
          <property name="tooltip" translatable="yes"
            >Save to a file with a new name</property>
          <signal name="activate" handler="save_as_cb"/>
        </object>
        <accelerator key="s" modifiers="GDK_CONTROL_MASK | GDK_SHIFT_MASK"/>
      </child>
      <child>
        <object class="GtkAction" id="Export">
          <property name="icon-name">gtk-save-as</property>
          <property name="label" translatable="yes"
            context="Menu|File|">Export...</property>
          <property name="tooltip" translatable="yes">Export to a file</property>
          <signal name="activate" handler="save_as_cb"/>
        </object>
        <accelerator key="e" modifiers="GDK_CONTROL_MASK | GDK_SHIFT_MASK"/>
      </child>
      <child>
        <object class="GtkAction" id="SaveScrap">
          <property name="stock_id">gtk-add</property>
          <property name="label" translatable="yes"
            context="Menu|File|">Save As Scrap</property>
          <property name="tooltip" translatable="yes"
            >Saves to a new scrap file. If the drawing is currently saved as a scrap, this will write a new revision of it.</property>
          <signal name="activate" handler="save_scrap_cb"/>
        </object>
        <accelerator key="F2"/>
      </child>
      <child>
        <object class="GtkAction" id="PrevScrap">
          <property name="stock_id">gtk-go-back</property>
          <property name="label" translatable="yes"
            context="Menu|File|">Open Previous Scrap</property>
          <property name="tooltip" translatable="yes"
            >Load the previous scrap file, replacing the current drawing</property>
          <signal name="activate" handler="open_scrap_cb"/>
        </object>
        <accelerator key="F6"/>
      </child>
      <child>
        <object class="GtkAction" id="NextScrap">
          <property name="stock_id">gtk-go-forward</property>
          <property name="label" translatable="yes"
            context="Menu|File|">Open Next Scrap</property>
          <property name="tooltip" translatable="yes"
            >Load the next scrap file, replacing the current drawing</property>
          <signal name="activate" handler="open_scrap_cb"/>
        </object>
        <accelerator key="F7"/>
      </child>
    </object><!-- /FileActions -->
  </child>
  <child>
    <object class="GtkActionGroup" id="DocumentActions">
      <!-- Actions affecting the current document -->
      <!-- Undo stack -->
      <child>
        <object class="GtkAction" id="Undo">
          <property name="stock_id">gtk-undo</property>
          <signal name="activate" handler="undo_cb"/>
        </object>
        <accelerator key="z"/>
      </child>
      <child>
        <object class="GtkAction" id="Redo">
          <property name="stock_id">gtk-redo</property>
          <signal name="activate" handler="redo_cb"/>
        </object>
        <accelerator key="y"/>
      </child>
      <!-- Brush size -->
      <child>
        <object class="GtkAction" id="Bigger">
          <property name="label" translatable="yes"
            context="Menu|Brush|">Bigger</property>
          <property name="tooltip" translatable="yes"
            >Increase brush radius</property>
          <signal name="activate" handler="brush_bigger_cb"/>
        </object>
        <accelerator key="f"/>
      </child>
      <child>
        <object class="GtkAction" id="Smaller">
          <property name="label" translatable="yes"
            context="Menu|Brush|">Smaller</property>
          <property name="tooltip" translatable="yes"
            >Decrease brush radius</property>
          <signal name="activate" handler="brush_smaller_cb"/>
        </object>
        <accelerator key="d"/>
      </child>
      <!-- Brush opacity -->
      <child>
        <object class="GtkAction" id="MoreOpaque">
          <property name="label" translatable="yes"
            context="Menu|Brush|">Increase Opacity</property>
          <property name="tooltip" translatable="yes"
            >Increase brush opacity</property>
          <signal name="activate" handler="more_opaque_cb"/>
        </object>
        <accelerator key="s"/>
      </child>
      <child>
        <object class="GtkAction" id="LessOpaque">
          <property name="label" translatable="yes"
            context="Menu|Brush|">Decrease Opacity</property>
          <property name="tooltip" translatable="yes"
            >Decrease brush opacity</property>
          <signal name="activate" handler="less_opaque_cb"/>
        </object>
        <accelerator key="a"/>
      </child>
      <!-- Brush painting color -->
      <child>
        <object class="GtkAction" id="Brighter">
          <property name="label" translatable="yes"
            context="Menu|Color|Adjust Color|">Brighter</property>
          <property name="tooltip" translatable="yes"
            >Increase color brightness</property>
          <signal name="activate" handler="brighter_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="Darker">
          <property name="label" translatable="yes"
            context="Menu|Color|Adjust Color|">Darker</property>
          <property name="tooltip" translatable="yes"
            >Decrease color brightness</property>
          <signal name="activate" handler="darker_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="IncreaseHue">
          <property name="label" translatable="yes"
            context="Menu|Color|Adjust Color|">Hue Anticlockwise</property>
          <property name="tooltip" translatable="yes"
            >Rotate color hue anticlockwise</property>
          <signal name="activate" handler="increase_hue_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="DecreaseHue">
          <property name="label" translatable="yes"
            context="Menu|Color|Adjust Color|">Hue Clockwise</property>
          <property name="tooltip" translatable="yes"
            >Rotate color hue clockwise</property>
          <signal name="activate" handler="decrease_hue_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="Purer">
          <property name="label" translatable="yes"
            context="Menu|Color|Adjust Color|">Purer</property>
          <property name="tooltip" translatable="yes"
            >Increase color saturation</property>
          <signal name="activate" handler="purer_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="Grayer">
          <property name="label" translatable="yes"
            context="Menu|Color|Adjust Color|">Grayer</property>
          <property name="tooltip" translatable="yes"
            >Decrease color saturation</property>
          <signal name="activate" handler="grayer_cb"/>
        </object>
      </child>
      <!-- Context (saving and restoring bushes and colours) -->
      <!-- More actions are added by doc.init_context_actions() -->
      <child>
        <object class="GtkAction" id="PickContext">
          <property name="label" translatable="yes"
            context="Menu|Brush|">Pick Stroke and Layer</property>
          <property name="tooltip" translatable="yes"
            >Pick brushstroke: settings and layer</property>
          <property name="stock_id">gtk-jump-to</property>
          <signal name="activate" handler="pick_context_cb"/>
        </object>
        <accelerator key="w"/>
      </child>
      <child>
        <object class="GtkToggleAction" id="ContextRestoreColor">
          <property name="label" translatable="yes"
            context="Menu|Brush|Shortcut Keys|">Restore Color</property>
          <signal name="activate" handler="context_toggle_color_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ContextStore">
          <property name="label" translatable="yes"
            context="Menu|Brush|Shortcut Keys|"
            >Save to Most Recent</property>
          <property name="tooltip" translatable="yes"
            >Save brush to the most recent shortcut</property>
          <signal name="activate" handler="context_cb"/>
        </object>
        <accelerator key="q"/>
      </child>
      <!-- Layers stack manipulation -->
      <!--

        Layer operations in MyPaint are often the equivalent of major editing
        operations in other apps, so some of these get stock_ids.

      -->
      <child>
        <object class="GtkAction" id="ClearLayer">
          <property name="stock_id">gtk-clear</property>
          <property name="label" translatable="yes"
            context="Menu|Layer|">Clear</property>
          <property name="tooltip" translatable="yes"
            >Clear the current layer</property>
          <signal name="activate" handler="clear_layer_cb"/>
        </object>
        <accelerator key="Delete"/>
      </child>
      <child>
        <object class="GtkAction" id="CopyLayer">
          <property name="stock_id">gtk-copy</property>
          <property name="label" translatable="yes"
            context="Menu|Layer|">Copy</property>
          <property name="tooltip" translatable="yes"
            >Copy the current layer to the clipboard</property>
          <signal name="activate" handler="copy_cb"/>
        </object>
        <accelerator key="c" modifiers="GDK_CONTROL_MASK"/>
      </child>
      <child>
        <object class="GtkAction" id="PasteLayer">
          <property name="stock_id">gtk-paste</property>
          <property name="label" translatable="yes"
            context="Menu|Layer|">Paste</property>
          <property name="tooltip" translatable="yes"
            >Replaces the layer with the clipboard's contents</property>
          <signal name="activate" handler="paste_cb"/>
        </object>
        <accelerator key="v" modifiers="GDK_CONTROL_MASK"/>
      </child>
      <child>
        <object class="GtkAction" id="PickLayer">
          <property name="label" translatable="yes"
            context="Menu|Layer|Go to Layer|">At Cursor</property>
          <property name="tooltip" translatable="yes"
            >Choose a layer by picking a brushstroke on it</property>
          <signal name="activate" handler="pick_layer_cb"/>
        </object>
        <accelerator key="h"/>
      </child>
      <child>
        <object class="GtkAction" id="LayerFG">
          <property name="stock_id">gtk-go-up</property>
          <property name="label" translatable="yes"
            context="Menu|Layer|Go to Layer|">Above</property>
          <property name="tooltip" translatable="yes"
            >Go one layer up in the layers stack</property>
          <signal name="activate" handler="layer_fg_cb"/>
        </object>
        <accelerator key="Page_Up"/>
      </child>
      <child>
        <object class="GtkAction" id="LayerBG">
          <property name="stock_id">gtk-go-down</property>
          <property name="label" translatable="yes"
            context="Menu|Layer|Go to Layer|">Below</property>
          <property name="tooltip" translatable="yes"
            >Go one layer down in the layers stack</property>
          <signal name="activate" handler="layer_bg_cb"/>
        </object>
        <accelerator key="Page_Down"/>
      </child>
      <child>
        <object class="GtkAction" id="NewLayerFG">
          <property name="icon-name">gtk-add</property>
          <property name="label" translatable="yes"
            context="Menu|Layer|">New (above)</property>
          <property name="tooltip" translatable="yes"
            >Add a new layer above the current layer</property>
          <signal name="activate" handler="new_layer_cb"/>
        </object>
        <accelerator key="Page_Up" modifiers="GDK_CONTROL_MASK"/>
      </child>
      <child>
        <object class="GtkAction" id="NewLayerBG">
          <property name="label" translatable="yes"
            context="Menu|Layer|">New (below)</property>
          <property name="tooltip" translatable="yes"
            >Add a new layer below the current layer</property>
          <signal name="activate" handler="new_layer_cb"/>
        </object>
        <accelerator key="Page_Down" modifiers="GDK_CONTROL_MASK"/>
      </child>
      <child>
        <object class="GtkAction" id="MergeLayer">
          <!-- FIXME: need a better icon -->
          <property name="icon-name">gtk-dnd-multiple</property>
          <property name="label" translatable="yes"
            context="Menu|Layer|">Merge Down</property>
          <property name="tooltip" translatable="yes"
            >Merge layer with the one beneath it</property>
          <signal name="activate" handler="merge_layer_cb"/>
        </object>
        <accelerator key="Delete" modifiers="GDK_CONTROL_MASK"/>
      </child>
      <child>
        <object class="GtkAction" id="RemoveLayer">
          <property name="stock_id">gtk-delete</property>
          <property name="label" translatable="yes"
            context="Menu|Layer|">Delete</property>
          <property name="tooltip" translatable="yes"
            >Delete the current layer</property>
          <signal name="activate" handler="remove_layer_cb"/>
        </object>
        <accelerator key="Delete" modifiers="GDK_SHIFT_MASK"/>
      </child>
      <child>
        <object class="GtkAction" id="ConvertLayerToNormalMode">
          <property name="label" translatable="yes"
            context="Menu|Layer">Convert to Normal mode</property>
          <signal name="activate" handler="convert_layer_to_normal_mode_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="IncreaseLayerOpacity">
          <property name="label" translatable="yes"
            context="Menu|Layer|Opacity|">Increase</property>
          <signal name="activate" handler="layer_increase_opacity"/>
        </object>
        <accelerator key="p" modifiers="GDK_SHIFT_MASK"/>
      </child>
      <child>
        <object class="GtkAction" id="DecreaseLayerOpacity">
          <property name="label" translatable="yes"
            context="Menu|Layer|Opacity|">Decrease</property>
          <signal name="activate" handler="layer_decrease_opacity"/>
        </object>
        <accelerator key="o" modifiers="GDK_SHIFT_MASK"/>
      </child>
      <child>
        <object class="GtkAction" id="RaiseLayerInStack">
          <property name="label" translatable="yes"
            context="Menu|Layer|">Raise</property>
          <property name="tooltip" translatable="yes"
            >Raise the current layer one step in the layers stack</property>
          <property name="icon-name">gtk-go-up</property>
          <signal name="activate" handler="move_layer_in_stack_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="LowerLayerInStack">
          <property name="label" translatable="yes"
            context="Menu|Layer|">Lower</property>
          <property name="tooltip" translatable="yes"
            >Lower the current layer one step in the layers stack</property>
          <property name="icon-name">gtk-go-down</property>
          <signal name="activate" handler="move_layer_in_stack_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="DuplicateLayer">
          <property name="label" translatable="yes"
            context="Menu|Layer|">Duplicate</property>
          <property name="tooltip" translatable="yes"
            >Make an exact duplicate of the current layer</property>
          <property name="icon-name">mypaint-layer-duplicate</property>
          <signal name="activate" handler="duplicate_layer_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="RenameLayer">
          <property name="label" translatable="yes"
            context="Menu|Layer|">Rename...</property>
          <property name="tooltip" translatable="yes"
            >Enter a new name for the current layer</property>
          <signal name="activate" handler="rename_layer_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkToggleAction" id="LayerLockedToggle">
          <property name="label" translatable="yes"
            context="Menu|Layer|">Locked</property>
          <property name="tooltip" translatable="yes"
            >The current layer's locked state: locked layers cannot be drawn to</property>
          <signal name="activate" handler="layer_lock_toggle_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkToggleAction" id="LayerVisibleToggle">
          <property name="label" translatable="yes"
            context="Menu|Layer|">Visible</property>
          <property name="tooltip" translatable="yes"
            >The current layer's visibility state</property>
          <signal name="activate" handler="layer_visible_toggle_cb"/>
        </object>
      </child>



      <!-- View manipulation -->
      <child>
        <object class="GtkAction" id="ResetView">
          <property name="icon-name">mypaint-view-100</property>
          <property name="label" translatable="yes"
            context="Menu|View|">Reset and Center</property>
          <property name="tooltip" translatable="yes"
            >Reset Zoom, Rotation and Mirroring, and recenter the document</property>
          <signal name="activate" handler="reset_view_cb"/>
        </object>
        <accelerator key="F12"/>
      </child>
      <child>
        <object class="GtkAction" id="Fit">
          <property name="icon-name">mypaint-view-fit</property>
          <property name="label" translatable="yes"
            context="Menu|View|">Fit</property>
          <property name="tooltip" translatable="yes"
              >Zoom to fit the document, and recenter</property>
          <signal name="activate" handler="reset_view_cb"/>
        </object>
        <accelerator key="F10"/>
      </child>
      <child>
        <object class="GtkAction" id="ResetMenu">
          <property name="label" translatable="yes"
            context="Menu|View|">Reset</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ResetZoom">
          <property name="icon-name">mypaint-view-100</property>
          <property name="label" translatable="yes"
            context="Menu|View|Reset|">Zoom</property>
          <signal name="activate" handler="reset_view_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ResetRotation">
          <property name="label" translatable="yes"
            context="Menu|View|Reset|">Rotation</property>
          <signal name="activate" handler="reset_view_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ResetMirror">
          <property name="label" translatable="yes"
            context="Menu|View|Reset|">Mirror</property>
          <signal name="activate" handler="reset_view_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ZoomIn">
          <property name="icon-name">mypaint-view-zoom-more</property>
          <property name="label" translatable="yes"
            context="Menu|View|Adjust View|">Zoom In</property>
          <property name="tooltip" translatable="yes"
            >Increase magnification</property>
          <signal name="activate" handler="zoom_cb"/>
        </object>
        <accelerator key="period"/>
      </child>
      <child>
        <object class="GtkAction" id="ZoomOut">
          <property name="icon-name">mypaint-view-zoom-less</property>
          <property name="label" translatable="yes"
            context="Menu|View|Adjust View|">Zoom Out</property>
          <property name="tooltip" translatable="yes"
            >Decrease magnification</property>
          <signal name="activate" handler="zoom_cb"/>
        </object>
        <accelerator key="comma"/>
      </child>
      <child>
        <object class="GtkAction" id="RotateLeft">
          <property name="stock_id">mypaint-view-rotate-left</property>
          <property name="label" translatable="yes"
            context="Menu|View|Adjust View|">Rotate Counterclockwise</property>
          <property name="tooltip" translatable="yes"
            >Rotate the view counterclockwise</property>
          <signal name="activate" handler="rotate_cb"/>
        </object>
        <accelerator key="Left" modifiers="GDK_CONTROL_MASK"/>
      </child>
      <child>
        <object class="GtkAction" id="RotateRight">
          <property name="stock_id">mypaint-view-rotate-right</property>
          <property name="label" translatable="yes"
            context="Menu|View|Adjust View|">Rotate Clockwise</property>
          <property name="tooltip" translatable="yes"
              >Rotate the view clockwise</property>
          <signal name="activate" handler="rotate_cb"/>
        </object>
        <accelerator key="Right" modifiers="GDK_CONTROL_MASK"/>
      </child>
      <child>
        <object class="GtkAction" id="MirrorHorizontal">
          <property name="stock_id">mypaint-view-mirror-horizontal</property>
          <property name="label" translatable="yes"
            context="Menu|View|Adjust View|">Mirror Horizontal</property>
          <property name="tooltip" translatable="yes"
            >Flip the view left to right</property>
          <signal name="activate" handler="mirror_horizontal_cb"/>
        </object>
        <accelerator key="i"/>
      </child>
      <child>
        <object class="GtkAction" id="MirrorVertical">
          <property name="stock_id">mypaint-view-mirror-vertical</property>
          <property name="label" translatable="yes"
            context="Menu|View|Adjust View|">Mirror Vertical</property>
          <property name="tooltip" translatable="yes"
            >Flip the view upside-down</property>
          <signal name="activate" handler="mirror_vertical_cb"/>
        </object>
        <accelerator key="u"/>
      </child>
      <child>
        <object class="GtkAction" id="SoloLayer">
          <property name="label" translatable="yes"
            context="Menu|View|">Layer Solo</property>
          <signal name="activate" handler="solo_layer_cb"/>
        </object>
        <accelerator key="Home"/>
      </child>
      <child>
        <object class="GtkAction" id="ToggleAbove">
          <property name="label" translatable="yes"
            context="Menu|View|">Hide Layers Above Current</property>
          <signal name="activate" handler="toggle_layers_above_cb"/>
        </object>
        <accelerator key="End"/>
      </child>
      <!-- Editing modes -->
      <child>
        <object class="GtkAction" id="BlendMode">
          <property name="stock_id">mypaint-brush-blend-modes</property>
          <property name="label" translatable="yes"
            context="Menu|Brush|">Blend Mode</property>
        </object>
      </child>
      <child>
        <object class="GtkToggleAction" id="Symmetry">
          <property name="stock_id">mypaint-symmetry-mode</property>
          <property name="label" translatable="yes"
            context="Menu|Edit|">Symmetrical Painting</property>
          <property name="tooltip" translatable="yes"
            >Mirrors all strokes drawn around the vertical axis</property>
          <signal name="activate" handler="symmetry_action_toggled_cb"/>
        </object>
        <accelerator key="i" modifiers="GDK_SHIFT_MASK"/>
      </child>
      <!-- Debugging toggles -->
      <child>
        <object class="GtkToggleAction" id="PrintInputs">
          <property name="label" translatable="yes"
            context="Menu|Help|Debug|">Print Brush Input Values to Console</property>
          <signal name="activate" handler="print_inputs_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkToggleAction" id="VisualizeRendering">
          <property name="label" translatable="yes"
            context="Menu|Help|Debug|">Visualize Rendering</property>
          <property name="tooltip" translatable="yes"
            >Show rendering updates on-screen, for debugging</property>
          <signal name="activate" handler="visualize_rendering_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkToggleAction" id="NoDoubleBuffereing">
          <property name="label" translatable="yes"
            context="Menu|Help|Debug|">Disable GTK Double Buffering</property>
          <signal name="activate" handler="no_double_buffering_cb"/>
        </object>
      </child>
    </object><!-- /DocumentActions -->
  </child>
  <child>
    <object class="GtkActionGroup" id="WindowActions">
      <!-- Actions affecting the application window and document view -->
      <!-- Menu: File -->
      <child>
        <object class="GtkAction" id="FileMenu">
          <property name="label" translatable="yes"
            context="Menu|">File</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="Quit">
          <property name="label" translatable="yes"
            context="Menu|File|">Quit</property>
          <property name="stock_id">gtk-quit</property>
          <signal name="activate" handler="quit_cb"/>
        </object>
        <accelerator key="q" modifiers="GDK_CONTROL_MASK"/>
      </child>
      <child>
        <object class="GtkToggleAction" id="FrameToggle">
          <property name="label" translatable="yes"
            context="Menu|File|">Frame Enabled</property>
          <property name="icon-name">mypaint-frame</property>
          <signal name="activate" handler="toggle_frame_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="EditMenu">
          <property name="label" translatable="yes"
            context="Menu|">Edit</property>
        </object>
      </child>
      <!-- Menu: Color -->
      <child>
        <object class="GtkAction" id="ColorMenu">
          <property name="label" translatable="yes"
            context="Menu|">Color</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ColorAdjustmentsMenu">
          <property name="label" translatable="yes"
            context="Menu|Color|">Adjust Color</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ColorHistoryPopup">
          <property name="label" translatable="yes"
            context="Menu|Color|">Color History</property>
          <signal name="activate" handler="popup_cb"/>
        </object>
        <accelerator key="x"/>
      </child>
      <child>
        <object class="GtkAction" id="ColorChangerCrossedBowlPopup">
          <property name="label" translatable="yes"
            context="Menu|Color|">Change Color</property>
          <property name="tooltip" translatable="yes"
            >Color changer popup (crossed bowl)</property>
          <signal name="activate" handler="popup_cb"/>
        </object>
        <accelerator key="v"/>
      </child>
      <child>
        <object class="GtkAction" id="ColorChangerWashPopup">
          <property name="label" translatable="yes"
            context="Menu|Color|">Change Color (wash)</property>
          <property name="tooltip" translatable="yes"
            >Color changer popup (wash)</property>
          <signal name="activate" handler="popup_cb"/>
        </object>
        <accelerator key="c"/>
      </child>
      <child>
        <object class="GtkAction" id="ColorRingPopup">
          <property name="label" translatable="yes"
            context="Menu|Color|">Change Color (ring)</property>
          <property name="tooltip" translatable="yes"
            >Color changer popup (concentric rings)</property>
          <signal name="activate" handler="popup_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ColorDetailsDialog">
          <property name="label" translatable="yes"
            context="Menu|Color|">Color Details</property>
          <property name="tooltip" translatable="yes"
            >Color details dialog with text entry</property>
          <signal name="activate" handler="color_details_dialog_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="PaletteNext">
          <property name="label" translatable="yes"
            context="Menu|Color">Next Palette Color</property>
          <property name="tooltip" translatable="yes"
            >Next color in the palette</property>
          <signal name="activate" handler="palette_next_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="PalettePrev">
          <property name="label" translatable="yes"
            context="Menu|Color|">Previous Palette Color</property>
          <property name="tooltip" translatable="yes"
            >Previous color in the palette</property>
          <signal name="activate" handler="palette_prev_cb"/>
        </object>
      </child>
      <!-- Layer and Scratchpad menus -->
      <child>
        <object class="GtkAction" id="LayerMenu">
          <property name="label" translatable="yes"
            context="Menu|">Layer</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="LayerOpacityMenu">
          <property name="label" translatable="yes"
            context="Menu|Layer|">Opacity</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="LayerGoMenu">
          <property name="label" translatable="yes"
            context="Menu|Layer|">Go to Layer</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ScratchMenu">
          <property name="label" translatable="yes"
            context="Menu|">Scratchpad</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ScratchNew">
          <property name="label" translatable="yes"
            context="Menu|Scratchpad|">New</property>
          <property name="icon-name">gtk-new</property>
          <signal name="activate" handler="new_scratchpad_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ScratchLoad">
          <property name="label" translatable="yes"
            context="Menu|Scratchpad|">Open...</property>
          <property name="icon-name">gtk-open</property>
          <signal name="activate" handler="load_scratchpad_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ScratchSaveNow">
          <property name="label" translatable="yes"
            context="Menu|Scratchpad|">Save</property>
          <property name="icon-name">gtk-save</property>
          <signal name="activate" handler="save_current_scratchpad_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ScratchSaveAs">
          <property name="label" translatable="yes"
            context="Menu|Scratchpad|">Save As...</property>
          <property name="icon-name">gtk-save-as</property>
          <signal name="activate" handler="save_as_scratchpad_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ScratchRevert">
          <property name="label" translatable="yes"
            context="Menu|Scratchpad|">Revert</property>
          <property name="icon-name">gtk-refresh</property>
          <signal name="activate" handler="revert_current_scratchpad_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ScratchSaveAsDefault">
          <property name="label" translatable="yes"
            context="Menu|Scratchpad|">Save as Default</property>
          <signal name="activate" handler="save_scratchpad_as_default_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ScratchClearDefault">
          <property name="label" translatable="yes"
            context="Menu|Scratchpad|">Clear Default</property>
          <signal name="activate" handler="clear_default_scratchpad_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ScratchCopyBackground">
          <property name="label" translatable="yes"
           context="Menu|Scratchpad|">Use Main Background</property>
          <signal name="activate" handler="scratchpad_copy_background_cb"/>
        </object>
      </child>
      <!-- Scratchpad palette-rendering submenu actions -->
      <child>
        <object class="GtkAction" id="ScratchPaletteOptions"><!-- Submenu -->
          <property name="label" translatable="yes"
            context="Menu|Scratchpad|">Color Dabs</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ScratchLoadPalette">
          <property name="label" translatable="yes"
            context="Menu|Scratchpad|Color Dabs|">Render from File...</property>
          <signal name="activate" handler="draw_palette_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ScratchDrawSatPalette">
          <property name="label" translatable="yes"
            context="Menu|Scratchpad|Color Dabs|">Saturation Spread for Current Color</property>
          <signal name="activate" handler="draw_sat_spectrum_cb"/>
        </object>
      </child>
      <!-- Brush menu actions -->
      <child>
        <object class="GtkAction" id="BrushMenu">
          <property name="label" translatable="yes"
            context="Menu|Brush|">Brush</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ContextMenu">
          <property name="label" translatable="yes"
            context="Menu|Brush|">Shortcut Keys</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ContextHelp">
          <property name="label" translatable="yes"
            context="Menu|Brush|Shortcut Keys|">Help</property>
          <property name="icon-name">gtk-help</property>
          <signal name="activate" handler="show_infodialog_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="BrushChooserPopup">
          <property name="label" translatable="yes"
            context="Menu|Brush|">Change Brush</property>
          <property name="icon-name">mypaint-tool-brush</property>
          <signal name="activate" handler="brush_chooser_popup_cb"/>
        </object>
        <accelerator key="b"/>
      </child>
      <child>
        <object class="GtkAction" id="DownloadBrushPack">
          <property name="label" translatable="yes"
            context="Menu|Brush|">Get More Brushes...</property>
          <signal name="activate" handler="download_brush_pack_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ImportBrushPack">
          <property name="label" translatable="yes"
            context="Menu|Brush|">Import Brushes...</property>
          <property name="icon-name">gtk-open</property>
          <signal name="activate" handler="import_brush_pack_cb"/>
        </object>
      </child>
      <!-- Help/documentation menu -->
      <child>
        <object class="GtkAction" id="HelpMenu">
          <property name="label" translatable="yes"
            context="Menu|Help|">Help</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="Docu">
          <property name="label" translatable="yes"
            context="Menu|Help|">Where is the Documentation?</property>
          <property name="icon-name">gtk-info</property>
          <signal name="activate" handler="show_infodialog_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ShortcutHelp">
          <property name="label" translatable="yes"
            context="Menu|Help|">Change the Keyboard Shortcuts?</property>
          <property name="icon-name">gtk-info</property>
          <signal name="activate" handler="show_infodialog_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="About">
          <property name="label" translatable="yes"
            context="Menu|Help|">About MyPaint</property>
          <property name="icon-name">gtk-about</property>
          <signal name="activate" handler="about_cb"/>
        </object>
      </child>
      <!-- Debugging menu -->
      <child>
        <object class="GtkAction" id="DebugMenu">
          <property name="label" translatable="yes"
            context="Menu|Help|">Debug</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="PrintMemoryLeak">
          <property name="label" translatable="yes"
            context="Menu|Help|Debug|">Print Memory Leak Info to Console (Slow!)</property>
          <signal name="activate" handler="print_memory_leak_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="RunGarbageCollector">
          <property name="label" translatable="yes"
            context="Menu|Help|Debug|">Run Garbage Collector Now</property>
          <signal name="activate" handler="run_garbage_collector_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="StartProfiling">
          <!-- FIXME: convert to a ToggleAction -->
          <property name="label" translatable="yes"
            context="Menu|Help|Debug|">Start/Stop Python Profiling (cProfile)</property>
          <property name="icon-name">gtk-execute</property>
          <signal name="activate" handler="start_profiling_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="GtkInputDialog">
          <!-- FIXME: convert to a ToggleAction -->
          <property name="label" translatable="yes"
            context="Menu|Help|Debug|">GTK Input Device Dialog</property>
          <signal name="activate" handler="gtk_input_dialog_cb"/>
        </object>
      </child>
      <!-- View menu and its submenus -->
      <child>
        <object class="GtkAction" id="ViewMenu">
          <property name="label" translatable="yes"
             context="Menu|">View</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="MenuishBarMenu">
          <property name="label" translatable="yes"
            context="Menu|View|">Toolbars</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="FeedbackMenu">
          <property name="label" translatable="yes"
            context="Menu|View|">Feedback</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ViewAdjustmentsMenu">
          <property name="label" translatable="yes"
           context="Menu|View|">Adjust View</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="ShowPopupMenu">
          <property name="label" translatable="yes"
            context="Menu|View|">Popup Menu</property>
          <signal name="activate" handler="popupmenu_show_cb"/>
        </object>
        <accelerator key="Menu"/>
      </child>
      <child>
        <object class="GtkAction" id="Fullscreen">
          <property name="stock_id">gtk-fullscreen</property>
          <signal name="activate" handler="fullscreen_cb"/>
        </object>
        <accelerator key="F11"/>
      </child>
      <!-- Subwindow hiding and showing -->
      <child>
        <object class="GtkToggleAction" id="PreferencesWindow">
          <property name="stock_id">gtk-preferences</property>
          <property name="label" translatable="yes"
            context="Menu|Edit|">Preferences</property>
          <signal name="activate" handler="toggle_window_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkToggleAction" id="InputTestWindow">
          <property name="label" translatable="yes">Test Input Devices</property>
          <signal name="activate" handler="toggle_window_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkToggleAction" id="FrameWindow">
          <property name="label" translatable="yes">Document Frame...</property>
          <property name="stock_id">gtk-page-setup</property>
          <property name="tooltip"
            translatable="yes">Set and adjust a frame for the canvas</property>
          <signal name="activate" handler="toggle_window_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkToggleAction" id="LayersWindow">
          <property name="stock_id">mypaint-tool-layers</property>
          <property name="label" translatable="yes">Layers Window</property>
          <property name="tooltip"
            translatable="yes">Edit and rearrange layers</property>
          <signal name="activate" handler="toggle_window_cb"/>
        </object>
        <accelerator key="l"/>
      </child>
      <child>
        <object class="GtkToggleAction" id="BackgroundWindow">
          <property name="icon-name">gtk-page-setup</property>
          <property name="label" translatable="yes"
            context="Menu|Layer|">Choose Background</property>
          <property name="tooltip" translatable="yes"
            >Choose a background image</property>
          <signal name="activate" handler="toggle_window_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkToggleAction" id="BrushSelectionWindow">
          <property name="stock_id">mypaint-tool-brush</property>
          <property name="label" translatable="yes"
            context="Menu|Brush|">Brushes Window</property>
          <property name="tooltip" translatable="yes"
            >Select brushes, and edit brush sets</property>
          <signal name="activate" handler="toggle_window_cb"/>
        </object>
        <accelerator key="b" modifiers="GDK_SHIFT_MASK"/>
      </child>
      <child>
        <object class="GtkToggleAction" id="BrushSettingsWindow">
          <property name="stock_id">gtk-properties</property>
          <property name="label" translatable="yes"
            context="Menu|Brush|">Settings Window</property>
          <property name="tooltip" translatable="yes"
            >Edit the active brush's settings</property>
          <signal name="activate" handler="toggle_window_cb"/>
        </object>
        <accelerator key="b" modifiers="GDK_CONTROL_MASK"/>
      </child>
      <child>
        <object class="GtkToggleAction" id="ColorWindow">
          <property name="stock_id">mypaint-tool-color</property>
          <property name="label" translatable="yes"
            context="Menu|Color|">Colors Window</property>
          <property name="tooltip" translatable="yes"
            >Set the color used for painting</property>
          <signal name="activate" handler="toggle_window_cb"/>
        </object>
        <accelerator key="c" modifiers="GDK_SHIFT_MASK"/>
      </child>
      <child>
        <object class="GtkToggleAction" id="ScratchWindow">
          <property name="stock_id">mypaint-tool-scratchpad</property>
          <property name="label" translatable="yes"
            context="Menu|Scratchpad|">Scratchpad Window</property>
          <property name="tooltip" translatable="yes"
            >Mix colors and make sketches on separate scrap pages</property>
          <signal name="activate" handler="toggle_window_cb"/>
        </object>
        <accelerator key="s" modifiers="GDK_SHIFT_MASK"/>
      </child>
      <child>
        <object class="GtkToggleAction" id="ToggleSubwindows">
          <property name="label" translatable="yes"
            context="Menu|View|">Subwindows</property>
          <property name="tooltip" translatable="yes"
            >Show subwindows</property>
          <property name="active">1</property>
          <signal name="activate" handler="toggle_subwindows_cb"/>
        </object>
        <accelerator key="Tab"/>
      </child>
      <child>
        <object class="GtkToggleAction" id="ToggleScaleFeedback">
          <property name="label" translatable="yes"
            context="Menu|View|Feedback|">Zoom Level</property>
          <property name="tooltip" translatable="yes"
            >Show the zoom level when zooming in or out</property>
          <signal name="activate" handler="toggle_scale_feedback_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkToggleAction" id="ToggleLastPosFeedback">
          <property name="label" translatable="yes"
            context="Menu|View|Feedback|">Last Painting Position</property>
          <property name="tooltip" translatable="yes"
            >Show where strokes end</property>
          <signal name="activate" handler="toggle_last_pos_feedback_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkToggleAction" id="ToggleSymmetryFeedback">
          <property name="label" translatable="yes"
            context="Menu|View|Feedback|">Axis of Symmetry</property>
          <property name="tooltip" translatable="yes"
            >Show the symmetry axis</property>
          <signal name="activate" handler="toggle_symmetry_feedback_cb"/>
        </object>
      </child>
      <!-- UI control: menu bar and toolbar -->
      <child>
        <object class="GtkRadioAction" id="MenuishBarRadioMenubar">
          <property name="label" translatable="yes"
            context="Menu|View|Toolbars|">Menubar Only</property>
          <property name="tooltip" translatable="yes"
            >Show menu bar</property>
          <property name="value">1</property>
          <signal name="changed" handler="on_menuishbar_radio_change"/>
        </object>
      </child>
      <child>
        <object class="GtkRadioAction" id="MenuishBarRadioMainToolbar">
          <property name="label" translatable="yes"
            context="Menu|View|Toolbars|">Toolbar Only</property>
          <property name="tooltip" translatable="yes"
            >Show toolbar</property>
          <property name="group">MenuishBarRadioMenubar</property>
          <property name="value">2</property>
        </object>
      </child>
      <child>
        <object class="GtkRadioAction" id="MenuishBarRadioMenubarAndMainToolbar">
          <property name="label" translatable="yes"
            context="Menu|View|Toolbars|">Both</property>
          <property name="tooltip" translatable="yes"
            >Show both the menu bar and the toolbar</property>
          <property name="group">MenuishBarRadioMainToolbar</property>
          <property name="value">3</property>
        </object>
      </child>
    </object><!-- /WindowActions -->
  </child>
  <child>
    <object class="GtkActionGroup" id="ModeStackActions">
      <!-- Actions which affect the ModeStack of the primary document -->
      <child>
        <object class="GtkAction" id="CurrentModeMenu">
          <property name="label" translatable="yes"
            context="Menu|Edit|">Current Mode</property>
        </object>
      </child>
      <child>
        <object class="GtkRadioAction" id="SwitchableFreehandMode">
          <property name="label" translatable="yes"
            context="Menu|Edit|Current Mode|">Freehand Drawing</property>
          <property name="short-label" translatable="yes"
            context="Toolbar|">Freehand</property>
          <property name="icon-name">mypaint-line-mode-freehand</property>
          <property name="tooltip" translatable="yes"
            >Freehand Drawing: draw and paint freely, without geometric constraints</property>
          <property name="value">1</property>
          <property name="current-value">1</property>
          <signal name="changed" handler="mode_radioaction_changed_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="FlipSwitchableFreehandMode">
          <property name="label" translatable="yes"
            context="Menu|Edit|">Freehand Drawing</property>
          <property name="icon-name">mypaint-line-mode-freehand</property>
          <signal name="activate" handler="mode_flip_action_activated_cb"/>
        </object>
        <accelerator key="p"/><!-- "pencil", or "paint" -->
      </child>
      <child>
        <object class="GtkRadioAction" id="PanViewMode">
          <property name="label" translatable="yes"
            context="Menu|Edit|Current Mode|">Scroll View</property>
          <property name="short-label" translatable="yes"
            context="Toolbar|">Scroll</property>
          <property name="icon-name">mypaint-view-pan</property>
          <property name="tooltip" translatable="yes"
            >Scroll View: move around the canvas by clicking and dragging</property>
          <property name="group">SwitchableFreehandMode</property>
          <property name="value">2</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="FlipPanViewMode">
          <property name="label" translatable="yes"
            context="Menu|View|">Scroll</property>
          <property name="icon-name">mypaint-view-pan</property>
          <signal name="activate" handler="mode_flip_action_activated_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkRadioAction" id="RotateViewMode">
          <property name="label" translatable="yes"
            context="Menu|Edit|Current Mode|">Rotate View</property>
          <property name="short-label" translatable="yes"
            context="Toolbar|">Rotate</property>
          <property name="icon-name">mypaint-view-rotate</property>
          <property name="tooltip" translatable="yes"
            >Rotate View: turn the canvas by clicking and dragging</property>
          <property name="group">PanViewMode</property>
          <property name="value">3</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="FlipRotateViewMode">
          <property name="label" translatable="yes"
            context="Menu|View|">Rotate</property>
          <property name="icon-name">mypaint-view-rotate</property>
          <signal name="activate" handler="mode_flip_action_activated_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkRadioAction" id="ZoomViewMode">
          <property name="label" translatable="yes"
            context="Menu|Edit|Current Mode|">Zoom View</property>
          <property name="short-label" translatable="yes"
            context="Toolbar|">Zoom</property>
          <property name="icon-name">mypaint-view-zoom</property>
          <property name="tooltip" translatable="yes"
            >Zoom View: zoom the canvas by clicking and dragging</property>
          <property name="group">RotateViewMode</property>
          <property name="value">3</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="FlipZoomViewMode">
          <property name="label" translatable="yes"
            context="Menu|View|">Zoom</property>
          <property name="icon-name">mypaint-view-zoom</property>
          <signal name="activate" handler="mode_flip_action_activated_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkRadioAction" id="StraightMode">
          <property name="label" translatable="yes"
            context="Menu|Edit|Current Mode|">Lines and Curves</property>
          <property name="short-label" translatable="yes"
            context="Toolbar|">Lines</property>
          <property name="icon-name">mypaint-line-mode-straight</property>
          <property name="tooltip" translatable="yes"
              >Lines and Curves: draw straight or curved lines.
Ctrl: constrain angle.
Shift: add curves to the last line.</property>
          <property name="group">ZoomViewMode</property>
          <property name="value">4</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="FlipStraightMode">
          <property name="label" translatable="yes"
            context="Menu|Edit|">Lines and Curves</property>
          <property name="icon-name">mypaint-line-mode-straight</property>
          <signal name="activate" handler="mode_flip_action_activated_cb"/>
        </object>
        <accelerator key="k"/> <!-- Lines and, um, Kurves. -->
      </child>
      <child>
        <object class="GtkRadioAction" id="SequenceMode">
          <property name="label" translatable="yes"
            context="Menu|Edit|Current Mode|">Connected Lines</property>
          <property name="short-label" translatable="yes"
            context="Toolbar|">Line Seq.</property>
          <property name="icon-name">mypaint-line-mode-sequence</property>
          <property name="tooltip" translatable="yes"
            >Connected Lines: draw sequences of straight or curved lines.
Ctrl: constrain angle.
Shift: add curves to the last line.</property>
          <property name="group">StraightMode</property>
          <property name="value">5</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="FlipSequenceMode">
          <property name="label" translatable="yes"
            context="Menu|Edit|">Connected Lines</property>
          <property name="icon-name">mypaint-line-mode-sequence</property>
          <signal name="activate" handler="mode_flip_action_activated_cb"/>
        </object>
        <accelerator key="j"/> <!-- next to k, on my keyboard -->
      </child>
      <child>
        <object class="GtkRadioAction" id="EllipseMode">
          <property name="label" translatable="yes"
            context="Menu|Edit|Current Mode|">Ellipses and Circles</property>
          <property name="short-label" translatable="yes"
            context="Toolbar|">Ellipse</property>
          <property name="icon-name">mypaint-line-mode-ellipse</property>
          <property name="tooltip" translatable="yes"
            >Ellipses and Circles: draw whole circles and ellipses.
Shift: rotate.
Ctrl: constrain ratio.
Ctrl+Shift: constrain angle.</property>
          <property name="group">SequenceMode</property>
          <property name="value">6</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="FlipEllipseMode">
          <property name="label" translatable="yes"
            context="Menu|Edit|">Ellipses and Circles</property>
          <property name="icon-name">mypaint-line-mode-ellipse</property>
          <signal name="activate" handler="mode_flip_action_activated_cb"/>
        </object>
        <accelerator key="o"/> <!-- *looks* like a circle -->
      </child>
      <child>
        <object class="GtkRadioAction" id="LayerMoveMode">
          <property name="label" translatable="yes"
            context="Menu|Edit|Current Mode|">Move Layer</property>
          <property name="icon-name">mypaint-tool-move-layer</property>
          <property name="tooltip" translatable="yes"
            >Move Layer: reposition the current layer on the canvas</property>
          <property name="group">EllipseMode</property>
          <property name="value">7</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="FlipLayerMoveMode">
          <property name="label" translatable="yes"
            context="Menu|Layer|">Move</property>
          <property name="icon-name">mypaint-tool-move-layer</property>
          <signal name="activate" handler="mode_flip_action_activated_cb"/>
        </object>
      </child>
      <child>
        <object class="GtkRadioAction" id="FrameEditMode">
          <property name="label" translatable="yes"
            context="Menu|Edit|Current Mode|">Edit Frame</property>
          <property name="short-label" translatable="yes"
            context="Toolbar|">Frame</property>
          <property name="icon-name">mypaint-frame</property>
          <property name="tooltip" translatable="yes"
            >Edit Frame: define a frame around the document to give it a finite size. The frame is used when exporting.</property>
          <property name="group">LayerMoveMode</property>
          <property name="value">8</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="FlipFrameEditMode">
          <property name="label" translatable="yes"
            context="Menu|File|">Edit Frame</property>
          <property name="icon-name">mypaint-frame</property>
          <signal name="activate" handler="mode_flip_action_activated_cb"/>
        </object>
      </child>

      <child>
        <object class="GtkRadioAction" id="ColorPickMode">
          <property name="label" translatable="yes"
            context="Menu|Color|">Pick Color</property>
             <!--
              FIXME: faked context due to string freeze
                     should be set to "Menu|Edit|Current Mode|"
              -->
          <property name="icon-name">gtk-color-picker</property>
          <property name="tooltip" translatable="yes"
            >Pick a color from the screen</property>
          <property name="group">FrameEditMode</property>
          <property name="value">9</property>
        </object>
      </child>
      <child>
        <object class="GtkAction" id="FlipColorPickMode">
          <property name="label" translatable="yes"
            context="Menu|Color|">Pick Color</property>
          <property name="icon-name">gtk-color-picker</property>
          <signal name="activate" handler="mode_flip_action_activated_cb"/>
        </object>
        <accelerator key="r"/>
      </child>


    </object><!-- /ModeStackActions -->
  </child>
</object><!-- /app_ui_manager -->

</interface>
