内容

更新日: 2007/8/7
バージョン: gtkmm-2.4 以降

■ 概要
■ ソース
■ コンパイル
■ 結果

TOP

使用可能なフォントの一覧取得

概要

使用可能なフォントファミリーとフォントフェイスを取得する。

そのためにはまず 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,

のようにフォントファミリーとフェイスが表示される。