Commit 0e2d170
Allow changing proportions when glyphs are resized
Changed files (8)
modifiedlibbirdfont/CircleTool.valamodifiedlibbirdfont/DrawingTools.valamodifiedlibbirdfont/EditPoint.valamodifiedlibbirdfont/EditPointHandle.valamodifiedlibbirdfont/OverviewTools.valamodifiedlibbirdfont/Path.valamodifiedlibbirdfont/ResizeTool.valamodifiedresources/icons.bf
Diff
@@ -73,7 +73,7 @@ public class CircleTool : Tool { ratio = 2 * radius / diameter; if (diameter * ratio > 0.5) {- circle.resize (ratio);+ circle.resize (ratio, ratio); } get_boundaries (out xmin, out xmax, out ymin);@@ -419,7 +419,7 @@ public class DrawingTools : ToolCollection { new_size = self.get_value () / w; if (self.get_value () > 0 && new_size != 1) {- resize_tool.resize_selected_paths (new_size);+ resize_tool.resize_selected_paths (new_size, new_size); } GlyphCanvas.redraw ();@@ -444,7 +444,7 @@ public class DrawingTools : ToolCollection { new_size = self.get_value () / h; if (self.get_value () > 0 && new_size != 1) {- resize_tool.resize_selected_paths (new_size);+ resize_tool.resize_selected_paths (new_size, new_size); } GlyphCanvas.redraw ();@@ -145,8 +145,8 @@ public class EditPoint : GLib.Object { set { double d = value - x; x = value;- right_handle.x -= d;- left_handle.x -= d;+ right_handle.independent_x -= d;+ left_handle.independent_x -= d; } } @@ -158,8 +158,8 @@ public class EditPoint : GLib.Object { set { double d = value - y; y = value;- right_handle.y -= d;- left_handle.y -= d;+ right_handle.independent_y -= d;+ left_handle.independent_y -= d; } } @@ -77,7 +77,41 @@ public class EditPointHandle : GLib.Object { } } }- ++ public double independent_x {+ get { + double r = px (); + + if (unlikely (r <= -100000)) {+ print_position ();+ move_to (0, 0);+ }+ + return r;+ }+ + set { + move_to_coordinate_internal (value, py ());+ }+ }++ public double independent_y {+ get {+ double r = py ();+ + if (unlikely (r <= -100000)) {+ print_position ();+ move_to (0, 0);+ }+ + return r; + }+ + set { + move_to_coordinate_internal (px (), value); + }+ }+ public EditPointHandle.empty() { this.parent = none; this.angle = 0;@@ -270,7 +270,7 @@ public class OverviewTools : ToolCollection { if (resize.get_value () != 100) { double scale = resize.get_value () / 100;- DrawingTools.resize_tool.resize_glyph (g, scale, false);+ DrawingTools.resize_tool.resize_glyph (g, scale, scale, false); } } }@@ -754,18 +754,20 @@ public class Path : GLib.Object { } /** Resize path relative to bottom left coordinates. */- public void resize (double ratio) { + public void resize (double ratio_x, double ratio_y) { foreach (EditPoint p in points) {- p.x *= ratio;- p.y *= ratio;- p.right_handle.length *= ratio;- p.left_handle.length *= ratio;- }- - xmin *= ratio; - xmax *= ratio;- ymin *= ratio;- ymax *= ratio;+ p.independent_x *= ratio_x;+ p.independent_y *= ratio_y;+ p.get_right_handle ().independent_x *= ratio_x;+ p.get_right_handle ().independent_y *= ratio_y;+ p.get_left_handle ().independent_x *= ratio_x;+ p.get_left_handle ().independent_y *= ratio_y;+ }+ + xmin *= ratio_x; + xmax *= ratio_x;+ ymin *= ratio_y;+ ymax *= ratio_y; } public void scale (double scale_x, double scale_y) { @@ -18,8 +18,9 @@ using Cairo; namespace BirdFont { public class ResizeTool : Tool {- - bool resize_path = false;+ bool resize_path_proportional = false;+ bool resize_width = false;+ Path? resized_path = null; double last_resize_y; double last_resize_x;@@ -41,8 +42,19 @@ public class ResizeTool : Tool { public signal void objects_rotated (double angle); public signal void objects_resized (double width, double height); + Text proportional_handle;+ Text horizontal_handle;+ public ResizeTool (string n) { base (n, t_("Resize and rotate paths"));++ proportional_handle = new Text ("resize_handle", 60);+ proportional_handle.load_font ("icons.bf");+ Theme.text_color (proportional_handle, "Highlighted 1");++ horizontal_handle = new Text ("resize_handle_horizontal", 60);+ horizontal_handle.load_font ("icons.bf");+ Theme.text_color (horizontal_handle, "Highlighted 1"); select_action.connect((self) => { });@@ -59,17 +71,16 @@ public class ResizeTool : Tool { foreach (Path p in glyph.active_paths) { if (is_over_resize_handle (p, x, y)) {- resize_path = true;+ resize_path_proportional = true; resized_path = p; last_resize_x = x; last_resize_y = y; return; }- }- - if (resized_path != null) {- if (is_over_resize_handle ((!) resized_path, x, y)) {- resize_path = true;++ if (is_over_horizontal_resize_handle (p, x, y)) {+ resize_width = true;+ resized_path = p; last_resize_x = x; last_resize_y = y; return; @@ -85,14 +96,16 @@ public class ResizeTool : Tool { if (glyph.active_paths.size > 0) { last_path = glyph.active_paths.get (glyph.active_paths.size - 1);- last_rotate = last_path.rotation ;+ last_rotate = last_path.rotation; } rotation = last_rotate; last_resize_x = x; last_rotate_y = y; - DrawingTools.move_tool.press (b, x, y);+ if (!resize_path_proportional && !resize_width && !rotate_path) {+ DrawingTools.move_tool.press (b, x, y);+ } move_paths = true; @@ -100,7 +113,8 @@ public class ResizeTool : Tool { }); release_action.connect((self, b, x, y) => {- resize_path = false;+ resize_path_proportional = false;+ resize_width = false; rotate_path = false; move_paths = false; DrawingTools.move_tool.release (b, x, y);@@ -115,22 +129,32 @@ public class ResizeTool : Tool { move_action.connect ((self, x, y) => { Glyph glyph; - if (resize_path && can_resize (x, y)) {- resize (x, y);+ if (resize_path_proportional && can_resize (x, y)) {+ resize_proportional (x, y);+ update_selection_box ();+ }++ if (resize_width && can_resize (x, y)) {+ resize_horizontal (x, y);+ update_selection_box (); } if (rotate_path) { rotate (x, y);+ update_selection_box (); } - if (move_paths || rotate_path || resize_path) {+ if (move_paths + || rotate_path+ || resize_path_proportional+ || resize_width) {+ glyph = MainWindow.get_current_glyph (); foreach (Path selected_path in glyph.active_paths) { selected_path.reset_stroke (); } - update_selection_box (); GlyphCanvas.redraw (); } @@ -142,19 +166,32 @@ public class ResizeTool : Tool { Glyph g = MainWindow.get_current_glyph (); if (!rotate_path) {- handle = new Text ("resize_handle", 60 * MainWindow.units);- handle.load_font ("icons.bf");- - get_reseize_handle_position (out handle.widget_x, out handle.widget_y);- - handle.widget_x -= handle.get_sidebearing_extent () / 2;- handle.widget_y -= handle.get_height () / 2;+ if (!resize_width) {+ handle = proportional_handle;+ get_resize_handle_position (out handle.widget_x, out handle.widget_y);+ + handle.widget_x -= handle.get_sidebearing_extent () / 2;+ handle.widget_y -= handle.get_height () / 2;+ + handle.draw (cr);+ } - Theme.text_color (handle, "Highlighted 1");- handle.draw (cr);+ if (!resize_path_proportional) {+ handle = horizontal_handle;+ + get_horizontal_reseize_handle_position (out handle.widget_x, + out handle.widget_y);+ + handle.widget_x -= handle.get_sidebearing_extent () / 2;+ handle.widget_y -= handle.get_height () / 2;+ + handle.draw (cr);+ } }- - if (!resize_path && g.active_paths.size > 0) {++ if (!resize_path_proportional && !resize_width + && g.active_paths.size > 0) {+ draw_rotate_handle (cr); } @@ -166,11 +203,17 @@ public class ResizeTool : Tool { }); } - public static void get_reseize_handle_position (out double px, out double py) {+ public static void get_resize_handle_position (out double px, out double py) { px = Glyph.reverse_path_coordinate_x (selection_box_center_x + selection_box_width / 2); py = Glyph.reverse_path_coordinate_y (selection_box_center_y + selection_box_height / 2); } + public static void get_horizontal_reseize_handle_position (out double px, out double py) {+ px = Glyph.reverse_path_coordinate_x (selection_box_center_x + selection_box_width / 2);+ px += 40;+ py = Glyph.reverse_path_coordinate_y (selection_box_center_y);+ }+ public static double get_rotated_handle_length () { double s, hx, hy; double d;@@ -306,12 +349,14 @@ public class ResizeTool : Tool { return ratio; } - public void resize_selected_paths (double ratio) {+ public void resize_selected_paths (double ratio_x, double ratio_y) { Glyph g = MainWindow.get_current_glyph ();- resize_glyph (g, ratio, true);+ resize_glyph (g, ratio_x, ratio_y, true); } - public void resize_glyph (Glyph glyph, double ratio, bool selected = true) {+ public void resize_glyph (Glyph glyph, double ratio_x,+ double ratio_y, bool selected = true) {+ double resize_pos_x = 0; double resize_pos_y = 0; double selection_minx, selection_miny, dx, dy;@@ -328,7 +373,7 @@ public class ResizeTool : Tool { // resize paths foreach (Path selected_path in glyph.active_paths) {- selected_path.resize (ratio);+ selected_path.resize (ratio_x, ratio_y); selected_path.reset_stroke (); } @@ -348,7 +393,7 @@ public class ResizeTool : Tool { if (!selected) { double w;- w = (ratio * glyph.get_width () - glyph.get_width ()) / 2.0;+ w = (ratio_x * glyph.get_width () - glyph.get_width ()) / 2.0; glyph.left_limit -= w; glyph.right_limit += w; glyph.clear_active_paths ();@@ -365,18 +410,35 @@ public class ResizeTool : Tool { } /** Move resize handle to pixel x,y. */- void resize (double px, double py) {+ void resize_proportional (double px, double py) { double ratio; ratio = get_resize_ratio (px, py); if (ratio != 1) {- resize_selected_paths (ratio);+ resize_selected_paths (ratio, ratio); last_resize_x = px; last_resize_y = py; } } + /** Move resize handle to pixel x,y. */+ void resize_horizontal (double px, double py) {+ double ratio, x, y, w, h;++ Glyph glyph = MainWindow.get_current_glyph ();+ glyph.selection_boundaries (out x, out y, out w, out h);+ + ratio = 1 + (Glyph.path_coordinate_x (px) + - Glyph.path_coordinate_x (last_resize_x)) / w;+ + if (ratio != 1) {+ resize_selected_paths (ratio, 1);+ last_resize_x = px;+ last_resize_y = py;+ }+ }+ public void full_height () { double xc, yc, w, h; Glyph glyph = MainWindow.get_current_glyph ();@@ -395,7 +457,7 @@ public class ResizeTool : Tool { double font_height = font.top_position - font.base_line; double scale = font_height / (h - descender); - resize_selected_paths (scale);+ resize_selected_paths (scale, scale); PenTool.reset_stroke (); MoveTool.update_boundaries_for_selection ();@@ -406,10 +468,8 @@ public class ResizeTool : Tool { out selection_box_width, out selection_box_height); - DrawingTools.move_tool.move_to_baseline (); - foreach (Path path in glyph.active_paths) { path.move (0, -descender * scale); }@@ -455,10 +515,16 @@ public class ResizeTool : Tool { bool is_over_resize_handle (Path p, double x, double y) { double handle_x, handle_y;- get_reseize_handle_position (out handle_x, out handle_y);+ get_resize_handle_position (out handle_x, out handle_y); return Path.distance (handle_x, x, handle_y, y) < 12 * MainWindow.units; } + bool is_over_horizontal_resize_handle (Path p, double x, double y) {+ double handle_x, handle_y;+ get_horizontal_reseize_handle_position (out handle_x, out handle_y);+ return Path.distance (handle_x, x, handle_y, y) < 12 * MainWindow.units; + }+ public void skew (double skew) { Glyph glyph = MainWindow.get_current_glyph (); skew_glyph (glyph, skew, last_skew, true);@@ -1249,6 +1249,15 @@ GNU Lesser General Public License</copyright> </glyph> </collection> +<collection name="resize_handle_horizontal">+ <selected id="0"/>+ <glyph id="0" left="-28" right="20.375000000000004">+ <layer name= "Layer" visible="true">+ <path data="S 13.0974637156,26.9541020266 L -15.4077784009,-1.5511400900 L -15.4077784009,55.4593441432 L 13.0974637156,26.9541020266" />+ </layer>+ </glyph>+</collection>+ <collection name="resize_overview"> <selected id="0"/> <glyph id="0" left="-28" right="28">@@ -1746,107 +1755,108 @@ GNU Lesser General Public License</copyright> <ligature sequence="o r i e n t a t i o n _ c o u n t e r _ c l o c k w i s e" replacement="orientation_counter_clockwise"/> <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="r e s i z e _ h a n d l e _ h o r i z o n t a l" replacement="resize_handle_horizontal"/> <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="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="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="a u t o _ t r a c e _ s i m p l i f y" replacement="auto_trace_simplify"/>+<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="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="k e r n i n g _ t e x t _ i n p u t" replacement="kerning_text_input"/>+<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="o r i e n t a t i o n _ a r r o w" replacement="orientation_arrow"/>-<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="k e r n i n g _ t e x t _ i n p u t" replacement="kerning_text_input"/> <ligature sequence="c u r v e _ o r i e n t a t i o n" replacement="curve_orientation"/>-<ligature sequence="s c a l e _ b a c k g r o u n d" replacement="scale_background"/>-<ligature sequence="q u a d r a t i c _ p o i n t s" replacement="quadratic_points"/>+<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="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="r e s i z e _ o v e r v i e w" replacement="resize_overview"/>-<ligature sequence="l i n e _ c a p _ s q u a r e" replacement="line_cap_square"/>-<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="q u a d r a t i c _ p o i n t s" replacement="quadratic_points"/>+<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="l i n e _ c a p _ r o u n d" replacement="line_cap_round"/>-<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="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="l i n e _ c a p _ s q u a r e" replacement="line_cap_square"/>+<ligature sequence="r e s i z e _ o v e r v i e w" replacement="resize_overview"/> <ligature sequence="f i l l _ o p e n _ p a t h" replacement="fill_open_path"/>-<ligature sequence="s k e w _ o v e r v i e w" replacement="skew_overview"/>-<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="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="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="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="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="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="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="l i n e _ c a p _ b u t t" replacement="line_cap_butt"/>+<ligature sequence="l a y e r _ v i s i b l e" replacement="layer_visible"/>+<ligature sequence="s k e w _ o v e r v i e w" replacement="skew_overview"/> <ligature sequence="a p p l y _ s t r o k e" replacement="apply_stroke"/>-<ligature sequence="f u l l _ h e i g h t" replacement="full_height"/>-<ligature sequence="s h o w _ l a y e r s" replacement="show_layers"/>-<ligature sequence="b e z i e r _ t o o l" replacement="bezier_tool"/>-<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="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="y _ c o o r d i n a t e" replacement="y_coordinate"/>+<ligature sequence="l a y e r _ h i d d e n" replacement="layer_hidden"/> <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="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="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="b e z i e r _ t o o l" replacement="bezier_tool"/>+<ligature sequence="s h o w _ l a y e r s" replacement="show_layers"/>+<ligature sequence="f u l l _ h e i g h t" replacement="full_height"/> <ligature sequence="f u l l _ g l y p h" replacement="full_glyph"/>-<ligature sequence="a l t e r n a t e" replacement="alternate"/>-<ligature sequence="l o c k _ g r i d" replacement="lock_grid"/>-<ligature sequence="s a v e _ f o n t" replacement="save_font"/>-<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="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="c l o s e _ p a t h" replacement="close_path"/> <ligature sequence="t r a n s f o r m" replacement="transform"/>-<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="a d d _ l a y e r" replacement="add_layer"/>+<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="s a v e _ f o n t" replacement="save_font"/>+<ligature sequence="l o c k _ g r i d" replacement="lock_grid"/>+<ligature sequence="a l t e r n a t e" replacement="alternate"/> <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="s e t t i n g s" replacement="settings"/> <ligature sequence="z o o m _ i n" replacement="zoom_in"/>-<ligature sequence="h e i g h t" replacement="height"/>-<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="w i d t h" replacement="width"/>+<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="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"/>+<ligature sequence="w i d t h" replacement="width"/>+<ligature sequence="t h e m e" replacement="theme"/> <ligature sequence="s t o p" replacement="stop"/>+<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="s k e w" replacement="skew"/> <kerning left="settings" right="l" hadjustment="3.8289794922" /> </font>