summaryrefslogtreecommitdiffstats
path: root/src/ui/widget/font-variants.cpp
diff options
context:
space:
mode:
authorTavmjong Bah <tavmjong@free.fr>2018-04-05 13:05:17 +0000
committerTavmjong Bah <tavmjong@free.fr>2018-04-05 13:05:17 +0000
commitc2fbc03b37ca44ad31db6503046a99c47a520313 (patch)
tree67df8583465fd6ef4c5bf0abf6d02edcf7a023d1 /src/ui/widget/font-variants.cpp
parentReduce error messages. (diff)
downloadinkscape-c2fbc03b37ca44ad31db6503046a99c47a520313.tar.gz
inkscape-c2fbc03b37ca44ad31db6503046a99c47a520313.zip
Extract and display ligatures in a font.
Diffstat (limited to 'src/ui/widget/font-variants.cpp')
-rw-r--r--src/ui/widget/font-variants.cpp44
1 files changed, 37 insertions, 7 deletions
diff --git a/src/ui/widget/font-variants.cpp b/src/ui/widget/font-variants.cpp
index 6d072602f..ac464e1d6 100644
--- a/src/ui/widget/font-variants.cpp
+++ b/src/ui/widget/font-variants.cpp
@@ -2,7 +2,7 @@
* Author:
* Tavmjong Bah <tavmjong@free.fr>
*
- * Copyright (C) 2015 Tavmong Bah
+ * Copyright (C) 2015, 2018 Tavmong Bah
*
* Released under GNU GPL. Read the file 'COPYING' for more information.
*/
@@ -90,11 +90,15 @@ namespace Widget {
_ligatures_contextual.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::ligatures_callback) );
// Add to frame
- _ligatures_vbox.pack_start( _ligatures_common );
- _ligatures_vbox.pack_start( _ligatures_discretionary );
- _ligatures_vbox.pack_start( _ligatures_historical );
- _ligatures_vbox.pack_start( _ligatures_contextual );
- _ligatures_frame.add( _ligatures_vbox );
+ _ligatures_grid.attach( _ligatures_common, 0, 0, 1, 1);
+ _ligatures_grid.attach( _ligatures_discretionary, 0, 1, 1, 1);
+ _ligatures_grid.attach( _ligatures_historical, 0, 2, 1, 1);
+ _ligatures_grid.attach( _ligatures_contextual, 0, 3, 1, 1);
+ _ligatures_grid.attach( _ligatures_label_common, 1, 0, 1, 1);
+ _ligatures_grid.attach( _ligatures_label_discretionary, 1, 1, 1, 1);
+ _ligatures_grid.attach( _ligatures_label_historical, 1, 2, 1, 1);
+ _ligatures_grid.attach( _ligatures_label_contextual, 1, 3, 1, 1);
+ _ligatures_frame.add( _ligatures_grid );
pack_start( _ligatures_frame, Gtk::PACK_SHRINK );
ligatures_init();
@@ -539,6 +543,32 @@ namespace Widget {
_numeric_slashed_zero.set_sensitive( false );
}
+ // List available ligatures
+ Glib::ustring markup_liga;
+ Glib::ustring markup_dlig;
+ Glib::ustring markup_hlig;
+ Glib::ustring markup_calt;
+ for (auto table: res->openTypeLigatures) {
+
+ Glib::ustring markup;
+ markup += "<span font_family='";
+ markup += sp_font_description_get_family(res->descr);
+ markup += "'>";
+ markup += Glib::Markup::escape_text(table.second);
+ markup += "</span>";
+
+ if (table.first == "liga") markup_liga += markup;
+ if (table.first == "clig") markup_liga += markup;
+ if (table.first == "dlig") markup_dlig += markup;
+ if (table.first == "hlig") markup_hlig += markup;
+ if (table.first == "calt") markup_calt += markup;
+ }
+
+ _ligatures_label_common.set_markup ( markup_liga.c_str() );
+ _ligatures_label_discretionary.set_markup ( markup_dlig.c_str() );
+ _ligatures_label_historical.set_markup ( markup_hlig.c_str() );
+ _ligatures_label_contextual.set_markup ( markup_calt.c_str() );
+
// Make list of tables not handled above... eventually add Gtk::Label with
// this info.
std::map<Glib::ustring,int> table_copy = res->openTypeTables;
@@ -574,7 +604,7 @@ namespace Widget {
// "<span foreground='darkblue'>";
Glib::ustring markup;
- for (auto table: res->openTypeSubstitutions) {
+ for (auto table: res->openTypeStylistic) {
markup += table.first;
markup += ": ";