使用可能なフォントの一覧取得
概要
使用可能なフォントファミリーとフォントフェイスを取得する。そのためにはまず Gtk::Widget::get_pango_context() で Pango::Context を取得し、 Pango::Context::list_families()でファミリーのリストを取得する。さらに Pango::FontFamily::list_faces()でフェイスのリストを取得する。
ソース
getfonts.cpp#include <gtkmm.h> #include <iostream> typedef Glib::RefPtr< Pango::FontFamily > FFAM; typedef Glib::RefPtr< Pango::FontFace > FFACE; int main( int argc, char *argv[] ) { Gtk::Main kit( argc, argv ); Gtk::Window window; std::list< FFAM > families = window.get_pango_context()->list_families(); std::list< FFAM >::iterator it; for( it = families.begin(); it != families.end(); ++it ){ std::cout << "family name = " << (*it)->get_name() << "\nfaces = "; std::list< FFACE > faces = (*it)->list_faces(); std::list< FFACE >::iterator it2; for( it2 = faces.begin(); it2 != faces.end(); ++it2 ){ std::cout << (*it2)->get_name() << ", "; } std::cout << "\n\n"; } return 0; }
g++ getfonts.cpp -o getfonts `pkg-config gtkmm-2.4 --cflags --libs`
結果
family name = Monospace
faces = Regular, Bold, Italic, Bold Italic,
のようにフォントファミリーとフェイスが表示される。