使用可能なフォントの一覧取得
概要
使用可能なフォントファミリーとフォントフェイスを取得する。そのためにはまず 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,
のようにフォントファミリーとフェイスが表示される。