The Birdfont Source Code


All Repositories / birdfont.git / commit – RSS feed

Merge branch 'master' of github.com:johanmattssonm/birdfont

These changes was commited to the Birdfont repository Fri, 18 Dec 2015 16:49:09 +0000.

Contributing

Send patches or pull requests to johan.mattsson.m@gmail.com.
Clone this repository: git clone https://github.com/johanmattssonm/birdfont.git
author Johan Mattsson <johan.mattsson.m@gmail.com>
Fri, 18 Dec 2015 16:49:09 +0000 (17:49 +0100)
committer Johan Mattsson <johan.mattsson.m@gmail.com>
Fri, 18 Dec 2015 16:49:09 +0000 (17:49 +0100)
commit 1a8ae11857ac9694fa24011549df24bc787c75ce
tree 90c2549428d5bff44f7c8dcff359797c478c9c49
parent f58bce95af53240229806c1135a0ecfc22db87b8
parent 8061186c83a62c59a993e826f195477cd2cb685d
Merge branch 'master' of github.com:johanmattssonm/birdfont

libbirdfont/CircleTool.vala
libbirdfont/DrawingTools.vala
libbirdfont/EditPoint.vala
libbirdfont/EditPointHandle.vala
libbirdfont/OverviewTools.vala
libbirdfont/Path.vala
libbirdfont/Renderer/Text.vala
libbirdfont/ResizeTool.vala
resources/icons.bf
--- a/libbirdfont/CircleTool.vala +++ b/libbirdfont/CircleTool.vala @@ -73,7 +73,7 @@ ratio = 2 * radius / diameter; if (diameter * ratio > 0.5) { - circle.resize (ratio); + circle.resize (ratio, ratio); } get_boundaries (out xmin, out xmax, out ymin);
--- a/libbirdfont/DrawingTools.vala +++ b/libbirdfont/DrawingTools.vala @@ -419,7 +419,7 @@ 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 @@ 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 ();
--- a/libbirdfont/EditPoint.vala +++ b/libbirdfont/EditPoint.vala @@ -145,8 +145,8 @@ 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 @@ 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; } }
--- a/libbirdfont/EditPointHandle.vala +++ b/libbirdfont/EditPointHandle.vala @@ -77,7 +77,41 @@ } } } - + + 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;
--- a/libbirdfont/OverviewTools.vala +++ b/libbirdfont/OverviewTools.vala @@ -270,7 +270,7 @@ 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); } } }
--- a/libbirdfont/Path.vala +++ b/libbirdfont/Path.vala @@ -754,18 +754,20 @@ } /** 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; + 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; - xmax *= ratio; - ymin *= ratio; - ymax *= ratio; + xmin *= ratio_x; + xmax *= ratio_x; + ymin *= ratio_y; + ymax *= ratio_y; } public void scale (double scale_x, double scale_y) {
--- a/libbirdfont/Renderer/Text.vala +++ b/libbirdfont/Renderer/Text.vala @@ -360,10 +360,17 @@ cache = draw_on_cache_surface (cacheid); } - double s = get_font_scale (); - double cache_y = py - s * (cached_font.top_limit - cached_font.base_line); - cr.set_source_surface ((!) cache, (int) rint (px - s * margin_left), (int) rint (cache_y)); + double screen_scale = Screen.get_scale (); + double font_scale = get_font_scale (); + double cache_y = py - font_scale * (cached_font.top_limit - cached_font.base_line); + + cr.save(); + cr.scale (1 / screen_scale, 1 / screen_scale); + double scaled_x = (px - margin_left) * screen_scale; + double scaled_y = cache_y * screen_scale; + cr.set_source_surface ((!) cache, (int) rint (scaled_x), (int) rint (scaled_y)); cr.paint (); + cr.restore(); } Surface draw_on_cache_surface (string cacheid) { @@ -378,7 +385,8 @@ ratio = get_font_scale (); cc_y = (cached_font.top_limit - cached_font.base_line) * ratio; - double x = margin_left * ratio; + // double x = margin_left * ratio; + double x = 0; double py = cc_y; double w = get_sidebearing_extent () * screen_scale + x + margin_left + 1; @@ -404,15 +412,19 @@ return; } - draw_chached (cr, glyph, kerning, last, x, y, cc_y, - ratio, cacheid); + if (use_cache) { + draw_chached (cr, glyph, kerning, last, x, y, cc_y, + ratio, cacheid); + } else { + draw_without_cache (cr, glyph, kerning, last, x, y, cc_y, ratio); + } x = end; }); return cache_surface; } - + void draw_without_cache (Context cr, Glyph glyph, double kerning, bool last, double x, double y, double cc_y, double ratio) { @@ -432,7 +444,7 @@ cr.restore (); } - + void draw_chached (Context cr, Glyph glyph, double kerning, bool last, double x, double y, double cc_y, double ratio, string cacheid = "") { @@ -450,8 +462,8 @@ glyph_margin_left = 0; } - double xp = x - glyph_margin_left * ratio; - double yp = y - cc_y; + double xp = (x - glyph_margin_left * ratio) * Screen.get_scale (); + double yp = (y - cc_y) * Screen.get_scale (); int offset_x, offset_y; offset_x = (int) (10 * (xp - (int) xp)); @@ -459,7 +471,7 @@ cache_id = (cacheid == "") ? get_cache_id (offset_x, offset_y) : cacheid; - if (unlikely (!glyph.has_cache (cache_id))) { + if (!glyph.has_cache (cache_id)) { int w = (int) ((glyph_margin_left * ratio + glyph.get_width ()) * ratio) + 2; int h = (int) font_size + 2; cache = Screen.create_background_surface (w, h); @@ -493,8 +505,8 @@ cr.set_antialias (Cairo.Antialias.NONE); cr.scale(1 / Screen.get_scale (), 1 / Screen.get_scale ()); cr.set_source_surface (cached_glyph, - (int) (xp * Screen.get_scale ()), - (int) (yp * Screen.get_scale ())); + (int) xp, + (int) yp); cr.paint (); cr.restore (); }
--- a/libbirdfont/ResizeTool.vala +++ b/libbirdfont/ResizeTool.vala @@ -18,8 +18,9 @@ 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; @@ -40,9 +41,20 @@ 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 @@ 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 @@ 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 @@ }); 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 @@ 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 @@ 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,9 +203,15 @@ }); } - 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 () { @@ -306,12 +349,14 @@ 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 @@ // 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 @@ 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 @@ } /** 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 @@ 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 (); @@ -405,11 +467,9 @@ out selection_box_center_y, 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,8 +515,14 @@ 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) {
--- a/resources/icons.bf +++ b/resources/icons.bf @@ -1245,6 +1245,15 @@ <glyph id="1" left="-28" right="20.375000000000004"> <layer name= "Layer" visible="true"> <path data="S 16.3437500000,46.5788834951 L 16.3437500000,6.2663834951 L -23.9687500000,46.5788834951 L 16.3437500000,46.5788834951" /> + </layer> + </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> @@ -1746,108 +1755,109 @@ <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="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="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="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="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="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="n e x t _ k e r n i n g _ s t r i n g" replacement="next_kerning_string"/> <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="n e x t _ k e r n i n g _ s t r i n g" replacement="next_kerning_string"/> + <ligature sequence="c o n t r a s t _ t h r e s h o l d" replacement="contrast_threshold"/> <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 o n t r a s t _ t h r e s h o l d" replacement="contrast_threshold"/> + <ligature sequence="c u r v e _ o r i e n t a t i o n" replacement="curve_orientation"/> + <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="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="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="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>