Subversion Repositories Kolibri OS

Rev

Rev 3953 | Rev 4082 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3953 Rev 4036
1
if lang eq ru
1
if lang eq ru
2
MinRMenuW equ 18*6+10
2
MinRMenuW equ 18*6+10
3
else
3
else
4
MinRMenuW equ 15*6+10
4
MinRMenuW equ 15*6+10
5
end if
5
end if
6
 
6
 
7
idbRRedrawFon equ 100
7
idbRRedrawFon equ 100
8
idbRAlign    equ 101
8
idbRAlign    equ 101
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
-
 
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
19
        mcall   48,3,sc,40
18
        stdcall GetNumIcon,[MouseX],[MouseY],-1
-
 
19
        mov     [SelIcon],eax
-
 
-
 
20
 
20
 
21
        mov     eax,[sc.work]     ;¢ëç¨á«ï¥¬ 梥â ᢥ⫥¥ ä®­®¢®£®
-
 
22
        rol     eax,16
21
        cmp     eax,-1
23
        add     al,DELTA_COLOR
-
 
24
        jnc     @f
-
 
25
        mov     al,0FFh
22
        jne     @f
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
-
 
34
        mov     ah,0FFh
23
        mov     [RMenuH],16*4+3+3
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
-
 
48
      @@:
24
        mov     [RMenuHsb],16*4+3+3
49
        sub     ah,DELTA_COLOR
-
 
50
        jnc     @f
25
        jmp     .rbw1
51
        mov     ah,0FFh
26
      @@:
52
      @@:
-
 
53
        mov     [sc.workL],eax
-
 
54
 
-
 
55
 
27
        mov     [RMenuH],16*5+3+3
56
 
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
34
        mcall   68,12,dword[bufIni+32]
63
        mcall   68,12,dword[bufIni+32]
35
        mov     [RBUser],eax
64
        mov     [RBUser],eax
36
        stdcall [ini_enum_keys],IconIni,secRButt,GetUserBut
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
-
 
73
        jmp     .rbw1
-
 
74
      @@:
-
 
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
46
        mov     cx,[RMenuH]
85
        mov     cx,[RMenuH]
47
        mov     edx,0177CCFFh
86
        mov     edx,01000000h
48
        mov     esi,01000000h
87
        mov     esi,01000000h
49
        xor     eax,eax
88
        xor     eax,eax
50
        int     40h
89
        int     40h
-
 
90
 
-
 
91
        and     ebx,0FFFFh      ;ä®­®¢ë© ¯àאַ㣮«ì­¨ª
-
 
92
        inc     bx
-
 
93
        and     ecx,0FFFFh
-
 
94
        inc     cx
-
 
95
        mcall   13,,,[sc.work]
-
 
96
 
-
 
97
        cmp     [SelIcon],-1       ;¥á«¨ ª«¨ª ¯® ¨ª®­ª¥, â® ¯ã­ªâë ¯®«ì§®¢ â¥«ï ­¥ ­ã¦­ë
51
 
98
        jne     .NoDrawUserBut
52
       ;-----------
99
       ;-----------
53
        mov     ecx,[NumUserButt]
100
        mov     ecx,[NumUserButt]
54
  .DrawUB:
101
  .DrawUB:
55
        push    ecx
102
        push    ecx
56
 
103
 
57
        mov     eax,[NumUserButt]
104
        mov     eax,[NumUserButt]
58
        sub     eax,ecx
105
        sub     eax,ecx
59
        mov     edx,eax      ;button ID
106
        mov     edx,eax      ;button ID
-
 
107
        or      edx,60000000h
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
 
64
        xor     ebx,ebx
112
        xor     ebx,ebx
65
        mov     bx,[RMenuW]
113
        mov     bx,[RMenuW]
66
        mov     esi,[sc.work]	;[RBMenuColor];0888888h
114
        mov     esi,[sc.work]
67
        mcall   8
115
        mcall   8                       ;®¯à¥¤¥«¨«¨
68
 
116
 
69
        mov     ebx,50000h
117
        mov     ebx,50000h
70
        shr     ecx,16
118
        shr     ecx,16
71
        mov     bx,cx
119
        mov     bx,cx
72
        add     bx,5
120
        add     bx,5
73
 
121
 
74
        mov     ecx,80000000h
122
        mov     ecx,80000000h
75
 
123
 
76
        mov     eax,[NumUserButt]
124
        mov     eax,[NumUserButt]
77
        sub     eax,[esp]
125
        sub     eax,[esp]
78
        mov     edx,[RBUser+eax*8]
126
        mov     edx,[RBUser+eax*8]
79
 
-
 
80
        mcall   4
127
        mcall   4                      ;¯®¤¯¨á «¨
81
 
128
 
82
        pop     ecx
129
        pop     ecx
83
        loop    .DrawUB
130
        loop    .DrawUB
84
 
131
 
85
       ;-----------
132
       ;-----------
-
 
133
.NoDrawUserBut:
-
 
134
                                        ;®¯à¥¤¥«¥­¨¥ ª­®¯®ª ¤«ï ¨ª®­®ª
86
        xor     ebx,ebx
135
        xor     ebx,ebx
87
        mov     bx,[RMenuW]
136
        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
-
 
97
        mcall   38,,,[sc.work]
-
 
98
        add     ecx,00010001h
-
 
99
        mcall     ,,,
-
 
-
 
137
 
-
 
138
        xor     eax,eax
100
 
139
        cmp     [SelIcon],-1
101
       ;------------
140
        jne     @f
-
 
141
        mov     eax,[NumUserButt]
102
        mov     ecx,[esp]
142
     @@:
-
 
143
        shl     eax,4
103
        add     ecx,2
144
        mov     cx,ax
104
        shl     ecx,16
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
-
 
155
        add     ecx,16*10000h
-
 
156
 
-
 
157
        cmp     dword[SelIcon],-1
105
        mov     cx,16
-
 
106
 
158
        je      @f
107
;        mcall   8,,,idbRRedrawFon,[RBMenuColor];0888888h  ;3 ª­®¯ª¨ ¢â®à®£® ¡«®ª 
159
 
108
        mcall   8,,,idbRRedrawFon,[sc.work]
160
        mcall    ,,,60000000h or idbRDel,
109
        add     ecx,00100000h
161
        add     ecx,16*10000h
-
 
162
        mcall    ,,,60000000h or idbRProp,
110
        mcall    ,,,idbRAlign
163
        jmp     .endRM1
-
 
164
      @@:
-
 
165
        mcall    ,,,60000000h or idbRAdd,
-
 
166
      .endRM1:
-
 
167
 
-
 
168
                                        ;¯®¤¯¨á¨ ª ª­®¯ª ¬
-
 
169
        xor     eax,eax
-
 
170
        cmp     [SelIcon],-1
-
 
171
        jne     @f
111
        add     ecx,00100000h
172
        mov     eax,[NumUserButt]
112
        mcall    ,,,idbRFixIcons
173
      @@:
-
 
174
        shl     eax,4
113
 
175
        mov     ebx,50000h
114
        mov     ebx,50000h
176
        mov     bx,ax
115
        mov     bx,word[esp]
177
 
116
        add     bx,2+5
178
        add     bx,5
117
        mcall   4,,80000000h,RMenuRedrawFon
179
        mcall   4,,80000000h,RMenuRedrawFon
118
        add     ebx,16
180
        add     ebx,16
119
        mcall    ,,,RMenuAlign
181
        mcall    ,,,RMenuAlign
120
 
182
 
121
        add     ebx,16
183
        add     ebx,16
122
        cmp     [bFixIcons],0
184
        cmp     [bFixIcons],0
123
        jne     @f
185
        jne     @f
124
        mov     edx,RMenuOffMoving
186
        mov     edx,RMenuOffMoving
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
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
150
        je      @f
195
        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]
-
 
160
        add     bx,16*3+4+5
196
 
161
        mcall   4,,80000000h,RMenuDel
197
        mcall    ,,,RMenuDel
162
        add     bx,16
198
        add     bx,16
163
        mcall    ,,         ,RMenuProp
-
 
164
 
199
        mcall    ,,,RMenuProp
165
        jmp     .endRM
200
        jmp     .endRM2
166
      @@:
-
 
167
 
-
 
168
;        mcall   8,,,idbRAdd,[RBMenuColor];0888888h
-
 
169
        mcall   8,,,idbRAdd,[sc.work]
-
 
170
        mov     ebx,50000h
-
 
171
        mov     bx,word[esp]
201
      @@:
172
        add     bx,16*3+4+5
-
 
173
        mcall   4,,80000000h,RMenuAdd
202
 
174
 
203
        mcall    ,,,RMenuAdd
175
      .endRM:
204
      .endRM2:
176
 
205
 
177
        pop     ecx
206
        pop     ecx
178
        mcall   12,2    ;RedrawWinEnd
207
        mcall   12,2    ;RedrawWinEnd
179
 
208
 
180
        mcall   9,RBProcInfo,-1         ;GetThreadInfo RBProcInfo,-1
209
        mcall   9,RBProcInfo,-1         ;GetThreadInfo RBProcInfo,-1
181
        mcall   18,21,dword[RBProcInfo+30]
210
        mcall   18,21,dword[RBProcInfo+30]
182
        m2m     dword[RBSlot],eax
211
        m2m     dword[RBSlot],eax
183
 
212
 
184
RBWMessages:
213
RBWMessages:
185
        mcall   10              ;WaitMessage
214
        mcall   10              ;WaitMessage
186
        dec     eax
215
        dec     eax
187
        jz      RBWRedraw
216
        jz      RBWRedraw
188
        sub     eax,2
217
        sub     eax,2
189
        jz      RBWButton
218
        jz      RBWButton
190
        sub     eax,3
219
        sub     eax,3
191
        jz      RBWMouse
220
        jz      RBWMouse
192
        jmp     RBWMessages
221
        jmp     RBWMessages
193
 
222
 
194
RBWButton:
223
RBWButton:
195
        mcall   17              ;GetButtonPressed
224
        mcall   17              ;GetButtonPressed
196
        shr     eax,8
225
        shr     eax,8
197
        cmp     eax,idbRRedrawFon
226
        cmp     eax,idbRRedrawFon
198
        jz      RBRedrawFon
227
        jz      RBRedrawFon
199
        cmp     eax,idbRAlign
228
        cmp     eax,idbRAlign
200
        jz      RBAlign
229
        jz      RBAlign
201
        cmp     eax,idbRFixIcons
230
        cmp     eax,idbRFixIcons
202
        jz      RBFixIcons
231
        jz      RBFixIcons
203
        cmp     eax,idbRAdd
232
        cmp     eax,idbRAdd
204
        jz      RBAdd
233
        jz      RBAdd
205
        cmp     eax,idbRDel
234
        cmp     eax,idbRDel
206
        jz      RBDelete
235
        jz      RBDelete
207
        cmp     eax,idbRProp
236
        cmp     eax,idbRProp
208
        jz      RBPropeties
237
        jz      RBPropeties
209
 
238
 
210
        cmp     eax,[NumUserButt]
239
        cmp     eax,[NumUserButt]
211
        ja      @f
240
        ja      @f
212
 
241
 
213
        mov     eax,[RBUser+eax*8+4]
242
        mov     eax,[RBUser+eax*8+4]
214
        mov     dword[fiRunProg+8],0
243
        mov     dword[fiRunProg+8],0
215
        mov     dword[fiRunProg+21],eax
244
        mov     dword[fiRunProg+21],eax
216
        mcall   70,fiRunProg
245
        mcall   70,fiRunProg
217
    @@:
246
    @@:
218
        jmp     RBWExit
247
        jmp     RBWExit
219
 
248
 
220
RBWMouse:
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
 
-
 
277
 
221
        mcall   37,2            ;GetMouseKey
278
        mcall   37,2            ;GetMouseKey
222
        test    eax,111b
279
        test    eax,111b
223
        jz      RBWMessages
280
        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
-
 
231
        mov     bx,ax
-
 
232
 
281
 
233
        mcall   34
-
 
234
        cmp     eax,[RBSlot]
282
        call    ClickInWin
235
        je      RBWMessages
283
        jc      RBWMessages
236
 
284
 
237
RBWExit:
285
RBWExit:
238
        mcall   68,13,[RBUser]
286
        mcall   68,13,[RBUser]
239
        mov     [RButtonActiv],0
287
        mov     [RButtonActiv],0
240
        mcall   -1      ;ExitProcess
288
        mcall   -1      ;ExitProcess
241
 
289
 
242
 
290
 
243
RBRedrawFon:
291
RBRedrawFon:
244
        mcall   15,3
292
        mcall   15,3
245
        jmp     RBWExit
293
        jmp     RBWExit
246
 
294
 
247
RBAlign:
295
RBAlign:
248
        call    AlignIcons
296
        call    AlignIcons
249
 
297
 
250
        m2m     [PIcoDB],[BegData]
298
        m2m     [PIcoDB],[BegData]
251
        stdcall [ini_enum_sections],IconIni,Ini_SavePos
299
        stdcall [ini_enum_sections],IconIni,Ini_SavePos
252
 
300
 
253
        mov     dword[fiRunProg+8],WarningSave
301
        mov     dword[fiRunProg+8],WarningSave
254
        mov     dword[fiRunProg+21],pthNotify
302
        mov     dword[fiRunProg+21],pthNotify
255
        mcall   70,fiRunProg
303
        mcall   70,fiRunProg
256
        mov     [bNotSave],0
304
        mov     [bNotSave],0
257
 
305
 
258
        jmp     RBRedrawFon
306
        jmp     RBRedrawFon
259
 
307
 
260
RBFixIcons:
308
RBFixIcons:
261
        xor     dword[bFixIcons],1
309
        xor     dword[bFixIcons],1
262
 
310
 
263
        cmp     [bNotSave],0
311
        cmp     [bNotSave],0
264
        je      @f
312
        je      @f
265
 
313
 
266
        mov     dword[fiRunProg+8],WarningSave
314
        mov     dword[fiRunProg+8],WarningSave
267
        mov     dword[fiRunProg+21],pthNotify
315
        mov     dword[fiRunProg+21],pthNotify
268
        mcall   70,fiRunProg
316
        mcall   70,fiRunProg
269
        mov     [bNotSave],0
317
        mov     [bNotSave],0
270
 
318
 
271
      @@:
319
      @@:
272
        jmp     RBWExit
320
        jmp     RBWExit
273
 
321
 
274
RBAdd:
322
RBAdd:
275
        cmp     [DlgAddActiv],1
323
        cmp     [DlgAddActiv],1
276
        je      RBWSetActivWin
324
        je      RBWSetActivWin
277
        mov     [DlgAddActiv],1
325
        mov     [DlgAddActiv],1
278
 
326
 
279
        mcall   51,1,DlgAdd,stack_dlg           ;CreateThread DlgAdd,stack_dlg
327
        mcall   51,1,DlgAdd,stack_dlg           ;CreateThread DlgAdd,stack_dlg
280
        jmp     RBWExit
328
        jmp     RBWExit
281
 
329
 
282
RBDelete:
330
RBDelete:
283
 
331
 
284
        mov     eax,[SelIcon]
332
        mov     eax,[SelIcon]
285
        mov     eax,[IconsOffs+eax*4]
333
        mov     eax,[IconsOffs+eax*4]
286
        stdcall [ini_del_section],IconIni,eax
334
        stdcall [ini_del_section],IconIni,eax
287
 
335
 
288
        stdcall DelIcon,[SelIcon]
336
        stdcall DelIcon,[SelIcon]
289
    ;    mov     dword[fiStdIco],2
337
    ;    mov     dword[fiStdIco],2
290
    ;    m2m     dword[fInfo+12],dword[SizeData]
338
    ;    m2m     dword[fInfo+12],dword[SizeData]
291
    ;    mcall   70,fInfo
339
    ;    mcall   70,fInfo
292
 
340
 
293
        mov     dword[fiRunProg+8],WarningSave
341
        mov     dword[fiRunProg+8],WarningSave
294
        mov     dword[fiRunProg+21],pthNotify
342
        mov     dword[fiRunProg+21],pthNotify
295
        mcall   70,fiRunProg
343
        mcall   70,fiRunProg
296
        mov     [bNotSave],0
344
        mov     [bNotSave],0
297
 
345
 
298
        jmp     RBRedrawFon
346
        jmp     RBRedrawFon
299
 
347
 
300
RBPropeties:
348
RBPropeties:
301
        cmp     [DlgAddActiv],1
349
        cmp     [DlgAddActiv],1
302
        je      RBWSetActivWin
350
        je      RBWSetActivWin
303
        mov     [DlgAddActiv],1
351
        mov     [DlgAddActiv],1
304
 
352
 
305
        mcall   51,1,DlgProp,stack_dlg          ;CreateThread DlgProp,stack_dlg
353
        mcall   51,1,DlgProp,stack_dlg          ;CreateThread DlgProp,stack_dlg
306
        jmp     RBWExit
354
        jmp     RBWExit
307
 
355
 
308
RBWSetActivWin:
356
RBWSetActivWin:
309
        mcall   18,3,[slotDlgAdd]
357
        mcall   18,3,[slotDlgAdd]
310
        jmp     RBWExit
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
-
 
378
endp
311
 
379
 
312
 
380
 
313
proc AlignIcons
381
proc AlignIcons
314
local posX:WORD,\
382
local posX:WORD,\
315
      posY:WORD,\
383
      posY:WORD,\
316
      negatX:WORD,\
384
      negatX:WORD,\
317
      negatY:WORD
385
      negatY:WORD
318
 
386
 
319
        xor     ebx,ebx
387
        xor     ebx,ebx
320
 
388
 
321
        mov     ecx,[MaxNumIcon]
389
        mov     ecx,[MaxNumIcon]
322
        test    ecx,ecx
390
        test    ecx,ecx
323
        jnz     .AlignIco
391
        jnz     .AlignIco
324
        ret
392
        ret
325
 .AlignIco:
393
 .AlignIco:
326
        push    ecx
394
        push    ecx
327
        or      ecx,-1
395
        or      ecx,-1
328
        mov     edi,dword[IconsOffs+ebx]
396
        mov     edi,dword[IconsOffs+ebx]
329
        xor     eax,eax
397
        xor     eax,eax
330
        repne   scasb
398
        repne   scasb
331
        repne   scasb
399
        repne   scasb
332
        repne   scasb
400
        repne   scasb
333
        repne   scasb
401
        repne   scasb
334
 
402
 
335
        mov     dword[negatX],0
403
        mov     dword[negatX],0
336
 
404
 
337
     ;-------- ¯à¥®¡à §ã¥¬ ª®®à¤¨­ âë ¢ ¯®«®¦¨â¥«ì­ë¥
405
     ;-------- ¯à¥®¡à §ã¥¬ ª®®à¤¨­ âë ¢ ¯®«®¦¨â¥«ì­ë¥
338
        mov     ax,[edi+2]
406
        mov     ax,[edi+2]
339
        test    ax,8000h
407
        test    ax,8000h
340
        jz      @f
408
        jz      @f
341
        neg     ax
409
        neg     ax
342
        mov     word[negatX],1
410
        mov     word[negatX],1
343
      @@:
411
      @@:
344
        mov     [posX],ax
412
        mov     [posX],ax
345
 
413
 
346
        mov     ax,[edi]
414
        mov     ax,[edi]
347
        test    ax,8000h
415
        test    ax,8000h
348
        jz      @f
416
        jz      @f
349
        neg     ax
417
        neg     ax
350
        mov     word[negatY],1
418
        mov     word[negatY],1
351
      @@:
419
      @@:
352
        mov     [posY],ax
420
        mov     [posY],ax
353
 
421
 
354
      ;-----
422
      ;-----
355
        mov     ax,[posY]
423
        mov     ax,[posY]
356
        mov     dx,ALIGN_SIZE
424
        mov     dx,ALIGN_SIZE
357
 
425
 
358
        cmp     ax,dx
426
        cmp     ax,dx
359
        jb      .AI0
427
        jb      .AI0
360
    @@: sub     ax,dx
428
    @@: sub     ax,dx
361
        cmp     ax,dx
429
        cmp     ax,dx
362
        jae     @b
430
        jae     @b
363
    .AI0:
431
    .AI0:
364
 
432
 
365
        mov     dx,ax
433
        mov     dx,ax
366
        cmp     dx,ALIGN_SIZE/2
434
        cmp     dx,ALIGN_SIZE/2
367
        jb      .AI1
435
        jb      .AI1
368
 
436
 
369
        mov     ax,ALIGN_SIZE
437
        mov     ax,ALIGN_SIZE
370
        sub     ax,dx
438
        sub     ax,dx
371
        add     [posY],ax
439
        add     [posY],ax
372
 
440
 
373
        jmp     .AI2
441
        jmp     .AI2
374
     .AI1:
442
     .AI1:
375
        sub     [posY],dx
443
        sub     [posY],dx
376
     .AI2:
444
     .AI2:
377
     ;-----
445
     ;-----
378
        mov     ax,[posX]
446
        mov     ax,[posX]
379
        mov     dx,ALIGN_SIZE
447
        mov     dx,ALIGN_SIZE
380
 
448
 
381
        cmp     ax,dx
449
        cmp     ax,dx
382
        jb      .AI3
450
        jb      .AI3
383
    @@: sub     ax,dx
451
    @@: sub     ax,dx
384
        cmp     ax,dx
452
        cmp     ax,dx
385
        jae     @b
453
        jae     @b
386
    .AI3:
454
    .AI3:
387
 
455
 
388
        mov     dx,ax
456
        mov     dx,ax
389
        cmp     dx,ALIGN_SIZE/2
457
        cmp     dx,ALIGN_SIZE/2
390
        jb      .AI4
458
        jb      .AI4
391
 
459
 
392
        mov     ax,ALIGN_SIZE
460
        mov     ax,ALIGN_SIZE
393
        sub     ax,dx
461
        sub     ax,dx
394
        add     [posX],ax
462
        add     [posX],ax
395
 
463
 
396
        jmp     .AI5
464
        jmp     .AI5
397
     .AI4:
465
     .AI4:
398
        sub     [posX],dx
466
        sub     [posX],dx
399
     .AI5:
467
     .AI5:
400
 
468
 
401
      ;----- ¯à¥®¡à §®¢ ­¨¥ ­ § ¤ ¨ ¯®¯à ¢ª  ¢ ®âà¨æ â¥«ì­ëå ª®®à¤¨­ â
469
      ;----- ¯à¥®¡à §®¢ ­¨¥ ­ § ¤ ¨ ¯®¯à ¢ª  ¢ ®âà¨æ â¥«ì­ëå ª®®à¤¨­ â
402
        mov     ax,[posX]
470
        mov     ax,[posX]
403
 
471
 
404
        cmp     [negatX],1
472
        cmp     [negatX],1
405
        jne     @f
473
        jne     @f
406
        neg     ax
474
        neg     ax
407
        inc     ax
475
        inc     ax
408
        jmp     .AI6
476
        jmp     .AI6
409
      @@:
477
      @@:
410
 
478
 
411
        mov     dx,[ScreenX]
479
        mov     dx,[ScreenX]
412
        shr     dx,1
480
        shr     dx,1
413
        cmp     ax,dx
481
        cmp     ax,dx
414
        jbe     .AI6
482
        jbe     .AI6
415
        sub     ax,[ScreenX]
483
        sub     ax,[ScreenX]
416
      .AI6:
484
      .AI6:
417
        mov     word[edi+2],ax
485
        mov     word[edi+2],ax
418
 
486
 
419
 
487
 
420
        mov     ax,[posY]
488
        mov     ax,[posY]
421
        cmp     [negatY],1
489
        cmp     [negatY],1
422
        jne     @f
490
        jne     @f
423
        neg     ax
491
        neg     ax
424
        inc     ax
492
        inc     ax
425
        jmp     .AI7
493
        jmp     .AI7
426
      @@:
494
      @@:
427
 
495
 
428
        mov     dx,[ScreenY]
496
        mov     dx,[ScreenY]
429
        shr     dx,1
497
        shr     dx,1
430
        cmp     ax,dx
498
        cmp     ax,dx
431
        jbe     .AI7
499
        jbe     .AI7
432
        sub     ax,[ScreenY]
500
        sub     ax,[ScreenY]
433
      .AI7:
501
      .AI7:
434
         mov     word[edi],ax
502
         mov     word[edi],ax
435
 
503
 
436
       ;--------
504
       ;--------
437
 
505
 
438
 
506
 
439
 
507
 
440
        pop     ecx
508
        pop     ecx
441
        add     ebx,4
509
        add     ebx,4
442
        dec     ecx
510
        dec     ecx
443
        jnz     .AlignIco
511
        jnz     .AlignIco
444
;        loop    .AlignIco
512
;        loop    .AlignIco
445
 
513
 
446
 
514
 
447
;        mov     dword[fInfo],2
515
;        mov     dword[fInfo],2
448
;        mcall   70,fInfo
516
;        mcall   70,fInfo
449
        ret
517
        ret
450
endp
518
endp
451
 
519
 
452
;-------------------------------------------------------------------------------
520
;-------------------------------------------------------------------------------
453
proc GetUserBut stdcall,f_name,sec_name,key_name,key_value
521
proc GetUserBut stdcall,f_name,sec_name,key_name,key_value
454
        cmp     [NumUserButt],16
522
        cmp     [NumUserButt],16
455
        jne     @f
523
        jne     @f
456
        ret
524
        ret
457
     @@:
525
     @@:
458
 
526
 
459
        push    ebx esi edi
527
        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
   @@:
-
 
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
477
        repne   scasb
532
        repne   scasb
478
        sub     edi,[key_name]
533
        sub     edi,[key_name]
479
        mov     eax,edi
534
        mov     eax,edi
480
        shl     eax,1
535
        shl     eax,1
481
        lea     eax,[eax*2+eax+5*2]
536
        lea     eax,[eax*2+eax+5*2]
482
        cmp     ax,[RMenuW]
537
        cmp     ax,[RMenuW]
483
        jbe     @f
538
        jbe     @f
484
        mov     [RMenuW],ax
539
        mov     [RMenuW],ax
485
     @@:
540
     @@:
486
        cmp     [RMenuW],MinRMenuW
541
        cmp     [RMenuW],MinRMenuW
487
        jae     @f
542
        jae     @f
488
        mov     [RMenuW],MinRMenuW
543
        mov     [RMenuW],MinRMenuW
489
     @@:
544
     @@:
490
 
545
 
491
        mov     ebx,[NumUserButt]
546
        mov     ebx,[NumUserButt]
492
 
547
 
493
        mov     esi,[key_name]
548
        mov     esi,[key_name]
494
        mov     edi,[RBUser+ebx*8]
549
        mov     edi,[RBUser+ebx*8]
495
    @@: lodsb
550
    @@: lodsb
496
        stosb
551
        stosb
497
        test    al,al
552
        test    al,al
498
        jnz     @b
553
        jnz     @b
499
 
554
 
500
;debug_newline
555
;debug_newline
501
 
556
 
502
 
557
 
503
        mov     [RBUser+ebx*8+4],edi
558
        mov     [RBUser+ebx*8+4],edi
504
        mov     esi,[key_value]
559
        mov     esi,[key_value]
505
    @@: lodsb
560
    @@: lodsb
506
        stosb
561
        stosb
507
        test    al,al
562
        test    al,al
508
        jnz     @b
563
        jnz     @b
509
 
564
 
510
        mov     [RBUser+ebx*8+8],edi
565
        mov     [RBUser+ebx*8+8],edi
511
 
566
 
512
        inc     [NumUserButt]
567
        inc     [NumUserButt]
513
        add     [RMenuH],16
-
 
514
 
568
 
515
        pop     edi esi ebx
569
        pop     edi esi ebx
516
        mov     eax,1
570
        mov     eax,1
517
        ret
571
        ret
518
endp
572
endp
519
 
573
 
520
proc Ini_SavePos stdcall,f_name,sec_name
574
proc Ini_SavePos stdcall,f_name,sec_name
521
        push    ebx edi esi
575
        push    ebx edi esi
522
 
576
 
523
        xor     ebx,ebx
577
        xor     ebx,ebx
524
  .SearchSect:
578
  .SearchSect:
525
        mov     edi,[IconsOffs+ebx*4]
579
        mov     edi,[IconsOffs+ebx*4]
526
        mov     esi,[sec_name]
580
        mov     esi,[sec_name]
527
      @@:
581
      @@:
528
        lodsb
582
        lodsb
529
        scasb
583
        scasb
530
        jne     @f
584
        jne     @f
531
        test    al,al
585
        test    al,al
532
        jnz     @b
586
        jnz     @b
533
 
587
 
534
        jmp     .IcoDataFound
588
        jmp     .IcoDataFound
535
      @@:
589
      @@:
536
 
590
 
537
        inc     ebx
591
        inc     ebx
538
        cmp     ebx,[MaxNumIcon]
592
        cmp     ebx,[MaxNumIcon]
539
        jb      .SearchSect
593
        jb      .SearchSect
540
 
594
 
541
        mov     eax,1
595
        mov     eax,1
542
        pop     esi edi ebx
596
        pop     esi edi ebx
543
        ret
597
        ret
544
 
598
 
545
.IcoDataFound:
599
.IcoDataFound:
546
        or      ecx,-1
600
        or      ecx,-1
547
        repne   scasb
601
        repne   scasb
548
        repne   scasb
602
        repne   scasb
549
        repne   scasb
603
        repne   scasb
550
 
604
 
551
;int3
605
;int3
552
        movzx   eax,word[edi+2]
606
        movzx   eax,word[edi+2]
553
        test    eax,8000h
607
        test    eax,8000h
554
        jz      @f
608
        jz      @f
555
        or      eax,0FFFF0000h
609
        or      eax,0FFFF0000h
556
     @@:
610
     @@:
557
 
611
 
558
        stdcall [ini_set_int],[f_name],[sec_name],keyX,eax
612
        stdcall [ini_set_int],[f_name],[sec_name],keyX,eax
559
 
613
 
560
        movzx   eax,word[edi]
614
        movzx   eax,word[edi]
561
        test    eax,8000h
615
        test    eax,8000h
562
        jz      @f
616
        jz      @f
563
        or      eax,0FFFF0000h
617
        or      eax,0FFFF0000h
564
     @@:
618
     @@:
565
 
619
 
566
        stdcall [ini_set_int],[f_name],[sec_name],keyY,eax
620
        stdcall [ini_set_int],[f_name],[sec_name],keyY,eax
567
 
621
 
568
        mov     eax,1
622
        mov     eax,1
569
        pop     esi edi ebx
623
        pop     esi edi ebx
570
        ret
624
        ret
571
endp
625
endp