San Mehat | a430b2b | 2014-09-23 08:30:51 -0700 | [diff] [blame] | 1 | #include <rfb/rfb.h> |
| 2 | |
| 3 | #define FONTDIR "/usr/lib/kbd/consolefonts/" |
| 4 | #define DEFAULTFONT FONTDIR "default8x16" |
| 5 | |
| 6 | static char *fontlist[50]={ |
| 7 | "8x16alt", "b.fnt", "c.fnt", "default8x16", "m.fnt", "ml.fnt", "mod_d.fnt", |
| 8 | "mod_s.fnt", "mr.fnt", "mu.fnt", "r.fnt", "rl.fnt", "ro.fnt", "s.fnt", |
| 9 | "sc.fnt", "scrawl_s.fnt", "scrawl_w.fnt", "sd.fnt", "t.fnt", |
| 10 | NULL |
| 11 | }; |
| 12 | |
| 13 | static rfbScreenInfoPtr rfbScreen = NULL; |
| 14 | static rfbFontDataPtr curFont = NULL; |
| 15 | static void showFont(int index) |
| 16 | { |
| 17 | char buffer[1024]; |
| 18 | |
| 19 | if(!rfbScreen) return; |
| 20 | |
| 21 | if(curFont) |
| 22 | rfbFreeFont(curFont); |
| 23 | |
| 24 | strcpy(buffer,FONTDIR); |
| 25 | strcat(buffer,fontlist[index]); |
| 26 | curFont = rfbLoadConsoleFont(buffer); |
| 27 | |
| 28 | rfbFillRect(rfbScreen,210,30-20,210+10*16,30-20+256*20/16,0xb77797); |
| 29 | if(curFont) { |
| 30 | int i,j; |
| 31 | for(j=0;j<256;j+=16) |
| 32 | for(i=0;i<16;i++) |
| 33 | rfbDrawCharWithClip(rfbScreen,curFont,210+10*i,30+j*20/16,j+i, |
| 34 | 0,0,640,480,0xffffff,0x000000); |
| 35 | } |
| 36 | } |
| 37 | |
| 38 | int main(int argc,char** argv) |
| 39 | { |
| 40 | rfbFontDataPtr font; |
| 41 | rfbScreenInfoPtr s=rfbGetScreen(&argc,argv,640,480,8,3,3); |
| 42 | int i,j; |
| 43 | |
| 44 | if(!s) |
| 45 | return 0; |
| 46 | |
| 47 | s->frameBuffer=(char*)malloc(640*480*3); |
| 48 | rfbInitServer(s); |
| 49 | |
| 50 | for(j=0;j<480;j++) |
| 51 | for(i=0;i<640;i++) { |
| 52 | s->frameBuffer[(j*640+i)*3+0]=j*256/480; |
| 53 | s->frameBuffer[(j*640+i)*3+1]=i*256/640; |
| 54 | s->frameBuffer[(j*640+i)*3+2]=(i+j)*256/(480+640); |
| 55 | } |
| 56 | |
| 57 | rfbScreen = s; |
| 58 | font=rfbLoadConsoleFont(DEFAULTFONT); |
| 59 | if(!font) { |
| 60 | rfbErr("Couldn't find %s\n",DEFAULTFONT); |
| 61 | exit(1); |
| 62 | } |
| 63 | |
| 64 | for(j=0;j<0 && rfbIsActive(s);j++) |
| 65 | rfbProcessEvents(s,900000); |
| 66 | |
| 67 | i = rfbSelectBox(s,font,fontlist,10,20,200,300,0xffdfdf,0x602040,2,showFont); |
| 68 | rfbLog("Selection: %d: %s\n",i,(i>=0)?fontlist[i]:"cancelled"); |
| 69 | |
| 70 | rfbFreeFont(font); |
| 71 | free(s->frameBuffer); |
| 72 | rfbScreenCleanup(s); |
| 73 | |
| 74 | return(0); |
| 75 | } |
| 76 | |