The Birdfont Source Code
Faster overview
These changes was commited to the Birdfont repository Sat, 30 May 2015 13:14:38 +0000.
Contributing
Send patches or pull requests to johan.mattsson.m@gmail.com.
Clone this repository: git clone https://github.com/johanmattssonm/birdfont.git
Faster overview
--- a/libbirdfont/FileTools.vala
+++ b/libbirdfont/FileTools.vala
@@ -65,6 +65,7 @@
theme_label.select_action.connect((self) => {
LabelTool s = (LabelTool) self;
+ Toolbox toolbox = MainWindow.get_toolbox ();
string theme_file = s.data;
TabBar tb = MainWindow.get_tab_bar ();
Preferences.set ("theme", theme_file);
@@ -77,7 +78,9 @@
font_name.redraw ();
tb.redraw (0, 0, tb.width, tb.height);
- OverviewTools.zoom_expander.redraw ();
+ foreach (ToolCollection tc in toolbox.tool_sets) {
+ tc.redraw ();
+ }
});
if (!theme.has_prefix ("generated_")) {
--- a/libbirdfont/OverView.vala
+++ b/libbirdfont/OverView.vala
@@ -215,6 +215,7 @@
z.store_current_view ();
MainWindow.get_current_glyph ().default_zoom ();
z.store_current_view ();
+ OverViewItem.reset_label ();
}
public double get_height () {
@@ -294,6 +295,7 @@
OverViewItem.height = OverViewItem.DEFAULT_HEIGHT * z;
OverViewItem.margin = OverViewItem.DEFAULT_MARGIN * z;
update_item_list ();
+ OverViewItem.reset_label ();
GlyphCanvas.redraw ();
}
@@ -302,6 +304,7 @@
OverViewItem.height = OverViewItem.DEFAULT_HEIGHT * 0.5;
OverViewItem.margin = OverViewItem.DEFAULT_MARGIN * 0.5;
update_item_list ();
+ OverViewItem.reset_label ();
GlyphCanvas.redraw ();
update_zoom_bar ();
}
@@ -311,6 +314,7 @@
OverViewItem.height = OverViewItem.DEFAULT_HEIGHT;
OverViewItem.margin = OverViewItem.DEFAULT_MARGIN;
update_item_list ();
+ OverViewItem.reset_label ();
GlyphCanvas.redraw ();
update_zoom_bar ();
}
@@ -319,6 +323,7 @@
OverViewItem.width = allocation.width;
OverViewItem.height = allocation.height;
update_item_list ();
+ OverViewItem.reset_label ();
GlyphCanvas.redraw ();
}
@@ -327,6 +332,7 @@
OverViewItem.height *= 1.1;
OverViewItem.margin *= 1.1;
update_item_list ();
+ OverViewItem.reset_label ();
GlyphCanvas.redraw ();
update_zoom_bar ();
}
@@ -336,6 +342,7 @@
OverViewItem.height *= 0.9;
OverViewItem.margin *= 0.9;
update_item_list ();
+ OverViewItem.reset_label ();
GlyphCanvas.redraw ();
update_zoom_bar ();
}
@@ -391,7 +398,7 @@
}
return i - 1;
}
-
+
public void update_item_list (int item_list_length = -1) {
string character_string;
Font f = BirdFont.get_current_font ();
@@ -488,11 +495,11 @@
i.draw (allocation, cr);
}
- if (visible_items.size == 0) {
+ if (unlikely (visible_items.size == 0)) {
draw_empty_canvas (allocation, cr);
}
- if (character_info != null) {
+ if (unlikely (character_info != null)) {
draw_character_info (cr);
}
}
--- a/libbirdfont/OverViewItem.vala
+++ b/libbirdfont/OverViewItem.vala
@@ -36,7 +36,12 @@
public static double glyph_scale = 1.0;
public VersionList version_menu;
- Text icon;
+ Text label;
+
+ static Surface? label_background = null;
+ static Surface? selected_label_background = null;
+ static Surface? label_background_no_menu = null;
+ static Surface? selected_label_background_no_menu = null;
public OverViewItem (GlyphCollection? glyphs, unichar character, double x, double y) {
this.x = x;
@@ -45,10 +50,9 @@
this.glyphs = glyphs;
this.info = new CharacterInfo (character, glyphs);
- icon = new Text ("dropdown_menu", 17);
- icon.load_font ("icons.bf");
- icon.use_cache (true);
-
+ label = new Text ((!) character.to_string (), 17);
+ truncate_label ();
+
if (glyphs != null) {
version_menu = new VersionList ((!) glyphs);
version_menu.add_glyph_item.connect ((glyph) => {
@@ -64,6 +68,16 @@
} else {
version_menu = new VersionList (new GlyphCollection (character, (!) character.to_string ()));
}
+ }
+
+ public static void reset_label () {
+ label_background = null;
+ selected_label_background = null;
+ }
+
+ void truncate_label () {
+ double w = has_icons () ? width - 43 : width;
+ label.truncate (w);
}
public string get_name () {
@@ -95,10 +109,11 @@
bool a;
GlyphCollection g;
bool s = (x <= px <= x + width) && (y <= py <= y + height);
-
+
if (has_icons () && glyphs != null) {
g = (!) glyphs;
-
+
+ version_menu.set_position (x + width - 21, y + height - 18);
a = version_menu.menu_item_action (px, py); // select one item on the menu
if (a) {
return s;
@@ -142,7 +157,7 @@
cr.restore ();
draw_thumbnail (cr, glyphs, x, y + height);
- draw_caption (cr);
+ draw_caption (cr);
}
public void adjust_scale () {
@@ -240,53 +255,133 @@
}
public void draw_caption (Context cr) {
- StringBuilder name = new StringBuilder ();
- Cairo.Pattern p;
- string text;
- Text label;
-
- name.append_unichar (character);
+ draw_label_background (cr);
cr.save ();
- cr.rectangle (x + 1, y + height - 20, width - 2, 20 - 1);
-
- if (!selected) {
- p = new Cairo.Pattern.linear (0.0, y + height - 20, 0.0, y + height);
- Theme.gradient (p, "Overview Item 1", "Overview Item 2");
- cr.set_source (p);
- } else {
- Theme.color (cr, "Selected Overview Item");
+ if (glyphs != null) {
+ if (selected) {
+ Theme.text_color (label, "Overview Selected Foreground");
+ } else {
+ Theme.text_color (label, "Overview Foreground");
+ }
+
+ label.draw_at_baseline (cr, x + 0.08 * width, y + height - 6);
}
- cr.fill ();
+ draw_menu (cr);
+ cr.restore ();
+ }
+
+ public void create_label_background_cache (Context cr) {
+ Context cc;
+ Cairo.Pattern p;
+ Surface cache;
+
+ // unselected item
+ cache = new Surface.similar (cr.get_target (), Cairo.Content.COLOR_ALPHA, (int) width, 20);
+ cc = new Context (cache);
+ cc.rectangle (0, 0, width - 1, 20 - 1);
+ p = new Cairo.Pattern.linear (0.0, 0, 0.0, 20);
+ Theme.gradient (p, "Overview Item 1", "Overview Item 2");
+ cc.set_source (p);
+
+ cc.fill ();
if (has_icons ()) {
- draw_menu (cr);
- draw_character_info_icon (cr);
+ draw_menu_icon (cc, false);
+ draw_character_info_icon (cc);
}
- if (glyphs != null) {
- text = name.str;
-
- double w = has_icons () ? width - 43 : width;
- label = new Text (text, 17);
- label.truncate (w);
- label.use_cache (true);
+ label_background = (!) cache;
+
+ // selected item
+ cache = new Surface.similar (cr.get_target (), Cairo.Content.COLOR_ALPHA, (int) width, 20);
+ cc = new Context (cache);
+
+ cc.rectangle (0, 0, width - 1, 20 - 1);
+
+ Theme.color (cc, "Selected Overview Item");
- if (selected) {
- Theme.text_color (label, "Overview Selected Foreground");
+ cc.fill ();
+
+ if (has_icons ()) {
+ draw_menu_icon (cc, true);
+ draw_character_info_icon (cc);
+ }
+
+ selected_label_background = (!) cache;
+
+ // unselected item without menu icon
+ cache = new Surface.similar (cr.get_target (), Cairo.Content.COLOR_ALPHA, (int) width, 20);
+ cc = new Context (cache);
+
+ cc.rectangle (0, 0, width - 1, 20 - 1);
+ p = new Cairo.Pattern.linear (0.0, 0, 0.0, 20);
+ Theme.gradient (p, "Overview Item 1", "Overview Item 2");
+ cc.set_source (p);
+ cc.fill ();
+
+ if (has_icons ()) {
+ draw_character_info_icon (cc);
+ }
+
+ label_background_no_menu = (!) cache;
+
+ // selected item
+ cache = new Surface.similar (cr.get_target (), Cairo.Content.COLOR_ALPHA, (int) width, 20);
+ cc = new Context (cache);
+ cc.rectangle (0, 0, width - 1, 20 - 1);
+ Theme.color (cc, "Selected Overview Item");
+ cc.fill ();
+
+ if (has_icons ()) {
+ draw_character_info_icon (cc);
+ }
+
+ selected_label_background_no_menu = (!) cache;
+ }
+
+ bool has_menu () {
+ return glyphs != null;
+ }
+
+ public void draw_label_background (Context cr) {
+ Surface cache;
+ bool icon;
+
+ if (unlikely (label_background == null)) {
+ create_label_background_cache (cr);
+ }
+
+ if (label_background != null
+ && selected_label_background != null
+ && label_background_no_menu != null
+ && selected_label_background_no_menu != null) {
+
+ icon = has_menu ();
+ if (selected && icon) {
+ cache = (!) selected_label_background;
+ } else if (!selected && icon) {
+ cache = (!) label_background;
+ } else if (selected && !icon) {
+ cache = (!) selected_label_background_no_menu;
} else {
- Theme.text_color (label, "Overview Foreground");
+ cache = (!) label_background_no_menu;
}
- label.draw_at_baseline (cr, x + 0.08 * width, y + height - 6);
+ cr.save ();
+ cr.set_antialias (Cairo.Antialias.NONE);
+ cr.set_source_surface (cache, (int) (x + 1), (int) (y + height - 20));
+ cr.paint ();
+ cr.restore ();
}
}
-
+
private void draw_character_info_icon (Context cr) {
- double px = x + width - 17;
- double py = y + height - 21;
+ double px = width - 17;
+ double py = -2.5;
+
info.set_position (px, py);
info.draw_icon (cr, selected);
}
@@ -295,23 +390,29 @@
version_menu.menu_visible = false;
}
- private void draw_menu (Context cr) {
- if (glyphs == null) {
- return;
- }
-
+ private void draw_menu_icon (Context cc, bool selected) {
+ Text icon;
+
+ icon = new Text ("dropdown_menu", 17);
+ icon.load_font ("icons.bf");
+
if (selected) {
Theme.text_color (icon, "Overview Selected Foreground");
} else {
Theme.text_color (icon, "Overview Foreground");
}
- icon.draw_at_top (cr, x + width - 32, y + height - 19);
+ icon.draw_at_top (cc, width - 32, 0);
+ }
+
+ private void draw_menu (Context cr) {
+ if (likely (glyphs == null || !version_menu.menu_visible)) {
+ return;
+ }
- version_menu.set_position (x + width - 21, y + height - 18);
version_menu.draw_menu (cr);
}
}
}
--- a/libbirdfont/ToolCollection.vala
+++ b/libbirdfont/ToolCollection.vala
@@ -25,8 +25,14 @@
public virtual Gee.ArrayList<string> get_displays () {
return new Gee.ArrayList<string> ();
+ }
+
+ public void redraw () {
+ foreach (Expander e in get_expanders ()) {
+ e.redraw ();
+ }
}
}
}
--- a/libbirdfont/Toolbox.vala
+++ b/libbirdfont/Toolbox.vala
@@ -45,13 +45,14 @@
bool scrolling_touch = false;
double scroll_y = 0;
- public List<ToolCollection> tool_sets = new List<ToolCollection> ();
+ public Gee.ArrayList<ToolCollection> tool_sets;
string? tool_tip = null;
double tool_tip_x = 0;
double tool_tip_y = 0;
public Toolbox (GlyphCanvas glyph_canvas, TabBar tab_bar) {
+ tool_sets = new Gee.ArrayList<ToolCollection> ();
current_tool = new Tool ("no_icon");
press_tool = new Tool (null);
@@ -64,13 +65,13 @@
spacing_tools = new SpacingTools ();
file_tools = new FileTools ();
- tool_sets.append (drawing_tools);
- tool_sets.append (kerning_tools);
- tool_sets.append (preview_tools);
- tool_sets.append (overview_tools);
- tool_sets.append (background_tools);
+ tool_sets.add (drawing_tools);
+ tool_sets.add (kerning_tools);
+ tool_sets.add (preview_tools);
+ tool_sets.add (overview_tools);
+ tool_sets.add (background_tools);
// the menu has all the file_tools commands, it won't be added here
- tool_sets.append (hidden_tools); // tools without a button
+ tool_sets.add (hidden_tools); // tools without a button
current_set = file_tools;
--- a/resources/icons.bf
+++ b/resources/icons.bf
@@ -417,7 +417,7 @@
<glyph id="1" left="-28" right="33.597883597883616">
<path data="B 33.4557723114,27.7602470013 C 33.4557723114,10.8486376087 19.7651712298,-2.8868862385 2.8535762171,-2.8868862385 C -14.0580336070,-2.8868862385 -27.7935573823,10.8486376087 -27.7935573823,27.7602470013 C -27.7935573823,44.6718405761 -14.0580336070,58.4073788032 2.8535762171,58.4073788032 C 19.7651712298,58.4073788032 33.4557723114,44.6718405761 33.4557723114,27.7602470013" />
<path data="B -22.9372197969,27.6712637687 C -22.9372197969,13.3872582207 -11.3620694169,1.8121082225 2.9219361312,1.8121082225 C 17.2059289484,1.8121082225 28.7413083611,13.3872582207 28.7413083611,27.6712637687 C 28.7413083611,41.9552553130 17.2059289484,53.5304180417 2.9219361312,53.5304180417 C -11.3620694169,53.5304180417 -22.9372197969,41.9552553130 -22.9372197969,27.6712637687" />
- <path data="B -0.7322863839,39.7818352495 C 0.6722544235,39.7818352495 4.1050139259,39.7818352495 6.5236640807,39.7818352495 M 6.5236640807,39.7818352495 M 6.5236640807,45.1175621773 M -0.7322863839,45.1175621773 C -0.7322863839,43.3389865347 -0.7322863839,41.5604108921 -0.7322863839,39.7818352495" />
+ <path data="B -0.7322863839,41.5840330517 C 0.6722544235,41.5840330517 4.1050139259,41.5840330517 6.5236640807,41.5840330517 M 6.5236640807,41.5840330517 M 6.5236640807,46.9197599795 M -0.7322863839,46.9197599795 C -0.7322863839,45.1411843369 -0.7322863839,43.3626086943 -0.7322863839,41.5840330517" />
<path data="B -0.7322863839,35.1331149086 C 0.6722544235,35.1331149086 4.1050139259,35.1331149086 6.5236640807,35.1331149086 M 6.5236640807,9.4849784247 M -0.7322863839,9.4849784247 M -0.7322863839,35.1331149086" />
</glyph>
</collection>
@@ -1083,95 +1083,95 @@
<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="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="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="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="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="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="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="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="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="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="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="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="f i l l _ o p e n _ p a t h" replacement="fill_open_path"/>
- <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="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="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="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="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="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="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="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="o p e n _ f o n t" replacement="open_font"/>
- <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="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="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="w i d t h" replacement="width"/>
+ <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="s k e w" replacement="skew"/>
<kerning left="settings" right="l" hadjustment="3.8289794922" />
</font>