Rev 6806 | Rev 7227 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5784 | leency | 1 | #define MEMSIZE 0x2EE80 |
5730 | pavelyakov | 2 | |
6805 | leency | 3 | #include "../lib/kfont.h" |
5776 | leency | 4 | #include "../lib/gui.h" |
5730 | pavelyakov | 5 | |
7226 | leency | 6 | #define PANELH 28 |
7 | #define WIN_W 490 |
||
8 | #define WIN_H 315 |
||
6264 | leency | 9 | proc_info Form; |
5784 | leency | 10 | |
6264 | leency | 11 | enum { |
6803 | leency | 12 | STRONG_BTN=10, SMOOTH_BTN, |
6264 | leency | 13 | PHRASE_TAB=20, CHARS_TAB |
14 | }; |
||
15 | |||
7226 | leency | 16 | _tabs tabs = { 0,0, WIN_W, WIN_H, PHRASE_TAB}; |
6264 | leency | 17 | |
7226 | leency | 18 | rect preview; |
19 | |||
20 | |||
5730 | pavelyakov | 21 | void main() |
22 | { |
||
6264 | leency | 23 | int btn; |
24 | char title[4196]; |
||
5981 | leency | 25 | if (!param) strcpy(#param, DEFAULT_FONT); |
6806 | leency | 26 | kfont.init(#param); |
5885 | pavelyakov | 27 | strcpy(#title, "Font preview: "); |
5776 | leency | 28 | strcat(#title, #param); |
6264 | leency | 29 | loop() switch(WaitEvent()) |
5776 | leency | 30 | { |
31 | case evButton: |
||
32 | btn = GetButtonID(); |
||
33 | if (btn==1) ExitProcess(); |
||
6806 | leency | 34 | if (btn==STRONG_BTN) kfont.bold ^=1; |
35 | if (btn==SMOOTH_BTN) kfont.smooth ^=1; |
||
6264 | leency | 36 | if (btn==PHRASE_TAB) || (btn==CHARS_TAB) tabs.click(btn); |
5784 | leency | 37 | goto _DRAW_WINDOW_CONTENT; |
5776 | leency | 38 | case evReDraw: |
6197 | leency | 39 | system.color.get(); |
7226 | leency | 40 | DefineAndDrawWindow(215,100,WIN_W+9,WIN_H+skin_height+5,0x74,0xFFFFFF,#title,0); |
5784 | leency | 41 | GetProcessInfo(#Form, SelfInfo); |
5987 | leency | 42 | if (Form.status_window>2) break; |
5784 | leency | 43 | _DRAW_WINDOW_CONTENT: |
7226 | leency | 44 | |
6264 | leency | 45 | DrawBar(0, 0, Form.cwidth, PANELH-1, system.color.work); |
7226 | leency | 46 | DrawBar(0, PANELH-1,Form.cwidth,1,system.color.work_graph); |
6806 | leency | 47 | CheckBox(10, 8, STRONG_BTN, "Bold", kfont.bold); |
48 | CheckBox(83,8, SMOOTH_BTN, "Smooth", kfont.smooth); |
||
7226 | leency | 49 | |
50 | tabs.draw_button(Form.cwidth-130, PHRASE_TAB, "Phrase"); |
||
51 | tabs.draw_button(Form.cwidth-60, CHARS_TAB, "Chars"); |
||
52 | |||
53 | preview.x = tabs.x; |
||
54 | preview.y = PANELH; |
||
55 | preview.w = Form.cwidth; |
||
56 | preview.h = Form.cheight - PANELH; |
||
57 | |||
6806 | leency | 58 | if (!kfont.font) |
5776 | leency | 59 | { |
7226 | leency | 60 | DrawBar(preview.x, preview.y, preview.w, preview.h, 0xFFFfff); |
5981 | leency | 61 | WriteText(10, 50, 0x82, 0xFF00FF, "Font is not loaded."); |
6264 | leency | 62 | break; |
5784 | leency | 63 | } |
6264 | leency | 64 | if (tabs.active_tab==PHRASE_TAB) DrawPreviewPhrase(); |
65 | if (tabs.active_tab==CHARS_TAB) DrawPreviewChars(); |
||
5776 | leency | 66 | } |
67 | } |
||
6264 | leency | 68 | |
69 | void DrawPreviewPhrase() |
||
70 | { |
||
71 | dword i, y; |
||
72 | char line[256]; |
||
6806 | leency | 73 | kfont.raw_size = free(kfont.raw); |
74 | for (i=10, y=5; i<22; i++, y+=kfont.height;) //not flexible, need to calculate font count and max line length |
||
6264 | leency | 75 | { |
76 | sprintf(#line,"Размер шрифта/size font %d пикселей.",i); |
||
6806 | leency | 77 | kfont.WriteIntoBuffer(10,y,Form.cwidth,Form.cheight-PANELH, 0xFFFFFF, 0, i, #line); |
6264 | leency | 78 | } |
6806 | leency | 79 | if (kfont.smooth) kfont.ApplySmooth(); |
7226 | leency | 80 | kfont.ShowBuffer(preview.x, preview.y); |
6264 | leency | 81 | } |
82 | |||
83 | void DrawPreviewChars() |
||
84 | { |
||
85 | dword i, x=20, y=0; |
||
86 | char line[2]; |
||
87 | line[1]=NULL; |
||
6806 | leency | 88 | kfont.raw_size = free(kfont.raw); |
6264 | leency | 89 | for (i=0; i<255; i++) //not flexible, need to calculate font count and max line length |
90 | { |
||
91 | line[0]=i; |
||
6806 | leency | 92 | kfont.WriteIntoBuffer(x,y,Form.cwidth,Form.cheight-PANELH, 0xFFFFFF, 0, 16, #line); |
93 | x+= kfont.height+2; |
||
7226 | leency | 94 | if (x>=preview.w-30) { |
6264 | leency | 95 | x=20; |
6806 | leency | 96 | y+=kfont.height+2; |
6264 | leency | 97 | } |
98 | } |
||
6806 | leency | 99 | if (kfont.smooth) kfont.ApplySmooth(); |
7226 | leency | 100 | kfont.ShowBuffer(preview.x, preview.y); |
6264 | leency | 101 | }255;>22;> |