Rev 4308 | Rev 5638 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4308 | Rev 5637 | ||
---|---|---|---|
1 | align 4 |
1 | align 4 |
2 | draw_but_toolbar: ;ôóíêöèÿ äëÿ ðèñîâàíèÿ ïàíåëè èíñòðóìåíòîâ |
2 | draw_but_toolbar: ;ôóíêöèÿ äëÿ ðèñîâàíèÿ ïàíåëè èíñòðóìåíòîâ |
3 | pushad |
3 | pushad |
4 | mov edi,tedit0 |
4 | mov edi,tedit0 |
5 | 5 | ||
6 | mov ecx,0x40000000 |
6 | mov ecx,0x40000000 |
7 | ; mov edx,5*65536+25 |
7 | mov edx,5*65536+25 |
8 | mov edx,85*65536+2 |
- | |
9 | call draw_but_icon |
8 | call draw_but_icon |
10 | 9 | ||
11 | inc cx |
10 | inc cx |
12 | ; mov edx,30*65536+25 |
11 | mov edx,30*65536+25 |
13 | mov edx,110*65536+2 |
- | |
14 | call draw_but_icon |
12 | call draw_but_icon |
15 | 13 | ||
16 | stdcall [ted_can_save],edi |
14 | stdcall [ted_can_save],edi |
17 | cmp al,1 |
15 | cmp al,1 |
18 | je @f |
16 | je @f |
19 | and ecx,0xffff |
17 | and ecx,0xffff |
20 | @@: |
18 | @@: |
21 | inc cx |
19 | inc cx |
22 | ; mov edx,55*65536+25 |
20 | mov edx,55*65536+25 |
23 | mov edx,135*65536+2 |
- | |
24 | call draw_but_icon |
21 | call draw_but_icon |
25 | or ecx,0x40000000 |
22 | or ecx,0x40000000 |
26 | 23 | ||
27 | inc cx |
24 | inc cx |
28 | mov edx,85*65536+25 |
25 | mov edx,85*65536+25 |
29 | call draw_but_icon |
26 | call draw_but_icon |
30 | 27 | ||
31 | call [ted_is_select] |
28 | call [ted_is_select] |
32 | cmp al,0 |
29 | cmp al,0 |
33 | jne @f |
30 | jne @f |
34 | and ecx,0xffff |
31 | and ecx,0xffff |
35 | @@: |
32 | @@: |
36 | inc cx ; Cut |
33 | inc cx ; Cut |
37 | mov edx,110*65536+25 |
34 | mov edx,110*65536+25 |
38 | call draw_but_icon |
35 | call draw_but_icon |
39 | 36 | ||
40 | inc cx ; Copy |
37 | inc cx ; Copy |
41 | mov edx,135*65536+25 |
38 | mov edx,135*65536+25 |
42 | call draw_but_icon |
39 | call draw_but_icon |
43 | 40 | ||
44 | mov cx,10 ; Upper |
41 | mov cx,10 ; Upper |
45 | mov edx,265*65536+25 |
42 | mov edx,265*65536+25 |
46 | call draw_but_icon |
43 | call draw_but_icon |
47 | 44 | ||
48 | inc cx ; Lower |
45 | inc cx ; Lower |
49 | mov edx,290*65536+25 |
46 | mov edx,290*65536+25 |
50 | call draw_but_icon |
47 | call draw_but_icon |
51 | 48 | ||
52 | inc cx ; reverse |
49 | inc cx ; reverse |
53 | mov edx,315*65536+25 |
50 | mov edx,315*65536+25 |
54 | call draw_but_icon |
51 | call draw_but_icon |
55 | or ecx,0x40000000 |
52 | or ecx,0x40000000 |
56 | 53 | ||
57 | cmp dword[buf],0 |
54 | cmp dword[buf],0 |
58 | jne @f |
55 | jne @f |
59 | and ecx,0xffff |
56 | and ecx,0xffff |
60 | @@: |
57 | @@: |
61 | mov cx,6 ; Paste |
58 | mov cx,6 ; Paste |
62 | mov edx,160*65536+25 |
59 | mov edx,160*65536+25 |
63 | call draw_but_icon |
60 | call draw_but_icon |
64 | or ecx,0x40000000 |
61 | or ecx,0x40000000 |
65 | 62 | ||
66 | inc cx |
63 | inc cx |
67 | mov edx,185*65536+25 |
64 | mov edx,185*65536+25 |
68 | call draw_but_icon |
65 | call draw_but_icon |
69 | 66 | ||
70 | inc cx |
67 | inc cx |
71 | mov edx,210*65536+25 |
68 | mov edx,210*65536+25 |
72 | call draw_but_icon |
69 | call draw_but_icon |
73 | 70 | ||
74 | inc cx |
71 | inc cx |
75 | mov edx,235*65536+25 |
72 | mov edx,235*65536+25 |
76 | call draw_but_icon |
73 | call draw_but_icon |
77 | 74 | ||
78 | mov ebx,ted_tim_undo |
75 | mov ebx,ted_tim_undo |
79 | cmp ted_tim_ch,ebx |
76 | cmp ted_tim_ch,ebx |
80 | jg @f |
77 | jg @f |
81 | and ecx,0xffff |
78 | and ecx,0xffff |
82 | @@: |
79 | @@: |
83 | mov cx,13 |
80 | mov cx,13 |
84 | mov edx,345*65536+25 |
81 | mov edx,345*65536+25 |
85 | call draw_but_icon |
82 | call draw_but_icon |
86 | or ecx,0x40000000 |
83 | or ecx,0x40000000 |
87 | 84 | ||
88 | cmp ted_tim_undo,1 |
85 | cmp ted_tim_undo,1 |
89 | jge @f |
86 | jge @f |
90 | and ecx,0xffff |
87 | and ecx,0xffff |
91 | @@: |
88 | @@: |
92 | inc cx |
89 | inc cx |
93 | mov edx,370*65536+25 |
90 | mov edx,370*65536+25 |
94 | call draw_but_icon |
91 | call draw_but_icon |
95 | or ecx,0x40000000 |
92 | or ecx,0x40000000 |
96 | 93 | ||
97 | inc cx |
94 | inc cx |
98 | mov edx,400*65536+25 |
95 | mov edx,400*65536+25 |
99 | call draw_but_icon |
96 | call draw_but_icon |
100 | 97 | ||
101 | inc cx |
98 | inc cx |
102 | mov edx,425*65536+25 |
99 | mov edx,425*65536+25 |
103 | call draw_but_icon |
100 | call draw_but_icon |
104 | 101 | ||
105 | mov cx,17 ;âûáîð ôàéëà ïîäñâåòêè |
102 | mov cx,17 ;âûáîð ôàéëà ïîäñâåòêè |
106 | mov edx,450*65536+25 |
103 | mov edx,450*65536+25 |
107 | call draw_but_icon |
104 | call draw_but_icon |
108 | 105 | ||
109 | mov cx,18 ;cp 1251 -> 866 |
106 | mov cx,18 ;cp 1251 -> 866 |
110 | mov edx,425*65536+2 |
107 | mov edx,480*65536+25 |
111 | call draw_but_icon |
108 | call draw_but_icon |
112 | 109 | ||
113 | mov cx,19 ;cp 866 -> 1251 |
110 | mov cx,19 ;cp 866 -> 1251 |
114 | mov edx,450*65536+2 |
111 | mov edx,505*65536+25 |
115 | call draw_but_icon |
112 | call draw_but_icon |
116 | 113 | ||
117 | popad |
114 | popad |
118 | ret |
115 | ret |
119 | 116 | ||
120 | ;txtBUp db 24 |
117 | ;txtBUp db 24 |
121 | ;txtBDn db 25 |
118 | ;txtBDn db 25 |
122 | ;txtBRi db 26 |
119 | ;txtBRi db 26 |
123 | ;txtBLe db 27 |
120 | ;txtBLe db 27 |
124 | 121 | ||
125 | ;input: |
122 | ;input: |
126 | ; edi = pointer to tedit struct |
123 | ; edi = pointer to tedit struct |
127 | align 4 |
124 | align 4 |
128 | proc draw_panel_find |
125 | proc draw_panel_find |
129 | ;push edi |
126 | ;push edi |
130 | ;mov edi,dword[edit] |
127 | ;mov edi,dword[edit] |
131 | cmp ted_panel_id,TED_PANEL_FIND ;if not panel |
128 | cmp ted_panel_id,TED_PANEL_FIND ;if not panel |
132 | jne @f |
129 | jne @f |
133 | push eax ebx ecx edx |
130 | push eax ebx ecx edx |
134 | 131 | ||
135 | mov eax,13 ;ðèñîâàíèå ïðÿìîóãîëüíèêà |
132 | mov eax,13 ;ðèñîâàíèå ïðÿìîóãîëüíèêà |
136 | mov ebx,TED_PANEL_WIDTH |
133 | mov ebx,TED_PANEL_WIDTH |
137 | mov ecx,ted_wnd_t |
134 | mov ecx,ted_wnd_t |
138 | shl ecx,16 |
135 | shl ecx,16 |
139 | mov cx,20 |
136 | mov cx,20 |
140 | mov edx,[sc.work] |
137 | mov edx,[sc.work] |
141 | int 0x40 |
138 | int 0x40 |
142 | 139 | ||
143 | mov eax,4 ;ðèñîâàíèå òåêñòà |
140 | mov eax,4 ;ðèñîâàíèå òåêñòà |
144 | mov ebx,30*65536+5 |
141 | mov ebx,30*65536+5 |
145 | add ebx,ted_wnd_t |
142 | add ebx,ted_wnd_t |
146 | mov ecx,[sc.work_text] |
143 | mov ecx,[sc.work_text] |
147 | or ecx,0x80000000 |
144 | or ecx,0x80000000 |
148 | mov edx,txtFindCapt |
145 | mov edx,txtFindCapt |
149 | int 0x40 |
146 | int 0x40 |
150 | 147 | ||
151 | stdcall [edit_box_draw], dword edit2 |
148 | stdcall [edit_box_draw], dword edit2 |
152 | 149 | ||
153 | mov eax,13 ;ðèñîâàíèå ïðÿìîóãîëüíèêà |
150 | mov eax,13 ;ðèñîâàíèå ïðÿìîóãîëüíèêà |
154 | mov ebx,TED_PANEL_WIDTH |
151 | mov ebx,TED_PANEL_WIDTH |
155 | mov ecx,ted_wnd_t |
152 | mov ecx,ted_wnd_t |
156 | add cx,20+15 ; 15 - height text box |
153 | add cx,20+15 ; 15 - height text box |
157 | shl ecx,16 |
154 | shl ecx,16 |
158 | add ecx,ted_wnd_h |
155 | add ecx,ted_wnd_h |
159 | mov edx,ted_scr_h |
156 | mov edx,ted_scr_h |
160 | add cx,word[edx+sb_offs_size_y] |
157 | add cx,word[edx+sb_offs_size_y] |
161 | sub cx,20+15-1 ; 15 - height text box |
158 | sub cx,20+15-1 ; 15 - height text box |
162 | mov edx,[sc.work] |
159 | mov edx,[sc.work] |
163 | int 0x40 |
160 | int 0x40 |
164 | 161 | ||
165 | mov eax,8 ;êíîïêà |
162 | mov eax,8 ;êíîïêà |
166 | mov ebx,5*65536+85 |
163 | mov ebx,5*65536+85 |
167 | mov ecx,ted_wnd_t |
164 | mov ecx,ted_wnd_t |
168 | add cx,20+15+5 |
165 | add cx,20+15+5 |
169 | shl ecx,16 |
166 | shl ecx,16 |
170 | mov cx,20 |
167 | mov cx,20 |
171 | mov edx,201 ;button id |
168 | mov edx,201 ;button id |
172 | mov esi,[sc.work_button] |
169 | mov esi,[sc.work_button] |
173 | int 0x40 |
170 | int 0x40 |
174 | 171 | ||
175 | mov eax,4 ;ðèñîâàíèå òåêñòà |
172 | mov eax,4 ;ðèñîâàíèå òåêñòà |
176 | mov ebx,15*65536+(20+15+10) |
173 | mov ebx,15*65536+(20+15+10) |
177 | add ebx,ted_wnd_t |
174 | add ebx,ted_wnd_t |
178 | mov ecx,[sc.work_text] |
175 | mov ecx,[sc.work_text] |
179 | or ecx,0x80000000 |
176 | or ecx,0x80000000 |
180 | mov edx,txtFindNext |
177 | mov edx,txtFindNext |
181 | int 0x40 |
178 | int 0x40 |
182 | 179 | ||
183 | pop edx ecx ebx eax |
180 | pop edx ecx ebx eax |
184 | jmp .end_f |
181 | jmp .end_f |
185 | @@: |
182 | @@: |
186 | push eax edx |
183 | push eax edx |
187 | mov eax,8 |
184 | mov eax,8 |
188 | mov edx,201 |
185 | mov edx,201 |
189 | or edx,0x80000000 |
186 | or edx,0x80000000 |
190 | int 0x40 |
187 | int 0x40 |
191 | pop edx eax |
188 | pop edx eax |
192 | .end_f: |
189 | .end_f: |
193 | ;pop edi |
190 | ;pop edi |
194 | ret |
191 | ret |
195 | endp |
192 | endp |
196 | 193 | ||
197 | ;input: |
194 | ;input: |
198 | ; edi = pointer to tedit struct |
195 | ; edi = pointer to tedit struct |
199 | align 4 |
196 | align 4 |
200 | proc draw_panel_syntax |
197 | proc draw_panel_syntax |
201 | ;push edi |
198 | ;push edi |
202 | ;mov edi,dword[edit] |
199 | ;mov edi,dword[edit] |
203 | cmp ted_panel_id,TED_PANEL_SYNTAX ;if not panel |
200 | cmp ted_panel_id,TED_PANEL_SYNTAX ;if not panel |
204 | jne @f |
201 | jne @f |
205 | pushad |
202 | pushad |
206 | 203 | ||
207 | mov eax,13 ;ðèñîâàíèå ïðÿìîóãîëüíèêà |
204 | mov eax,13 ;ðèñîâàíèå ïðÿìîóãîëüíèêà |
208 | mov ebx,TED_PANEL_WIDTH |
205 | mov ebx,TED_PANEL_WIDTH |
209 | mov ecx,ted_wnd_t |
206 | mov ecx,ted_wnd_t |
210 | shl ecx,16 |
207 | shl ecx,16 |
211 | mov cx,20 |
208 | mov cx,20 |
212 | mov edx,[sc.work] |
209 | mov edx,[sc.work] |
213 | int 0x40 ;ðèñîâàíèå âåðõíåãî ôîíîâîãî ïðÿìîóãîëüíèêà |
210 | int 0x40 ;ðèñîâàíèå âåðõíåãî ôîíîâîãî ïðÿìîóãîëüíèêà |
214 | 211 | ||
215 | stdcall dword[tl_draw], tree1 |
212 | stdcall dword[tl_draw], tree1 |
216 | mov [ws_dir_lbox.all_redraw],1 ;äëÿ ïîëíîé ïåðåðèñîâêè äî÷åðíåãî ñêðîëëèíãà |
213 | mov [ws_dir_lbox.all_redraw],1 ;äëÿ ïîëíîé ïåðåðèñîâêè äî÷åðíåãî ñêðîëëèíãà |
217 | stdcall dword[scrollbar_ver_draw], dword ws_dir_lbox |
214 | stdcall dword[scrollbar_ver_draw], dword ws_dir_lbox |
218 | 215 | ||
219 | ror ecx,16 |
216 | ror ecx,16 |
220 | add ecx,dword[tree1.box_height] |
217 | add ecx,dword[tree1.box_height] |
221 | add ecx,20 |
218 | add ecx,20 |
222 | and ecx,0xffff |
219 | and ecx,0xffff |
223 | ror ecx,16 |
220 | ror ecx,16 |
224 | add ecx,ted_wnd_h |
221 | add ecx,ted_wnd_h |
225 | mov esi,ted_scr_h |
222 | mov esi,ted_scr_h |
226 | add cx,word[esi+sb_offs_size_y] |
223 | add cx,word[esi+sb_offs_size_y] |
227 | sub cx,20 |
224 | sub cx,20 |
228 | sub ecx,dword[tree1.box_height] |
225 | sub ecx,dword[tree1.box_height] |
229 | inc cx |
226 | inc cx |
230 | int 0x40 ;ðèñîâàíèå íèæíåãî ôîíîâîãî ïðÿìîóãîëüíèêà |
227 | int 0x40 ;ðèñîâàíèå íèæíåãî ôîíîâîãî ïðÿìîóãîëüíèêà |
231 | 228 | ||
232 | mov eax,8 ;êíîïêà |
229 | mov eax,8 ;êíîïêà |
233 | mov ebx,5*65536+65 |
230 | mov ebx,5*65536+65 |
234 | mov ecx,ted_wnd_t |
231 | mov ecx,ted_wnd_t |
235 | add ecx,25 |
232 | add ecx,25 |
236 | add ecx,dword[tree1.box_height] |
233 | add ecx,dword[tree1.box_height] |
237 | shl ecx,16 |
234 | shl ecx,16 |
238 | mov cx,20 |
235 | mov cx,20 |
239 | mov edx,200 ;button id |
236 | mov edx,200 ;button id |
240 | mov esi,[sc.work_button] |
237 | mov esi,[sc.work_button] |
241 | int 0x40 |
238 | int 0x40 |
242 | 239 | ||
243 | mov eax,4 ;ðèñîâàíèå òåêñòà |
240 | mov eax,4 ;ðèñîâàíèå òåêñòà |
244 | mov ebx,30*65536+5 |
241 | mov ebx,30*65536+5 |
245 | add ebx,ted_wnd_t |
242 | add ebx,ted_wnd_t |
246 | mov ecx,[sc.work_text] |
243 | mov ecx,[sc.work_text] |
247 | or ecx,0x80000000 |
244 | or ecx,0x80000000 |
248 | mov edx,txtFormatCapt |
245 | mov edx,txtFormatCapt |
249 | int 0x40 |
246 | int 0x40 |
250 | 247 | ||
251 | mov ebx,10*65536+30 |
248 | mov ebx,10*65536+30 |
252 | add ebx,dword[tree1.box_height] |
249 | add ebx,dword[tree1.box_height] |
253 | add ebx,ted_wnd_t |
250 | add ebx,ted_wnd_t |
254 | mov edx,txtFormatApply |
251 | mov edx,txtFormatApply |
255 | int 0x40 |
252 | int 0x40 |
256 | 253 | ||
257 | popad |
254 | popad |
258 | jmp .end_f |
255 | jmp .end_f |
259 | @@: |
256 | @@: |
260 | push eax edx |
257 | push eax edx |
261 | mov eax,8 |
258 | mov eax,8 |
262 | mov edx,200 |
259 | mov edx,200 |
263 | or edx,0x80000000 |
260 | or edx,0x80000000 |
264 | int 0x40 ;åñëè íåò ïàíåëè òî óäàëÿåì êíîïêó |
261 | int 0x40 ;åñëè íåò ïàíåëè òî óäàëÿåì êíîïêó |
265 | pop edx eax |
262 | pop edx eax |
266 | .end_f: |
263 | .end_f: |
267 | ;pop edi |
264 | ;pop edi |
268 | ret |
265 | ret |
269 | endp |
266 | endp |
270 | 267 | ||
271 | MIN_M_WND_H equ 100 ;ìèíèìàëüíàÿ âûñîòà ãëàâíîãî îêíà |
268 | MIN_M_WND_H equ 100 ;ìèíèìàëüíàÿ âûñîòà ãëàâíîãî îêíà |
272 | ;input: |
269 | ;input: |
273 | ; edi = pointer to tedit struct |
270 | ; edi = pointer to tedit struct |
274 | align 4 |
271 | align 4 |
275 | EvSize: |
272 | EvSize: |
276 | pushad |
273 | pushad |
277 | mov ebx,ted_scr_h |
274 | mov ebx,ted_scr_h |
278 | mov esi,ted_scr_w |
275 | mov esi,ted_scr_w |
279 | 276 | ||
280 | m2m ted_wnd_w,[procinfo.client_box.width] ;ñòàâèì øèðèíó îêíà ðåäàêòîðà ðàâíîé øèðèíå âñåãî îêíà |
277 | m2m ted_wnd_w,[procinfo.client_box.width] ;ñòàâèì øèðèíó îêíà ðåäàêòîðà ðàâíîé øèðèíå âñåãî îêíà |
281 | mov eax,ted_wnd_l |
278 | mov eax,ted_wnd_l |
282 | sub ted_wnd_w,eax ;îòíèìàåì îòñòóï ñëåâà |
279 | sub ted_wnd_w,eax ;îòíèìàåì îòñòóï ñëåâà |
283 | mov eax,dword[esi+sb_offs_size_x] |
280 | mov eax,dword[esi+sb_offs_size_x] |
284 | and eax,0xffff |
281 | and eax,0xffff |
285 | sub ted_wnd_w,eax ;îòíèìàåì øèðèíó âåðò. ñêðîëëèíãà |
282 | sub ted_wnd_w,eax ;îòíèìàåì øèðèíó âåðò. ñêðîëëèíãà |
286 | 283 | ||
287 | m2m ted_wnd_h,[procinfo.client_box.height] ;ñòàâèì âûñîòó îêíà ðåäàêòîðà ðàâíîé âûñîòå âñåãî îêíà |
284 | m2m ted_wnd_h,[procinfo.client_box.height] ;ñòàâèì âûñîòó îêíà ðåäàêòîðà ðàâíîé âûñîòå âñåãî îêíà |
288 | cmp ted_wnd_h,MIN_M_WND_H |
285 | cmp ted_wnd_h,MIN_M_WND_H |
289 | jg @f |
286 | jg @f |
290 | mov ted_wnd_h,MIN_M_WND_H |
287 | mov ted_wnd_h,MIN_M_WND_H |
291 | @@: |
288 | @@: |
292 | 289 | ||
293 | mov ax,word[ebx+sb_offs_size_y] |
290 | mov ax,word[ebx+sb_offs_size_y] |
294 | and eax,0xffff |
291 | and eax,0xffff |
295 | sub ted_wnd_h,eax ;îòíèìàåì âûñîòó ãîðèç. ñêðîëëèíãà |
292 | sub ted_wnd_h,eax ;îòíèìàåì âûñîòó ãîðèç. ñêðîëëèíãà |
296 | mov eax,ted_wnd_t |
293 | mov eax,ted_wnd_t |
297 | sub ted_wnd_h,eax ;îòíèìàåì îòñòóï ñâåðõó |
294 | sub ted_wnd_h,eax ;îòíèìàåì îòñòóï ñâåðõó |
298 | 295 | ||
299 | stdcall [ted_init_scroll_bars], tedit0,2 |
296 | stdcall [ted_init_scroll_bars], tedit0,2 |
300 | 297 | ||
301 | mov eax,ted_wnd_t |
298 | mov eax,ted_wnd_t |
302 | mov edi,dword tree1 |
299 | mov edi,dword tree1 |
303 | mov tl_box_top,eax ;=ted_wnd_t |
300 | mov tl_box_top,eax ;=ted_wnd_t |
304 | add tl_box_top,20 |
301 | add tl_box_top,20 |
305 | 302 | ||
306 | mov dword[edit2.top],eax ;=ted_wnd_t |
303 | mov dword[edit2.top],eax ;=ted_wnd_t |
307 | add dword[edit2.top],20 |
304 | add dword[edit2.top],20 |
308 | 305 | ||
309 | popad |
306 | popad |
310 | ret |
307 | ret |
311 | 308 | ||
312 | ;input: |
309 | ;input: |
313 | ; ecx = 0x4000____ |
310 | ; ecx = 0x4000____ |
314 | ; cx = icon index |
311 | ; cx = icon index |
315 | ; edx = x*2^16+y |
312 | ; edx = x*2^16+y |
316 | align 4 |
313 | align 4 |
317 | draw_but_icon: |
314 | draw_but_icon: |
318 | push eax ebx |
315 | push eax ebx |
319 | 316 | ||
320 | mov eax,8 ;êíîïêà |
317 | mov eax,8 ;êíîïêà |
321 | push ecx edx esi |
318 | push ecx edx esi |
322 | mov ebx,edx |
319 | mov ebx,edx |
323 | mov edx,ecx |
320 | mov edx,ecx |
324 | add edx,3 |
321 | add edx,3 |
325 | mov cx,bx |
322 | mov cx,bx |
326 | shl ecx,16 |
323 | shl ecx,16 |
327 | mov cx,19 ;=20-1 |
324 | mov cx,19 ;=20-1 |
328 | mov bx,19 ;=20-1 |
325 | mov bx,19 ;=20-1 |
329 | mov esi,ebx |
326 | mov esi,ebx |
330 | shr esi,16 |
327 | shr esi,16 |
331 | add esi,20 |
328 | add esi,20 |
332 | cmp esi,[procinfo.client_box.width] |
329 | cmp esi,[procinfo.client_box.width] |
333 | jge @f ;êíîïêà íå âëåçëà â îêíî |
330 | jge @f ;êíîïêà íå âëåçëà â îêíî |
334 | mov esi,[sc.work_button] |
331 | mov esi,[sc.work_button] |
335 | int 0x40 ;ñòàâèì êíîïêó |
332 | int 0x40 ;ñòàâèì êíîïêó |
336 | mov eax,7 ;bmp |
333 | mov eax,7 ;bmp |
337 | @@: |
334 | @@: |
338 | pop esi edx ecx |
335 | pop esi edx ecx |
339 | 336 | ||
340 | cmp eax,7 |
337 | cmp eax,7 |
341 | jne @f ;êíîïêà íå âëåçëà â îêíî |
338 | jne @f ;êíîïêà íå âëåçëà â îêíî |
342 | mov ebx,[bmp_icon] |
339 | mov ebx,[bmp_icon] |
343 | bt ecx,30 ;if (ecx & 0x40000000) |
340 | bt ecx,30 ;if (ecx & 0x40000000) |
344 | jc .gray |
341 | jc .gray |
345 | add ebx,TOOLBAR_ICONS_SIZE ;ïåðåìåùàåìñÿ íà ñåðûå êíîïêè |
342 | add ebx,TOOLBAR_ICONS_SIZE ;ïåðåìåùàåìñÿ íà ñåðûå êíîïêè |
346 | .gray: |
343 | .gray: |
347 | push ecx |
344 | push ecx |
348 | and ecx,0xffff |
345 | and ecx,0xffff |
349 | imul ecx,1200 |
346 | imul ecx,1200 |
350 | add ebx,ecx |
347 | add ebx,ecx |
351 | mov ecx,20 |
348 | mov ecx,20 |
352 | shl ecx,16 |
349 | shl ecx,16 |
353 | add ecx,20 |
350 | add ecx,20 |
354 | int 0x40 ;ñòàâèì ðèñóíîê íà êíîïêó |
351 | int 0x40 ;ñòàâèì ðèñóíîê íà êíîïêó |
355 | pop ecx |
352 | pop ecx |
356 | @@: |
353 | @@: |
357 | pop ebx eax |
354 | pop ebx eax |
358 | ret |
355 | ret |
359 | 356 | ||
360 | ;descrition: |
357 | ;descrition: |
361 | ; ôóíêöèÿ äëÿ ãåíåðèðîâàíèÿ ñåðûõ èêîíîê |
358 | ; ôóíêöèÿ äëÿ ãåíåðèðîâàíèÿ ñåðûõ èêîíîê |
362 | ;input: |
359 | ;input: |
363 | ; buf_rgb - áóôåð ñ âõîäíûì 24 áèòíûì öâåòíûì èçîáðàæåíèåì |
360 | ; buf_rgb - áóôåð ñ âõîäíûì 24 áèòíûì öâåòíûì èçîáðàæåíèåì |
364 | ; buf_g24 - áóôåð ñ âûõîäíûì 24 áèòíûì ñåðûì èçîáðàæåíèåì |
361 | ; buf_g24 - áóôåð ñ âûõîäíûì 24 áèòíûì ñåðûì èçîáðàæåíèåì |
365 | ; pixels - ÷èñëî ïèêñåëåé â èçîáðàæåíèè |
362 | ; pixels - ÷èñëî ïèêñåëåé â èçîáðàæåíèè |
366 | align 4 |
363 | align 4 |
367 | proc img_to_gray, buf_rgb:dword, buf_g24:dword, pixels:dword |
364 | proc img_to_gray, buf_rgb:dword, buf_g24:dword, pixels:dword |
368 | pushad |
365 | pushad |
369 | mov esi,[buf_rgb] |
366 | mov esi,[buf_rgb] |
370 | mov edi,[buf_g24] |
367 | mov edi,[buf_g24] |
371 | mov ecx,[pixels] |
368 | mov ecx,[pixels] |
372 | mov ebx,3 |
369 | mov ebx,3 |
373 | @@: |
370 | @@: |
374 | movzx eax,byte[esi] |
371 | movzx eax,byte[esi] |
375 | movzx edx,byte[esi+1] |
372 | movzx edx,byte[esi+1] |
376 | add eax,edx |
373 | add eax,edx |
377 | movzx edx,byte[esi+2] |
374 | movzx edx,byte[esi+2] |
378 | add eax,edx |
375 | add eax,edx |
379 | xor edx,edx |
376 | xor edx,edx |
380 | div ebx ;shr eax,2 |
377 | div ebx ;shr eax,2 |
381 | mov ah,al |
378 | mov ah,al |
382 | mov word[edi],ax |
379 | mov word[edi],ax |
383 | mov byte[edi+2],al |
380 | mov byte[edi+2],al |
384 | add esi,3 |
381 | add esi,3 |
385 | add edi,3 |
382 | add edi,3 |
386 | loop @b |
383 | loop @b |
387 | popad |
384 | popad |
388 | ret |
385 | ret |
389 | endp |
386 | endp |