Rev 4084 | Rev 4146 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4084 | Rev 4088 | ||
---|---|---|---|
1 | ;idbRRedrawFon equ 100 |
1 | ;idbRRedrawFon equ 100 |
2 | ;idbRAlign equ 101 |
2 | ;idbRAlign equ 101 |
3 | ;idbRFixIcons equ 102 |
3 | ;idbRFixIcons equ 102 |
4 | ;idbRAdd equ 103 |
4 | ;idbRAdd equ 103 |
5 | ;idbRDel equ 104 |
5 | ;idbRDel equ 104 |
6 | ;idbRProp equ 105 |
6 | ;idbRProp equ 105 |
7 | 7 | ||
8 | DELTA_COLOR equ 70 |
8 | DELTA_COLOR equ 70 |
9 | COLOR_SEL_BUT equ 00F7092Dh |
9 | COLOR_SEL_BUT equ 00F7092Dh |
10 | MAX_USER_BUTTONS equ 30 |
10 | MAX_USER_BUTTONS equ 30 |
11 | 11 | ||
12 | ;---- thread for rbutton ----------------------------------------------------------------------- |
12 | ;---- thread for rbutton ----------------------------------------------------------------------- |
13 | RButtonWin: |
13 | RButtonWin: |
14 | if lang eq ru |
14 | if lang eq ru |
15 | mov [MinRMenuW],18*6+10 |
15 | mov [MinRMenuW],18*6+10 |
16 | else |
16 | else |
17 | mov [MinRMenuW],15*6+10 |
17 | mov [MinRMenuW],15*6+10 |
18 | end if |
18 | end if |
19 | 19 | ||
20 | 20 | ||
21 | 21 | ||
22 | mcall 40,100101b ;SetMaskMessage 100101b |
22 | mcall 40,100101b ;SetMaskMessage 100101b |
23 | mcall 48,3,sc,40 |
23 | mcall 48,3,sc,40 |
24 | 24 | ||
25 | mov eax,[sc.work] ;¢ëç¨á«ï¥¬ 梥â ᢥ⫥¥ ä®®¢®£® |
25 | mov eax,[sc.work] ;¢ëç¨á«ï¥¬ 梥â ᢥ⫥¥ ä®®¢®£® |
26 | rol eax,16 |
26 | rol eax,16 |
27 | add al,DELTA_COLOR |
27 | add al,DELTA_COLOR |
28 | jnc @f |
28 | jnc @f |
29 | mov al,0FFh |
29 | mov al,0FFh |
30 | @@: |
30 | @@: |
31 | rol eax,16 |
31 | rol eax,16 |
32 | add al,DELTA_COLOR |
32 | add al,DELTA_COLOR |
33 | jnc @f |
33 | jnc @f |
34 | mov al,0FFh |
34 | mov al,0FFh |
35 | @@: |
35 | @@: |
36 | add ah,DELTA_COLOR |
36 | add ah,DELTA_COLOR |
37 | jnc @f |
37 | jnc @f |
38 | mov ah,0FFh |
38 | mov ah,0FFh |
39 | @@: |
39 | @@: |
40 | mov [sc.workH],eax |
40 | mov [sc.workH],eax |
41 | 41 | ||
42 | mov eax,[sc.work] ;¢ëç¨á«ï¥¬ 梥â ⥬¥¥ ä®®¢®£® |
42 | mov eax,[sc.work] ;¢ëç¨á«ï¥¬ 梥â ⥬¥¥ ä®®¢®£® |
43 | rol eax,16 |
43 | rol eax,16 |
44 | sub al,DELTA_COLOR |
44 | sub al,DELTA_COLOR |
45 | jnc @f |
45 | jnc @f |
46 | mov al,0FFh |
46 | mov al,0FFh |
47 | @@: |
47 | @@: |
48 | rol eax,16 |
48 | rol eax,16 |
49 | sub al,DELTA_COLOR |
49 | sub al,DELTA_COLOR |
50 | jnc @f |
50 | jnc @f |
51 | mov al,0FFh |
51 | mov al,0FFh |
52 | @@: |
52 | @@: |
53 | sub ah,DELTA_COLOR |
53 | sub ah,DELTA_COLOR |
54 | jnc @f |
54 | jnc @f |
55 | mov ah,0FFh |
55 | mov ah,0FFh |
56 | @@: |
56 | @@: |
57 | mov [sc.workL],eax |
57 | mov [sc.workL],eax |
58 | 58 | ||
59 | 59 | ||
60 | 60 | ||
61 | stdcall GetNumIcon,[MouseX],[MouseY],-1 |
61 | stdcall GetNumIcon,[MouseX],[MouseY],-1 |
62 | mov [SelIcon],eax |
62 | mov [SelIcon],eax |
63 | 63 | ||
64 | ;¢ëáâ ¢«ï¥¬ ¯¥à¢® ç «ìë¥ § 票ï |
64 | ;¢ëáâ ¢«ï¥¬ ¯¥à¢® ç «ìë¥ § 票ï |
65 | m2m [RMenuW],[MinRMenuW] |
65 | m2m [RMenuW],[MinRMenuW] |
66 | 66 | ||
67 | cmp [SelIcon],-1 |
67 | cmp [SelIcon],-1 |
68 | jne .RBW1 |
68 | jne .RBW1 |
69 | ;----------- ¥á«¨ ª«¨ª ¥ ¯® ¨ª®ª¥ ------------------------------------------------ |
69 | ;----------- ¥á«¨ ª«¨ª ¥ ¯® ¨ª®ª¥ ------------------------------------------------ |
70 | mov [NumMenuButt],0 |
70 | mov [NumMenuButt],0 |
71 | 71 | ||
72 | mcall 70,fiIni |
72 | mcall 70,fiIni |
73 | mcall 68,12,dword[bufIni+32] ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¯®¤¯¨á¥© ¨ ¯ã⥩ § ¯ã᪠|
73 | mcall 68,12,dword[bufIni+32] ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¯®¤¯¨á¥© ¨ ¯ã⥩ § ¯ã᪠|
74 | mov [RBMenuCP],eax ;GetUserBut ¡¥àñâ ®âáî¤ ¯¥à¢® ç «ìë© ãª § â¥«ì ¯ ¬ïâì |
74 | mov [RBMenuCP],eax ;GetUserBut ¡¥àñâ ®âáî¤ ¯¥à¢® ç «ìë© ãª § â¥«ì ¯ ¬ïâì |
75 | stdcall [ini_enum_keys],IconIni,secRButt,GetUserBut |
75 | stdcall [ini_enum_keys],IconIni,secRButt,GetUserBut |
76 | 76 | ||
77 | mov ebx,[NumMenuButt] |
77 | mov ebx,[NumMenuButt] |
78 | add [NumMenuButt],4 |
78 | add [NumMenuButt],4 |
79 | 79 | ||
80 | mov [RBMenuCP+ebx*8],RMenuRedrawFon |
80 | mov [RBMenuCP+ebx*8],RMenuRedrawFon |
81 | mov [RBMenuCP+ebx*8+8],RMenuAlign |
81 | mov [RBMenuCP+ebx*8+8],RMenuAlign |
82 | cmp [bFixIcons],1 |
82 | cmp [bFixIcons],1 |
83 | je @f |
83 | je @f |
84 | mov [RBMenuCP+ebx*8+16],RMenuOffMoving |
84 | mov [RBMenuCP+ebx*8+16],RMenuOffMoving |
85 | jmp .RBW11 |
85 | jmp .RBW11 |
86 | @@: |
86 | @@: |
87 | mov [RBMenuCP+ebx*8+16],RMenuOnMoving |
87 | mov [RBMenuCP+ebx*8+16],RMenuOnMoving |
88 | .RBW11: |
88 | .RBW11: |
89 | 89 | ||
90 | mov [RBMenuCP+ebx*8+24],RMenuAdd |
90 | mov [RBMenuCP+ebx*8+24],RMenuAdd |
91 | 91 | ||
92 | mov [RBMenuCP+ebx*8+4],0 |
92 | mov [RBMenuCP+ebx*8+4],0 |
93 | mov [RBMenuCP+ebx*8+8+4],0 |
93 | mov [RBMenuCP+ebx*8+8+4],0 |
94 | mov [RBMenuCP+ebx*8+16+4],0 |
94 | mov [RBMenuCP+ebx*8+16+4],0 |
95 | mov [RBMenuCP+ebx*8+24+4],0 |
95 | mov [RBMenuCP+ebx*8+24+4],0 |
96 | 96 | ||
97 | 97 | ||
98 | jmp .RBW2 |
98 | jmp .RBW2 |
99 | ;----------- ¥á«¨ ª«¨ª ¯® ¨ª®ª¥ ------------------------------------------------ |
99 | ;----------- ¥á«¨ ª«¨ª ¯® ¨ª®ª¥ ------------------------------------------------ |
100 | .RBW1: |
100 | .RBW1: |
101 | xor ebx,ebx |
101 | xor ebx,ebx |
102 | mov [NumMenuButt],5 |
102 | mov [NumMenuButt],5 |
103 | 103 | ||
104 | mov [RBMenuCP+ebx*8],RMenuRedrawFon |
104 | mov [RBMenuCP+ebx*8],RMenuRedrawFon |
105 | mov [RBMenuCP+ebx*8+8],RMenuAlign |
105 | mov [RBMenuCP+ebx*8+8],RMenuAlign |
106 | cmp [bFixIcons],1 |
106 | cmp [bFixIcons],1 |
107 | je @f |
107 | je @f |
108 | mov [RBMenuCP+ebx*8+16],RMenuOffMoving |
108 | mov [RBMenuCP+ebx*8+16],RMenuOffMoving |
109 | jmp .RBW21 |
109 | jmp .RBW21 |
110 | @@: |
110 | @@: |
111 | mov [RBMenuCP+ebx*8+16],RMenuOnMoving |
111 | mov [RBMenuCP+ebx*8+16],RMenuOnMoving |
112 | .RBW21: |
112 | .RBW21: |
113 | mov [RBMenuCP+ebx*8+24],RMenuDel |
113 | mov [RBMenuCP+ebx*8+24],RMenuDel |
114 | mov [RBMenuCP+ebx*8+32],RMenuProp |
114 | mov [RBMenuCP+ebx*8+32],RMenuProp |
115 | 115 | ||
116 | mov [RBMenuCP+ebx*8+4],0 |
116 | mov [RBMenuCP+ebx*8+4],0 |
117 | mov [RBMenuCP+ebx*8+8+4],0 |
117 | mov [RBMenuCP+ebx*8+8+4],0 |
118 | mov [RBMenuCP+ebx*8+16+4],0 |
118 | mov [RBMenuCP+ebx*8+16+4],0 |
119 | mov [RBMenuCP+ebx*8+24+4],0 |
119 | mov [RBMenuCP+ebx*8+24+4],0 |
120 | mov [RBMenuCP+ebx*8+32+4],0 |
120 | mov [RBMenuCP+ebx*8+32+4],0 |
121 | 121 | ||
122 | ;------------------------------------------------------------------------------- |
122 | ;------------------------------------------------------------------------------- |
123 | .RBW2: |
123 | .RBW2: |
124 | 124 | ||
125 | cmp [SelIcon],-1 |
125 | cmp [SelIcon],-1 |
126 | jne @f |
126 | jne @f |
127 | mov eax,[NumMenuButt] |
127 | mov eax,[NumMenuButt] |
128 | shl eax,4 |
128 | shl eax,4 |
129 | mov [RMenuH],ax |
129 | mov [RMenuH],ax |
130 | jmp .rbw1 |
130 | jmp .rbw1 |
131 | @@: |
131 | @@: |
132 | mov [RMenuH],16*5 |
132 | mov [RMenuH],16*5 |
133 | .rbw1: |
133 | .rbw1: |
134 | 134 | ||
135 | add [RMenuW],3 ; à ¬ªã |
135 | add [RMenuW],3 ; à ¬ªã |
136 | add [RMenuH],3 ; à ¬ªã |
136 | add [RMenuH],3 ; à ¬ªã |
137 | 137 | ||
138 | RBWRedraw: |
138 | RBWRedraw: |
139 | mcall 12,1 ;RedrawWinBeg |
139 | mcall 12,1 ;RedrawWinBeg |
140 | mov ebx,[MouseX] |
140 | mov ebx,[MouseX] |
141 | shl ebx,16 |
141 | shl ebx,16 |
142 | mov bx,[RMenuW] |
142 | mov bx,[RMenuW] |
143 | 143 | ||
144 | mov ecx,[MouseY] |
144 | mov ecx,[MouseY] |
145 | shl ecx,16 |
145 | shl ecx,16 |
146 | mov cx,[RMenuH] |
146 | mov cx,[RMenuH] |
147 | 147 | ||
148 | mov edx,01000000h |
148 | mov edx,01000000h |
149 | mov esi,01000000h |
149 | mov esi,01000000h |
150 | xor eax,eax |
150 | xor eax,eax |
151 | int 40h |
151 | int 40h |
152 | 152 | ||
153 | and ebx,0FFFFh ;ä®®¢ë© ¯àאַ㣮«ì¨ª |
153 | and ebx,0FFFFh ;ä®®¢ë© ¯àאַ㣮«ì¨ª |
154 | inc bx |
154 | inc bx |
155 | and ecx,0FFFFh |
155 | and ecx,0FFFFh |
156 | inc cx |
156 | inc cx |
157 | mcall 13,,,[sc.work] |
157 | mcall 13,,,[sc.work] |
158 | 158 | ||
159 | ;----------- ®¯à¥¤¥«ï¥¬ ¨ à¨á㥬 ª®¯ª¨ |
159 | ;----------- ®¯à¥¤¥«ï¥¬ ¨ à¨á㥬 ª®¯ª¨ |
160 | mov ecx,[NumMenuButt] |
160 | mov ecx,[NumMenuButt] |
161 | xor eax,eax |
161 | .DrawUB: |
162 | .DrawUB: |
- | |
163 | push ecx |
162 | push ecx |
164 | 163 | ||
- | 164 | mov eax,[NumMenuButt] |
|
165 | push eax |
165 | sub eax,ecx |
- | 166 | mov edx,eax ;button ID = ®â 0 ¤® NumMenuButt |
|
- | 167 | or edx,60000000h |
|
- | 168 | shl eax,4+16 ;*16*10000h |
|
166 | stdcall DrawRBLine,eax,0 |
169 | mov ecx,eax |
- | 170 | mov cx,16 |
|
- | 171 | ||
- | 172 | xor ebx,ebx |
|
- | 173 | mov bx,[RMenuW] |
|
- | 174 | mov esi,[sc.work] |
|
- | 175 | mcall 8 ;®¯à¥¤¥«¨«¨ |
|
- | 176 | ||
- | 177 | mov ebx,70000h |
|
- | 178 | shr ecx,16 |
|
167 | pop eax |
179 | mov bx,cx |
168 | add eax,16 |
180 | add bx,7 |
- | 181 | ||
- | 182 | mov ecx,[sc.work_text] |
|
- | 183 | or ecx,80000000h |
|
- | 184 | ||
- | 185 | mov eax,[NumMenuButt] |
|
- | 186 | sub eax,[esp] |
|
- | 187 | mov edx,[RBMenuCP+eax*8] |
|
- | 188 | mcall 4 |
|
- | 189 | ||
169 | 190 | ||
170 | pop ecx |
191 | pop ecx |
171 | loop .DrawUB |
192 | loop .DrawUB |
172 | ;--------------- |
193 | ;--------------- |
173 | 194 | ||
174 | ; ®¡à ¬«ïî騩 ¯àאַ㣮«ì¨ª |
195 | ; ®¡à ¬«ïî騩 ¯àאַ㣮«ì¨ª |
175 | xor ebx,ebx ;¢¥àå |
196 | xor ebx,ebx ;¢¥àå |
176 | mov bx,[RMenuW] |
197 | mov bx,[RMenuW] |
177 | xor ecx,ecx |
198 | xor ecx,ecx |
178 | mcall 38,,,[sc.workL] |
199 | mcall 38,,,[sc.workL] |
179 | 200 | ||
180 | mov bx,[RMenuW] ;¯à ¢® |
201 | mov bx,[RMenuW] ;¯à ¢® |
181 | shl ebx,16 |
202 | shl ebx,16 |
182 | mov bx,[RMenuW] |
203 | mov bx,[RMenuW] |
183 | xor ecx,ecx |
204 | xor ecx,ecx |
184 | mov cx,[RMenuH] |
205 | mov cx,[RMenuH] |
185 | mcall |
206 | mcall |
186 | 207 | ||
187 | xor ebx,ebx ;¨§ |
208 | xor ebx,ebx ;¨§ |
188 | mov bx,[RMenuW] |
209 | mov bx,[RMenuW] |
189 | mov cx,[RMenuH] |
210 | mov cx,[RMenuH] |
190 | shl ecx,16 |
211 | shl ecx,16 |
191 | mov cx,[RMenuH] |
212 | mov cx,[RMenuH] |
192 | mcall |
213 | mcall |
193 | 214 | ||
194 | xor ebx,ebx ;«¥¢® |
215 | xor ebx,ebx ;«¥¢® |
195 | xor ecx,ecx |
216 | xor ecx,ecx |
196 | mov cx,[RMenuH] |
217 | mov cx,[RMenuH] |
197 | mcall |
218 | mcall |
198 | 219 | ||
199 | 220 | ||
200 | ; ᢥâ«ë© «¥¢ë© ¢¥à娩 㣮« |
221 | ; ᢥâ«ë© «¥¢ë© ¢¥à娩 㣮« |
201 | xor ebx,ebx |
222 | xor ebx,ebx |
202 | mov bx,[RMenuW] |
223 | mov bx,[RMenuW] |
203 | add ebx,1*10000h-1 |
224 | add ebx,1*10000h-1 |
204 | mov ecx,00010001h |
225 | mov ecx,00010001h |
205 | mcall ,,,[sc.workH] |
226 | mcall ,,,[sc.workH] |
206 | 227 | ||
207 | mov ebx,00010001h |
228 | mov ebx,00010001h |
208 | xor ecx,ecx |
229 | xor ecx,ecx |
209 | mov cx,[RMenuH] |
230 | mov cx,[RMenuH] |
210 | add ecx,1*10000h-1 |
231 | add ecx,1*10000h-1 |
211 | mcall |
232 | mcall |
212 | 233 | ||
213 | 234 | ||
214 | ;ª®¥æ à¨á®¢ ¨ï |
235 | ;ª®¥æ à¨á®¢ ¨ï |
215 | mcall 12,2 ;RedrawWinEnd |
236 | mcall 12,2 ;RedrawWinEnd |
216 | ;------------------------------------------------------------------- |
237 | ;------------------------------------------------------------------- |
217 | 238 | ||
218 | mcall 9,RBProcInfo,-1 ;GetThreadInfo RBProcInfo,-1 |
239 | mcall 9,RBProcInfo,-1 ;GetThreadInfo RBProcInfo,-1 |
219 | mcall 18,21,dword[RBProcInfo+30] |
240 | mcall 18,21,dword[RBProcInfo+30] |
220 | m2m dword[RBSlot],eax |
241 | m2m dword[RBSlot],eax |
221 | 242 | ||
222 | RBWMessages: |
243 | RBWMessages: |
223 | mcall 10 ;WaitMessage |
244 | mcall 10 ;WaitMessage |
224 | dec eax |
245 | dec eax |
225 | jz RBWRedraw |
246 | jz RBWRedraw |
226 | sub eax,2 |
247 | sub eax,2 |
227 | jz RBWButton |
248 | jz RBWButton |
228 | sub eax,3 |
249 | sub eax,3 |
229 | jz RBWMouse |
250 | jz RBWMouse |
230 | jmp RBWMessages |
251 | jmp RBWMessages |
231 | 252 | ||
232 | RBWButton: |
253 | RBWButton: |
233 | mcall 17 ;GetButtonPressed |
254 | mcall 17 ;GetButtonPressed |
234 | shr eax,8 |
255 | shr eax,8 |
235 | 256 | ||
236 | mov ebx,eax |
257 | mov ebx,eax |
237 | mov eax,[RBMenuCP+ebx*8+4] ;¥á«¨ ᤥáì 0, â® ª«¨ª ¯® áâ ¤ à⮩ ª®¯ª¥(ª®â®à ï ¥ ¢ ini) |
258 | mov eax,[RBMenuCP+ebx*8+4] ;¥á«¨ ᤥáì 0, â® ª«¨ª ¯® áâ ¤ à⮩ ª®¯ª¥(ª®â®à ï ¥ ¢ ini) |
238 | test eax,eax |
259 | test eax,eax |
239 | jnz .RBWB |
260 | jnz .RBWB |
240 | mov eax,[RBMenuCP+ebx*8] ;ᬮâਬ, 㪠§ â¥«ì ª ªãî ¤¯¨áì ¢ ¯®¤¯¨á¨ |
261 | mov eax,[RBMenuCP+ebx*8] ;ᬮâਬ, 㪠§ â¥«ì ª ªãî ¤¯¨áì ¢ ¯®¤¯¨á¨ |
241 | cmp eax,RMenuRedrawFon ; ¨ ¯® ¥© ¢ë¡¨à ¥¬ ¤¥©á⢨¥ |
262 | cmp eax,RMenuRedrawFon ; ¨ ¯® ¥© ¢ë¡¨à ¥¬ ¤¥©á⢨¥ |
242 | jz RBRedrawFon |
263 | jz RBRedrawFon |
243 | cmp eax,RMenuAlign |
264 | cmp eax,RMenuAlign |
244 | jz RBAlign |
265 | jz RBAlign |
245 | cmp eax,RMenuOffMoving |
266 | cmp eax,RMenuOffMoving |
246 | jz RBFixIcons |
267 | jz RBFixIcons |
247 | cmp eax,RMenuOnMoving |
268 | cmp eax,RMenuOnMoving |
248 | jz RBFixIcons |
269 | jz RBFixIcons |
249 | cmp eax,RMenuAdd |
270 | cmp eax,RMenuAdd |
250 | jz RBAdd |
271 | jz RBAdd |
251 | cmp eax,RMenuDel |
272 | cmp eax,RMenuDel |
252 | jz RBDelete |
273 | jz RBDelete |
253 | cmp eax,RMenuProp |
274 | cmp eax,RMenuProp |
254 | jz RBPropeties |
275 | jz RBPropeties |
255 | 276 | ||
256 | jmp RBWExit |
277 | jmp RBWExit |
257 | .RBWB: |
278 | .RBWB: |
258 | mov dword[fiRunProg+8],0 |
279 | mov dword[fiRunProg+8],0 |
259 | mov dword[fiRunProg+21],eax |
280 | mov dword[fiRunProg+21],eax |
260 | mcall 70,fiRunProg |
281 | mcall 70,fiRunProg |
261 | 282 | ||
262 | jmp RBWExit |
283 | jmp RBWExit |
263 | 284 | ||
264 | RBWMouse: |
285 | RBWMouse: |
265 | call MouseInWin |
286 | call MouseInWin |
266 | jnc .RBWMnoInWin ;¥á«¨ ¢¥ ®ª , â® ¯à®áâ® ¢®ááâ ¢«¨¢ ¥¬ ¯à¥¤ë¤ãéãî ª®¯ªã |
287 | jnc .RBWMnoInWin ;¥á«¨ ¢¥ ®ª , â® ¯à®áâ® ¢®ááâ ¢«¨¢ ¥¬ ¯à¥¤ë¤ãéãî ª®¯ªã |
267 | 288 | ||
268 | mcall 37,1 ;¯®«®¦¥¨¥ ¬ëè¨ ®â®á¨â¥«ì® ®ª |
289 | mcall 37,1 ;¯®«®¦¥¨¥ ¬ëè¨ ®â®á¨â¥«ì® ®ª |
269 | and eax,0FFF0h ;㦥 ⮫쪮 Y, ¯à¨çñ¬ ®ªà㣫ñë© ¤® ¢¥à奩 â®çª¨ ªà ⮩ 16(¢ëá®â ª®¯ª¨) |
290 | and eax,0FFF0h ;㦥 ⮫쪮 Y, ¯à¨çñ¬ ®ªà㣫ñë© ¤® ¢¥à奩 â®çª¨ ªà ⮩ 16(¢ëá®â ª®¯ª¨) |
270 | cmp [PredItem],eax |
291 | cmp [PredItem],eax |
271 | je .RBWMendLightBut |
292 | je .RBWMendLightBut |
272 | 293 | ||
273 | shr eax,4 ;¥á«¨ ¬ëèì ¨¦¥© à ¬ª¥, â® â ª¦¥ ⮫쪮 ¢®ááâ ®¢¨âì ¯à¥¤ë¤ãéãî ª®¯ªã |
294 | shr eax,4 ;¥á«¨ ¬ëèì ¨¦¥© à ¬ª¥, â® â ª¦¥ ⮫쪮 ¢®ááâ ®¢¨âì ¯à¥¤ë¤ãéãî ª®¯ªã |
274 | cmp eax,[NumMenuButt] |
295 | cmp eax,[NumMenuButt] |
275 | jae .RBWMnoInWin |
296 | jae .RBWMnoInWin |
276 | 297 | ||
277 | cmp [PredItem],-1 ;¢®ááâ ®¢«¥¨¥ ¯à¥¤ë¤ã饩 ª®¯ª¨ |
298 | cmp [PredItem],-1 ;¢®ááâ ®¢«¥¨¥ ¯à¥¤ë¤ã饩 ª®¯ª¨ |
278 | je @f |
299 | je @f |
279 | 300 | ||
280 | stdcall DrawRBLine,[PredItem],0 |
301 | stdcall DrawRBLine,[PredItem],0 |
281 | 302 | ||
282 | @@: |
303 | @@: |
283 | 304 | ||
284 | call MouseInWin |
305 | call MouseInWin |
285 | jnc @f |
306 | jnc @f |
286 | mcall 37,1 ;¯®«®¦¥¨¥ ¬ëè¨ ®â®á¨â¥«ì® ®ª |
307 | mcall 37,1 ;¯®«®¦¥¨¥ ¬ëè¨ ®â®á¨â¥«ì® ®ª |
287 | and eax,0FFF0h ;㦥 ⮫쪮 Y, ¯à¨çñ¬ ®ªà㣫ñë© ¤® ¢¥à奩 â®çª¨ ªà ⮩ 16(¢ëá®â ª®¯ª¨) |
308 | and eax,0FFF0h ;㦥 ⮫쪮 Y, ¯à¨çñ¬ ®ªà㣫ñë© ¤® ¢¥à奩 â®çª¨ ªà ⮩ 16(¢ëá®â ª®¯ª¨) |
288 | mov [PredItem],eax |
309 | mov [PredItem],eax |
289 | stdcall DrawRBLine,eax,1 |
310 | stdcall DrawRBLine,eax,1 |
290 | 311 | ||
291 | @@: |
312 | @@: |
292 | jmp .RBWMendLightBut |
313 | jmp .RBWMendLightBut |
293 | 314 | ||
294 | 315 | ||
295 | .RBWMnoInWin: |
316 | .RBWMnoInWin: |
296 | cmp [PredItem],-1 ;¢®ááâ ®¢«¥¨¥ ¯à¥¤ë¤ã饩 ª®¯ª¨ |
317 | cmp [PredItem],-1 ;¢®ááâ ®¢«¥¨¥ ¯à¥¤ë¤ã饩 ª®¯ª¨ |
297 | je .RBWMendLightBut |
318 | je .RBWMendLightBut |
298 | 319 | ||
299 | stdcall DrawRBLine,[PredItem],0 |
320 | stdcall DrawRBLine,[PredItem],0 |
300 | mov [PredItem],-1 |
321 | mov [PredItem],-1 |
301 | 322 | ||
302 | .RBWMendLightBut: |
323 | .RBWMendLightBut: |
303 | mcall 37,2 ;GetMouseKey |
324 | mcall 37,2 ;GetMouseKey |
304 | test eax,111b |
325 | test eax,111b |
305 | jz RBWMessages |
326 | jz RBWMessages |
306 | 327 | ||
307 | call MouseInWin |
328 | call MouseInWin |
308 | jc RBWMessages |
329 | jc RBWMessages |
309 | 330 | ||
310 | RBWExit: |
331 | RBWExit: |
311 | cmp [SelIcon],-1 |
332 | cmp [SelIcon],-1 |
312 | jne @f |
333 | jne @f |
313 | mcall 68,13,[RBMenuCP] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì á ¯®¤¯¨áﬨ ¨ ¯ãâﬨ ª ¯à®£ ¬ |
334 | mcall 68,13,[RBMenuCP] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì á ¯®¤¯¨áﬨ ¨ ¯ãâﬨ ª ¯à®£ ¬ |
314 | @@: |
335 | @@: |
315 | mov [RButtonActiv],0 |
336 | mov [RButtonActiv],0 |
316 | mcall -1 ;ExitProcess |
337 | mcall -1 ;ExitProcess |
317 | 338 | ||
318 | 339 | ||
319 | RBRedrawFon: |
340 | RBRedrawFon: |
320 | mcall 15,3 |
341 | mcall 15,3 |
321 | jmp RBWExit |
342 | jmp RBWExit |
322 | 343 | ||
323 | RBAlign: |
344 | RBAlign: |
324 | call AlignIcons |
345 | call AlignIcons |
325 | 346 | ||
326 | m2m [PIcoDB],[BegData] |
347 | m2m [PIcoDB],[BegData] |
327 | stdcall [ini_enum_sections],IconIni,Ini_SavePos |
348 | stdcall [ini_enum_sections],IconIni,Ini_SavePos |
328 | 349 | ||
329 | mov dword[fiRunProg+8],WarningSave |
350 | mov dword[fiRunProg+8],WarningSave |
330 | mov dword[fiRunProg+21],pthNotify |
351 | mov dword[fiRunProg+21],pthNotify |
331 | mcall 70,fiRunProg |
352 | mcall 70,fiRunProg |
332 | mov [bNotSave],0 |
353 | mov [bNotSave],0 |
333 | 354 | ||
334 | jmp RBRedrawFon |
355 | jmp RBRedrawFon |
335 | 356 | ||
336 | RBFixIcons: |
357 | RBFixIcons: |
337 | xor dword[bFixIcons],1 |
358 | xor dword[bFixIcons],1 |
338 | 359 | ||
339 | cmp [bNotSave],0 |
360 | cmp [bNotSave],0 |
340 | je @f |
361 | je @f |
341 | 362 | ||
342 | mov dword[fiRunProg+8],WarningSave |
363 | mov dword[fiRunProg+8],WarningSave |
343 | mov dword[fiRunProg+21],pthNotify |
364 | mov dword[fiRunProg+21],pthNotify |
344 | mcall 70,fiRunProg |
365 | mcall 70,fiRunProg |
345 | mov [bNotSave],0 |
366 | mov [bNotSave],0 |
346 | 367 | ||
347 | @@: |
368 | @@: |
348 | jmp RBWExit |
369 | jmp RBWExit |
349 | 370 | ||
350 | RBAdd: |
371 | RBAdd: |
351 | cmp [DlgAddActiv],1 |
372 | cmp [DlgAddActiv],1 |
352 | je RBWSetActivWin |
373 | je RBWSetActivWin |
353 | mov [DlgAddActiv],1 |
374 | mov [DlgAddActiv],1 |
354 | 375 | ||
355 | mcall 51,1,DlgAdd,stack_dlg ;CreateThread DlgAdd,stack_dlg |
376 | mcall 51,1,DlgAdd,stack_dlg ;CreateThread DlgAdd,stack_dlg |
356 | jmp RBWExit |
377 | jmp RBWExit |
357 | 378 | ||
358 | RBDelete: |
379 | RBDelete: |
359 | mov eax,[SelIcon] |
380 | mov eax,[SelIcon] |
360 | mov eax,[IconsOffs+eax*4] |
381 | mov eax,[IconsOffs+eax*4] |
361 | stdcall [ini_del_section],IconIni,eax |
382 | stdcall [ini_del_section],IconIni,eax |
362 | 383 | ||
363 | stdcall DelIcon,[SelIcon] |
384 | stdcall DelIcon,[SelIcon] |
364 | 385 | ||
365 | mov dword[fiRunProg+8],WarningSave |
386 | mov dword[fiRunProg+8],WarningSave |
366 | mov dword[fiRunProg+21],pthNotify |
387 | mov dword[fiRunProg+21],pthNotify |
367 | mcall 70,fiRunProg |
388 | mcall 70,fiRunProg |
368 | mov [bNotSave],0 |
389 | mov [bNotSave],0 |
369 | 390 | ||
370 | jmp RBRedrawFon |
391 | jmp RBRedrawFon |
371 | 392 | ||
372 | RBPropeties: |
393 | RBPropeties: |
373 | cmp [DlgAddActiv],1 |
394 | cmp [DlgAddActiv],1 |
374 | je RBWSetActivWin |
395 | je RBWSetActivWin |
375 | mov [DlgAddActiv],1 |
396 | mov [DlgAddActiv],1 |
376 | 397 | ||
377 | mcall 51,1,DlgProp,stack_dlg ;CreateThread DlgProp,stack_dlg |
398 | mcall 51,1,DlgProp,stack_dlg ;CreateThread DlgProp,stack_dlg |
378 | jmp RBWExit |
399 | jmp RBWExit |
379 | 400 | ||
380 | RBWSetActivWin: |
401 | RBWSetActivWin: |
381 | mcall 18,3,[slotDlgAdd] |
402 | mcall 18,3,[slotDlgAdd] |
382 | jmp RBWExit |
403 | jmp RBWExit |
383 | 404 | ||
384 | proc DrawRBLine y,active |
405 | proc DrawRBLine y,active |
385 | 406 | ||
386 | xor ebx,ebx |
407 | xor ebx,ebx |
387 | mov bx,[RMenuW] |
408 | mov bx,[RMenuW] |
388 | add ebx,2*10000h-3 |
409 | add ebx,2*10000h-3 |
389 | mov ecx,[y] |
410 | mov ecx,[y] |
390 | add ecx,2 |
411 | add ecx,2 |
391 | shl ecx,16 |
412 | shl ecx,16 |
392 | mov cx,16;-1-2 |
413 | mov cx,16;-1-2 |
393 | cmp [active],1 |
414 | cmp [active],1 |
394 | jne @f |
415 | jne @f |
395 | mov edx,[sc.work_button] |
416 | mov edx,[sc.work_button] |
396 | jmp .L1 |
417 | jmp .L1 |
397 | @@: |
418 | @@: |
398 | mov edx,[sc.work] |
419 | mov edx,[sc.work] |
399 | .L1: |
420 | .L1: |
400 | mcall 13 |
421 | mcall 13 |
401 | 422 | ||
402 | ;---------------------------------------------- |
423 | ;---------------------------------------------- |
403 | xor ebx,ebx ;¢¥àå |
424 | xor ebx,ebx ;¢¥àå |
404 | mov bx,[RMenuW] |
425 | mov bx,[RMenuW] |
405 | add ebx,2*10000h-3 |
426 | add ebx,2*10000h-3 |
406 | mov cx,word[y] |
427 | mov cx,word[y] |
407 | shl ecx,16 |
428 | shl ecx,16 |
408 | mov cx,word[y] |
429 | mov cx,word[y] |
409 | add ecx,00020002h |
430 | add ecx,00020002h |
410 | 431 | ||
411 | cmp [active],1 |
432 | cmp [active],1 |
412 | jne @f |
433 | jne @f |
413 | mov edx,[sc.workL] |
434 | mov edx,[sc.workL] |
414 | jmp .L3 |
435 | jmp .L3 |
415 | @@: |
436 | @@: |
416 | mov edx,[sc.work] |
437 | mov edx,[sc.work] |
417 | .L3: |
438 | .L3: |
418 | 439 | ||
419 | mcall 38 |
440 | mcall 38 |
420 | 441 | ||
421 | mov ebx,00020002h ;«¥¢® |
442 | mov ebx,00020002h ;«¥¢® |
422 | mov cx,word[y] |
443 | mov cx,word[y] |
423 | shl ecx,16 |
444 | shl ecx,16 |
424 | mov cx,word[y] |
445 | mov cx,word[y] |
425 | add ecx,00020002h+16 |
446 | add ecx,00020002h+16 |
426 | 447 | ||
427 | cmp [active],1 |
448 | cmp [active],1 |
428 | jne @f |
449 | jne @f |
429 | mov edx,[sc.workL] |
450 | mov edx,[sc.workL] |
430 | 451 | ||
431 | @@: |
452 | @@: |
432 | 453 | ||
433 | mcall |
454 | mcall |
434 | 455 | ||
435 | xor ebx,ebx ;¨§ |
456 | xor ebx,ebx ;¨§ |
436 | mov bx,[RMenuW] |
457 | mov bx,[RMenuW] |
437 | add ebx,2*10000h-3 |
458 | add ebx,2*10000h-3 |
438 | mov cx,word[y] |
459 | mov cx,word[y] |
439 | shl ecx,16 |
460 | shl ecx,16 |
440 | mov cx,word[y] |
461 | mov cx,word[y] |
441 | add ecx,16*10000h+16+00020002h |
462 | add ecx,16*10000h+16+00020002h |
442 | 463 | ||
443 | cmp [active],1 |
464 | cmp [active],1 |
444 | jne @f |
465 | jne @f |
445 | mov edx,[sc.workH] |
466 | mov edx,[sc.workH] |
446 | @@: |
467 | @@: |
447 | 468 | ||
448 | mcall |
469 | mcall |
449 | 470 | ||
450 | mov bx,[RMenuW] ;¯à ¢® |
471 | mov bx,[RMenuW] ;¯à ¢® |
451 | shl ebx,16 |
472 | shl ebx,16 |
452 | mov bx,[RMenuW] |
473 | mov bx,[RMenuW] |
453 | add ebx,-2*10000h-2 |
474 | add ebx,-2*10000h-2 |
454 | mov cx,word[y] |
475 | mov cx,word[y] |
455 | shl ecx,16 |
476 | shl ecx,16 |
456 | mov cx,word[y] |
477 | mov cx,word[y] |
457 | add ecx,00020002h+16 |
478 | add ecx,00020002h+16 |
458 | 479 | ||
459 | cmp [active],1 |
480 | cmp [active],1 |
460 | jne @f |
481 | jne @f |
461 | mov edx,[sc.workH] |
482 | mov edx,[sc.workH] |
462 | @@: |
483 | @@: |
463 | 484 | ||
464 | mcall |
485 | mcall |
465 | 486 | ||
466 | mov eax,[y] |
487 | mov eax,[y] |
467 | shr eax,4 |
488 | shr eax,4 |
468 | mov edx,[RBMenuCP+eax*8] |
489 | mov edx,[RBMenuCP+eax*8] |
469 | 490 | ||
470 | xor ebx,ebx |
491 | xor ebx,ebx |
471 | mov ebx,[y] |
492 | mov ebx,[y] |
472 | add ebx,7*10000h+7 |
493 | add ebx,7*10000h+7 |
473 | 494 | ||
474 | cmp [active],1 |
495 | cmp [active],1 |
475 | jne @f |
496 | jne @f |
476 | mov ecx,[sc.work_button_text] |
497 | mov ecx,[sc.work_button_text] |
477 | jmp .L2 |
498 | jmp .L2 |
478 | @@: |
499 | @@: |
479 | mov ecx,[sc.work_text] |
500 | mov ecx,[sc.work_text] |
480 | .L2: |
501 | .L2: |
481 | 502 | ||
482 | or ecx,80000000h |
503 | or ecx,80000000h |
483 | 504 | ||
484 | mcall 4 |
505 | mcall 4 |
485 | 506 | ||
486 | ret |
507 | ret |
487 | endp |
508 | endp |
488 | 509 | ||
489 | 510 | ||
490 | proc MouseInWin ;Carry flag = 1, ¥á«¨ ª«¨ª ¢ ®ª¥ |
511 | proc MouseInWin ;Carry flag = 1, ¥á«¨ ª«¨ª ¢ ®ª¥ |
491 | mcall 37,0 ;GetMousePos |
512 | mcall 37,0 ;GetMousePos |
492 | xor ebx,ebx |
513 | xor ebx,ebx |
493 | mov bx,ax ;y |
514 | mov bx,ax ;y |
494 | shr eax,16 ;x |
515 | shr eax,16 ;x |
495 | 516 | ||
496 | xor ecx,ecx |
517 | xor ecx,ecx |
497 | mov cx,bx |
518 | mov cx,bx |
498 | mov bx,ax |
519 | mov bx,ax |
499 | 520 | ||
500 | mcall 34 |
521 | mcall 34 |
501 | cmp eax,[RBSlot] |
522 | cmp eax,[RBSlot] |
502 | jne @f |
523 | jne @f |
503 | stc |
524 | stc |
504 | ret |
525 | ret |
505 | @@: |
526 | @@: |
506 | clc |
527 | clc |
507 | ret |
528 | ret |
508 | endp |
529 | endp |
509 | 530 | ||
510 | 531 | ||
511 | proc AlignIcons |
532 | proc AlignIcons |
512 | local posX:WORD,\ |
533 | local posX:WORD,\ |
513 | posY:WORD,\ |
534 | posY:WORD,\ |
514 | negatX:WORD,\ |
535 | negatX:WORD,\ |
515 | negatY:WORD |
536 | negatY:WORD |
516 | 537 | ||
517 | xor ebx,ebx |
538 | xor ebx,ebx |
518 | 539 | ||
519 | mov ecx,[MaxNumIcon] |
540 | mov ecx,[MaxNumIcon] |
520 | test ecx,ecx |
541 | test ecx,ecx |
521 | jnz .AlignIco |
542 | jnz .AlignIco |
522 | ret |
543 | ret |
523 | .AlignIco: |
544 | .AlignIco: |
524 | push ecx |
545 | push ecx |
525 | or ecx,-1 |
546 | or ecx,-1 |
526 | mov edi,dword[IconsOffs+ebx] |
547 | mov edi,dword[IconsOffs+ebx] |
527 | xor eax,eax |
548 | xor eax,eax |
528 | repne scasb |
549 | repne scasb |
529 | repne scasb |
550 | repne scasb |
530 | repne scasb |
551 | repne scasb |
531 | repne scasb |
552 | repne scasb |
532 | 553 | ||
533 | mov dword[negatX],0 |
554 | mov dword[negatX],0 |
534 | 555 | ||
535 | ;-------- ¯à¥®¡à §ã¥¬ ª®®à¤¨ âë ¢ ¯®«®¦¨â¥«ìë¥ |
556 | ;-------- ¯à¥®¡à §ã¥¬ ª®®à¤¨ âë ¢ ¯®«®¦¨â¥«ìë¥ |
536 | mov ax,[edi+2] |
557 | mov ax,[edi+2] |
537 | test ax,8000h |
558 | test ax,8000h |
538 | jz @f |
559 | jz @f |
539 | neg ax |
560 | neg ax |
540 | mov word[negatX],1 |
561 | mov word[negatX],1 |
541 | @@: |
562 | @@: |
542 | mov [posX],ax |
563 | mov [posX],ax |
543 | 564 | ||
544 | mov ax,[edi] |
565 | mov ax,[edi] |
545 | test ax,8000h |
566 | test ax,8000h |
546 | jz @f |
567 | jz @f |
547 | neg ax |
568 | neg ax |
548 | mov word[negatY],1 |
569 | mov word[negatY],1 |
549 | @@: |
570 | @@: |
550 | mov [posY],ax |
571 | mov [posY],ax |
551 | 572 | ||
552 | ;----- |
573 | ;----- |
553 | mov ax,[posY] |
574 | mov ax,[posY] |
554 | mov dx,ALIGN_SIZE |
575 | mov dx,ALIGN_SIZE |
555 | 576 | ||
556 | cmp ax,dx |
577 | cmp ax,dx |
557 | jb .AI0 |
578 | jb .AI0 |
558 | @@: sub ax,dx |
579 | @@: sub ax,dx |
559 | cmp ax,dx |
580 | cmp ax,dx |
560 | jae @b |
581 | jae @b |
561 | .AI0: |
582 | .AI0: |
562 | 583 | ||
563 | mov dx,ax |
584 | mov dx,ax |
564 | cmp dx,ALIGN_SIZE/2 |
585 | cmp dx,ALIGN_SIZE/2 |
565 | jb .AI1 |
586 | jb .AI1 |
566 | 587 | ||
567 | mov ax,ALIGN_SIZE |
588 | mov ax,ALIGN_SIZE |
568 | sub ax,dx |
589 | sub ax,dx |
569 | add [posY],ax |
590 | add [posY],ax |
570 | 591 | ||
571 | jmp .AI2 |
592 | jmp .AI2 |
572 | .AI1: |
593 | .AI1: |
573 | sub [posY],dx |
594 | sub [posY],dx |
574 | .AI2: |
595 | .AI2: |
575 | ;----- |
596 | ;----- |
576 | mov ax,[posX] |
597 | mov ax,[posX] |
577 | mov dx,ALIGN_SIZE |
598 | mov dx,ALIGN_SIZE |
578 | 599 | ||
579 | cmp ax,dx |
600 | cmp ax,dx |
580 | jb .AI3 |
601 | jb .AI3 |
581 | @@: sub ax,dx |
602 | @@: sub ax,dx |
582 | cmp ax,dx |
603 | cmp ax,dx |
583 | jae @b |
604 | jae @b |
584 | .AI3: |
605 | .AI3: |
585 | 606 | ||
586 | mov dx,ax |
607 | mov dx,ax |
587 | cmp dx,ALIGN_SIZE/2 |
608 | cmp dx,ALIGN_SIZE/2 |
588 | jb .AI4 |
609 | jb .AI4 |
589 | 610 | ||
590 | mov ax,ALIGN_SIZE |
611 | mov ax,ALIGN_SIZE |
591 | sub ax,dx |
612 | sub ax,dx |
592 | add [posX],ax |
613 | add [posX],ax |
593 | 614 | ||
594 | jmp .AI5 |
615 | jmp .AI5 |
595 | .AI4: |
616 | .AI4: |
596 | sub [posX],dx |
617 | sub [posX],dx |
597 | .AI5: |
618 | .AI5: |
598 | 619 | ||
599 | ;----- ¯à¥®¡à §®¢ ¨¥ § ¤ ¨ ¯®¯à ¢ª ¢ ®âà¨æ ⥫ìëå ª®®à¤¨ â |
620 | ;----- ¯à¥®¡à §®¢ ¨¥ § ¤ ¨ ¯®¯à ¢ª ¢ ®âà¨æ ⥫ìëå ª®®à¤¨ â |
600 | mov ax,[posX] |
621 | mov ax,[posX] |
601 | 622 | ||
602 | cmp [negatX],1 |
623 | cmp [negatX],1 |
603 | jne @f |
624 | jne @f |
604 | neg ax |
625 | neg ax |
605 | inc ax |
626 | inc ax |
606 | jmp .AI6 |
627 | jmp .AI6 |
607 | @@: |
628 | @@: |
608 | 629 | ||
609 | mov dx,[ScreenX] |
630 | mov dx,[ScreenX] |
610 | shr dx,1 |
631 | shr dx,1 |
611 | cmp ax,dx |
632 | cmp ax,dx |
612 | jbe .AI6 |
633 | jbe .AI6 |
613 | sub ax,[ScreenX] |
634 | sub ax,[ScreenX] |
614 | .AI6: |
635 | .AI6: |
615 | mov word[edi+2],ax |
636 | mov word[edi+2],ax |
616 | 637 | ||
617 | 638 | ||
618 | mov ax,[posY] |
639 | mov ax,[posY] |
619 | cmp [negatY],1 |
640 | cmp [negatY],1 |
620 | jne @f |
641 | jne @f |
621 | neg ax |
642 | neg ax |
622 | inc ax |
643 | inc ax |
623 | jmp .AI7 |
644 | jmp .AI7 |
624 | @@: |
645 | @@: |
625 | 646 | ||
626 | mov dx,[ScreenY] |
647 | mov dx,[ScreenY] |
627 | shr dx,1 |
648 | shr dx,1 |
628 | cmp ax,dx |
649 | cmp ax,dx |
629 | jbe .AI7 |
650 | jbe .AI7 |
630 | sub ax,[ScreenY] |
651 | sub ax,[ScreenY] |
631 | .AI7: |
652 | .AI7: |
632 | mov word[edi],ax |
653 | mov word[edi],ax |
633 | 654 | ||
634 | ;-------- |
655 | ;-------- |
635 | 656 | ||
636 | 657 | ||
637 | 658 | ||
638 | pop ecx |
659 | pop ecx |
639 | add ebx,4 |
660 | add ebx,4 |
640 | dec ecx |
661 | dec ecx |
641 | jnz .AlignIco |
662 | jnz .AlignIco |
642 | ; loop .AlignIco |
663 | ; loop .AlignIco |
643 | 664 | ||
644 | 665 | ||
645 | ; mov dword[fInfo],2 |
666 | ; mov dword[fInfo],2 |
646 | ; mcall 70,fInfo |
667 | ; mcall 70,fInfo |
647 | ret |
668 | ret |
648 | endp |
669 | endp |
649 | 670 | ||
650 | ;------------------------------------------------------------------------------- |
671 | ;------------------------------------------------------------------------------- |
651 | proc GetUserBut stdcall,f_name,sec_name,key_name,key_value |
672 | proc GetUserBut stdcall,f_name,sec_name,key_name,key_value |
652 | cmp [NumMenuButt],MAX_USER_BUTTONS |
673 | cmp [NumMenuButt],MAX_USER_BUTTONS |
653 | jne @f |
674 | jne @f |
654 | ret |
675 | ret |
655 | @@: |
676 | @@: |
656 | 677 | ||
657 | push ebx esi edi |
678 | push ebx esi edi |
658 | 679 | ||
659 | mov edi,[key_name] ;®¯à¥¤¥«ï¥¬ è¨à¨ã ¬¥î |
680 | mov edi,[key_name] ;®¯à¥¤¥«ï¥¬ è¨à¨ã ¬¥î |
660 | xor eax,eax |
681 | xor eax,eax |
661 | or ecx,-1 |
682 | or ecx,-1 |
662 | repne scasb |
683 | repne scasb |
663 | sub edi,[key_name] |
684 | sub edi,[key_name] |
664 | mov eax,edi |
685 | mov eax,edi |
665 | shl eax,1 |
686 | shl eax,1 |
666 | lea eax,[eax*2+eax+5*2] |
687 | lea eax,[eax*2+eax+5*2] |
667 | cmp ax,[RMenuW] |
688 | cmp ax,[RMenuW] |
668 | jbe @f |
689 | jbe @f |
669 | mov [RMenuW],ax |
690 | mov [RMenuW],ax |
670 | @@: |
691 | @@: |
671 | 692 | ||
672 | mov ebx,[NumMenuButt] |
693 | mov ebx,[NumMenuButt] |
673 | 694 | ||
674 | mov esi,[key_name] |
695 | mov esi,[key_name] |
675 | mov edi,[RBMenuCP+ebx*8] |
696 | mov edi,[RBMenuCP+ebx*8] |
676 | @@: lodsb |
697 | @@: lodsb |
677 | stosb |
698 | stosb |
678 | test al,al |
699 | test al,al |
679 | jnz @b |
700 | jnz @b |
680 | 701 | ||
681 | 702 | ||
682 | mov [RBMenuCP+ebx*8+4],edi |
703 | mov [RBMenuCP+ebx*8+4],edi |
683 | mov esi,[key_value] |
704 | mov esi,[key_value] |
684 | @@: lodsb |
705 | @@: lodsb |
685 | stosb |
706 | stosb |
686 | test al,al |
707 | test al,al |
687 | jnz @b |
708 | jnz @b |
688 | 709 | ||
689 | mov [RBMenuCP+ebx*8+8],edi |
710 | mov [RBMenuCP+ebx*8+8],edi |
690 | 711 | ||
691 | inc [NumMenuButt] |
712 | inc [NumMenuButt] |
692 | 713 | ||
693 | pop edi esi ebx |
714 | pop edi esi ebx |
694 | mov eax,1 |
715 | mov eax,1 |
695 | ret |
716 | ret |
696 | endp |
717 | endp |
697 | 718 | ||
698 | proc Ini_SavePos stdcall,f_name,sec_name |
719 | proc Ini_SavePos stdcall,f_name,sec_name |
699 | push ebx edi esi |
720 | push ebx edi esi |
700 | 721 | ||
701 | xor ebx,ebx |
722 | xor ebx,ebx |
702 | .SearchSect: |
723 | .SearchSect: |
703 | mov edi,[IconsOffs+ebx*4] |
724 | mov edi,[IconsOffs+ebx*4] |
704 | mov esi,[sec_name] |
725 | mov esi,[sec_name] |
705 | @@: |
726 | @@: |
706 | lodsb |
727 | lodsb |
707 | scasb |
728 | scasb |
708 | jne @f |
729 | jne @f |
709 | test al,al |
730 | test al,al |
710 | jnz @b |
731 | jnz @b |
711 | 732 | ||
712 | jmp .IcoDataFound |
733 | jmp .IcoDataFound |
713 | @@: |
734 | @@: |
714 | 735 | ||
715 | inc ebx |
736 | inc ebx |
716 | cmp ebx,[MaxNumIcon] |
737 | cmp ebx,[MaxNumIcon] |
717 | jb .SearchSect |
738 | jb .SearchSect |
718 | 739 | ||
719 | mov eax,1 |
740 | mov eax,1 |
720 | pop esi edi ebx |
741 | pop esi edi ebx |
721 | ret |
742 | ret |
722 | 743 | ||
723 | .IcoDataFound: |
744 | .IcoDataFound: |
724 | or ecx,-1 |
745 | or ecx,-1 |
725 | repne scasb |
746 | repne scasb |
726 | repne scasb |
747 | repne scasb |
727 | repne scasb |
748 | repne scasb |
728 | 749 | ||
729 | ;int3 |
750 | ;int3 |
730 | movzx eax,word[edi+2] |
751 | movzx eax,word[edi+2] |
731 | test eax,8000h |
752 | test eax,8000h |
732 | jz @f |
753 | jz @f |
733 | or eax,0FFFF0000h |
754 | or eax,0FFFF0000h |
734 | @@: |
755 | @@: |
735 | 756 | ||
736 | stdcall [ini_set_int],[f_name],[sec_name],keyX,eax |
757 | stdcall [ini_set_int],[f_name],[sec_name],keyX,eax |
737 | 758 | ||
738 | movzx eax,word[edi] |
759 | movzx eax,word[edi] |
739 | test eax,8000h |
760 | test eax,8000h |
740 | jz @f |
761 | jz @f |
741 | or eax,0FFFF0000h |
762 | or eax,0FFFF0000h |
742 | @@: |
763 | @@: |
743 | 764 | ||
744 | stdcall [ini_set_int],[f_name],[sec_name],keyY,eax |
765 | stdcall [ini_set_int],[f_name],[sec_name],keyY,eax |
745 | 766 | ||
746 | mov eax,1 |
767 | mov eax,1 |
747 | pop esi edi ebx |
768 | pop esi edi ebx |
748 | ret |
769 | ret |
749 | endp |
770 | endp |