6a7845 | 2000-09-04 | Per Hedbor | | #include <config.h>
|
207885 | 2000-12-11 | Per Hedbor | | #if constant(Image.FreeType.Face)
inherit "freetype";
#else
|
6d8c52 | 2000-09-19 | Per Hedbor | | inherit "ttf";
|
207885 | 2000-12-11 | Per Hedbor | | #endif
constant cvs_version = "$Id: builtin.pike,v 1.6 2000/12/11 10:44:34 per Exp $";
|
6a7845 | 2000-09-04 | Per Hedbor | |
constant name = "Builtin fonts";
constant doc = "Fonts included in pike (and roxen)";
inherit FontHandler;
array available_fonts()
{
return ({ "pike builtin", "roxen builtin" });
}
array(mapping) font_information( string fnt )
{
switch( replace(lower_case(fnt)," ","_")-"_" )
{
|
6d8c52 | 2000-09-19 | Per Hedbor | | case "roxenbuiltin":
|
de2152 | 2000-09-27 | Per Hedbor | | #if constant(__rbf) && constant(grbf)
|
6a7845 | 2000-09-04 | Per Hedbor | | return ({
([
|
6d8c52 | 2000-09-19 | Per Hedbor | | "name":"roxen builtin",
"family":"Roxen builtin font",
|
6a7845 | 2000-09-04 | Per Hedbor | | "path":"-",
"style":"normal",
|
6d8c52 | 2000-09-19 | Per Hedbor | | "format":"scalable vector font",
|
6a7845 | 2000-09-04 | Per Hedbor | | ])
});
|
6d8c52 | 2000-09-19 | Per Hedbor | | #endif
case "pikebuiltin":
|
6a7845 | 2000-09-04 | Per Hedbor | | return ({
([
|
6d8c52 | 2000-09-19 | Per Hedbor | | "name":"pike builtin",
"family":"Pike builtin font",
|
6a7845 | 2000-09-04 | Per Hedbor | | "path":"-",
"style":"normal",
|
6d8c52 | 2000-09-19 | Per Hedbor | | "format":"bitmap dump",
|
6a7845 | 2000-09-04 | Per Hedbor | | ])
});
}
}
array has_font( string name, int size )
{
switch( replace(lower_case(name)," ","_")-"_" )
{
case "pikebuiltin":
case "roxenbuiltin":
return ({ "nn" });
}
return 0;
}
|
6d8c52 | 2000-09-19 | Per Hedbor | | object roxenbuiltin;
#ifdef THREADS
Thread.Mutex lock = Thread.Mutex();
#endif
|
6a7845 | 2000-09-04 | Per Hedbor | |
Font open( string name, int size, int bold, int italic )
{
switch( replace(lower_case(name)," ","_")-"_" )
{
|
6d8c52 | 2000-09-19 | Per Hedbor | | case "roxenbuiltin":
|
207885 | 2000-12-11 | Per Hedbor | | object key;
#if constant(__rbf) && constant(grbf)
#if constant(Image.FreeType.Face)
if( !roxenbuiltin )
{
|
6d8c52 | 2000-09-19 | Per Hedbor | | #ifdef THREADS
|
207885 | 2000-12-11 | Per Hedbor | | key = lock->lock();
|
6d8c52 | 2000-09-19 | Per Hedbor | | #endif
|
207885 | 2000-12-11 | Per Hedbor | | catch(roxenbuiltin = grbf());
}
if( roxenbuiltin )
return FTFont( roxenbuiltin, size, "-" );
#else
|
6d8c52 | 2000-09-19 | Per Hedbor | | if( !roxenbuiltin )
|
de2152 | 2000-09-27 | Per Hedbor | | catch(roxenbuiltin = grbf());
|
6d8c52 | 2000-09-19 | Per Hedbor | | if( roxenbuiltin )
return TTFWrapper( roxenbuiltin(), size, "-" );
|
207885 | 2000-12-11 | Per Hedbor | | #endif
|
6d8c52 | 2000-09-19 | Per Hedbor | | #endif
|
6a7845 | 2000-09-04 | Per Hedbor | | case "pikebuiltin":
return Image.Font();
}
}
|