Rev 600 | Rev 1069 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
833 | Lrz | 1 | ; 24.07.2008 |
308 | Lrz | 2 | ; 01.02.07 - обновлён editbox |
3 | ; 31.01.07 - исправлена некорректная отрисовка при большом значении высоты скина |
||
4 | ; выравнивание снизу относительно рабочей области экрана |
||
5 | window_y=67 |
||
205 | heavyiron | 6 | ;window_x=320 |
308 | Lrz | 7 | window_x=640 |
493 | Lrz | 8 | ;--- другие макросы --- |
9 | include '../../../develop/examples/editbox/trunk/editbox.inc' |
||
10 | ;include 'editbox.inc' |
||
11 | include 'txtbut.inc' |
||
12 | include '../../../macros.inc' |
||
13 | ;include 'macros.inc' |
||
14 | include 'run.mac' |
||
309 | heavyiron | 15 | include 'lang.inc' |
493 | Lrz | 16 | meos_app_start |
833 | Lrz | 17 | use_edit_box |
493 | Lrz | 18 | use_txt_button |
19 | code |
||
20 | cmp [par],byte 0 |
||
21 | jne read_par |
||
22 | mcall 40,EVM_MOUSE+EVM_BUTTON+EVM_KEY+EVM_REDRAW |
||
205 | heavyiron | 23 | red: |
493 | Lrz | 24 | mcall 48,3,sc,40 |
25 | set_sys_colors_txt_button run_but,sc |
||
26 | push dword [sc.work_graph] |
||
27 | pop [input_fn.focus_border_color] |
||
28 | call draw_window |
||
600 | Lrz | 29 | still: ;основной обработчик |
30 | mcall 10 ;Ожидать события |
||
31 | dec eax |
||
32 | jz red |
||
33 | dec eax |
||
34 | jz key |
||
35 | dec eax |
||
36 | jz button |
||
37 | mouse_edit_box input_fn |
||
493 | Lrz | 38 | jmp still ;если ничего из перечисленного то снова в цикл |
205 | heavyiron | 39 | key: |
493 | Lrz | 40 | mcall 2 |
41 | cmp ah,13 |
||
42 | je run |
||
43 | key_edit_box input_fn |
||
44 | jmp still |
||
205 | heavyiron | 45 | button: |
493 | Lrz | 46 | mcall 17 |
47 | dec ah |
||
48 | jz close |
||
49 | dec ah |
||
50 | jz run |
||
51 | jmp still |
||
31 | halyavin | 52 | |
205 | heavyiron | 53 | read_par: |
493 | Lrz | 54 | mov esi,par |
55 | mov edi,fn |
||
56 | mov ecx,256 |
||
57 | rep movsb |
||
205 | heavyiron | 58 | run: |
493 | Lrz | 59 | xor eax,eax |
60 | mov edi,file_info.name |
||
61 | mov ecx,512 |
||
62 | rep stosb |
||
63 | mov edi,run_par |
||
64 | mov ecx,256 |
||
65 | rep stosb |
||
31 | halyavin | 66 | |
493 | Lrz | 67 | mov esi,fn |
68 | mov edi,file_info.name |
||
69 | cmp [esi],byte '"' |
||
70 | je copy_fn_with_spaces |
||
205 | heavyiron | 71 | copy_fn: |
493 | Lrz | 72 | cmp [esi],byte ' ' |
73 | je .stop |
||
74 | cmp [esi],byte 0 |
||
75 | je .stop |
||
76 | mov al,[esi] |
||
77 | mov [edi],al |
||
78 | inc esi |
||
79 | inc edi |
||
80 | jmp copy_fn |
||
205 | heavyiron | 81 | .stop: |
31 | halyavin | 82 | |
493 | Lrz | 83 | jmp copy_par |
31 | halyavin | 84 | |
205 | heavyiron | 85 | copy_fn_with_spaces: |
493 | Lrz | 86 | inc esi |
205 | heavyiron | 87 | @@: |
493 | Lrz | 88 | cmp [esi],byte '"' |
89 | je .stop |
||
90 | cmp [esi],byte 0 |
||
91 | je .stop |
||
92 | mov al,[esi] |
||
93 | mov [edi],al |
||
94 | inc esi |
||
95 | inc edi |
||
96 | jmp @b |
||
205 | heavyiron | 97 | .stop: |
31 | halyavin | 98 | |
205 | heavyiron | 99 | copy_par: |
100 | @@: |
||
493 | Lrz | 101 | inc esi |
102 | cmp [esi],byte ' ' |
||
103 | je @b |
||
104 | mov edi,run_par |
||
205 | heavyiron | 105 | @@: |
493 | Lrz | 106 | cmp [esi],byte 0 |
107 | je .stop |
||
108 | mov al,[esi] |
||
109 | mov [edi],al |
||
110 | inc esi |
||
111 | inc edi |
||
112 | jmp @b |
||
205 | heavyiron | 113 | .stop: |
493 | Lrz | 114 | mcall 70,file_info |
31 | halyavin | 115 | |
493 | Lrz | 116 | cmp eax,0 |
117 | jl error |
||
118 | mov [status],run_ok |
||
119 | call draw_status |
||
120 | jmp still |
||
205 | heavyiron | 121 | close: |
493 | Lrz | 122 | mcall -1 |
31 | halyavin | 123 | |
205 | heavyiron | 124 | error: |
493 | Lrz | 125 | neg eax |
126 | cmp_err 3,bad_file_sys |
||
127 | cmp_err 5,file_not_find |
||
128 | cmp_err 9,bad_fat_table |
||
129 | cmp_err 10,acces_denyied |
||
130 | cmp_err 11,device_error |
||
131 | cmp_err 30,out_of_memory |
||
132 | cmp_err 31,file_not_executable |
||
133 | cmp_err 32,many_processes |
||
31 | halyavin | 134 | |
493 | Lrz | 135 | call draw_status |
136 | jmp still |
||
31 | halyavin | 137 | |
138 | draw_window: |
||
493 | Lrz | 139 | mcall 48,5 |
140 | mov si,bx |
||
31 | halyavin | 141 | |
493 | Lrz | 142 | mcall 12,1 |
143 | mcall 48,4 |
||
144 | mov dx,ax |
||
145 | mcall 14 |
||
146 | xor ecx,ecx |
||
147 | sub cx,window_y+2 |
||
148 | sub cx,dx |
||
149 | add cx,si |
||
150 | shl ecx,16 |
||
151 | mov cx,dx |
||
152 | add cx,window_y |
||
153 | shr eax,16 |
||
154 | mov bx,ax |
||
155 | sub bx,window_x |
||
156 | shl ebx,15 |
||
157 | mov bx,window_x |
||
158 | mov edx,[sc.work] |
||
159 | or edx,0x33000000 |
||
160 | xor esi,esi |
||
161 | mov edi,grab_text |
||
162 | mcall 0 |
||
31 | halyavin | 163 | |
493 | Lrz | 164 | mcall 9,procinfo,-1 |
31 | halyavin | 165 | |
493 | Lrz | 166 | mov eax,[procinfo.box.width] |
167 | sub eax,20 |
||
168 | mov [input_fn.width],eax |
||
169 | mov [run_but.width],ax |
||
31 | halyavin | 170 | |
493 | Lrz | 171 | xor bx,bx |
172 | shl ebx,16 |
||
173 | mov bx,ax |
||
174 | add bx,10 |
||
175 | mov cx,45 |
||
176 | push cx |
||
177 | shl ecx,16 |
||
178 | pop cx |
||
179 | mov edx,[sc.work_graph] |
||
180 | mcall 38 |
||
181 | draw_edit_box input_fn |
||
182 | draw_txt_button run_but |
||
31 | halyavin | 183 | |
493 | Lrz | 184 | call draw_status_text |
31 | halyavin | 185 | |
493 | Lrz | 186 | mcall 12,2 |
31 | halyavin | 187 | ret |
188 | |||
205 | heavyiron | 189 | draw_status: |
493 | Lrz | 190 | mov ebx,[procinfo.box.width] |
191 | sub bx,10 |
||
192 | mov ecx,(50)*65536+12 |
||
193 | mov edx,[sc.work] |
||
194 | mcall 13 |
||
205 | heavyiron | 195 | draw_status_text: |
493 | Lrz | 196 | mov edx,[status] |
197 | xor esi,esi |
||
205 | heavyiron | 198 | @@: |
493 | Lrz | 199 | cmp [edx+esi],byte 0 |
200 | je @f |
||
201 | inc esi |
||
202 | jmp @b |
||
205 | heavyiron | 203 | @@: |
493 | Lrz | 204 | mov ecx,[sc.work_text] |
205 | mcall 4,5*65536+(50) |
||
31 | halyavin | 206 | ret |
207 | |||
308 | Lrz | 208 | run_but txt_button 0,5,15,25,2,0,0,run_but_text, |
493 | Lrz | 209 | input_fn edit_box 0,5,5,0xffffff,0x6a9480,0,0xaaaaaa,0,511,fn,ed_focus+ed_always_focus |
210 | mouse_flag: dd 0x0 |
||
31 | halyavin | 211 | |
309 | heavyiron | 212 | if lang eq ru |
205 | heavyiron | 213 | hello db 'Введите полный путь к файлу и нажмите Enter',0 |
214 | bad_file_sys db 'Неизвестная файловая система',0 ; 3 |
||
493 | Lrz | 215 | file_not_find db 'Файл не найден',0 ; 5 |
216 | bad_fat_table db 'Таблица FAT разрушена',0 ; 9 |
||
217 | acces_denyied db 'Доступ запрещен',0 ; 10 |
||
218 | device_error db 'Ошибка устройства',0 ; 11 |
||
219 | out_of_memory db 'Недостаточно памяти',0 ; 30 |
||
205 | heavyiron | 220 | file_not_executable db 'Файл не является исполняемым',0 ; 31 |
493 | Lrz | 221 | many_processes db 'Слишком много процессов',0 ; 32 |
308 | Lrz | 222 | run_ok db 'Программа успешно запущена',0 |
223 | grab_text db 'ЗАПУСК ПРОГРАММЫ',0 |
||
309 | heavyiron | 224 | run_but_text db 'ЗАПУСТИТЬ',0 |
225 | else |
||
226 | hello db 'Enter full path to file and press |
||
227 | bad_file_sys db 'Unknown file system',0 ; 3 |
||
228 | file_not_find db 'File not found',0 ; 5 |
||
229 | bad_fat_table db 'FAT table corrupted',0 ; 9 |
||
230 | acces_denyied db 'Access denied',0 ; 10 |
||
231 | device_error db 'Device error',0 ; 11 |
||
232 | out_of_memory db 'Out of memory',0 ; 30 |
||
233 | file_not_executable db 'File is not executable',0 ; 31 |
||
234 | many_processes db 'Too many processes',0 ; 32 |
||
235 | run_ok db 'The program was started successfully',0 |
||
236 | grab_text db 'RUN',0 |
||
237 | run_but_text db 'RUN',0 |
||
238 | end if |
||
205 | heavyiron | 239 | status dd hello |
31 | halyavin | 240 | |
205 | heavyiron | 241 | file_info: |
242 | .mode dd 7 |
||
243 | .flags dd 0 |
||
244 | .par dd run_par |
||
245 | dd 0,0 |
||
246 | .name rb 512 |
||
31 | halyavin | 247 | |
205 | heavyiron | 248 | flags dw ? |
31 | halyavin | 249 | |
493 | Lrz | 250 | sc system_colors |
451 | heavyiron | 251 | |
493 | Lrz | 252 | procinfo process_information |
31 | halyavin | 253 | |
205 | heavyiron | 254 | run_par rb 256 |
255 | par rb 256 |
||
493 | Lrz | 256 | fn rb 512 |
257 | meos_app_end |
||
258 | udata |