[docs] Replace cyrillic 'с' with latin 'c' in register names
[kolibrios.git] / programs / media / zsea / win_bcgr.inc
blob785612a770c675961e6f55ff180fa4993bdd34b7
1 ;---------------------------------------------------------------------\r
2 k_background:\r
3         test    dword [status],8\r
4         jnz     still\r
5         or      dword [status],8\r
6 \r
7         call    get_memory_for_thread_stack\r
8         mov     [thread_stack_4],eax\r
9         mcall   51,1,thread4    ;, thread_stack_4\r
10         jmp     still\r
11 ;---------------------------------------------------------------------\r
12 thread4:        ; start of bgrd thread\r
13         mcall   9, procinfo_threads, -1\r
14         mov     eax,[ebx+30]\r
15         mov     [PID4],eax\r
16         mcall   40, 0x27\r
17 .red:\r
18         call    .draw_window\r
19 .still:\r
20         mov     eax,10  ; wait here for event\r
21         mcall\r
23         cmp     eax,1   ; redraw request ?\r
24         je      .red\r
26         cmp     eax,2   ; key in buffer ?\r
27         je      .key\r
29         cmp     eax,3   ; button in buffer ?\r
30         je      .button\r
32         cmp     eax,6   ; mouse in buffer ?\r
33         je      .mouse\r
35         jmp     .still\r
36 ;---------------------------------------------------------------------\r
37 .mouse:\r
38         mov     eax,option_group1\r
39         mov     ecx,[eax]\r
40         push    dword option_boxes_bcgr\r
41         call    [option_box_mouse]\r
42         cmp     ecx,[eax]\r
43         je      .option_boxes_SCC\r
44         \r
45         mov     ebx,bgrmode\r
46         cmp     [eax],dword op1\r
47         jne     @f\r
48         mov     [ebx],dword 1\r
49         jmp     .option_group1_color_set\r
50 ;---------------------------------------------------------------------\r
51 @@:\r
52         cmp     [eax],dword op2\r
53         jne     @f\r
54         mov     [ebx],dword 2\r
55         jmp     .option_group1_color_set\r
56 ;---------------------------------------------------------------------\r
57 @@:\r
58         cmp     [eax],dword op3\r
59         jne     @f\r
60         mov     [ebx],dword 3\r
61         jmp     .option_group1_color_set\r
62 ;---------------------------------------------------------------------\r
63 @@:\r
64         cmp     [eax],dword op4\r
65         jne     .option_boxes_SCC\r
66         mov     [ebx],dword 4\r
67 .option_group1_color_set:\r
68         mov     [bcgr_group_pointer],0\r
69         call    .option_boxes_redraw\r
70         jmp     .still\r
71 ;---------------------------------------------------------------------\r
72 .option_boxes_SCC:\r
73         mov     eax,[option_group3]\r
74         push    dword option_boxes_SCC\r
75         call    [option_box_mouse]\r
76         cmp     eax,[option_group3]\r
77         je      .still\r
78         \r
79         call    .convert_1\r
80         mov     [bcgr_group_pointer],1\r
81         call    .option_boxes_redraw\r
82         jmp     .still\r
83 ;---------------------------------------------------------------------\r
84 .tab:\r
85         mov     al,[bcgr_group_pointer]\r
86         inc     al\r
87         and     al,1\r
88         mov     [bcgr_group_pointer],al\r
89         call    .option_boxes_redraw\r
90         jmp     .still\r
91 ;---------------------------------------------------------------------\r
92 .key:\r
93         mcall\r
94         cmp     ah,27\r
95         je      .close\r
96         \r
97         cmp     ah,13\r
98         je      .kok\r
99         \r
100         cmp     ah,9\r
101         je      .tab\r
102         \r
103         cmp     [bcgr_group_pointer],1\r
104         je      .key_option_group3\r
105 ;---------------------------------------------------------------------\r
106 .key_option_group1:\r
107         mov     ebx,bgrmode\r
108         \r
109         cmp     ah,178 ;up\r
110         jne     .nofup\r
111         \r
112         cmp     [ebx],dword 1\r
113         je      .fdn\r
114 .fup:\r
115         dec     dword [ebx]\r
116         jmp     .flagcont\r
117 ;--------------------------------------\r
118 .nofup:\r
119         cmp     ah,177 ;down\r
120         jne     .still\r
121         \r
122         cmp     [ebx],dword 4\r
123         je      .fup\r
124 .fdn:\r
125         inc     dword [ebx]\r
126 .flagcont:\r
127         mov     eax,option_group1\r
128         cmp     [ebx],dword 1\r
129         jne     @f\r
130         \r
131         mov     [eax],dword op1\r
132         call    .draw_opt_boxes_bcgr\r
133         jmp     .still\r
134 ;---------------------------------------\r
135 @@:\r
136         cmp     [ebx],dword 2\r
137         jne     @f\r
138         \r
139         mov     [eax],dword op2\r
140         call    .draw_opt_boxes_bcgr\r
141         jmp     .still\r
142 ;----------------------------------------\r
143 @@:\r
144         cmp     [ebx],dword 3\r
145         jne     @f\r
146         \r
147         mov     [eax],dword op3\r
148         call    .draw_opt_boxes_bcgr\r
149         jmp     .still\r
150 ;-----------------------------------------\r
151 @@:\r
152         mov     [eax],dword op4\r
153         call    .draw_opt_boxes_bcgr\r
154         jmp     .still\r
155 ;---------------------------------------------------------------------\r
156 .key_option_group3:\r
157         push    eax\r
158         call    .convert_1\r
159         pop     eax\r
161         cmp     ah,178  ;up\r
162         jne     @f\r
164         dec     word [ebx+2]\r
165         jmp     .flagcont_1\r
166 ;------------------------------------------\r
167 @@:\r
168         cmp     ah,177  ;down\r
169         jne     @f\r
171         inc     word [ebx+2]\r
172         jmp     .flagcont_1     \r
173 ;------------------------------------------     \r
174 @@:\r
175         cmp     ah,176  ;left\r
176         jne     @f\r
178         dec     word [ebx]\r
179         jmp     .flagcont_1\r
180 ;------------------------------------------\r
181 @@:\r
182         cmp     ah,179  ;right\r
183         jne     .still\r
185         inc     word [ebx]\r
186 ;------------------------------------------\r
187 .flagcont_1:    \r
188         call    .convert_2\r
189         call    .convert_1      ;for additional check\r
190         call    .draw_opt_boxes_SCC\r
191         jmp     .still\r
192 ;---------------------------------------------------------------------\r
193 .convert_1:\r
194         mov     eax,option_group3\r
195         mov     ebx,Stretch_Crop_Corner\r
196         cmp     [eax],dword op_UL\r
197         jne     @f\r
198         mov     [ebx],dword 0 shl 16+0\r
199         jmp     .option_group3_color_set\r
200 ;----------------------------------------\r
201 @@:\r
202         cmp     [eax],dword op_UC\r
203         jne     @f\r
204         mov     [ebx],dword 0 shl 16+1\r
205         jmp     .option_group3_color_set\r
206 ;-----------------------------------------\r
207 @@:\r
208         cmp     [eax],dword op_UR\r
209         jne     @f\r
210         mov     [ebx],dword 0 shl 16+2\r
211         jmp     .option_group3_color_set\r
212 ;-----------------------------------------\r
213 @@:\r
214         cmp     [eax],dword op_CL\r
215         jne     @f\r
216         mov     [ebx],dword 1 shl 16+0\r
217         jmp     .option_group3_color_set\r
218 ;------------------------------------------\r
219 @@:\r
220         cmp     [eax],dword op_CC\r
221         jne     @f\r
222         mov     [ebx],dword 1 shl 16+1\r
223         jmp     .option_group3_color_set\r
224 ;-------------------------------------------\r
225 @@:\r
226         cmp     [eax],dword op_CR\r
227         jne     @f\r
228         mov     [ebx],dword 1 shl 16+2\r
229         jmp     .option_group3_color_set\r
230 ;--------------------------------------------\r
231 @@:\r
232         cmp     [eax],dword op_DL\r
233         jne     @f\r
234         mov     [ebx],dword 2 shl 16+0\r
235         jmp     .option_group3_color_set\r
236 ;--------------------------------------------\r
237 @@:\r
238         cmp     [eax],dword op_DC\r
239         jne     @f\r
240         mov     [ebx],dword 2 shl 16+1\r
241         jmp     .option_group3_color_set\r
242 ;--------------------------------------------\r
243 @@:\r
244         cmp     [eax],dword op_DR\r
245         jne     .option_group3_color_set\r
246         mov     [ebx],dword 2 shl 16+2\r
247 .option_group3_color_set:\r
248         ret\r
249 ;---------------------------------------------------------------------  \r
250 .convert_2:\r
251         mov     eax,Stretch_Crop_Corner\r
252         mov     ebx,option_group3\r
253         cmp     [eax],dword 0 shl 16+0\r
254         jne     @f\r
255         mov     [ebx],dword op_UL\r
256         jmp     .Stretch_Crop_Corner_set\r
257 ;----------------------------------------\r
258 @@:\r
259         cmp     [eax],dword 0 shl 16+1\r
260         jne     @f\r
261         mov     [ebx],dword op_UC\r
262         jmp     .Stretch_Crop_Corner_set\r
263 ;-----------------------------------------\r
264 @@:\r
265         cmp     [eax],dword 0 shl 16+2\r
266         jne     @f\r
267         mov     [ebx],dword op_UR\r
268         jmp     .Stretch_Crop_Corner_set\r
269 ;-----------------------------------------\r
270 @@:\r
271         cmp     [eax],dword 1 shl 16+0\r
272         jne     @f\r
273         mov     [ebx],dword op_CL\r
274         jmp     .Stretch_Crop_Corner_set\r
275 ;------------------------------------------\r
276 @@:\r
277         cmp     [eax],dword 1 shl 16+1\r
278         jne     @f\r
279         mov     [ebx],dword op_CC\r
280         jmp     .Stretch_Crop_Corner_set\r
281 ;-------------------------------------------\r
282 @@:\r
283         cmp     [eax],dword 1 shl 16+2\r
284         jne     @f\r
285         mov     [ebx],dword op_CR\r
286         jmp     .Stretch_Crop_Corner_set\r
287 ;--------------------------------------------\r
288 @@:\r
289         cmp     [eax],dword 2 shl 16+0\r
290         jne     @f\r
291         mov     [ebx],dword op_DL\r
292         jmp     .Stretch_Crop_Corner_set\r
293 ;--------------------------------------------\r
294 @@:\r
295         cmp     [eax],dword 2 shl 16+1\r
296         jne     @f\r
297         mov     [ebx],dword op_DC\r
298         jmp     .Stretch_Crop_Corner_set\r
299 ;--------------------------------------------\r
300 @@:\r
301         cmp     [eax],dword 2 shl 16+2\r
302         jne     .Stretch_Crop_Corner_set\r
303         mov     [ebx],dword op_DR\r
304 .Stretch_Crop_Corner_set:\r
305         ret     \r
306 ;---------------------------------------------------------------------\r
307 .button:                ; button\r
308         mcall   17      ; get id\r
309         cmp     ah,4\r
310         je      .kok\r
311         \r
312         cmp     ah,5\r
313         je      .start_ColorDialog\r
314 ;       cmp     ah,1    ; button id=1 ?\r
315 ;       jne     .noclose\r
316 .close:\r
317         xor     dword [status],8\r
318         xor     eax,eax\r
319         mov     [PID4],eax\r
321         mcall   68,13,[thread_stack_4]\r
322         mov     eax,-1  ; close this program\r
323         mcall\r
324 .noclose:\r
325 .kok:\r
326         call    background\r
327         jmp     .close\r
328 ;---------------------------------------------------------------------  \r
329 .start_ColorDialog:\r
330         push    dword ColorDialog_data\r
331         call    [ColorDialog_Start]\r
332         call    clear_control_key_flag\r
333 ; 2 - use another method/not found program\r
334         cmp     [ColorDialog_data.status],2\r
335         je      .still\r
336 ; 1 - OK, color selected        \r
337         cmp     [ColorDialog_data.status],1\r
338         jne     .still\r
339         \r
340         mov     eax,[ColorDialog_data.color]\r
341         mov     [background_color],eax\r
342         jmp     .still\r
343 ;---------------------------------------------------------------------\r
344 ;       *********************************************\r
345 ;       ******* WINDOW DEFINITIONS AND DRAW ********\r
346 ;       *********************************************\r
347 .draw_window:\r
348         mcall   12,1\r
349         xor     eax,eax\r
350         xor     esi,esi\r
351         mcall   ,<100,300>,<100,170>,0x13909090,,labelt4\r
352         mcall   8,<60,40>,<120,20>,4,0xdddddd\r
353         mcall   ,<220,40>,<120,20>,5,[background_color] ; 0xdddddd\r
354         mcall   4,<36,28>,0xffffff,bgrdtext,bgrdtext.size\r
355         push    ebx\r
356         add     ebx,170*65536\r
357         mcall   ,,,scc_text,scc_text.size\r
358         pop     ebx\r
359         add     ebx,40*65536+98\r
360         xor     ecx,ecx\r
361         mcall   ,,,ok_btn,ok_btn.size\r
362         add     ebx,40*65536\r
363         mcall   ,,0xffffff,color_btn,color_btn.size\r
364         call    .option_boxes_redraw\r
365 ;       mcall   47,0x80000,[PID4],<200, 5>,0xffffff\r
366         mcall   12,2\r
367         ret\r
368 ;---------------------------------------------------------------------\r
369 .option_boxes_redraw:\r
370         call    .draw_opt_boxes_bcgr\r
371         call    .draw_opt_boxes_SCC\r
372         ret\r
373 ;---------------------------------------------------------------------\r
374 .draw_opt_boxes_bcgr:\r
375         mov     edx,0x13909090\r
376         cmp     [bcgr_group_pointer],0\r
377         jne     @f\r
378         \r
379         mov     edx,0xffff80\r
380 @@:\r
381         mcall   13,<59,14>,<44,59>,\r
382         push    dword option_boxes_bcgr\r
383         call    [option_box_draw]\r
384         ret\r
385 ;---------------------------------------------------------------------\r
386 .draw_opt_boxes_SCC:\r
387         mov     edx,0x13909090\r
388         cmp     [bcgr_group_pointer],1\r
389         jne     @f\r
390         \r
391         mov     edx,0xffff80\r
392 @@:\r
393         mcall   13,<198,70>,<38,70>,\r
394         push    dword option_boxes_SCC\r
395         call    [option_box_draw]\r
396         ret