Rev 6197 | Rev 6746 | 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 | |
3 | #include "../lib/font.h" |
||
5776 | leency | 4 | #include "../lib/gui.h" |
5730 | pavelyakov | 5 | |
5784 | leency | 6 | #define PANELH 30 |
6264 | leency | 7 | proc_info Form; |
5784 | leency | 8 | |
6264 | leency | 9 | enum { |
10 | STRONG_BTN=10, ITALIC_BTN, SMOOTH_BTN, |
||
11 | PHRASE_TAB=20, CHARS_TAB |
||
12 | }; |
||
13 | |||
14 | |||
5730 | pavelyakov | 15 | void main() |
16 | { |
||
6264 | leency | 17 | int btn; |
18 | char title[4196]; |
||
5981 | leency | 19 | if (!param) strcpy(#param, DEFAULT_FONT); |
5987 | leency | 20 | label.init(#param); |
6264 | leency | 21 | tabs.active_tab=PHRASE_TAB; |
5885 | pavelyakov | 22 | strcpy(#title, "Font preview: "); |
5776 | leency | 23 | strcat(#title, #param); |
6264 | leency | 24 | loop() switch(WaitEvent()) |
5776 | leency | 25 | { |
26 | case evButton: |
||
27 | btn = GetButtonID(); |
||
28 | if (btn==1) ExitProcess(); |
||
6264 | leency | 29 | if (btn==STRONG_BTN) label.bold ^=1; |
30 | if (btn==ITALIC_BTN) label.italic ^=1; |
||
31 | if (btn==SMOOTH_BTN) label.smooth ^=1; |
||
32 | if (btn==PHRASE_TAB) || (btn==CHARS_TAB) tabs.click(btn); |
||
5784 | leency | 33 | goto _DRAW_WINDOW_CONTENT; |
5776 | leency | 34 | case evReDraw: |
6197 | leency | 35 | system.color.get(); |
6264 | leency | 36 | DefineAndDrawWindow(215,100,500,320+skin_height,0x74,0xFFFFFF,#title); |
5784 | leency | 37 | GetProcessInfo(#Form, SelfInfo); |
5987 | leency | 38 | if (Form.status_window>2) break; |
5784 | leency | 39 | _DRAW_WINDOW_CONTENT: |
6264 | leency | 40 | DrawBar(0, 0, Form.cwidth, PANELH-1, system.color.work); |
41 | CheckBox(10, 8, STRONG_BTN, "Bold", label.bold); |
||
42 | CheckBox(83, 8, ITALIC_BTN, "Italic", label.italic); |
||
43 | CheckBox(170,8, SMOOTH_BTN, "Smooth", label.smooth); |
||
44 | tabs.draw(Form.cwidth-150, PANELH, PHRASE_TAB, "Phrase"); |
||
45 | tabs.draw(Form.cwidth-70, PANELH, CHARS_TAB, "Chars"); |
||
46 | DrawBar(0, PANELH-1,Form.cwidth,1,system.color.work_graph); |
||
5987 | leency | 47 | if (!label.font) |
5776 | leency | 48 | { |
5981 | leency | 49 | DrawBar(0, PANELH, Form.cwidth, Form.cheight - PANELH, 0xFFFfff); |
50 | WriteText(10, 50, 0x82, 0xFF00FF, "Font is not loaded."); |
||
6264 | leency | 51 | break; |
5784 | leency | 52 | } |
6264 | leency | 53 | if (tabs.active_tab==PHRASE_TAB) DrawPreviewPhrase(); |
54 | if (tabs.active_tab==CHARS_TAB) DrawPreviewChars(); |
||
5776 | leency | 55 | } |
56 | } |
||
6264 | leency | 57 | |
58 | void DrawPreviewPhrase() |
||
59 | { |
||
60 | dword i, y; |
||
61 | char line[256]; |
||
62 | label.raw_size = free(label.raw); |
||
63 | for (i=10, y=5; i<22; i++, y+=label.height;) //not flexible, need to calculate font count and max line length |
||
64 | { |
||
65 | sprintf(#line,"Размер шрифта/size font %d пикселей.",i); |
||
66 | label.write_buf(10,y,Form.cwidth,Form.cheight-PANELH, 0xFFFFFF, 0, i, #line); |
||
67 | } |
||
68 | if (label.smooth) label.apply_smooth(); |
||
69 | label.show_buf(0, PANELH); |
||
70 | } |
||
71 | |||
72 | void DrawPreviewChars() |
||
73 | { |
||
74 | dword i, x=20, y=0; |
||
75 | char line[2]; |
||
76 | line[1]=NULL; |
||
77 | label.raw_size = free(label.raw); |
||
78 | for (i=0; i<255; i++) //not flexible, need to calculate font count and max line length |
||
79 | { |
||
80 | line[0]=i; |
||
81 | label.write_buf(x,y,Form.cwidth,Form.cheight-PANELH, 0xFFFFFF, 0, 16, #line); |
||
82 | x+= label.height+2; |
||
83 | if (x>=Form.cwidth-30) { |
||
84 | x=20; |
||
85 | y+=label.height+2; |
||
86 | } |
||
87 | } |
||
88 | if (label.smooth) label.apply_smooth(); |
||
89 | label.show_buf(0, PANELH); |
||
90 | }255;>22;> |