Subversion Repositories Kolibri OS

Rev

Rev 3953 | Rev 4082 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3953 Rev 4036
Line 9... Line 9...
9
idbRFixIcons equ 102
9
idbRFixIcons equ 102
10
idbRAdd      equ 103
10
idbRAdd      equ 103
11
idbRDel      equ 104
11
idbRDel      equ 104
12
idbRProp     equ 105
12
idbRProp     equ 105
Line -... Line 13...
-
 
13
 
-
 
14
DELTA_COLOR  equ 70
13
 
15
 
14
;---- thread for rbutton -----------------------------------------------------------------------
16
;---- thread for rbutton -----------------------------------------------------------------------
15
RButtonWin:
17
RButtonWin:
16
        mcall   40,100101b      ;SetMaskMessage 100101b
18
        mcall   40,100101b      ;SetMaskMessage 100101b
17
	mcall	48,3,sc,40
-
 
18
        stdcall GetNumIcon,[MouseX],[MouseY],-1
-
 
Line -... Line 19...
-
 
19
        mcall   48,3,sc,40
19
        mov     [SelIcon],eax
20
 
-
 
21
        mov     eax,[sc.work]     ;¢ëç¨á«ï¥¬ 梥â ᢥ⫥¥ ä®­®¢®£®
20
 
22
        rol     eax,16
-
 
23
        add     al,DELTA_COLOR
-
 
24
        jnc     @f
21
        cmp     eax,-1
25
        mov     al,0FFh
-
 
26
      @@:
-
 
27
        rol     eax,16
-
 
28
        add     al,DELTA_COLOR
-
 
29
        jnc     @f
-
 
30
        mov     al,0FFh
-
 
31
      @@:
-
 
32
        add     ah,DELTA_COLOR
-
 
33
        jnc     @f
22
        jne     @f
34
        mov     ah,0FFh
-
 
35
      @@:
-
 
36
        mov     [sc.workH],eax
-
 
37
 
-
 
38
        mov     eax,[sc.work]     ;¢ëç¨á«ï¥¬ 梥â ⥬­¥¥ ä®­®¢®£®
-
 
39
        rol     eax,16
-
 
40
        sub     al,DELTA_COLOR
-
 
41
        jnc     @f
-
 
42
        mov     al,0FFh
-
 
43
      @@:
-
 
44
        rol     eax,16
-
 
45
        sub     al,DELTA_COLOR
-
 
46
        jnc     @f
-
 
47
        mov     al,0FFh
23
        mov     [RMenuH],16*4+3+3
48
      @@:
-
 
49
        sub     ah,DELTA_COLOR
24
        mov     [RMenuHsb],16*4+3+3
50
        jnc     @f
25
        jmp     .rbw1
51
        mov     ah,0FFh
-
 
52
      @@:
-
 
53
        mov     [sc.workL],eax
-
 
54
 
26
      @@:
55
 
27
        mov     [RMenuH],16*5+3+3
56
 
Line 28... Line 57...
28
        mov     [RMenuHsb],16*5+3+3
57
        stdcall GetNumIcon,[MouseX],[MouseY],-1
29
    .rbw1:
58
        mov     [SelIcon],eax
30
 
59
 
31
        mov     [NumUserButt],0
60
        mov     [NumUserButt],0
32
        mov     [RMenuW],0
61
        mov     [RMenuW],0
33
        mcall   70,fiIni
62
        mcall   70,fiIni
Line -... Line 63...
-
 
63
        mcall   68,12,dword[bufIni+32]
-
 
64
        mov     [RBUser],eax
-
 
65
        stdcall [ini_enum_keys],IconIni,secRButt,GetUserBut
-
 
66
 
-
 
67
        cmp     [SelIcon],-1
-
 
68
        jne     @f
-
 
69
        mov     [RMenuH],16*4
-
 
70
        mov     eax,[NumUserButt]
-
 
71
        shl     eax,4
-
 
72
        add     [RMenuH],ax
Line 34... Line 73...
34
        mcall   68,12,dword[bufIni+32]
73
        jmp     .rbw1
35
        mov     [RBUser],eax
74
      @@:
36
        stdcall [ini_enum_keys],IconIni,secRButt,GetUserBut
75
        mov     [RMenuH],16*5
37
 
76
    .rbw1:
38
 
77
 
39
RBWRedraw:
78
RBWRedraw:
40
        mcall   12,1    ;RedrawWinBeg
79
        mcall   12,1    ;RedrawWinBeg
41
        mov     ebx,[MouseX]
80
        mov     ebx,[MouseX]
42
        shl     ebx,16
81
        shl     ebx,16
43
        mov     bx,[RMenuW]
82
        mov     bx,[RMenuW]
44
        mov     ecx,[MouseY]
83
        mov     ecx,[MouseY]
45
        shl     ecx,16
84
        shl     ecx,16
Line -... Line 85...
-
 
85
        mov     cx,[RMenuH]
-
 
86
        mov     edx,01000000h
-
 
87
        mov     esi,01000000h
-
 
88
        xor     eax,eax
-
 
89
        int     40h
-
 
90
 
-
 
91
        and     ebx,0FFFFh      ;ä®­®¢ë© ¯àאַ㣮«ì­¨ª
-
 
92
        inc     bx
46
        mov     cx,[RMenuH]
93
        and     ecx,0FFFFh
47
        mov     edx,0177CCFFh
94
        inc     cx
48
        mov     esi,01000000h
95
        mcall   13,,,[sc.work]
49
        xor     eax,eax
96
 
Line 50... Line 97...
50
        int     40h
97
        cmp     [SelIcon],-1       ;¥á«¨ ª«¨ª ¯® ¨ª®­ª¥, â® ¯ã­ªâë ¯®«ì§®¢ â¥«ï ­¥ ­ã¦­ë
51
 
98
        jne     .NoDrawUserBut
52
       ;-----------
99
       ;-----------
-
 
100
        mov     ecx,[NumUserButt]
53
        mov     ecx,[NumUserButt]
101
  .DrawUB:
54
  .DrawUB:
102
        push    ecx
55
        push    ecx
103
 
Line 56... Line 104...
56
 
104
        mov     eax,[NumUserButt]
57
        mov     eax,[NumUserButt]
105
        sub     eax,ecx
58
        sub     eax,ecx
106
        mov     edx,eax      ;button ID
59
        mov     edx,eax      ;button ID
107
        or      edx,60000000h
Line 60... Line 108...
60
        shl     eax,4+16          ;*16*10000h
108
        shl     eax,4+16          ;*16*10000h
61
        mov     ecx,eax
109
        mov     ecx,eax
62
        mov     cx,16
110
        mov     cx,16
63
 
111
 
Line 74... Line 122...
74
        mov     ecx,80000000h
122
        mov     ecx,80000000h
Line 75... Line 123...
75
 
123
 
76
        mov     eax,[NumUserButt]
124
        mov     eax,[NumUserButt]
77
        sub     eax,[esp]
125
        sub     eax,[esp]
78
        mov     edx,[RBUser+eax*8]
-
 
79
 
126
        mov     edx,[RBUser+eax*8]
Line 80... Line 127...
80
        mcall   4
127
        mcall   4                      ;¯®¤¯¨á «¨
81
 
128
 
Line 82... Line 129...
82
        pop     ecx
129
        pop     ecx
-
 
130
        loop    .DrawUB
-
 
131
 
83
        loop    .DrawUB
132
       ;-----------
84
 
133
.NoDrawUserBut:
85
       ;-----------
-
 
86
        xor     ebx,ebx
-
 
87
        mov     bx,[RMenuW]
-
 
88
        mov     cx,[RMenuH]
-
 
89
        sub     cx,[RMenuHsb]
-
 
90
        push    ecx
-
 
91
        mov     dx,cx
-
 
92
        shl     ecx,16
-
 
93
        mov     cx,dx
-
 
94
 
-
 
95
                                   ;¯¥à¢ ï à §¤¥«¨â¥«ì­ ï «¨­¨ï
-
 
96
;        mcall   38,,,[RBMenuColor];0888888h
-
 
Line -... Line 134...
-
 
134
                                        ;®¯à¥¤¥«¥­¨¥ ª­®¯®ª ¤«ï ¨ª®­®ª
-
 
135
        xor     ebx,ebx
97
        mcall   38,,,[sc.work]
136
        mov     bx,[RMenuW]
98
        add     ecx,00010001h
137
 
-
 
138
        xor     eax,eax
99
        mcall     ,,,
139
        cmp     [SelIcon],-1
-
 
140
        jne     @f
100
 
141
        mov     eax,[NumUserButt]
101
       ;------------
142
     @@:
-
 
143
        shl     eax,4
-
 
144
        mov     cx,ax
-
 
145
        shl     ecx,16
-
 
146
        mov     cx,16
-
 
147
        push    ecx                     ;®âá à¨á®¢ âì ª­®¯ª¨ (¯® ¢ëá®â¥)
-
 
148
 
-
 
149
 
-
 
150
        mcall   8,,,60000000h or idbRRedrawFon,[sc.work]
-
 
151
        add     ecx,16*10000h
-
 
152
        mcall    ,,,60000000h or idbRAlign
-
 
153
        add     ecx,16*10000h
-
 
154
        mcall    ,,,60000000h or idbRFixIcons
Line 102... Line -...
102
        mov     ecx,[esp]
-
 
103
        add     ecx,2
155
        add     ecx,16*10000h
104
        shl     ecx,16
156
 
105
        mov     cx,16
157
        cmp     dword[SelIcon],-1
106
 
158
        je      @f
-
 
159
 
107
;        mcall   8,,,idbRRedrawFon,[RBMenuColor];0888888h  ;3 ª­®¯ª¨ ¢â®à®£® ¡«®ª 
160
        mcall    ,,,60000000h or idbRDel,
-
 
161
        add     ecx,16*10000h
Line -... Line 162...
-
 
162
        mcall    ,,,60000000h or idbRProp,
-
 
163
        jmp     .endRM1
-
 
164
      @@:
-
 
165
        mcall    ,,,60000000h or idbRAdd,
-
 
166
      .endRM1:
-
 
167
 
-
 
168
                                        ;¯®¤¯¨á¨ ª ª­®¯ª ¬
108
        mcall   8,,,idbRRedrawFon,[sc.work]
169
        xor     eax,eax
109
        add     ecx,00100000h
170
        cmp     [SelIcon],-1
-
 
171
        jne     @f
110
        mcall    ,,,idbRAlign
172
        mov     eax,[NumUserButt]
111
        add     ecx,00100000h
173
      @@:
112
        mcall    ,,,idbRFixIcons
174
        shl     eax,4
113
 
175
        mov     ebx,50000h
Line 114... Line 176...
114
        mov     ebx,50000h
176
        mov     bx,ax
Line 125... Line 187...
125
        jmp     .RBWR1
187
        jmp     .RBWR1
126
     @@:
188
     @@:
127
        mov     edx,RMenuOnMoving
189
        mov     edx,RMenuOnMoving
128
     .RBWR1:
190
     .RBWR1:
129
        mcall
191
        mcall
-
 
192
        add     ebx,16
Line 130... Line -...
130
 
-
 
131
       ;------------
-
 
132
        xor     ebx,ebx               ;¢â®à ï à §¤¥«¨â¥«ì­ ï «¨­¨ï
-
 
133
        mov     bx,[RMenuW]
-
 
134
        mov     ecx,[esp]
-
 
135
        add     ecx,16*3+2
-
 
136
        mov     dx,cx
-
 
137
        shl     ecx,16
-
 
138
        mov     cx,dx
-
 
139
;        mcall   38,,,[RBMenuColor];0888888h
-
 
140
        mcall   38,,,[sc.work]
-
 
141
        add     ecx,00010001h
-
 
142
        mcall     ,,,
-
 
143
       ;------------
-
 
144
                                     ;1 ¨«¨ 2 ª­®¯ª¨ âà¥â쥣® ¡«®ª 
-
 
145
        mov     ecx,[esp]
-
 
146
        add     ecx,16*3+4
-
 
147
        shl     ecx,16
-
 
148
        mov     cx,16
193
 
149
        cmp     dword[SelIcon],-1
194
        cmp     dword[SelIcon],-1
Line 150... Line -...
150
        je      @f
-
 
151
 
-
 
152
;        mcall   8,,,idbRDel,[RBMenuColor];0888888h
-
 
153
        mcall   8,,,idbRDel,[sc.work]
-
 
154
        add     ecx,00100000h
-
 
155
;        mcall    ,,,idbRProp,[RBMenuColor];0888888h
-
 
156
        mcall    ,,,idbRProp,[sc.work]
-
 
157
 
-
 
158
        mov     ebx,50000h
-
 
159
        mov     bx,word[esp]
195
        je      @f
160
        add     bx,16*3+4+5
196
 
161
        mcall   4,,80000000h,RMenuDel
197
        mcall    ,,,RMenuDel
162
        add     bx,16
-
 
163
        mcall    ,,         ,RMenuProp
198
        add     bx,16
164
 
199
        mcall    ,,,RMenuProp
Line 165... Line -...
165
        jmp     .endRM
-
 
166
      @@:
-
 
167
 
-
 
168
;        mcall   8,,,idbRAdd,[RBMenuColor];0888888h
-
 
169
        mcall   8,,,idbRAdd,[sc.work]
-
 
170
        mov     ebx,50000h
200
        jmp     .endRM2
171
        mov     bx,word[esp]
-
 
172
        add     bx,16*3+4+5
201
      @@:
Line 173... Line 202...
173
        mcall   4,,80000000h,RMenuAdd
202
 
174
 
203
        mcall    ,,,RMenuAdd
Line 175... Line 204...
175
      .endRM:
204
      .endRM2:
Line 216... Line 245...
216
        mcall   70,fiRunProg
245
        mcall   70,fiRunProg
217
    @@:
246
    @@:
218
        jmp     RBWExit
247
        jmp     RBWExit
Line 219... Line 248...
219
 
248
 
-
 
249
RBWMouse:
-
 
250
        cmp     [PredItem],-1
-
 
251
        je      @f
-
 
252
        mov     eax,[PredItem]
-
 
253
        xor     ebx,ebx
-
 
254
        mov     bx,[RMenuW]
-
 
255
        mov     cx,ax
-
 
256
        shl     ecx,16
-
 
257
        mov     cx,ax
-
 
258
        mcall   38,,,[sc.work]
-
 
259
        add     ecx,00100010h
-
 
260
        mcall    ,,,[sc.work]
-
 
261
      @@:
-
 
262
        call    ClickInWin
-
 
263
        jnc     @f
-
 
264
        mcall   37,1          ;¯®«®¦¥­¨¥ ¬ëè¨ ®â­®á¨â¥«ì­® ®ª­ 
-
 
265
        and     eax,0FFF0h
-
 
266
        mov     [PredItem],eax
-
 
267
        xor     ebx,ebx
-
 
268
        mov     bx,[RMenuW]
-
 
269
        mov     cx,ax
-
 
270
        shl     ecx,16
-
 
271
        mov     cx,ax
-
 
272
        mcall   38,,,[sc.workL]
-
 
273
        add     ecx,00100010h
-
 
274
        mcall    ,,,[sc.workH]
-
 
275
      @@:
-
 
276
 
220
RBWMouse:
277
 
221
        mcall   37,2            ;GetMouseKey
278
        mcall   37,2            ;GetMouseKey
222
        test    eax,111b
279
        test    eax,111b
223
        jz      RBWMessages
-
 
224
        mcall   37,0            ;GetMousePos
-
 
225
        xor     ebx,ebx
-
 
226
        mov     bx,ax           ;y
-
 
227
        shr     eax,16          ;x
-
 
228
 
-
 
229
        xor     ecx,ecx
-
 
230
        mov     cx,bx
-
 
Line 231... Line 280...
231
        mov     bx,ax
280
        jz      RBWMessages
232
 
-
 
233
        mcall   34
281
 
Line 234... Line 282...
234
        cmp     eax,[RBSlot]
282
        call    ClickInWin
235
        je      RBWMessages
283
        jc      RBWMessages
236
 
284
 
237
RBWExit:
285
RBWExit:
Line 307... Line 355...
307
 
355
 
308
RBWSetActivWin:
356
RBWSetActivWin:
309
        mcall   18,3,[slotDlgAdd]
357
        mcall   18,3,[slotDlgAdd]
Line -... Line 358...
-
 
358
        jmp     RBWExit
-
 
359
 
-
 
360
proc ClickInWin        ;Carry flag = 1, ¥á«¨ ª«¨ª ¢ ®ª­¥
-
 
361
        mcall   37,0            ;GetMousePos
-
 
362
        xor     ebx,ebx
-
 
363
        mov     bx,ax           ;y
-
 
364
        shr     eax,16          ;x
-
 
365
 
-
 
366
        xor     ecx,ecx
-
 
367
        mov     cx,bx
-
 
368
        mov     bx,ax
-
 
369
 
-
 
370
        mcall   34
-
 
371
        cmp     eax,[RBSlot]
-
 
372
        jne     @f
-
 
373
        stc
-
 
374
        ret
-
 
375
      @@:
-
 
376
        clc
-
 
377
        ret
Line 310... Line 378...
310
        jmp     RBWExit
378
endp
311
 
379
 
312
 
380
 
313
proc AlignIcons
381
proc AlignIcons
Line 456... Line 524...
456
        ret
524
        ret
457
     @@:
525
     @@:
Line 458... Line 526...
458
 
526
 
Line 459... Line -...
459
        push    ebx esi edi
-
 
460
 
-
 
461
        mov     edi,[key_name]
-
 
462
        mov     esi,keyMenuColor
-
 
463
    @@: lodsb
-
 
464
        scasb
-
 
465
        jne     @f
-
 
466
        test    al,al
-
 
467
        jnz     @b
-
 
468
 
-
 
469
        stdcall [ini_get_color],[f_name],[sec_name],[key_name],0888888h
-
 
470
        mov     [RBMenuColor],eax
-
 
471
        ret
-
 
472
   @@:
527
        push    ebx esi edi
473
 
528
 
474
        mov     edi,[key_name]           ;®¯à¥¤¥«ï¥¬ è¨à¨­ã ¬¥­î
529
        mov     edi,[key_name]           ;®¯à¥¤¥«ï¥¬ è¨à¨­ã ¬¥­î
475
        xor     eax,eax
530
        xor     eax,eax
476
        or      ecx,-1
531
        or      ecx,-1
Line 508... Line 563...
508
        jnz     @b
563
        jnz     @b
Line 509... Line 564...
509
 
564
 
Line 510... Line 565...
510
        mov     [RBUser+ebx*8+8],edi
565
        mov     [RBUser+ebx*8+8],edi
511
 
-
 
Line 512... Line 566...
512
        inc     [NumUserButt]
566
 
513
        add     [RMenuH],16
567
        inc     [NumUserButt]
514
 
568
 
515
        pop     edi esi ebx
569
        pop     edi esi ebx