Rev 2538 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2538 | Rev 2548 | ||
---|---|---|---|
Line 23... | Line 23... | ||
23 | 23 | ||
24 | ; êîìó ïðèíàäëåæèò òî÷êà? |
24 | ; êîìó ïðèíàäëåæèò òî÷êà? |
25 | mcall 34,[curx1],[cury1] |
25 | mcall 34,[curx1],[cury1] |
26 | cmp al,1 ; 1 - ÿäðî |
26 | cmp al,1 ; 1 - ÿäðî |
- | 27 | jne still_mouse |
|
- | 28 | ||
- | 29 | ; check for icon by click down |
|
- | 30 | call check_icons_position |
|
- | 31 | mov eax,[click_pos] |
|
- | 32 | test eax,eax |
|
- | 33 | jz still_mouse |
|
- | 34 | ||
- | 35 | mov eax,[current_X_mouse_thread] |
|
- | 36 | mov [curx_restore],eax |
|
- | 37 | mov eax,[current_Y_mouse_thread] |
|
- | 38 | mov [cury_restore],eax |
|
- | 39 | ||
27 | jne still_mouse |
40 | call draw_select |
28 | ;-------------------------------------- |
41 | ;-------------------------------------- |
29 | align 4 |
42 | align 4 |
30 | @@: ; ïîäîæä¸ì, ïîêà ïîëüçîâàòåëü íå îòïóñòèë ïðàâóþ êíîïêó ìûøè |
43 | @@: ; ïîäîæä¸ì, ïîêà ïîëüçîâàòåëü íå îòïóñòèë ïðàâóþ êíîïêó ìûøè |
31 | mcall 37,2 ; íàæàòû ëè êíîïêè ìûøè? |
44 | mcall 37,2 ; íàæàòû ëè êíîïêè ìûøè? |
Line 48... | Line 61... | ||
48 | mov [cury2],ebx ; cury1 = cursor_y |
61 | mov [cury2],ebx ; cury1 = cursor_y |
Line 49... | Line 62... | ||
49 | 62 | ||
50 | ; êîìó ïðèíàäëåæèò òî÷êà? |
63 | ; êîìó ïðèíàäëåæèò òî÷êà? |
51 | mcall 34,[curx2],[cury2] |
64 | mcall 34,[curx2],[cury2] |
- | 65 | cmp al,1 ; 1 - ÿäðî |
|
- | 66 | je @f |
|
52 | cmp al,1 ; 1 - ÿäðî |
67 | call restore_background |
- | 68 | jmp still_mouse |
|
- | 69 | ;-------------------------------------- |
|
- | 70 | align 4 |
|
53 | jne still_mouse |
71 | @@: |
54 | ; check for icon by click down |
72 | ; check for icon by click down |
55 | call check_icons_position |
73 | call check_icons_position |
56 | mov eax,[click_pos] |
74 | mov eax,[click_pos] |
57 | test eax,eax |
75 | test eax,eax |
Line 64... | Line 82... | ||
64 | mov [cury1],eax |
82 | mov [cury1],eax |
65 | ; check for icon by click up |
83 | ; check for icon by click up |
66 | call check_icons_position |
84 | call check_icons_position |
67 | pop eax |
85 | pop eax |
Line -... | Line 86... | ||
- | 86 | ||
- | 87 | call restore_background |
|
68 | 88 | ||
Line 69... | Line 89... | ||
69 | mov ebx,[click_pos] |
89 | mov ebx,[click_pos] |
70 | 90 | ||
Line 71... | Line 91... | ||
71 | test ebx,ebx |
91 | test ebx,ebx |
72 | jz still_mouse |
92 | jz still_mouse |
73 | 93 | ||
74 | cmp eax,ebx |
- | |
75 | jne still_mouse |
94 | cmp eax,ebx |
76 | ;-------------------------------------- |
95 | jne still_mouse |
77 | align 4 |
96 | ;-------------------------------------- |
78 | start_appl: |
97 | ;start_appl: |
79 | mov esi,[adress_of_icon_data_2] ;[ebp+8] |
98 | mov esi,[adress_of_icon_data_2] |
80 | mov ebx,1 |
99 | mov ebx,1 |
81 | mov edi,finfo.path |
100 | mov edi,finfo.path |
Line 170... | Line 189... | ||
170 | ; all icons survived! |
189 | ; all icons survived! |
171 | xor eax,eax |
190 | xor eax,eax |
172 | mov [click_pos],eax |
191 | mov [click_pos],eax |
173 | ret |
192 | ret |
174 | ;------------------------------------------------------------------------------ |
193 | ;------------------------------------------------------------------------------ |
- | 194 | align 4 |
|
- | 195 | draw_select: |
|
- | 196 | mcall 68,12,52*52*4+8 |
|
- | 197 | mov [draw_area_2],eax |
|
- | 198 | mov ebx,52 |
|
- | 199 | mov [eax],ebx |
|
- | 200 | mov [eax+4],ebx |
|
- | 201 | ;-------------------------------------- |
|
- | 202 | ; draw black square |
|
- | 203 | mov eax,-1 |
|
- | 204 | mov edi,[draw_area_2] |
|
- | 205 | add edi,8 |
|
- | 206 | cld |
|
- | 207 | mov ecx,52*52 |
|
- | 208 | rep stosd |
|
- | 209 | ;-------------------------------------- |
|
- | 210 | ; draw white square |
|
- | 211 | mov eax,0xff000000 |
|
- | 212 | mov edi,[draw_area_2] |
|
- | 213 | add edi,8+(4*1)+(52*4*1) |
|
- | 214 | mov ebx,50 |
|
- | 215 | cld |
|
- | 216 | ;-------------------------------------- |
|
- | 217 | align 4 |
|
- | 218 | @@: |
|
- | 219 | mov ecx,50 |
|
- | 220 | rep stosd |
|
- | 221 | ||
- | 222 | add edi,2*4 |
|
- | 223 | dec ebx |
|
- | 224 | jnz @b |
|
- | 225 | ;-------------------------------------- |
|
- | 226 | ; draw black square |
|
- | 227 | xor eax,eax |
|
- | 228 | mov edi,[draw_area_2] |
|
- | 229 | add edi,8+(4*2)+(52*4*2) |
|
- | 230 | mov ebx,48 |
|
- | 231 | cld |
|
- | 232 | ;-------------------------------------- |
|
- | 233 | align 4 |
|
- | 234 | @@: |
|
- | 235 | mov ecx,48 |
|
- | 236 | rep stosd |
|
- | 237 | ||
- | 238 | add edi,4*4 |
|
- | 239 | dec ebx |
|
- | 240 | jnz @b |
|
- | 241 | ;-------------------------------------- |
|
- | 242 | mov edx,[current_X_mouse_thread] |
|
- | 243 | shl edx,16 |
|
- | 244 | add edx,[current_Y_mouse_thread] |
|
- | 245 | mov ebx,[draw_area_2] |
|
- | 246 | add ebx,8 |
|
- | 247 | mcall 25,,<52,52> |
|
- | 248 | mcall 68,13,[draw_area_2] |
|
- | 249 | ret |
|
- | 250 | ;------------------------------------------------------------------------------ |
|
- | 251 | align 4 |
|
- | 252 | restore_background: |
|
- | 253 | pusha |
|
- | 254 | mov eax,[curx_restore] |
|
- | 255 | mov ecx,eax |
|
- | 256 | shl ecx,16 |
|
- | 257 | add ecx,eax |
|
- | 258 | add ecx,52 |
|
- | 259 | ||
- | 260 | mov eax,[cury_restore] |
|
- | 261 | mov edx,eax |
|
- | 262 | shl edx,16 |
|
- | 263 | add edx,eax |
|
- | 264 | add edx,52 |
|
- | 265 | ||
- | 266 | mcall 15,9 |
|
- | 267 | popa |
|
- | 268 | ret |
|
- | 269 | ;------------------------------------------------------------------------------52,52> |
|
175 | 270 |