1 #ifdef HAVE_CONFIG_H
2 # include <config.h>
3 #endif
5 #include <libnr/nr-blit.h>
6 #include <libnrtype/font-instance.h>
7 #include <libnrtype/raster-glyph.h>
8 #include <libnrtype/RasterFont.h>
9 #include <libnrtype/TextWrapper.h>
10 #include <libnrtype/one-glyph.h>
12 #include <glibmm.h>
13 #include <gtkmm.h>
14 #include <gtkmm/treemodel.h>
15 #include <gtkmm/liststore.h>
17 #include "font-lister.h"
19 namespace Inkscape
20 {
21 FontLister::FontLister ()
22 {
23 font_list_store = Gtk::ListStore::create (FontList);
25 if (font_factory::Default()->Families(&families))
26 {
27 for (unsigned int i = 0; i < families.length; ++i)
28 {
29 Gtk::TreeModel::iterator iter = font_list_store->append();
30 (*iter)[FontList.font] = reinterpret_cast<const char*>(families.names[i]);
32 NRStyleList styles;
33 if (font_factory::Default()->Styles (reinterpret_cast<const char*>(families.names[i]), &styles));
35 GList *Styles=0;
36 for (unsigned int n = 0; n < styles.length; ++n)
37 {
38 NRStyleRecord style_record = styles.records[n];
39 Styles = g_list_append (Styles, strdup(style_record.name));
40 }
42 (*iter)[FontList.styles] = Styles;
44 font_list_store_iter_map.insert (std::make_pair (reinterpret_cast<const char*>(families.names[i]), Gtk::TreePath (iter)));
45 }
46 }
48 }
50 FontLister::~FontLister ()
51 {
52 };
54 const Glib::RefPtr<Gtk::ListStore>
55 FontLister::get_font_list () const
56 {
57 return font_list_store;
58 }
59 }