ed12fd | 2000-02-08 | Henrik Grubbström (Grubba) | | |
575364 | 2002-06-13 | Martin Nilsson | | * $Id: listfonts.pike,v 1.22 2002/06/12 23:47:05 nilsson Exp $
|
ed12fd | 2000-02-08 | Henrik Grubbström (Grubba) | | */
|
48ad1f | 2000-09-19 | Per Hedbor | | constant action = "status";
|
575364 | 2002-06-13 | Martin Nilsson | | constant name = "List fonts";
constant doc = "List all available fonts";
|
23414a | 2000-07-21 | Andreas Lange | |
|
89b41a | 2000-02-04 | Per Hedbor | | string versions(string font)
{
array res=({ });
array b = available_font_versions(font,32);
|
23414a | 2000-07-21 | Andreas Lange | | if (!b || !sizeof(b))
|
575364 | 2002-06-13 | Martin Nilsson | | return "<b>Not available.</b>";
|
09348f | 2000-02-04 | Per Hedbor | | array a = map(b,describe_font_type);
|
89b41a | 2000-02-04 | Per Hedbor | | mapping m = mkmapping(b,a);
foreach(sort(indices(m)), string t)
|
261716 | 2001-02-05 | Per Hedbor | | res += ({
|
8b09a9 | 2000-03-14 | Martin Stjernholm | | Roxen.html_encode_string(m[t]) });
|
89b41a | 2000-02-04 | Per Hedbor | | return String.implode_nicely(res);
}
|
261716 | 2001-02-05 | Per Hedbor | |
|
1e6b54 | 2000-09-04 | Per Hedbor | | mapping info;
|
89b41a | 2000-02-04 | Per Hedbor | | string list_font(string font)
{
|
1e6b54 | 2000-09-04 | Per Hedbor | | string fn = replace(lower_case( font ), " ", "_" );
if( mapping m = info[ fn ] )
{
|
575364 | 2002-06-13 | Martin Nilsson | | string res = "<p><font size='+1'><b>"+
|
1e6b54 | 2000-09-04 | Per Hedbor | | (Roxen.html_encode_string(map(replace(font,"_"," ")/" ",
capitalize)*" ")+
"</b></font> <font size='-1'>"+versions(font)+"</font><br />"
|
575364 | 2002-06-13 | Martin Nilsson | | "<table cellspacing='0' cellpadding='0'");
|
1e6b54 | 2000-09-04 | Per Hedbor | | foreach( sort( indices( m ) - ({"name","versions"}) ), string i )
|
575364 | 2002-06-13 | Martin Nilsson | | res += "<tr><td> <font size='-1'>"+i+": </font></td><td><font size='-1'>"+
|
1e6b54 | 2000-09-04 | Per Hedbor | | Roxen.html_encode_string(m[i])+"</font></td></tr>\n";
res += "</table>";
return res;
}
return "<p><font size=+1><b>"+
(Roxen.html_encode_string(map(replace(font,"_"," ")/" ",capitalize)*" ")+
"</b></font> <font size='-1'>"+versions(font)+"</font><br />");
|
89b41a | 2000-02-04 | Per Hedbor | | }
|
8c3d91 | 2000-09-04 | Per Hedbor | | string font_loaders( )
{
string res ="<dl>";
|
261716 | 2001-02-05 | Per Hedbor | | foreach( roxen.fonts.font_handlers, FontHandler fl )
|
8c3d91 | 2000-09-04 | Per Hedbor | | {
int nf = sizeof( fl->available_fonts() );
|
575364 | 2002-06-13 | Martin Nilsson | | res += "<b><dt><font size='+1'>"+fl->name+" ("+nf
|
8c3d91 | 2000-09-04 | Per Hedbor | | +" font"+(nf==1?"":"s")+")</font></b></dt>"
"<dd>"+fl->doc+"</dd><p />";
}
return res+"</dl>";
}
|
bebbad | 2000-08-16 | Andreas Lange | | string page_0(RequestID id)
|
89b41a | 2000-02-04 | Per Hedbor | | {
|
261716 | 2001-02-05 | Per Hedbor | | array q = roxen.fonts.get_font_information();
|
1e6b54 | 2000-09-04 | Per Hedbor | | info = mkmapping( q->name, q );
|
bebbad | 2000-08-16 | Andreas Lange | | string res=("<input type='hidden' name='action' value='listfonts.pike'/>"
"<input type='hidden' name='doit' value='indeed'/>\n"
|
575364 | 2002-06-13 | Martin Nilsson | | "<font size='+1'><b>Available font loaders</b></font><p>"+
font_loaders()+"<font size='+1'><b>All available fonts</b></font><p>");
|
ff6e19 | 2001-11-14 | Henrik Grubbström (Grubba) | | foreach(sort(roxen.fonts.available_fonts(1)), string font)
|
8b09a9 | 2000-03-14 | Martin Stjernholm | | res+=list_font(font);
|
575364 | 2002-06-13 | Martin Nilsson | | res += ("</p><p>Example text"
"<font size='-1'><input name='text' size='46' value='"
"Jackdaws love my big sphinx of quartz."
|
bebbad | 2000-08-16 | Andreas Lange | | "'></p><p><table width='70%'><tr><td align='left'>"
|
028f2d | 2002-04-18 | Anders Johansson | | "<cf-cancel href='?class=status'/></td><td align='right'>"
|
bebbad | 2000-08-16 | Andreas Lange | | "<cf-next/></td></tr></table></p>");
|
89b41a | 2000-02-04 | Per Hedbor | | return res;
}
|
bebbad | 2000-08-16 | Andreas Lange | | string page_1(RequestID id)
|
89b41a | 2000-02-04 | Per Hedbor | | {
string res="";
|
261716 | 2001-02-05 | Per Hedbor | | mapping v = id->real_variables;
|
f671c2 | 2001-08-27 | Per Hedbor | | string txt = v->text && v->text[0];
|
261716 | 2001-02-05 | Per Hedbor | | foreach(roxen.fonts.available_fonts(), string fn)
res += Roxen.html_encode_string( fn )+":<br />\n"
|
f671c2 | 2001-08-27 | Per Hedbor | | "<gtext fontsize=16 align='top' font='"+fn+"'>"+Roxen.html_encode_string(txt)+"</gtext><br>"
"<gtext fontsize=32 align='top' font='"+fn+"'>"+Roxen.html_encode_string(lower_case(txt))+"</gtext><br>"
"<gtext fontsize=48 align='top' font='"+fn+"'>"+Roxen.html_encode_string(upper_case(txt))+"</gtext><p>";
|
bebbad | 2000-08-16 | Andreas Lange | | return res+"<br /></p><p>\n<cf-ok/></p>";
|
89b41a | 2000-02-04 | Per Hedbor | | }
|
23414a | 2000-07-21 | Andreas Lange | | mixed parse( RequestID id )
|
89b41a | 2000-02-04 | Per Hedbor | | {
|
4f2757 | 2000-02-04 | Per Hedbor | | if( id->variables->doit )
return page_1( id );
return page_0( id );
|
89b41a | 2000-02-04 | Per Hedbor | | }
|