示例#1
0
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);
}
示例#2
0
// --------------------------------------------------------------
// - 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;
}