static GnomeFont *find_proper_font(gunichar ch) { // GnomeFont *gfont; GnomeFontFace *gface; PangoFont *pfont; PangoFontset *pfontset; pfontset = pango_context_load_fontset( gtk_widget_get_pango_context(pub->mw->view), gtk_widget_get_style(pub->mw->view)->font_desc, gtk_get_default_language()); pfont = pango_fontset_get_font(pfontset, ch); /* g_print("\n%s\n", pango_font_description_to_string( pango_font_describe(pfont) ) ); */ gface = gnome_font_face_find_closest_from_pango_font(pfont); g_object_unref(pfont); return gnome_font_face_get_font_default(gface, FONT_SIZE); }
// -------------------------------------------------------------- // - Font services ---------------------------------------------- // -------------------------------------------------------------- // "width" feature for font is not portable: has been replaced by // horizontal scaling of device context. const VGFont* GSystemGtk::CreateVGFont( const char * faceName, int size, int properties ) const { PangoFontDescription *pangoFontDescr = pango_font_description_new(); pango_font_description_set_family( pangoFontDescr, faceName ); int myWeight = PANGO_WEIGHT_NORMAL; PangoStyle myStyle = PANGO_STYLE_NORMAL; if (properties) { if (properties & VGFont::kFontBold) myWeight = PANGO_WEIGHT_BOLD; if (properties & VGFont::kFontItalic) myStyle = PANGO_STYLE_ITALIC; } pango_font_description_set_style( pangoFontDescr, myStyle ); // pango_font_description_set_size( pangoFontDescr, height * PANGO_SCALE / 10 ); pango_font_description_set_size( pangoFontDescr, size * PANGO_SCALE / 10 ); // + underline ?? // printf( "ok... where is the font ? %s italic=%d\n", faceName, italic ); //XXX: GetThe font into the pangocontext PangoContext* pangoContext = gdk_pango_context_get(); PangoLanguage* pangoLanguage = pango_language_from_string( "en-us" ); PangoFontset *fontset = pango_context_load_fontset( pangoContext, pangoFontDescr, pangoLanguage ); GFontGtk * outFont = 0; if( fontset ) outFont = new GFontGtk( pangoFontDescr, faceName, size, properties, 0 ); else g_object_unref( G_OBJECT( pangoFontDescr) ); return outFont; }