Rev 5674 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5674 | Rev 5738 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | #define MEMSIZE 0x3E80 |
1 | #ifndef AUTOBUILD |
2 | #include "..\lib\kolibri.h" |
- | |
3 | #include "..\lib\gui.h" |
2 | #include "lang.h--" |
4 | #include "..\lib\strings.h" |
- | |
5 | #include "..\lib\random.h" |
- | |
6 | #include "..\lib\mem.h" |
- | |
7 | #include "..\lib\file_system.h" |
- | |
8 | - | ||
9 | #ifndef ru |
- | |
10 | char *BUTTONS_CAPTIONS[]={ |
- | |
11 | "Ïåðåçàãðóçêà [Enter]"w, 13, |
- | |
12 | "Âûêëþ÷åíèå [End]"w, 181, |
- | |
13 | //"ßäðî [Home]"w, 180, |
- | |
14 | "Îòìåíà [Esc]"w, 27, |
- | |
15 | 0}; |
- | |
16 | #else |
- | |
17 | char *BUTTONS_CAPTIONS[]={ |
- | |
18 | " Reboot [Enter]",13, |
- | |
19 | " Power off [End]",181, |
- | |
20 | //" Kernel [Home]",180, |
- | |
21 | " Close [Esc]",27, |
- | |
22 | 0}; |
- | |
23 | #endif |
3 | #endif |
Line 24... | Line 4... | ||
24 | 4 | ||
25 | unsigned char moon[6*6] = FROM "moon.raw"; |
- | |
26 | 5 | #define MEMSIZE 4096*4 |
|
27 | int WIN_SIZE_X, WIN_SIZE_Y; |
6 | #include "../lib/gui.h" |
28 | int PANEL_X, PANEL_Y; |
7 | #include "../lib/file_system.h" |
- | 8 | ||
29 | 9 | #ifdef LANG_RUS |
|
- | 10 | #define TEXT_TITLE "Завершение работы" |
|
- | 11 | #define TEXT_RDSAVE1 "Нажмите Ctrl+S для сохранения изменений" |
|
30 | #define NIGHT_PALEL_HEIGHT 50 |
12 | #define TEXT_RDSAVE2 "сделанных в процессе работы в системе." |
31 | #define STARS_COUNT 25 |
- | |
32 | 13 | #define TEXT_REBOOT "Перезагрузка" |
|
33 | #define PANEL_SIZE_X 260 |
14 | #define TEXT_OFF "Выключение" |
34 | #define PANEL_SIZE_Y 148 |
15 | #define TEXT_CANCEL "Отмена" |
35 | 16 | #else |
|
36 | :void ShadowScreen(dword img, w, h) |
- | |
37 | { |
17 | #define TEXT_TITLE "Shutdown computer" |
- | 18 | #define TEXT_RDSAVE1 "Press Ctrl+S to save all changes" |
|
38 | dword to = w*h*3 + img; |
19 | #define TEXT_RDSAVE2 "that were done during system work." |
39 | for ( ; img < to; img+=4) |
- | |
40 | { |
20 | #define TEXT_REBOOT "Reboot" |
41 | ESDWORD[img] >>= 1; |
21 | #define TEXT_OFF "Power off" |
42 | $and ESDWORD[img], 7F7F7F7Fh |
22 | #define TEXT_CANCEL "Close" |
43 | } |
- | |
44 | //for ( ; img < to; img+=4) { ESDWORD[img] >>= 2; $and ESDWORD[img], 3F3F3F3Fh } |
- | |
Line -... | Line 23... | ||
- | 23 | #endif |
|
- | 24 | ||
- | 25 | #define WIN_W 440 |
|
Line 45... | Line 26... | ||
45 | } |
26 | #define WIN_H 200 |
46 | 27 | #define BOT_PANEL_H 70 |
|
47 | 28 | ||
48 | void main() |
29 | void main() |
- | 30 | { |
|
Line 49... | Line -... | ||
49 | { |
- | |
50 | int key; |
- | |
51 | dword s1,s2, s3, s4, sides_w,i; |
- | |
52 | - | ||
53 | WIN_SIZE_X=GetScreenWidth()+1; |
- | |
54 | WIN_SIZE_Y=GetScreenHeight()+1; |
- | |
55 | PANEL_X=WIN_SIZE_X-PANEL_SIZE_X/2; |
- | |
56 | PANEL_Y=WIN_SIZE_Y-PANEL_SIZE_Y/2; |
- | |
57 | - | ||
58 | sides_w = WIN_SIZE_X-PANEL_SIZE_X/2; |
- | |
59 | s1 = mem_Alloc(WIN_SIZE_X*PANEL_Y*3); |
- | |
60 | s2 = mem_Alloc(sides_w*PANEL_Y*3); |
- | |
61 | s3 = mem_Alloc(sides_w*PANEL_Y*3); |
- | |
62 | s4 = mem_Alloc(WIN_SIZE_X*PANEL_Y*3); |
- | |
63 | - | ||
64 | CopyScreen(s1, 0, 0, WIN_SIZE_X, PANEL_Y); |
- | |
65 | ShadowScreen(s1, WIN_SIZE_X, PANEL_Y); |
- | |
66 | - | ||
67 | CopyScreen(s2, 0, PANEL_Y, sides_w, PANEL_SIZE_Y+1); |
- | |
68 | ShadowScreen(s2, sides_w, PANEL_SIZE_Y+1); |
- | |
69 | - | ||
70 | CopyScreen(s3, sides_w+PANEL_SIZE_X+1, PANEL_Y, sides_w-1, PANEL_SIZE_Y+1); |
- | |
71 | ShadowScreen(s3, sides_w, PANEL_SIZE_Y+1); |
- | |
72 | - | ||
73 | CopyScreen(s4, 0, PANEL_Y+PANEL_SIZE_Y+1, WIN_SIZE_X, PANEL_Y-1); |
- | |
74 | ShadowScreen(s4, WIN_SIZE_X, PANEL_Y-1); |
31 | int key; |
75 | 32 | int WIN_X = GetScreenWidth() - WIN_W / 2; |
|
76 | - | ||
77 | goto _DRAW; |
33 | int WIN_Y = GetScreenHeight() - WIN_H / 2; |
78 | loop() |
34 | |
79 | { |
35 | loop() |
80 | WaitEventTimeout(7); |
36 | { |
81 | switch(EAX & 0xFF) |
37 | switch(WaitEvent()) |
82 | { |
38 | { |
Line 83... | Line 39... | ||
83 | case evButton: |
39 | case evButton: |
84 | key=GetButtonID(); |
40 | key=GetButtonID(); |
85 | if (key==1) ExitProcess(); |
41 | if (key==1) ExitProcess(); |
86 | GOTO _BUTTON_MARK; |
42 | GOTO _BUTTON_MARK; |
87 | - | ||
88 | case evKey: |
43 | |
89 | key = GetKey(); |
44 | case evKey: |
90 | _BUTTON_MARK: |
- | |
91 | if (key== 13) ExitSystem(REBOOT); //ENTER |
- | |
92 | if (key==180) ExitSystem(KERNEL); //HOME |
45 | key = GetKey(); |
93 | if (key==181) ExitSystem(TURN_OFF); //END |
- | |
94 | if (key== 27) ExitProcess(); //ESC |
- | |
95 | if (key== 19) //CTRL+S |
46 | _BUTTON_MARK: |
Line 96... | Line 47... | ||
96 | { |
47 | if (key==ASCII_KEY_ENTER) ExitSystem(REBOOT); |
97 | RunProgram("rdsave",0); |
- | |
98 | ExitProcess(); |
48 | if (key==ASCII_KEY_END) ExitSystem(TURN_OFF); |
99 | } |
49 | if (key==ASCII_KEY_ESC) ExitProcess(); |
100 | break; |
50 | if (key==19) RunProgram("rdsave",0); |
101 | 51 | break; |
|
- | 52 | ||
102 | case evReDraw: |
53 | case evReDraw: |
- | 54 | DefineAndDrawWindow(WIN_X, WIN_Y, WIN_W-1, WIN_H-1, 0x41, 0, 0, 0); |
|
103 | system.color.get(); |
55 | DrawWideRectangle(0, 0, WIN_W, WIN_H, 2, 0xA3A7AA); |
104 | DefineAndDrawWindow(0,0,WIN_SIZE_X, WIN_SIZE_Y, 0x01, 0, 0, 0x01fffFFF); |
56 | DrawBar(2, 2, WIN_W-4, WIN_H-BOT_PANEL_H-2, 0x202020); |
- | 57 | DrawBar(2, WIN_H-BOT_PANEL_H-2, WIN_W-4, BOT_PANEL_H, 0x4B4B4B); |
|
105 | //_PutImage(0,0,WIN_SIZE_X,WIN_SIZE_Y,shadow_buf); |
58 | WriteText(30, 27, 10110001b, 0xFFFfff, TEXT_TITLE); |
106 | _PutImage(0,0,WIN_SIZE_X, PANEL_Y,s1); |
- | |
107 | _PutImage(0,PANEL_Y,sides_w, PANEL_SIZE_Y+1,s2); |
- | |
108 | _PutImage(sides_w+PANEL_SIZE_X+1,PANEL_Y,sides_w-1, PANEL_SIZE_Y+1,s3); |
59 | WriteText(30, 70, 10110000b, 0xFFFfff, TEXT_RDSAVE1); |
109 | _PutImage(0,PANEL_Y+PANEL_SIZE_Y+1,WIN_SIZE_X, PANEL_Y-1,s4); |
60 | WriteText(30, 85, 10110000b, 0xFFFfff, TEXT_RDSAVE2); |
110 | draw_main_area(PANEL_X, PANEL_Y, PANEL_SIZE_X, PANEL_SIZE_Y); |
61 | EndButton( 20, 0x4E91C5, ASCII_KEY_ESC, TEXT_CANCEL, "Esc"); |
Line 111... | Line -... | ||
111 | break; |
- | |
112 | default: _DRAW: |
62 | EndButton(160, 0x55C891, ASCII_KEY_ENTER, TEXT_REBOOT, "Enter"); |
113 | draw_stars(); |
63 | EndButton(300, 0xC75C54, ASCII_KEY_END, TEXT_OFF, "End"); |
- | 64 | break; |
|
- | 65 | } |
|
114 | } |
66 | } |
115 | } |
- | |
116 | } |
67 | } |
117 | - | ||
118 | - | ||
119 | void draw_main_area() |
68 | |
120 | { |
- | |
121 | int i=0; |
69 | void EndButton(dword x, bgcol, id, but_text, hotkey_text) |
122 | 70 | { |
|
123 | DrawRectangle(PANEL_X, PANEL_Y, PANEL_SIZE_X, PANEL_SIZE_Y, 0); |
- | |
124 | DrawBar(PANEL_X+1, PANEL_Y+NIGHT_PALEL_HEIGHT+1, PANEL_SIZE_X-1, PANEL_SIZE_Y-NIGHT_PALEL_HEIGHT-1, system.color.work); |
- | |
125 | - | ||
126 | for (i=0; i<3; i++) |
71 | word buty=WIN_H-60; |
127 | { |
- | |
128 | DefineButton(PANEL_X+33, i*23 + PANEL_Y+NIGHT_PALEL_HEIGHT+16, 190,19, BUTTONS_CAPTIONS[i*2+1],system.color.work_button); |
- | |
129 | WriteText(PANEL_X+59, i*23 + PANEL_Y+NIGHT_PALEL_HEIGHT+22, 0x80,system.color.work_button_text, BUTTONS_CAPTIONS[i*2]); |
- | |
130 | } |
- | |
131 | - | ||
132 | draw_stars(); |
- | |
133 | } |
- | |
134 | - | ||
135 | dword stars_col[4]={0xD2CF19, 0x716900, 0x002041, 0xEAE0DE}; //0x005BFF - ãîëóáîé, ðåäêî |
- | |
136 | - | ||
137 | void draw_stars() |
- | |
138 | { |
- | |
139 | - | ||
140 | int i, x_pic, y_pic, col; |
- | |
141 | - | ||
142 | DrawBar(PANEL_X+1, PANEL_Y+1, PANEL_SIZE_X-1, NIGHT_PALEL_HEIGHT, 0x002041); |
- | |
143 | - | ||
144 | for (i=0; i |
- | |
145 | { |
- | |
146 | x_pic = random(PANEL_SIZE_X-2); |
- | |
147 | y_pic = random(NIGHT_PALEL_HEIGHT-2); |
- | |
148 | col = random(4); |
- | |
149 | PutPixel(PANEL_X+2 +x_pic, PANEL_Y+2 +y_pic, stars_col[col]); |
- | |
150 | if (stars_col[col]==0xD2CF19) |
- | |
151 | { |
- | |
152 | PutPixel(PANEL_X+2 +x_pic+1, PANEL_Y+2 +y_pic, stars_col[col+1]); |
- | |
153 | PutPixel(PANEL_X+2 +x_pic-1, PANEL_Y+2 +y_pic, stars_col[col+1]); |
- | |
154 | PutPixel(PANEL_X+2 +x_pic, PANEL_Y+2 +y_pic-1, stars_col[col+1]); |
- | |
155 | PutPixel(PANEL_X+2 +x_pic, PANEL_Y+2 +y_pic+1, stars_col[col+1]); |
- | |
156 | } |
- | |
157 | - | ||
158 | } |
- | |
159 | _PutImage(PANEL_X+PANEL_SIZE_X-60+random(3),PANEL_Y+10+random(3), 6,6, #moon); |
- |