Commit f70e9b0
Layer label
Changed files (11)
modifiedlibbirdfont/BackgroundTools.valamodifiedlibbirdfont/DrawingTools.valamodifiedlibbirdfont/Expander.valamodifiedlibbirdfont/Glyph.valamodifiedlibbirdfont/LabelTool.valamodifiedlibbirdfont/Layer.valaaddedlibbirdfont/LayerLabel.valamodifiedlibbirdfont/MoveTool.valamodifiedlibbirdfont/Renderer/TextArea.valamodifiedlibbirdfont/Toolbox.valamodifiedresources/icons.bf
Diff
@@ -247,7 +247,7 @@ public class BackgroundTools : ToolCollection { MainWindow.get_toolbox ().update_expanders (); set_default_canvas ();- Toolbox.redraw_tool_box ();+ image_selection.redraw (); GlyphCanvas.redraw (); return false; });@@ -26,6 +26,8 @@ public class DrawingTools : ToolCollection { public static Expander grid_expander; Expander shape_tools; public static Expander draw_tool_modifiers;+ public static Expander layer_tools;+ public static Expander layer_settings; public static Expander stroke_expander; public static Expander zoombar_tool; public static Expander guideline_tools;@@ -46,6 +48,7 @@ public class DrawingTools : ToolCollection { public static TrackTool track_tool; public static BackgroundTool move_background; public static Tool move_canvas;+ public static Tool add_layer; static Tool quadratic_points; static Tool cubic_points;@@ -107,6 +110,8 @@ public class DrawingTools : ToolCollection { draw_tools = new Expander (t_("Drawing Tools")); draw_tool_modifiers = new Expander (t_("Control Point"));+ layer_tools = new Expander ();+ layer_settings = new Expander (t_("Layers")); stroke_expander = new Expander (t_("Stroke")); shape_tools = new Expander (t_("Geometrical Shapes")); zoombar_tool = new Expander (t_("Zoom"));@@ -179,7 +184,7 @@ public class DrawingTools : ToolCollection { update_drawing_and_background_tools (self); }); draw_tools.add_tool (move_canvas);- + // Tools on android // Delete key delete_button = new Tool ("delete_button", t_("Delete"));@@ -775,6 +780,13 @@ public class DrawingTools : ToolCollection { draw_tool_modifiers.add_tool (delete_background); + add_layer = new Tool ("add_layer", t_("Add layer"));+ add_layer.select_action.connect ((self) => {+ MainWindow.get_current_glyph ().add_new_layer ();+ update_layers ();+ });+ layer_settings.add_tool (add_layer);+ // add stroke to path add_stroke = new Tool ("apply_stroke", t_("Apply stroke")); add_stroke.select_action.connect ((self) => {@@ -1112,9 +1124,9 @@ public class DrawingTools : ToolCollection { } add_expander (draw_tool_modifiers);- + add_expander (layer_settings);+ add_expander (layer_tools); add_expander (stroke_expander);- add_expander (guideline_tools); add_expander (grid); add_expander (zoombar_tool);@@ -1541,6 +1553,33 @@ public class DrawingTools : ToolCollection { d.add ("Glyph"); return d; }+ + public static void update_layers () + requires (!is_null (layer_tools)) {+ Glyph g = MainWindow.get_current_glyph ();+ + layer_tools.tool.clear ();+ foreach (Layer layer in g.layers) { + LayerLabel label = new LayerLabel ("Layer", layer);+ layer_tools.add_tool (label);+ }+ + MainWindow.get_toolbox ().update_expanders ();+ layer_tools.redraw ();+ Toolbox.redraw_tool_box ();+ }+ + public static void deselect_layers ()+ requires (!is_null (layer_tools)) { + LayerLabel l;+ + foreach (Tool t in layer_tools.tool) {+ if (t is LayerLabel) {+ l = (LayerLabel) t;+ l.selected_layer = false;+ }+ }+ } } }@@ -123,7 +123,10 @@ public class Expander : GLib.Object { t.h = 20 * scale; } else if (t is KerningRange) { t.w = Toolbox.allocation_width * scale;- t.h = 17 * scale; + t.h = 17 * scale;+ } else if (t is LayerLabel) {+ t.w = Toolbox.allocation_width * scale;+ t.h = 21 * scale; } else { t.w = 33 * scale; t.h = (33 / 1.11) * scale;@@ -151,7 +154,6 @@ public class Expander : GLib.Object { if (t is ZoomBar) { t.x = xt; t.y = yt;- //content_height += t.h; yt += t.h + 7 * scale; previous = t; continue;@@ -166,7 +168,7 @@ public class Expander : GLib.Object { xt = x; yt += previous.h; - if (!(t is LabelTool)) {+ if (!(t is LabelTool) && !(previous is LayerLabel)) { yt += 7 * scale; } }@@ -110,6 +110,8 @@ public class Glyph : FontDisplay { public static bool show_orientation_arrow = false; public static double orientation_arrow_opacity = 1; + public Gee.ArrayList<Layer> layers = new Gee.ArrayList<Layer> ();+ public Glyph (string name, unichar unichar_code = 0) { this.name = name; this.unichar_code = unichar_code;@@ -120,8 +122,6 @@ public class Glyph : FontDisplay { left_limit = -28; right_limit = 28;- - n_instances++; } public Glyph.no_lines (string name, unichar unichar_code = 0) {@@ -129,18 +129,15 @@ public class Glyph : FontDisplay { this.unichar_code = unichar_code; path_list.add (new Path ());- - n_instances++; }- - static int n_instances = 0;-- public int r = 1; ~Glyph () { path_list.clear (); active_paths.clear ();- n_instances--;+ }+ + public void add_new_layer () {+ layers.add (new Layer ()); } public GlyfData get_ttf_data () {@@ -64,6 +64,7 @@ public class LabelTool : Tool { double x = this.x - px; double y = this.y - py; double text_height;+ double text_width; // background if (is_selected ()) {@@ -83,6 +84,18 @@ public class LabelTool : Tool { Theme.text_color (label_text, "Text Tool Box"); } + text_width = Toolbox.allocation_width;+ + if (has_counter) {+ text_width -= counter_box_width - 15;+ }+ + if (has_delete_button) {+ text_width -= 30;+ }+ + label_text.truncate (text_width);+ label_text.draw_at_top (cr, x, y); cr.restore (); @@ -124,10 +137,10 @@ public class LabelTool : Tool { cr.save (); Theme.color (cr, "Text Foreground"); cr.set_line_width (1);- cr.move_to (w - 20, y + h / 2 - 2.5 + 2);- cr.line_to (w - 25, y + h / 2 + 2.5 + 2);- cr.move_to (w - 20, y + h / 2 + 2.5 + 2);- cr.line_to (w - 25, y + h / 2 - 2.5 + 2); + cr.move_to (w - 20, y + h / 2 - 2.5 - 2);+ cr.line_to (w - 25, y + h / 2 + 2.5 - 2);+ cr.move_to (w - 20, y + h / 2 + 2.5 - 2);+ cr.line_to (w - 25, y + h / 2 - 2.5 - 2); cr.stroke (); cr.restore (); }@@ -17,6 +17,7 @@ namespace BirdFont { public class Layer : GLib.Object { public PathList paths; public Gee.ArrayList<Layer> subgroups;+ public bool visible = true; public Layer () { paths = new PathList ();new file mode 100644@@ -0,0 +1,123 @@+/*+ Copyright (C) 2015 Johan Mattsson++ This library is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 3 of the + License, or (at your option) any later version.++ This library is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details.+*/++using Cairo;++namespace BirdFont {++public class LayerLabel : Tool {++ public bool selected_layer { get; set; }+ public string label { get; set; }+ + public Layer layer;+ Text label_text;++ public LayerLabel (string label, Layer layer) {+ double text_height;+ + base ();++ this.layer = layer;+ this.label = label;+ + selected_layer = false;+ + label_text = new Text ();+ label_text.set_text (label);+ text_height = 17 * Toolbox.get_scale ();+ label_text.set_font_size (text_height);++ panel_press_action.connect ((selected, button, tx, ty) => {+ LayerLabel l;+ + DrawingTools.deselect_layers ();+ + if (y <= ty <= y + h) {+ if (tx >= w - 30 * Toolbox.get_scale ()) {+ remove_layer ();+ } if (tx < 25 * Toolbox.get_scale ()) {+ layer.visible = !layer.visible;+ } else {+ selected_layer = true;+ }+ } else {+ selected_layer = false;+ }+ });+ }+ + public void remove_layer () {+ // remove layer after the click loop+ IdleSource idle = new IdleSource ();++ idle.set_callback (() => { + Glyph g = MainWindow.get_current_glyph ();+ g.layers.remove (layer);+ DrawingTools.update_layers ();+ return false;+ });+ + idle.attach (null);+ }+ + public override void draw_tool (Context cr, double px, double py) {+ Text visibility_icon;+ double x = this.x - px;+ double y = this.y - py;+ double text_height;+ double text_width;+ string visibility;+ + // background+ if (selected_layer) {+ cr.save ();+ Theme.color (cr, "Menu Background");+ cr.rectangle (0, y - 2 * Toolbox.get_scale (), w, h); // labels overlap with 2 pixels+ cr.fill ();+ cr.restore (); + }+ + // tab label+ cr.save ();+ + text_width = Toolbox.allocation_width;+ text_width -= 30 * Toolbox.get_scale (); // delete button+ text_width -= 20 * Toolbox.get_scale (); // visibility+ + label_text.truncate (text_width);+ Theme.text_color (label_text, "Text Tool Box");+ label_text.draw_at_top (cr, x + 20 * Toolbox.get_scale (), y);+ + visibility = layer.visible ? "layer_visible" : "layer_hidden";+ visibility_icon = new Text (visibility, 30 * Toolbox.get_scale ());+ visibility_icon.load_font ("icons.bf");+ Theme.text_color (visibility_icon, "Text Tool Box");+ visibility_icon.draw_at_top (cr, x, y + h / 2 - (30 * Toolbox.get_scale ()) / 2);+ + cr.restore ();++ cr.save ();+ Theme.color (cr, "Text Tool Box");+ cr.set_line_width (1);+ cr.move_to (w - 20, y + h / 2 - 2.5 - 2);+ cr.line_to (w - 25, y + h / 2 + 2.5 - 2);+ cr.move_to (w - 20, y + h / 2 + 2.5 - 2);+ cr.line_to (w - 25, y + h / 2 - 2.5 - 2);+ cr.stroke ();+ cr.restore ();+ }+}++}@@ -313,6 +313,7 @@ public class MoveTool : Tool { path.move (x * Glyph.ivz (), y * Glyph.ivz ()); } + BirdFont.get_current_font ().touch (); PenTool.reset_stroke (); update_selection_boundaries (); objects_moved ();@@ -804,7 +804,6 @@ public class TextArea : Widget { w = next_word.text; if (next_word.widget_y <= tt_click <= next_word.widget_y + font_size) {- //FIXME: DELETE Theme.text_color (next_word, "Foreground 1"); p = next_word.get_sidebearing_extent (); @@ -1190,11 +1189,6 @@ public class TextArea : Widget { tx = paragraph.start_x; ty = paragraph.start_y; - if (paragraphs.size > 0 && paragraphs.get (0).words.size > 0) {- Text t = paragraphs.get (0).words.get (0);- //FIXME: DELETE Theme.text_color (t, "Foreground 1");- }- for (int i = first_visible; i < last_visible; i++) { paragraph = paragraphs.get (i); @@ -1206,8 +1200,6 @@ public class TextArea : Widget { cc = new Context ((!) paragraph.cached_surface); foreach (Text next_word in paragraph.words) {- //FIXME: DELETE Theme.text_color (next_word, "Foreground 1");- if (next_word.text != "\n") { next_word.draw_at_top (cc, next_word.widget_x, next_word.widget_y - ty); }@@ -80,16 +80,9 @@ public class Toolbox : GLib.Object { set_toolbox_from_tab (tab_name, tab); }); - redraw.connect ((x, y, w, h) => {- redraw_notify ();- });- update_expanders (); } - void redraw_notify () { - }- public static void set_toolbox_from_tab (string tab_name, Tab? t = null) { if (tab_name == "Spacing") { current_set = (ToolCollection) spacing_tools;@@ -95,6 +95,15 @@ GNU Lesser General Public License</copyright> <glyph id="1" left="-28" right="28"> </glyph> </collection>+<collection name="add_layer">+ <selected id="0"/>+ <glyph id="0" left="-28" right="28">+ <path data="B -26.0000000000,11.3175355450 M 24.0000000000,11.3175355450 M 24.0000000000,7.3175355450 M -26.0000000000,7.3175355450 M -26.0000000000,11.3175355450" />+ <path data="B -2.0379146919,25.1240511107 M 24.0000000000,25.0394944708 C 24.0000000000,23.0394944708 24.0000000000,22.3728278041 24.0000000000,21.0394944708 M -2.0379146919,21.1240511107 M -2.0379146919,25.1240511107" />+ <path data="B -16.0000000000,35.0394944708 M -16.0000000000,29.0394944708 M -10.0000000000,29.0394944708 M -10.0000000000,25.0394944708 M -16.0000000000,25.0394944708 M -16.0000000000,19.0394944708 M -20.0000000000,19.0394944708 M -20.0000000000,25.0394944708 M -26.0000000000,25.0394944708 M -26.0000000000,29.0394944708 M -20.0000000000,29.0394944708 M -20.0000000000,31.4394944708 M -20.0000000000,35.0394944708 M -16.0000000000,35.0394944708" />+ <path data="B -37.7796208531,18.7954186414 M -37.7796208531,18.7954186414 O" />+ </glyph>+</collection> <collection name="add_new_theme"> <selected id="1"/> <glyph id="1" left="-24" right="28">@@ -472,6 +481,19 @@ GNU Lesser General Public License</copyright> <glyph id="1" left="-28" right="28"> </glyph> </collection>+<collection name="layer_hidden">+ <selected id="0"/>+ <glyph id="0" left="-28" right="28">+ <path data="B -17.3586097946,36.3504476040 M 17.0774091627,36.3504476040 M 17.0774091627,41.3109531332 M -17.3586097946,41.3109531332 M -17.3586097946,36.3504476040" />+ </glyph>+</collection>+<collection name="layer_visible">+ <selected id="1"/>+ <glyph id="1" left="-28" right="28">+ <path data="B 7.0995507697,38.9660347552 C 7.0995507697,40.7670109549 6.3054219921,42.6842074200 5.0319395085,43.9576899036 T C 3.7584570250,45.2311723871 1.8412605599,46.0253011647 0.0402843602,46.0253011647 T C -1.7606918395,46.0253011647 -3.6778883047,45.2311723872 -4.9513707882,43.9576899036 T C -6.2248532717,42.6842074200 -7.0189820493,40.7670109549 -7.0189820493,38.9660347552 T C -7.0189820493,37.1650585555 -6.2248532717,35.2478620904 -4.9513707882,33.9743796069 T C -3.6778883046,32.7008971233 -1.7606918395,31.9067683457 0.0402843602,31.9067683457 T C 1.8412605599,31.9067683457 3.7584570249,32.7008971234 5.0319395085,33.9743796069 T C 6.3054219921,35.2478620904 7.0995507697,37.1650585555 7.0995507697,38.9660347552 T" />+ <path data="B 9.4785826131,29.3000052448 C 7.0490326436,26.8704552755 3.3914050964,25.3554163390 -0.0444974208,25.3554163390 T C -3.4803999380,25.3554163390 -7.1380274854,26.8704552753 -9.5675774549,29.3000052448 T C -11.9971274241,31.7295552140 -13.5121663604,35.3871827615 -13.5121663604,38.8230852786 T C -13.5121663604,42.2589877958 -11.9971274241,45.9166153433 -9.5675774549,48.3461653127 T C -7.1380274856,50.7757152822 -3.4803999380,52.2907542183 -0.0444974208,52.2907542183 T C 3.3914050964,52.2907542183 7.0490326438,50.7757152820 9.4785826131,48.3461653127 T C 11.9081325825,45.9166153433 13.4231715188,42.2589877958 13.4231715188,38.8230852786 T C 13.4231715188,35.3871827615 11.9081325825,31.7295552140 9.4785826131,29.3000052448 T" />+ </glyph>+</collection> <collection name="left_arrow"> <selected id="1"/> <glyph id="1" left="-28" right="25.184466019417457">@@ -1083,94 +1105,97 @@ GNU Lesser General Public License</copyright> <ligature sequence="i n s e r t _ g l y p h _ f r o m _ o v e r v i e w" replacement="insert_glyph_from_overview"/> <ligature sequence="h i g h _ c o n t r a s t _ b a c k g r o u n d" replacement="high_contrast_background"/> <ligature sequence="p r e v i o u s _ k e r n i n g _ s t r i n g" replacement="previous_kerning_string"/>-<ligature sequence="g e n e r a t e _ h t m l _ d o c u m e n t" replacement="generate_html_document"/> <ligature sequence="s h o w _ x h e i g h t _ h e l p l i n e s" replacement="show_xheight_helplines"/>-<ligature sequence="o r i e n t a t i o n _ c l o c k w i s e" replacement="orientation_clockwise"/>-<ligature sequence="z o o m _ b a c k g r o u n d _ i m a g e" replacement="zoom_background_image"/>-<ligature sequence="a u t o _ t r a c e _ r e s o l u t i o n" replacement="auto_trace_resolution"/>-<ligature sequence="b a c k g r o u n d _ h e l p _ l i n e s" replacement="background_help_lines"/>+<ligature sequence="g e n e r a t e _ h t m l _ d o c u m e n t" replacement="generate_html_document"/> <ligature sequence="s h o w _ a l l _ l i n e _ h a n d l e s" replacement="show_all_line_handles"/>-<ligature sequence="n e x t _ k e r n i n g _ s t r i n g" replacement="next_kerning_string"/>+<ligature sequence="b a c k g r o u n d _ h e l p _ l i n e s" replacement="background_help_lines"/>+<ligature sequence="a u t o _ t r a c e _ r e s o l u t i o n" replacement="auto_trace_resolution"/>+<ligature sequence="z o o m _ b a c k g r o u n d _ i m a g e" replacement="zoom_background_image"/>+<ligature sequence="o r i e n t a t i o n _ c l o c k w i s e" replacement="orientation_clockwise"/> <ligature sequence="a u t o _ t r a c e _ s i m p l i f y" replacement="auto_trace_simplify"/>-<ligature sequence="c o n t r a s t _ t h r e s h o l d" replacement="contrast_threshold"/>+<ligature sequence="n e x t _ k e r n i n g _ s t r i n g" replacement="next_kerning_string"/> <ligature sequence="k e r n i n g _ t e x t _ i n p u t" replacement="kerning_text_input"/>-<ligature sequence="s t r o k e _ t o _ o u t l i n e" replacement="stroke_to_outline"/>-<ligature sequence="s e l e c t _ b a c k g r o u n d" replacement="select_background"/>-<ligature sequence="i n s e r t _ b a c k g r o u n d" replacement="insert_background"/>-<ligature sequence="n e w _ p o i n t _ o n _ p a t h" replacement="new_point_on_path"/>-<ligature sequence="d e l e t e _ b a c k g r o u n d" replacement="delete_background"/>+<ligature sequence="c o n t r a s t _ t h r e s h o l d" replacement="contrast_threshold"/> <ligature sequence="o r i e n t a t i o n _ a r r o w" replacement="orientation_arrow"/>-<ligature sequence="o r i e n t a t i o n _ b o t h" replacement="orientation_both"/>-<ligature sequence="q u a d r a t i c _ p o i n t s" replacement="quadratic_points"/>+<ligature sequence="d e l e t e _ b a c k g r o u n d" replacement="delete_background"/>+<ligature sequence="n e w _ p o i n t _ o n _ p a t h" replacement="new_point_on_path"/>+<ligature sequence="i n s e r t _ b a c k g r o u n d" replacement="insert_background"/>+<ligature sequence="s e l e c t _ b a c k g r o u n d" replacement="select_background"/>+<ligature sequence="s t r o k e _ t o _ o u t l i n e" replacement="stroke_to_outline"/> <ligature sequence="s c a l e _ b a c k g r o u n d" replacement="scale_background"/>-<ligature sequence="z o o m _ b o u n d a r i e s" replacement="zoom_boundaries"/>-<ligature sequence="s h o w _ b a c k g r o u n d" replacement="show_background"/>-<ligature sequence="f l i p _ h o r i z o n t a l" replacement="flip_horizontal"/>-<ligature sequence="m o v e _ b a c k g r o u n d" replacement="move_background"/>+<ligature sequence="q u a d r a t i c _ p o i n t s" replacement="quadratic_points"/>+<ligature sequence="o r i e n t a t i o n _ b o t h" replacement="orientation_both"/> <ligature sequence="l i n e _ c a p _ s q u a r e" replacement="line_cap_square"/>-<ligature sequence="f i l l _ o p e n _ p a t h" replacement="fill_open_path"/>-<ligature sequence="u p d a t e _ w e b v i e w" replacement="update_webview"/>-<ligature sequence="c u t _ b a c k g r o u n d" replacement="cut_background"/>-<ligature sequence="i n s e r t _ u n i c h a r" replacement="insert_unichar"/>+<ligature sequence="m o v e _ b a c k g r o u n d" replacement="move_background"/>+<ligature sequence="f l i p _ h o r i z o n t a l" replacement="flip_horizontal"/>+<ligature sequence="s h o w _ b a c k g r o u n d" replacement="show_background"/>+<ligature sequence="z o o m _ b o u n d a r i e s" replacement="zoom_boundaries"/> <ligature sequence="l i n e _ c a p _ r o u n d" replacement="line_cap_round"/>-<ligature sequence="a d d _ n e w _ t h e m e" replacement="add_new_theme"/>-<ligature sequence="k e r n i n g _ c l a s s" replacement="kerning_class"/>-<ligature sequence="d o u b l e _ p o i n t s" replacement="double_points"/>-<ligature sequence="c o n v e r t _ p o i n t" replacement="convert_point"/>-<ligature sequence="d e l e t e _ b u t t o n" replacement="delete_button"/>-<ligature sequence="f l i p _ v e r t i c a l" replacement="flip_vertical"/>-<ligature sequence="d r o p d o w n _ m e n u" replacement="dropdown_menu"/>-<ligature sequence="r e s i z e _ h a n d l e" replacement="resize_handle"/>+<ligature sequence="i n s e r t _ u n i c h a r" replacement="insert_unichar"/>+<ligature sequence="c u t _ b a c k g r o u n d" replacement="cut_background"/>+<ligature sequence="u p d a t e _ w e b v i e w" replacement="update_webview"/>+<ligature sequence="f i l l _ o p e n _ p a t h" replacement="fill_open_path"/>+<ligature sequence="l a y e r _ v i s i b l e" replacement="layer_visible"/> <ligature sequence="l i n e _ c a p _ b u t t" replacement="line_cap_butt"/>-<ligature sequence="a p p l y _ s t r o k e" replacement="apply_stroke"/>-<ligature sequence="e x p o r t _ f o n t s" replacement="export_fonts"/>-<ligature sequence="r e v e r s e _ p a t h" replacement="reverse_path"/>-<ligature sequence="c u b i c _ p o i n t s" replacement="cubic_points"/>-<ligature sequence="x _ c o o r d i n a t e" replacement="x_coordinate"/>+<ligature sequence="r e s i z e _ h a n d l e" replacement="resize_handle"/>+<ligature sequence="d r o p d o w n _ m e n u" replacement="dropdown_menu"/>+<ligature sequence="f l i p _ v e r t i c a l" replacement="flip_vertical"/>+<ligature sequence="d e l e t e _ b u t t o n" replacement="delete_button"/>+<ligature sequence="c o n v e r t _ p o i n t" replacement="convert_point"/>+<ligature sequence="d o u b l e _ p o i n t s" replacement="double_points"/>+<ligature sequence="k e r n i n g _ c l a s s" replacement="kerning_class"/>+<ligature sequence="a d d _ n e w _ t h e m e" replacement="add_new_theme"/>+<ligature sequence="l a y e r _ h i d d e n" replacement="layer_hidden"/> <ligature sequence="y _ c o o r d i n a t e" replacement="y_coordinate"/>-<ligature sequence="m o v e _ c a n v a s" replacement="move_canvas"/>-<ligature sequence="s p i n _ b u t t o n" replacement="spin_button"/>-<ligature sequence="c r e a t e _ l i n e" replacement="create_line"/>-<ligature sequence="b e z i e r _ l i n e" replacement="bezier_line"/>-<ligature sequence="r i g h t _ a r r o w" replacement="right_arrow"/>+<ligature sequence="x _ c o o r d i n a t e" replacement="x_coordinate"/>+<ligature sequence="c u b i c _ p o i n t s" replacement="cubic_points"/>+<ligature sequence="r e v e r s e _ p a t h" replacement="reverse_path"/>+<ligature sequence="e x p o r t _ f o n t s" replacement="export_fonts"/>+<ligature sequence="a p p l y _ s t r o k e" replacement="apply_stroke"/> <ligature sequence="b e z i e r _ t o o l" replacement="bezier_tool"/>-<ligature sequence="f u l l _ g l y p h" replacement="full_glyph"/>-<ligature sequence="p o i n t _ t o o l" replacement="point_tool"/>-<ligature sequence="s e l e c t _ a l l" replacement="select_all"/>-<ligature sequence="m o v e _ l a y e r" replacement="move_layer"/>-<ligature sequence="h e l p _ l i n e s" replacement="help_lines"/>-<ligature sequence="l e f t _ a r r o w" replacement="left_arrow"/>+<ligature sequence="r i g h t _ a r r o w" replacement="right_arrow"/>+<ligature sequence="b e z i e r _ l i n e" replacement="bezier_line"/>+<ligature sequence="c r e a t e _ l i n e" replacement="create_line"/>+<ligature sequence="s p i n _ b u t t o n" replacement="spin_button"/>+<ligature sequence="m o v e _ c a n v a s" replacement="move_canvas"/> <ligature sequence="c l o s e _ p a t h" replacement="close_path"/>-<ligature sequence="o p e n _ f o n t" replacement="open_font"/>-<ligature sequence="m e n u _ i c o n" replacement="menu_icon"/>-<ligature sequence="t t f _ u n i t s" replacement="ttf_units"/>-<ligature sequence="r e c t a n g l e" replacement="rectangle"/>-<ligature sequence="z o o m _ t o o l" replacement="zoom_tool"/>-<ligature sequence="s y m m e t r i c" replacement="symmetric"/>-<ligature sequence="t i e _ p o i n t" replacement="tie_point"/>-<ligature sequence="u n d o _ t o o l" replacement="undo_tool"/>-<ligature sequence="a u t o t r a c e" replacement="autotrace"/>-<ligature sequence="s h o w _ g r i d" replacement="show_grid"/>-<ligature sequence="i n f o _ i c o n" replacement="info_icon"/>+<ligature sequence="l e f t _ a r r o w" replacement="left_arrow"/>+<ligature sequence="h e l p _ l i n e s" replacement="help_lines"/>+<ligature sequence="m o v e _ l a y e r" replacement="move_layer"/>+<ligature sequence="s e l e c t _ a l l" replacement="select_all"/>+<ligature sequence="p o i n t _ t o o l" replacement="point_tool"/>+<ligature sequence="f u l l _ g l y p h" replacement="full_glyph"/> <ligature sequence="s a v e _ f o n t" replacement="save_font"/>-<ligature sequence="n e w _ f o n t" replacement="new_font"/>-<ligature sequence="p r o g r e s s" replacement="progress"/>-<ligature sequence="z o o m _ 1 _ 1" replacement="zoom_1_1"/>-<ligature sequence="p e n _ t o o l" replacement="pen_tool"/>-<ligature sequence="r o t a t i o n" replacement="rotation"/>-<ligature sequence="z o o m _ o u t" replacement="zoom_out"/>+<ligature sequence="i n f o _ i c o n" replacement="info_icon"/>+<ligature sequence="s h o w _ g r i d" replacement="show_grid"/>+<ligature sequence="a u t o t r a c e" replacement="autotrace"/>+<ligature sequence="u n d o _ t o o l" replacement="undo_tool"/>+<ligature sequence="t i e _ p o i n t" replacement="tie_point"/>+<ligature sequence="s y m m e t r i c" replacement="symmetric"/>+<ligature sequence="z o o m _ t o o l" replacement="zoom_tool"/>+<ligature sequence="r e c t a n g l e" replacement="rectangle"/>+<ligature sequence="t t f _ u n i t s" replacement="ttf_units"/>+<ligature sequence="m e n u _ i c o n" replacement="menu_icon"/>+<ligature sequence="o p e n _ f o n t" replacement="open_font"/>+<ligature sequence="a d d _ l a y e r" replacement="add_layer"/> <ligature sequence="s e t t i n g s" replacement="settings"/>+<ligature sequence="z o o m _ o u t" replacement="zoom_out"/>+<ligature sequence="r o t a t i o n" replacement="rotation"/>+<ligature sequence="p e n _ t o o l" replacement="pen_tool"/>+<ligature sequence="z o o m _ 1 _ 1" replacement="zoom_1_1"/>+<ligature sequence="p r o g r e s s" replacement="progress"/>+<ligature sequence="n e w _ f o n t" replacement="new_font"/> <ligature sequence="z o o m _ i n" replacement="zoom_in"/>-<ligature sequence="c i r c l e" replacement="circle"/>-<ligature sequence="r e s i z e" replacement="resize"/> <ligature sequence="h e i g h t" replacement="height"/>-<ligature sequence="t r a c k" replacement="track"/>-<ligature sequence="w i d t h" replacement="width"/>+<ligature sequence="r e s i z e" replacement="resize"/>+<ligature sequence="c i r c l e" replacement="circle"/> <ligature sequence="t h e m e" replacement="theme"/>-<ligature sequence="n e x t" replacement="next"/>-<ligature sequence="p r e v" replacement="prev"/>-<ligature sequence="m o v e" replacement="move"/>+<ligature sequence="w i d t h" replacement="width"/>+<ligature sequence="t r a c k" replacement="track"/> <ligature sequence="s k e w" replacement="skew"/>+<ligature sequence="m o v e" replacement="move"/>+<ligature sequence="p r e v" replacement="prev"/>+<ligature sequence="n e x t" replacement="next"/> <kerning left="settings" right="l" hadjustment="3.8289794922" /> </font>