summaryrefslogtreecommitdiffstats
path: root/src/ui/dialog
diff options
context:
space:
mode:
authorTavmjong Bah <tavmjong@free.fr>2019-10-03 11:58:33 +0000
committerTavmjong Bah <tavmjong@free.fr>2019-10-03 11:58:33 +0000
commit53171e77d5906ec82cb96f6e3894b980fe24c392 (patch)
treea59511bc371eaa6b524dc93b800b37cdd6a1951b /src/ui/dialog
parentUpdate language list in Glyphs dialog. (diff)
downloadinkscape-53171e77d5906ec82cb96f6e3894b980fe24c392.tar.gz
inkscape-53171e77d5906ec82cb96f6e3894b980fe24c392.zip
Add support for extended Unicode planes in Unicode (Glyphs) dialog (includes emoji).
Diffstat (limited to 'src/ui/dialog')
-rw-r--r--src/ui/dialog/glyphs.cpp25
1 files changed, 21 insertions, 4 deletions
diff --git a/src/ui/dialog/glyphs.cpp b/src/ui/dialog/glyphs.cpp
index 57213dffe..0f4236d80 100644
--- a/src/ui/dialog/glyphs.cpp
+++ b/src/ui/dialog/glyphs.cpp
@@ -221,7 +221,11 @@ static std::vector<NamedRange> & getRanges()
static std::vector<NamedRange> ranges;
if (!init) {
init = true;
- ranges.emplace_back(std::make_pair(0x0000, 0xFFFD), _("all"));
+ ranges.emplace_back(std::make_pair(0x00000, 0x2FFFF), _("all"));
+ ranges.emplace_back(std::make_pair(0x00000, 0x0FFFF), _("Basic Plane"));
+ ranges.emplace_back(std::make_pair(0x10000, 0x1FFFF), _("Extended Multilingual Plane"));
+ ranges.emplace_back(std::make_pair(0x20000, 0x2FFFF), _("Supplementary Ideographic Plane"));
+
ranges.emplace_back(std::make_pair(0x0000, 0x007F), _("Basic Latin"));
ranges.emplace_back(std::make_pair(0x0080, 0x00FF), _("Latin-1 Supplement"));
ranges.emplace_back(std::make_pair(0x0100, 0x017F), _("Latin Extended-A"));
@@ -372,6 +376,19 @@ static std::vector<NamedRange> & getRanges()
ranges.emplace_back(std::make_pair(0xFE70, 0xFEFF), _("Arabic Presentation Forms-B"));
ranges.emplace_back(std::make_pair(0xFF00, 0xFFEF), _("Halfwidth and Fullwidth Forms"));
ranges.emplace_back(std::make_pair(0xFFF0, 0xFFFF), _("Specials"));
+
+ // Selected ranges in Extended Multilingual Plane
+ ranges.emplace_back(std::make_pair(0x1F300, 0x1F5FF), _("Miscellaneous Symbols and Pictographs"));
+ ranges.emplace_back(std::make_pair(0x1F600, 0x1F64F), _("Emoticons"));
+ ranges.emplace_back(std::make_pair(0x1F650, 0x1F67F), _("Ornamental Dingbats"));
+ ranges.emplace_back(std::make_pair(0x1F680, 0x1F6FF), _("Transport and Map Symbols"));
+ ranges.emplace_back(std::make_pair(0x1F700, 0x1F77F), _("Alchemical Symbols"));
+ ranges.emplace_back(std::make_pair(0x1F780, 0x1F7FF), _("Geometric Shapes Extended"));
+ ranges.emplace_back(std::make_pair(0x1F800, 0x1F8FF), _("Supplemental Arrows-C"));
+ ranges.emplace_back(std::make_pair(0x1F900, 0x1F9FF), _("Supplemental Symbols and Pictographs"));
+ ranges.emplace_back(std::make_pair(0x1FA00, 0x1FA7F), _("Chess Symbols"));
+ ranges.emplace_back(std::make_pair(0x1FA80, 0x1FAFF), _("Symbols and Pictographs Extended-A"));
+
}
return ranges;
@@ -465,7 +482,7 @@ GlyphsPanel::GlyphsPanel() :
rangeCombo->append(it.second);
}
- rangeCombo->set_active_text(getRanges()[1].second);
+ rangeCombo->set_active_text(getRanges()[4].second);
sigc::connection conn = rangeCombo->signal_changed().connect(sigc::mem_fun(*this, &GlyphsPanel::rebuild));
instanceConns.push_back(conn);
@@ -749,8 +766,8 @@ void GlyphsPanel::rebuild()
Glib::RefPtr<Gtk::ListStore> tmp = Gtk::ListStore::create(*getColumns());
iconView->set_model(tmp);
- gunichar lower = 0x0001;
- gunichar upper = 0xFFFD;
+ gunichar lower = 0x00001;
+ gunichar upper = 0x2FFFF;
int active = rangeCombo->get_active_row_number();
if (active >= 0) {
lower = getRanges()[active].first.first;