Commit 5d75c21
Kerning strings This commit adds code that lets the user load a list of strings for kerning. The list and the position in the list is specific for each font.
Changed files (15)
modifiedlibbirdfont/BackgroundTools.valamodifiedlibbirdfont/DrawingTools.valamodifiedlibbirdfont/Expander.valamodifiedlibbirdfont/Font.valamodifiedlibbirdfont/FontSettings.valamodifiedlibbirdfont/KerningStrings.valadeletedlibbirdfont/KerningStringsTab.valamodifiedlibbirdfont/KerningTools.valamodifiedlibbirdfont/Menu.valamodifiedlibbirdfont/OverviewTools.valamodifiedlibbirdfont/PreviewTools.valamodifiedlibbirdfont/SpacingTab.valamodifiedlibbirdfont/SpacingTools.valamodifiedresources/icons.bfmodifiedresources/roboto.bf
Diff
@@ -28,7 +28,6 @@ public class BackgroundTools : ToolCollection { Expander font_name = new Expander (); font_name.add_tool (new FontName ());- font_name.draw_separator = false; select_background = new BackgroundSelectionTool (); @@ -115,7 +115,6 @@ public class DrawingTools : ToolCollection { // font name font_name.add_tool (new FontName ());- font_name.draw_separator = false; // Draw tools foresight_tool = new ForesightTool ("foresight");@@ -973,8 +972,6 @@ public class DrawingTools : ToolCollection { shape_tools.set_persistent (true); shape_tools.set_unique (true);-- view_tools.draw_separator = false; // let these tools progagate events even when other tools are selected foreach (Tool t in draw_tools.tool) {@@ -20,9 +20,7 @@ namespace BirdFont { public class Expander : GLib.Object { private static const double HEADLINE_MARGIN = 6;- - public bool draw_separator { get; set; }- + public double x = 7; public double y = 5; public double scroll = 0;@@ -48,7 +46,6 @@ public class Expander : GLib.Object { public Expander (string? headline = null) { this.headline = headline; tool = new Gee.ArrayList<Tool> ();- draw_separator = true; } public void set_headline (string? h) {@@ -236,29 +233,6 @@ public class Expander : GLib.Object { Theme.text_color (title, "Foreground 2"); title.set_font_size (17 * Toolbox.get_scale ()); title.draw_at_baseline (cr, x, yt + HEADLINE_MARGIN + 13 * Toolbox.get_scale ());- } else if (draw_separator) { - cr.save ();- cr.set_line_width (0.5);- Theme.color (cr, "Foreground 2");- cr.move_to (x, yt);- cr.line_to (wd - w - x + 6, yt); - cr.stroke ();- cr.restore ();- - // arrow- cr.save ();- cr.new_path ();- cr.set_line_width (1);- - Theme.color_opacity (cr, "Foreground 2", opacity);- - cr.move_to (x - iw2 + 3, yt - ih2 - 0.7 + 1);- cr.line_to (x + iw2 + 3, yt - ih2 - 0.7 + 1);- cr.line_to (x + iw2, yt + 2 + 1); -- cr.close_path();- cr.stroke ();- cr.restore (); } } }@@ -141,7 +141,6 @@ public class Font : GLib.Object { settings = new FontSettings (); kerning_strings = new KerningStrings ();- kerning_strings.load (this); } public static void set_default_license (string license) {@@ -772,7 +771,10 @@ public class Font : GLib.Object { font_file = null; } - settings.load (get_file_name ());+ if (loaded) {+ settings.load (get_file_name ());+ kerning_strings.load (this);+ } return loaded; }@@ -61,19 +61,19 @@ public class FontSettings : GLib.Object { sb = new StringBuilder (); - sb.append ("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>");- sb.append ("<settings>");+ sb.append ("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n");+ sb.append ("<settings>\n"); foreach (var k in settings.keys) { sb.append ("\t<setting key=\""); sb.append (k);- sb.append (" \" ");+ sb.append ("\" "); sb.append ("value=\""); sb.append (XmlParser.encode (settings.get (k)));- sb.append ("\" />");+ sb.append ("\" />\n"); } - sb.append ("</settings>");+ sb.append ("</settings>\n"); FileUtils.set_contents ((!) f.get_path (), sb.str); @@ -118,6 +118,8 @@ public class FontSettings : GLib.Object { v = XmlParser.decode (a.get_content ()); } }+ + settings.set (key, v); } }@@ -22,54 +22,81 @@ public class KerningStrings : GLib.Object { public KerningStrings () { } + public bool is_empty () {+ return kerning_strings.size == 0;+ }+ public string next () { string w = "";+ Font font = BirdFont.get_current_font (); if (0 <= current_position < kerning_strings.size) { w = kerning_strings.get (current_position);+ current_position++;+ font.settings.set_setting ("kerning_string_position", @"$current_position"); } - current_position++;- return w; } public string previous () { string w = "";-- current_position--;+ Font font = BirdFont.get_current_font (); - if (0 <= current_position < kerning_strings.size) {+ if (0 <= current_position - 1 < kerning_strings.size) {+ current_position--; w = kerning_strings.get (current_position);+ font.settings.set_setting ("kerning_string_position", @"$current_position"); } return w; } + public void load_file () {+ FileChooser fc = new FileChooser ();+ fc.file_selected.connect ((f) => {+ Font font = BirdFont.get_current_font (); + if (f != null) {+ load_new_string (font, (!) f);+ }+ });+ + MainWindow.file_chooser (t_("Load kerning strings"), fc, FileChooser.LOAD);+ }+ public void load (Font font) { string path; path = font.settings.get_setting ("kerning_string_file");- load_new_string (font, path);++ if (path != "") {+ load_new_string (font, path);+ current_position = int.parse (font.settings.get_setting ("kerning_string_position"));+ } } public void load_new_string (Font font, string kerning_strings_file) { File f; string data; string[] strings;+ string w; try { kerning_strings.clear (); FileUtils.get_contents(kerning_strings_file, out data);- strings = data.split ("\n");+ strings = data.replace ("\n", " ").split (" "); foreach (string s in strings) {- kerning_strings.add (s.replace ("\r", ""));+ w = s.replace ("\r", "");+ if (w != "") {+ kerning_strings.add (s);+ print (s + " Added");+ } } - current_position = int.parse (font.settings.get_setting ("kerning_string_position")); + current_position = 0; font.settings.set_setting ("kerning_string_file", kerning_strings_file); } catch (GLib.Error e) {deleted file mode 100644@@ -1,197 +0,0 @@-/*- 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;-using Math;--namespace BirdFont {--public class KerningStringsTab : FontDisplay {- - double scroll = 0;- double content_height = 1;- WidgetAllocation allocation;- - TextArea kerning_text;- Button load_text;- - Gee.ArrayList<Widget> widgets;- - public KerningStringsTab () {- double margin = 12 * MainWindow.units;- double label_size = 20 * MainWindow.units;- double label_margin = 4 * MainWindow.units;- Headline headline;- Font font = BirdFont.get_current_font ();- - allocation = new WidgetAllocation ();- widgets = new Gee.ArrayList<Widget> ();-- headline = new Headline (t_("Kerning Strings"));- headline.margin_bottom = 20 * MainWindow.units;- widgets.add (headline);-- kerning_text = new TextArea (label_size);- kerning_text.margin_bottom = margin;- kerning_text.set_text (""); // FIXME:- widgets.add (kerning_text);- }- - public override void draw (WidgetAllocation allocation, Context cr) {- this.allocation = allocation;- - layout ();- - // background- cr.save ();- cr.rectangle (0, 0, allocation.width, allocation.height);- cr.set_line_width (0);- - Theme.color (cr, "Background 4");-- cr.fill ();- cr.stroke ();- cr.restore ();-- foreach (Widget w in widgets) {- if (w.is_on_screen ()) { - if (w is Text) {- cr.save ();- Theme.color (cr, "Foreground 1");- w.draw (cr);- cr.restore ();- } else {- w.draw (cr);- }- }- }- } -- void layout () {- double y = -scroll;- - foreach (Widget w in widgets) {- w.widget_x = 17 * MainWindow.units;- w.widget_y = y;- w.allocation = allocation;- - if (w is TextArea) {- ((TextArea) w).layout ();- }- - y += w.get_height () + w.margin_bottom;- }- - content_height = y + scroll;- update_scrollbar ();- }-- public void scroll_event (double p) {- scroll += p;- layout ();- GlyphCanvas.redraw ();- }-- public override void key_press (uint keyval) {- kerning_text.key_press (keyval);- }- - public override void button_press (uint button, double x, double y) {- TextArea t;- TextArea old;- - foreach (Widget w in widgets) {- if (w.is_over (x, y)) {- if (w is TextArea) {- t = (TextArea) w;- if (kerning_text != t) {- old = (!) kerning_text;- old.draw_carret = false;- }- - t.draw_carret = true;- t.button_press (button, x, y);- kerning_text = t;- }- }- }-- GlyphCanvas.redraw ();- }- - public override void button_release (int button, double x, double y) {- TextArea t;- - kerning_text.button_release (button, x, y);- - GlyphCanvas.redraw ();- }-- public override void motion_notify (double x, double y) {- kerning_text.motion (x, y);- }-- public override string get_label () {- return t_("Name and Description");- }-- public override string get_name () {- return "Description";- }-- public override bool has_scrollbar () {- return true;- }- - public override void scroll_wheel_down (double x, double y) {- scroll += 25 * MainWindow.units;-- if (scroll + allocation.height >= content_height) {- scroll = content_height - allocation.height;- }- - update_scrollbar ();- GlyphCanvas.redraw ();- }- - public override void scroll_wheel_up (double x, double y) {- scroll -= 25 * MainWindow.units;- - if (scroll < 0) {- scroll = 0;- }- - update_scrollbar ();- GlyphCanvas.redraw ();- }-- public override void selected_canvas () {- update_scrollbar ();- GlyphCanvas.redraw ();- }- - public override void update_scrollbar () {- double h = content_height - allocation.height;- MainWindow.set_scrollbar_size (allocation.height / content_height);- MainWindow.set_scrollbar_position (scroll / h);- }-- public override void scroll_to (double percent) {- double h = content_height - allocation.height;- scroll = percent * h;- GlyphCanvas.redraw ();- }-}--}@@ -25,6 +25,9 @@ public class KerningTools : ToolCollection { public static double font_size = 1; public static ZoomBar zoom_bar; + public static Tool previous_kerning_string;+ public static Tool next_kerning_string;+ public KerningTools () { init (); }@@ -36,7 +39,6 @@ public class KerningTools : ToolCollection { Expander font_name = new Expander (); font_name.add_tool (new FontName ());- font_name.draw_separator = false; Expander zoom_expander = new Expander (t_("Font Size")); @@ -90,22 +92,44 @@ public class KerningTools : ToolCollection { }); kerning_tools.add_tool (insert_unicode); - Tool previous_kerning_string = new Tool ("previous_kerning_string", t_("Previous kerning string"));+ string empty_kerning_text = t_("Open a text file with kerning strings first.");+ + previous_kerning_string = new Tool ("previous_kerning_string", t_("Previous kerning string")); previous_kerning_string.select_action.connect ((self) => {- KerningDisplay d = MainWindow.get_kerning_display ();+ FontDisplay fd = MainWindow.get_current_display ();+ KerningDisplay d = (KerningDisplay) fd; Font f = BirdFont.get_current_font ();- d.add_text (f.kerning_strings.next ());+ string w = f.kerning_strings.previous ();+ + if (f.kerning_strings.is_empty ()) {+ MainWindow.show_message (empty_kerning_text);+ } else if (w == "") {+ MainWindow.show_message (t_("You have reached the beginning of the list."));+ } else {+ d.new_line ();+ d.add_text (w);+ } }); kerning_tools.add_tool (previous_kerning_string); - Tool next_kerning_string = new Tool ("next_kerning_string", t_("Next kerning string"));+ next_kerning_string = new Tool ("next_kerning_string", t_("Next kerning string")); next_kerning_string.select_action.connect ((self) => {- KerningDisplay d = MainWindow.get_kerning_display ();+ FontDisplay fd = MainWindow.get_current_display ();+ KerningDisplay d = (KerningDisplay) fd; Font f = BirdFont.get_current_font ();- d.add_text (f.kerning_strings.previous ()); + string w = f.kerning_strings.next ();+ + if (f.kerning_strings.is_empty ()) {+ MainWindow.show_message (empty_kerning_text);+ } else if (w == "") {+ MainWindow.show_message (t_("You have reached the end of the list."));+ } else {+ d.new_line ();+ d.add_text (w);+ } }); kerning_tools.add_tool (next_kerning_string);- + kerning_tools.set_persistent (false); kerning_tools.set_unique (false); @@ -382,6 +382,19 @@ public class Menu : GLib.Object { previous_kerning_pair.display = "Kerning"; kerning_menu.items.add (previous_kerning_pair); + MenuItem load_kerning_strings = add_menu_item (t_("Load Kerning Strings"), "load kerning strings");+ load_kerning_strings.action.connect (() => {+ BirdFont.get_current_font ().kerning_strings.load_file ();+ });+ kerning_menu.items.add (load_kerning_strings);++ MenuItem reload_kerning_strings = add_menu_item (t_("Reload Kerning Strings"), "reloadload kerning strings");+ reload_kerning_strings.action.connect (() => {+ Font f = BirdFont.get_current_font ();+ f.kerning_strings.load (f);+ });+ kerning_menu.items.add (reload_kerning_strings);+ // ligature menu MenuItem ligature = add_menu_item (t_("Ligatures")); ligature.action.connect (() => {@@ -36,7 +36,6 @@ public class OverviewTools : ToolCollection { custom_character_sets = new Gee.ArrayList<LabelTool> (); font_name.add_tool (new FontName ());- font_name.draw_separator = false; zoom_bar = new ZoomBar (); zoom_bar.new_zoom.connect ((z) => {@@ -23,8 +23,7 @@ public class PreviewTools : ToolCollection { Expander font_name = new Expander (); font_name.add_tool (new FontName ());- font_name.draw_separator = false;- + Tool update_webview_button = new Tool ("update_webview", t_("Reload webview")); update_webview_button.select_action.connect ((self) => { update_preview ();@@ -28,6 +28,7 @@ public class SpacingTab : KerningDisplay { Glyph text_input_glyph; public SpacingTab () {+ allocation = new WidgetAllocation (); adjust_side_bearings = true; } @@ -172,11 +173,11 @@ public class SpacingTab : KerningDisplay { p = 0; foreach (Glyph? g in row.glyph) { if (p < ex < p + box_size / 2.0) {- update_lsb(g);+ update_lsb (g); } if (p + box_size / 2.0 < ex < p + box_size) {- update_rsb(g);+ update_rsb (g); } p += box_size;@@ -27,7 +27,6 @@ public class SpacingTools : ToolCollection { Expander font_name = new Expander (); font_name.add_tool (new FontName ());- font_name.draw_separator = false; Expander zoom_expander = new Expander (t_("Font Size")); @@ -43,8 +42,13 @@ public class SpacingTools : ToolCollection { }); zoom_expander.add_tool (zoom_bar); + Expander spacing_tools_expander = new Expander ();+ spacing_tools_expander.add_tool (KerningTools.previous_kerning_string);+ spacing_tools_expander.add_tool (KerningTools.next_kerning_string);+ expanders.add (font_name); expanders.add (zoom_expander);+ expanders.add (spacing_tools_expander); } public override Gee.ArrayList<Expander> get_expanders () {@@ -560,7 +560,15 @@ GNU Lesser General Public License</copyright> <collection name="next"> <selected id="1"/> <glyph id="1" left="-28" right="28">- <path stroke="0" skew="0" data="B -5.3275867473,42.4403840207 M 10.0050640172,27.2399083884 M 9.7405137527,27.3721835207 M -5.6040667473,15.0689835207 M -5.3275867473,42.4403840207" />+ <path stroke="0" skew="0" data="B -5.3275867473,43.6698922174 M 10.0050640172,28.4694165851 M 9.7405137527,28.6016917174 M -5.6040667473,16.2984917174 M -5.3275867473,43.6698922174" />+ </glyph>+</collection>+<collection name="next_kerning_string">+ <selected id="2"/>+ <glyph id="1" left="-28" right="28">+ </glyph>+ <glyph id="2" left="-28" right="28">+ <path stroke="0" skew="0" data="B -5.3275867473,43.6698922174 M 10.0050640172,28.4694165851 M 9.7405137527,28.6016917174 M -5.6040667473,16.2984917174 M -5.3275867473,43.6698922174" /> </glyph> </collection> <collection unicode="U+6f">@@ -592,7 +600,15 @@ GNU Lesser General Public License</copyright> <collection name="prev"> <selected id="1"/> <glyph id="1" left="-28" right="28">- <path stroke="0" skew="0" data="B 7.2272862394,15.0689835207 M -8.1172942606,27.3721835207 M 6.9508062394,42.4403840207 M 7.2272862394,15.0689835207" />+ <path stroke="0" skew="0" data="B 7.2272862394,16.2984917174 M -8.1172942606,28.6016917174 M 6.9508062394,43.6698922174 M 7.2272862394,16.2984917174" />+ </glyph>+</collection>+<collection name="previous_kerning_string">+ <selected id="2"/>+ <glyph id="1" left="-28" right="28">+ </glyph>+ <glyph id="2" left="-28" right="28">+ <path stroke="0" skew="0" data="B 7.2272862394,16.2984917174 M -8.1172942606,28.6016917174 M 6.9508062394,43.6698922174 M 7.2272862394,16.2984917174" /> </glyph> </collection> <collection name="progress">@@ -944,78 +960,80 @@ 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="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="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="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="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="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="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 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="c o n t r a s t _ t h r e s h o l d" replacement="contrast_threshold"/> <ligature sequence="d e l e t e _ b a c k g r o u n d" replacement="delete_background"/>-<ligature sequence="q u a d r a t i c _ p o i n t s" replacement="quadratic_points"/>+<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 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="q u a d r a t i c _ p o i n t s" replacement="quadratic_points"/> <ligature sequence="m o v e _ b a c k g r o u n d" replacement="move_background"/>-<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="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="i n s e r t _ u n i c h a r" replacement="insert_unichar"/>-<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="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="d r o p d o w n _ m e n u" replacement="dropdown_menu"/>-<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="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="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="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="r i g h t _ a r r o w" replacement="right_arrow"/>-<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="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="l e f t _ a r r o w" replacement="left_arrow"/>-<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="f o r e s i g h t" replacement="foresight"/>-<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="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="i n f o _ i c o n" replacement="info_icon"/>-<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="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="f o r e s i g h t" replacement="foresight"/>+<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="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="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"/> </font>@@ -6191,4 +6191,5 @@ <kerning left="T" right="e" hadjustment="-11.3891448975" />+<kerning left="T" right="u" hadjustment="-7.0000000000" /> </font>