Rev 7613 | Rev 9444 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7613 | Rev 8568 | ||
---|---|---|---|
1 | use32 |
1 | use32 |
2 | org 0x0 |
2 | org 0x0 |
3 | ;------------------------------------------------------------------------------- |
3 | ;------------------------------------------------------------------------------- |
4 | db "MENUET01" |
4 | db "MENUET01" |
5 | dd 1, main, __dataend, __memend, __stackend, 0, sys_path |
5 | dd 1, main, __dataend, __memend, __stackend, 0, sys_path |
6 | ;------------------------------------------------------------------------------- |
6 | ;------------------------------------------------------------------------------- |
7 | include "../../../macros.inc" |
7 | include "../../../macros.inc" |
8 | include "../../../proc32.inc" |
8 | include "../../../proc32.inc" |
9 | include "../../../dll.inc" |
9 | include "../../../dll.inc" |
- | 10 | include "../../../KOSfuncs.inc" |
|
10 | include "../../../develop/libraries/box_lib/load_lib.mac" |
11 | include "../../../load_lib.mac" |
11 | ;include "../../../debug.inc" |
12 | ;include "../../../debug.inc" |
12 | 13 | ||
13 | include "DATA.INC" |
14 | include "DATA.INC" |
14 | include "NAME.INC" |
15 | include "NAME.INC" |
15 | 16 | ||
16 | @use_library_mem \ |
17 | @use_library \ |
17 | mem.Alloc, \ |
18 | mem.Alloc, \ |
18 | mem.Free, \ |
19 | mem.Free, \ |
19 | mem.ReAlloc, \ |
20 | mem.ReAlloc, \ |
20 | dll.Load |
21 | dll.Load |
21 | ;================================================================================ |
22 | ;================================================================================ |
22 | main: |
23 | main: |
23 | ; ==== Init ==== |
24 | ; ==== Init ==== |
24 | mcall 18, 7 |
25 | mcall SF_SYSTEM, SSF_GET_ACTIVE_WINDOW |
25 | mov [win.psid], eax |
26 | mov [win.psid], eax |
26 | 27 | ||
27 | mcall 40, EVM_REDRAW+EVM_BUTTON+EVM_MOUSE ;+EVM_DEKSTOP to update colors on skin change |
28 | mcall SF_SET_EVENTS_MASK, EVM_REDRAW+EVM_BUTTON+EVM_MOUSE ;+EVM_DEKSTOP to update colors on skin change |
28 | 29 | ||
29 | ; ==== Load libs ==== |
30 | ; ==== Load libs ==== |
30 | load_libraries load_lib_start, load_lib_end |
31 | load_libraries load_lib_start, load_lib_end |
31 | 32 | ||
32 | ; ==== Config LibINI ==== |
33 | ; ==== Config LibINI ==== |
33 | invoke ini.get_int, ini_data.file_name, ini_data.settings_name, ini_data.location_name, 1 |
34 | invoke ini.get_int, ini_data.file_name, ini_data.settings_name, ini_data.location_name, 1 |
34 | mov [dock_items.location], eax |
35 | mov [dock_items.location], eax |
35 | invoke ini.get_int, ini_data.file_name, ini_data.settings_name, ini_data.fsize_name, 0 |
36 | invoke ini.get_int, ini_data.file_name, ini_data.settings_name, ini_data.fsize_name, 0 |
36 | mov [dock_items.fsize], eax |
37 | mov [dock_items.fsize], eax |
37 | invoke ini.get_int, ini_data.file_name, ini_data.settings_name, ini_data.ashow_name, 0 |
38 | invoke ini.get_int, ini_data.file_name, ini_data.settings_name, ini_data.ashow_name, 0 |
38 | mov [dock_items.ashow], eax |
39 | mov [dock_items.ashow], eax |
39 | 40 | ||
40 | invoke ini.sections, ini_data.file_name, sections_callback |
41 | invoke ini.sections, ini_data.file_name, sections_callback |
41 | 42 | ||
42 | ; ==== Load colors ==== |
43 | ; ==== Load colors ==== |
43 | mcall 48, 3, color |
44 | mcall SF_STYLE_SETTINGS, SSF_GET_COLORS, color |
44 | or dword[color.bg], 0x10000000 |
45 | or dword[color.bg], 0x10000000 |
45 | or dword[color.frame], 0x10000000 |
46 | or dword[color.frame], 0x10000000 |
46 | or dword[color.text], 0x80000000 |
47 | or dword[color.text], 0x80000000 |
47 | 48 | ||
48 | ; ==== Config LibIMG ==== |
49 | ; ==== Config LibIMG ==== |
49 | mov dword[fi.p00], 5 |
50 | mov dword[fi.p00], SSF_GET_INFO |
50 | mov dword[fi.p16], buf_128 |
51 | mov dword[fi.p16], buf_128 |
51 | mov dword[fi.p21], img_data.file_name |
52 | mov dword[fi.p21], img_data.file_name |
52 | 53 | ||
53 | mcall 70, fi |
54 | mcall SF_FILE, fi |
54 | 55 | ||
55 | mov edx, [buf_128 + 32] |
56 | mov edx, [buf_128 + 32] |
56 | imul edx, 10 |
57 | imul edx, 10 |
57 | 58 | ||
58 | stdcall mem.Alloc, edx |
59 | stdcall mem.Alloc, edx |
59 | mov [img_data.rgb_object], eax |
60 | mov [img_data.rgb_object], eax |
60 | 61 | ||
61 | mov dword[fi.p00], 0 |
62 | mov dword[fi.p00], SSF_READ_FILE |
62 | mov dword[fi.p12], edx |
63 | mov dword[fi.p12], edx |
63 | m2m dword[fi.p16], dword[img_data.rgb_object] |
64 | m2m dword[fi.p16], dword[img_data.rgb_object] |
64 | mov dword[fi.p21], img_data.file_name |
65 | mov dword[fi.p21], img_data.file_name |
65 | 66 | ||
66 | mcall 70, fi |
67 | mcall SF_FILE, fi |
67 | 68 | ||
68 | cmp ebx, 0xFFFFFFFF |
69 | cmp ebx, 0xFFFFFFFF |
69 | je @f |
70 | je @f |
70 | 71 | ||
71 | stdcall dword[img.decode], dword[img_data.rgb_object], ebx, 0 |
72 | stdcall dword[img.decode], dword[img_data.rgb_object], ebx, 0 |
72 | mov dword[img_data.object], eax |
73 | mov dword[img_data.object], eax |
73 | 74 | ||
74 | ; === ALPHA === |
75 | ; === ALPHA === |
75 | mov edi, eax |
76 | mov edi, eax |
76 | add edi, 8 |
77 | add edi, 8 |
77 | mov edi, [edi] |
78 | mov edi, [edi] |
78 | imul edi, 128 |
79 | imul edi, 128 |
79 | sub edi, 4 |
80 | sub edi, 4 |
80 | 81 | ||
81 | add eax, 24 |
82 | add eax, 24 |
82 | mov eax, [eax] |
83 | mov eax, [eax] |
83 | .setalpha: |
84 | .setalpha: |
84 | mov ebx, [eax + edi] |
85 | mov ebx, [eax + edi] |
85 | shr ebx, 24 |
86 | shr ebx, 24 |
86 | cmp ebx, 0 |
87 | cmp ebx, 0 |
87 | jne .nonalpha |
88 | jne .nonalpha |
88 | 89 | ||
89 | mov ecx, [color.bg] |
90 | mov ecx, [color.bg] |
90 | mov [eax + edi], ecx |
91 | mov [eax + edi], ecx |
91 | .nonalpha: |
92 | .nonalpha: |
92 | sub edi, 4 |
93 | sub edi, 4 |
93 | cmp edi, 0 |
94 | cmp edi, 0 |
94 | jne .setalpha |
95 | jne .setalpha |
95 | 96 | ||
96 | ; === CONVERTING TO BGR |
97 | ; === CONVERTING TO BGR |
97 | stdcall dword[img.toRGB], dword[img_data.object], dword[img_data.rgb_object] |
98 | stdcall dword[img.toRGB], dword[img_data.object], dword[img_data.rgb_object] |
98 | stdcall dword[img.destroy], dword[img_data.object] |
99 | stdcall dword[img.destroy], dword[img_data.object] |
99 | 100 | ||
100 | ; ==== Config window ==== |
101 | ; ==== Config window ==== |
101 | mov eax, dword[dock_items.location] |
102 | mov eax, dword[dock_items.location] |
102 | and eax, 1b |
103 | and eax, 1b |
103 | cmp eax, 0 |
104 | cmp eax, 0 |
104 | je .vert |
105 | je .vert |
105 | jmp .setshape |
106 | jmp .setshape |
106 | 107 | ||
107 | .vert: |
108 | .vert: |
108 | mov byte[win.isvert], 1 |
109 | mov byte[win.isvert], 1 |
109 | 110 | ||
110 | .setshape: |
111 | .setshape: |
111 | cmp byte[win.isvert], 1 |
112 | cmp byte[win.isvert], 1 |
112 | je .vert_sp |
113 | je .vert_sp |
113 | 114 | ||
114 | .horz_sp: |
115 | .horz_sp: |
115 | call .HORZ_WIDTH |
116 | call .HORZ_WIDTH |
116 | call .HORZ_X |
117 | call .HORZ_X |
117 | call .HORZ_HEIGHT |
118 | call .HORZ_HEIGHT |
118 | cmp dword[dock_items.location], 1 |
119 | cmp dword[dock_items.location], 1 |
119 | je .settop |
120 | je .settop |
120 | 121 | ||
121 | .setbottom: |
122 | .setbottom: |
122 | call .HORZ_Y_BOTTOM |
123 | call .HORZ_Y_BOTTOM |
123 | jmp .SETDEF |
124 | jmp .SETDEF |
124 | 125 | ||
125 | .settop: |
126 | .settop: |
126 | call .HORZ_Y_TOP |
127 | call .HORZ_Y_TOP |
127 | jmp .SETDEF |
128 | jmp .SETDEF |
128 | 129 | ||
129 | 130 | ||
130 | .vert_sp: |
131 | .vert_sp: |
131 | call .VERT_WIDTH |
132 | call .VERT_WIDTH |
132 | call .VERT_HEIGHT |
133 | call .VERT_HEIGHT |
133 | call .VERT_Y |
134 | call .VERT_Y |
134 | cmp dword[dock_items.location], 2 |
135 | cmp dword[dock_items.location], 2 |
135 | je .setleft |
136 | je .setleft |
136 | 137 | ||
137 | .setright: |
138 | .setright: |
138 | call .VERT_X_RIGHT |
139 | call .VERT_X_RIGHT |
139 | jmp .SETDEF |
140 | jmp .SETDEF |
140 | 141 | ||
141 | .setleft: |
142 | .setleft: |
142 | call .VERT_X_LEFT |
143 | call .VERT_X_LEFT |
143 | jmp .SETDEF |
144 | jmp .SETDEF |
144 | 145 | ||
145 | ;------------------------------------------------------------------------------- |
146 | ;------------------------------------------------------------------------------- |
146 | .HORZ_WIDTH: |
147 | .HORZ_WIDTH: |
147 | cmp [dock_items.fsize], byte 1 |
148 | cmp [dock_items.fsize], byte 1 |
148 | je @f |
149 | je @f |
149 | mov eax, BUTTON_SIZE |
150 | mov eax, BUTTON_SIZE |
150 | mov ebx, [dock_items.count] |
151 | mov ebx, [dock_items.count] |
151 | imul eax, ebx |
152 | imul eax, ebx |
152 | add eax, 24 |
153 | add eax, 24 |
153 | dec eax |
154 | dec eax |
154 | jmp .set_hw |
155 | jmp .set_hw |
155 | @@: |
156 | @@: |
156 | mcall 14 |
157 | mcall SF_GET_SCREEN_SIZE |
157 | shr eax, 16 |
158 | shr eax, 16 |
158 | .set_hw: |
159 | .set_hw: |
159 | mov [win.width_opn], eax |
160 | mov [win.width_opn], eax |
160 | mov [win.width_hdn], eax |
161 | mov [win.width_hdn], eax |
161 | 162 | ||
162 | ret |
163 | ret |
163 | 164 | ||
164 | ;------------------------------------------------------------------------------- |
165 | ;------------------------------------------------------------------------------- |
165 | .HORZ_X: |
166 | .HORZ_X: |
166 | mcall 14 |
167 | mcall SF_GET_SCREEN_SIZE |
167 | shr eax, 17 |
168 | shr eax, 17 |
168 | mov ecx, [win.width_opn] |
169 | mov ecx, [win.width_opn] |
169 | shr ecx, 1 |
170 | shr ecx, 1 |
170 | sub eax, ecx |
171 | sub eax, ecx |
171 | mov [win.x_opn], eax |
172 | mov [win.x_opn], eax |
172 | mov [win.x_hdn], eax |
173 | mov [win.x_hdn], eax |
173 | 174 | ||
174 | ret |
175 | ret |
175 | 176 | ||
176 | ;------------------------------------------------------------------------------- |
177 | ;------------------------------------------------------------------------------- |
177 | .HORZ_HEIGHT: |
178 | .HORZ_HEIGHT: |
178 | mov dword[win.height_hdn], 3 |
179 | mov dword[win.height_hdn], 3 |
179 | mov dword[win.height_opn], BUTTON_SIZE |
180 | mov dword[win.height_opn], BUTTON_SIZE |
180 | 181 | ||
181 | ret |
182 | ret |
182 | 183 | ||
183 | ;------------------------------------------------------------------------------- |
184 | ;------------------------------------------------------------------------------- |
184 | .HORZ_Y_BOTTOM: |
185 | .HORZ_Y_BOTTOM: |
185 | mcall 14 |
186 | mcall SF_GET_SCREEN_SIZE |
186 | and eax, 0xFFFF |
187 | and eax, 0xFFFF |
187 | dec eax |
188 | dec eax |
188 | mov [win.y_hdn], eax |
189 | mov [win.y_hdn], eax |
189 | sub eax, 43 |
190 | sub eax, 43 |
190 | mov [win.y_opn], eax |
191 | mov [win.y_opn], eax |
191 | 192 | ||
192 | ret |
193 | ret |
193 | 194 | ||
194 | .HORZ_Y_TOP: |
195 | .HORZ_Y_TOP: |
195 | mov dword[win.y_opn], 0 |
196 | mov dword[win.y_opn], 0 |
196 | mov dword[win.y_hdn], 0 |
197 | mov dword[win.y_hdn], 0 |
197 | 198 | ||
198 | ret |
199 | ret |
199 | 200 | ||
200 | ;------------------------------------------------------------------------------- |
201 | ;------------------------------------------------------------------------------- |
201 | .VERT_WIDTH: |
202 | .VERT_WIDTH: |
202 | mov dword[win.width_opn], BUTTON_SIZE |
203 | mov dword[win.width_opn], BUTTON_SIZE |
203 | mov dword[win.width_hdn], 3 |
204 | mov dword[win.width_hdn], 3 |
204 | 205 | ||
205 | ret |
206 | ret |
206 | 207 | ||
207 | ;------------------------------------------------------------------------------- |
208 | ;------------------------------------------------------------------------------- |
208 | .VERT_X_LEFT: |
209 | .VERT_X_LEFT: |
209 | mov dword[win.x_opn], 0 |
210 | mov dword[win.x_opn], 0 |
210 | mov dword[win.x_hdn], 0 |
211 | mov dword[win.x_hdn], 0 |
211 | 212 | ||
212 | ret |
213 | ret |
213 | 214 | ||
214 | .VERT_X_RIGHT: |
215 | .VERT_X_RIGHT: |
215 | mcall 14 |
216 | mcall SF_GET_SCREEN_SIZE |
216 | and eax, 0xFFFF0000 |
217 | and eax, 0xFFFF0000 |
217 | shr eax, 16 |
218 | shr eax, 16 |
218 | mov [win.x_hdn], eax |
219 | mov [win.x_hdn], eax |
219 | sub eax, BUTTON_SIZE |
220 | sub eax, BUTTON_SIZE |
220 | mov [win.x_opn], eax |
221 | mov [win.x_opn], eax |
221 | 222 | ||
222 | ret |
223 | ret |
223 | 224 | ||
224 | ;------------------------------------------------------------------------------- |
225 | ;------------------------------------------------------------------------------- |
225 | .VERT_HEIGHT: |
226 | .VERT_HEIGHT: |
226 | cmp [dock_items.fsize], byte 1 |
227 | cmp [dock_items.fsize], byte 1 |
227 | je @f |
228 | je @f |
228 | mov eax, BUTTON_SIZE |
229 | mov eax, BUTTON_SIZE |
229 | mov ebx, [dock_items.count] |
230 | mov ebx, [dock_items.count] |
230 | imul eax, ebx |
231 | imul eax, ebx |
231 | dec eax |
232 | dec eax |
232 | jmp .set_vh |
233 | jmp .set_vh |
233 | @@: |
234 | @@: |
234 | mcall 14 |
235 | mcall SF_GET_SCREEN_SIZE |
235 | and eax, 0xFFFF |
236 | and eax, 0xFFFF |
236 | .set_vh: |
237 | .set_vh: |
237 | mov [win.height_opn], eax |
238 | mov [win.height_opn], eax |
238 | mov [win.height_hdn], eax |
239 | mov [win.height_hdn], eax |
239 | 240 | ||
240 | ret |
241 | ret |
241 | 242 | ||
242 | ;------------------------------------------------------------------------------- |
243 | ;------------------------------------------------------------------------------- |
243 | .VERT_Y: |
244 | .VERT_Y: |
244 | mcall 14 |
245 | mcall SF_GET_SCREEN_SIZE |
245 | and eax, 0xFFFF |
246 | and eax, 0xFFFF |
246 | shr eax, 1 |
247 | shr eax, 1 |
247 | 248 | ||
248 | mov esi, [win.height_opn] |
249 | mov esi, [win.height_opn] |
249 | shr esi, 1 |
250 | shr esi, 1 |
250 | sub eax, esi |
251 | sub eax, esi |
251 | 252 | ||
252 | mov [win.y_hdn], eax |
253 | mov [win.y_hdn], eax |
253 | mov [win.y_opn], eax |
254 | mov [win.y_opn], eax |
254 | 255 | ||
255 | ret |
256 | ret |
256 | 257 | ||
257 | ;------------------------------------------------------------------------------- |
258 | ;------------------------------------------------------------------------------- |
258 | .SETDEF: |
259 | .SETDEF: |
259 | mov eax, [win.width_hdn] |
260 | mov eax, [win.width_hdn] |
260 | mov [win.width], eax |
261 | mov [win.width], eax |
261 | 262 | ||
262 | mov eax, [win.x_hdn] |
263 | mov eax, [win.x_hdn] |
263 | mov [win.x], eax |
264 | mov [win.x], eax |
264 | 265 | ||
265 | mov eax, [win.height_hdn] |
266 | mov eax, [win.height_hdn] |
266 | mov [win.height], eax |
267 | mov [win.height], eax |
267 | 268 | ||
268 | mov eax, [win.y_hdn] |
269 | mov eax, [win.y_hdn] |
269 | mov [win.y], eax |
270 | mov [win.y], eax |
270 | 271 | ||
271 | cmp byte[dock_items.ashow],1 |
272 | cmp byte[dock_items.ashow],1 |
272 | jne .not_ashow |
273 | jne .not_ashow |
273 | 274 | ||
274 | mov eax, [win.width_opn] |
275 | mov eax, [win.width_opn] |
275 | mov [win.width], eax |
276 | mov [win.width], eax |
276 | 277 | ||
277 | mov eax, [win.x_opn] |
278 | mov eax, [win.x_opn] |
278 | mov [win.x], eax |
279 | mov [win.x], eax |
279 | 280 | ||
280 | mov eax, [win.height_opn] |
281 | mov eax, [win.height_opn] |
281 | mov [win.height], eax |
282 | mov [win.height], eax |
282 | 283 | ||
283 | mov eax, [win.y_opn] |
284 | mov eax, [win.y_opn] |
284 | mov [win.y], eax |
285 | mov [win.y], eax |
285 | 286 | ||
286 | .not_ashow: |
287 | .not_ashow: |
287 | 288 | ||
288 | 289 | ||
289 | ;------------------------------------------------------------------------------- |
290 | ;------------------------------------------------------------------------------- |
290 | ; ==== START ==== |
291 | ; ==== START ==== |
291 | mcall 9, win.procinfo, -1 |
292 | mcall SF_THREAD_INFO, win.procinfo, -1 |
292 | mov ecx, [win.procinfo + 30] |
293 | mov ecx, [win.procinfo + 30] |
293 | mcall 18, 21 |
294 | mcall SF_SYSTEM, SSF_GET_THREAD_SLOT |
294 | and eax, 0xFFFF |
295 | and eax, 0xFFFF |
295 | mov [win.sid], eax |
296 | mov [win.sid], eax |
296 | 297 | ||
297 | call main_loop |
298 | call main_loop |
298 | ;------------------------------------------------------------------------------- |
299 | ;------------------------------------------------------------------------------- |
299 | exit: |
300 | exit: |
300 | stdcall mem.Free, [img_data.rgb_object] |
301 | stdcall mem.Free, [img_data.rgb_object] |
301 | mcall 18, 2, [nwin.sid] |
302 | mcall SF_SYSTEM, SSF_TERMINATE_THREAD, [nwin.sid] |
302 | mcall -1 |
303 | mcall SF_TERMINATE_PROCESS |
303 | ;------------------------------------------------------------------------------- |
304 | ;------------------------------------------------------------------------------- |
- | 305 | align 4 |
|
304 | main_loop: |
306 | main_loop: |
305 | mcall 10 |
307 | mcall SF_WAIT_EVENT |
306 | 308 | ||
307 | cmp eax, EV_REDRAW |
309 | cmp eax, EV_REDRAW |
308 | je event_redraw |
310 | je event_redraw |
309 | 311 | ||
310 | cmp eax, EV_BUTTON |
312 | cmp eax, EV_BUTTON |
311 | je event_button |
313 | je event_button |
312 | 314 | ||
313 | cmp eax, EV_MOUSE |
315 | cmp eax, EV_MOUSE |
314 | je event_mouse |
316 | je event_mouse |
315 | 317 | ||
316 | jmp main_loop |
318 | jmp main_loop |
317 | ;------------------------------------------------------------------------------- |
319 | ;------------------------------------------------------------------------------- |
318 | event_redraw: |
320 | event_redraw: |
319 | call DRAW_WINDOW |
321 | call DRAW_WINDOW |
320 | jmp main_loop |
322 | jmp main_loop |
321 | ;------------------------------------------------------------------------------- |
323 | ;------------------------------------------------------------------------------- |
322 | DRAW_WINDOW: |
324 | DRAW_WINDOW: |
323 | mcall 12, 1 |
325 | mcall SF_REDRAW, SSF_BEGIN_DRAW |
324 | 326 | ||
325 | mov esi, [color.bg] |
327 | mov esi, [color.bg] |
326 | or esi, 0x01000000 |
328 | or esi, 0x01000000 |
327 | mcall 0, <[win.x], [win.width]>, <[win.y], [win.height]>, [color.bg], , [color.frame] |
329 | mcall SF_CREATE_WINDOW, <[win.x], [win.width]>, <[win.y], [win.height]>, [color.bg], , [color.frame] |
328 | 330 | ||
329 | mov edi, 0 |
331 | xor edi, edi |
330 | @@: |
332 | @@: |
331 | cmp edi, [dock_items.count] |
333 | cmp edi, [dock_items.count] |
332 | je @f |
334 | je @f |
333 | 335 | ||
334 | push edi |
336 | push edi |
335 | mov eax, 8 |
337 | mov eax, SF_DEFINE_BUTTON |
336 | mov edx, 0x60000002 |
338 | mov edx, 0x60000002 |
337 | mov esi, [color.bg] |
339 | mov esi, [color.bg] |
338 | imul edi, BUTTON_SIZE |
340 | imul edi, BUTTON_SIZE |
339 | add edi, 12 |
341 | add edi, 12 |
340 | shl edi, 16 |
342 | shl edi, 16 |
341 | add edi, BUTTON_SIZE |
343 | add edi, BUTTON_SIZE |
342 | cmp byte[win.isvert], 1 |
344 | cmp byte[win.isvert], 1 |
343 | je .vert_btn |
345 | je .vert_btn |
344 | mcall , edi, <0, BUTTON_SIZE> |
346 | mcall , edi, <0, BUTTON_SIZE> |
345 | jmp .endbtn |
347 | jmp .endbtn |
346 | .vert_btn: |
348 | .vert_btn: |
347 | sub edi, 12 shl 16 |
349 | sub edi, 12 shl 16 |
348 | mcall , <0, BUTTON_SIZE>, edi |
350 | mcall , <0, BUTTON_SIZE>, edi |
349 | .endbtn: |
351 | .endbtn: |
350 | pop edi |
352 | pop edi |
351 | 353 | ||
352 | cmp byte[dock_items.separator + edi], 1 |
354 | cmp byte[dock_items.separator + edi], 1 |
353 | jne .end_separator |
355 | jne .end_separator |
354 | 356 | ||
355 | .draw_separator: |
357 | .draw_separator: |
356 | push ebx |
358 | push ebx |
357 | push ecx |
359 | push ecx |
358 | 360 | ||
359 | mov eax, 13 |
361 | mov eax, SF_DRAW_RECT |
360 | mov ebx, edi |
362 | mov ebx, edi |
361 | imul ebx, BUTTON_SIZE |
363 | imul ebx, BUTTON_SIZE |
362 | add ebx, BUTTON_SIZE |
364 | add ebx, BUTTON_SIZE |
363 | add ebx, 12 |
365 | add ebx, 12-1 |
364 | dec ebx |
- | |
365 | shl ebx, 16 |
366 | shl ebx, 16 |
366 | add ebx, 2 |
367 | add ebx, 2 |
367 | 368 | ||
368 | cmp byte[win.isvert], 1 |
369 | cmp byte[win.isvert], 1 |
369 | je .vert_draw_sep |
370 | je .vert_draw_sep |
370 | mcall , , <4, 36>, [color.frame] |
371 | mcall , , <4, 36>, [color.frame] |
371 | jmp .end_inner_sep |
372 | jmp .end_inner_sep |
372 | .vert_draw_sep: |
373 | .vert_draw_sep: |
373 | sub ebx, 12 shl 16 |
374 | sub ebx, 12 shl 16 |
374 | mov ecx, ebx |
375 | mov ecx, ebx |
375 | mcall , <4, 36>, , [color.frame] |
376 | mcall , <4, 36>, , [color.frame] |
376 | .end_inner_sep: |
377 | .end_inner_sep: |
377 | pop ecx |
378 | pop ecx |
378 | pop ebx |
379 | pop ebx |
379 | .end_separator: |
380 | .end_separator: |
380 | 381 | ||
381 | cmp byte[win.isvert], 1 |
382 | cmp byte[win.isvert], 1 |
382 | je .vert_dig |
383 | je .vert_dig |
383 | mov edx, ebx |
384 | mov edx, ebx |
384 | and edx, 0xFFFF0000 |
385 | and edx, 0xFFFF0000 |
385 | add edx, 0x00060006 |
386 | add edx, 0x00060006 |
386 | jmp .digend |
387 | jmp .digend |
387 | .vert_dig: |
388 | .vert_dig: |
388 | mov edx, ecx |
389 | mov edx, ecx |
389 | and edx, 0xFFFF0000 |
390 | and edx, 0xFFFF0000 |
390 | shr edx, 16 |
391 | shr edx, 16 |
391 | add edx, 0x00060006 |
392 | add edx, 0x00060006 |
392 | .digend: |
393 | .digend: |
393 | 394 | ||
394 | imul ebx, edi, 4 |
395 | imul ebx, edi, 4 |
395 | add ebx, dock_items.icon |
396 | add ebx, dock_items.icon |
396 | mov ebx, [ebx] |
397 | mov ebx, [ebx] |
397 | imul ebx, ICON_SIZE_BGR |
398 | imul ebx, ICON_SIZE_BGR |
398 | add ebx, [img_data.rgb_object] |
399 | add ebx, [img_data.rgb_object] |
399 | 400 | ||
400 | mcall 7, , <32, 32> |
401 | mcall SF_PUT_IMAGE, , <32, 32> |
401 | 402 | ||
402 | inc edi |
403 | inc edi |
403 | jmp @b |
404 | jmp @b |
404 | @@: |
405 | @@: |
405 | 406 | ||
406 | mcall 12, 2 |
407 | mcall SF_REDRAW, SSF_END_DRAW |
407 | 408 | ||
408 | ret |
409 | ret |
409 | ;------------------------------------------------------------------------------- |
410 | ;------------------------------------------------------------------------------- |
410 | event_button: |
411 | event_button: |
411 | mcall 17 |
412 | mcall SF_GET_BUTTON |
412 | 413 | ||
413 | ;; it must not be possible to close dock |
414 | ;; it must not be possible to close dock |
414 | ;cmp ah, 1 |
415 | ;cmp ah, 1 |
415 | ;je .button_close |
416 | ;je .button_close |
416 | 417 | ||
417 | cmp ah, 2 |
418 | cmp ah, 2 |
418 | je .button_dock |
419 | je .button_dock |
419 | 420 | ||
420 | jmp @f |
421 | jmp @f |
421 | 422 | ||
422 | ;.button_close: |
423 | ;.button_close: |
423 | ; jmp exit |
424 | ; jmp exit |
424 | 425 | ||
425 | .button_dock: |
426 | .button_dock: |
426 | mov edi, [win.button_index] |
427 | mov edi, [win.button_index] |
427 | imul edi, 256 |
428 | imul edi, 256 |
428 | 429 | ||
429 | mov dword[fi.p00], 7 |
430 | mov dword[fi.p00], SSF_START_APP |
430 | 431 | ||
431 | mov esi, edi |
432 | mov esi, edi |
432 | add esi, dock_items.path |
433 | add esi, dock_items.path |
433 | mov dword[fi.p21], esi |
434 | mov dword[fi.p21], esi |
434 | 435 | ||
435 | mov esi, edi |
436 | mov esi, edi |
436 | add esi, dock_items.param |
437 | add esi, dock_items.param |
437 | mov dword[fi.p08], esi |
438 | mov dword[fi.p08], esi |
438 | 439 | ||
439 | mcall 70, fi |
440 | mcall SF_FILE, fi |
440 | 441 | ||
441 | mov ecx, eax |
442 | mov ecx, eax |
442 | mcall 18, 21 |
443 | mcall SF_SYSTEM, SSF_GET_THREAD_SLOT |
443 | and eax, 0xFFFF |
444 | and eax, 0xFFFF |
444 | mov [win.psid], eax |
445 | mov [win.psid], eax |
445 | 446 | ||
446 | jmp wnd_hide |
447 | jmp wnd_hide |
447 | 448 | ||
448 | @@: |
449 | @@: |
449 | jmp main_loop |
450 | jmp main_loop |
450 | ;------------------------------------------------------------------------------- |
451 | ;------------------------------------------------------------------------------- |
451 | event_mouse: |
452 | event_mouse: |
452 | ; ==== IS MOUSE INNER ==== |
453 | ; ==== IS MOUSE INNER ==== |
453 | mcall 37, 1 |
454 | mcall SF_MOUSE_GET, SSF_WINDOW_POSITION |
454 | mov edi, eax |
455 | mov edi, eax |
455 | mov esi, eax |
456 | mov esi, eax |
456 | shr edi, 16 |
457 | shr edi, 16 |
457 | and esi, 0xFFFF |
458 | and esi, 0xFFFF |
458 | 459 | ||
459 | cmp edi, 0 |
460 | cmp edi, 0 |
460 | jl wnd_hide |
461 | jl wnd_hide |
461 | dec edi |
462 | dec edi |
462 | cmp edi, [win.width] |
463 | cmp edi, [win.width] |
463 | jg wnd_hide |
464 | jg wnd_hide |
464 | cmp esi, 0 |
465 | cmp esi, 0 |
465 | jl wnd_hide |
466 | jl wnd_hide |
466 | dec esi |
467 | dec esi |
467 | cmp esi, [win.height] |
468 | cmp esi, [win.height] |
468 | jg wnd_hide |
469 | jg wnd_hide |
469 | 470 | ||
470 | ; ==== COUNT INDEX ==== |
471 | ; ==== COUNT INDEX ==== |
471 | 472 | ||
472 | mov eax, [dock_items.location] |
473 | mov eax, [dock_items.location] |
473 | and eax, 1b |
474 | and eax, 1b |
474 | cmp eax, 1 |
475 | cmp eax, 1 |
475 | jne .vert |
476 | jne .vert |
476 | mov eax, edi |
477 | mov eax, edi |
477 | jmp .nxt |
478 | jmp .nxt |
478 | 479 | ||
479 | .vert: |
480 | .vert: |
480 | mov eax, esi |
481 | mov eax, esi |
481 | add eax, 12 |
482 | add eax, 12 |
482 | 483 | ||
483 | .nxt: |
484 | .nxt: |
484 | sub eax, 12 |
485 | sub eax, 12 |
485 | mov edx, 0 |
486 | mov edx, 0 |
486 | mov ebx, BUTTON_SIZE |
487 | mov ebx, BUTTON_SIZE |
487 | div ebx |
488 | div ebx |
488 | 489 | ||
489 | cmp eax, [dock_items.count] |
490 | cmp eax, [dock_items.count] |
490 | jge .set0 |
491 | jge .set0 |
491 | jmp .nxtcmp |
492 | jmp .nxtcmp |
492 | 493 | ||
493 | .set0: |
494 | .set0: |
494 | mov eax, 100 |
495 | mov eax, 100 |
495 | 496 | ||
496 | .nxtcmp: |
497 | .nxtcmp: |
497 | cmp [win.button_index], eax |
498 | cmp [win.button_index], eax |
498 | je .nxt2 |
499 | je .nxt2 |
499 | 500 | ||
500 | push dword[win.button_index] |
501 | push dword[win.button_index] |
501 | pop dword[win.prev_index] |
502 | pop dword[win.prev_index] |
502 | 503 | ||
503 | mov [win.button_index], eax |
504 | mov [win.button_index], eax |
504 | 505 | ||
505 | ; ==== DRAW SELECTION ==== |
506 | ; ==== DRAW SELECTION ==== |
506 | call DRAW_SELECTION |
507 | call DRAW_SELECTION |
507 | 508 | ||
508 | .nxt2: |
509 | .nxt2: |
509 | mov eax, [win.button_index] |
510 | mov eax, [win.button_index] |
510 | imul eax, BUTTON_SIZE |
511 | imul eax, BUTTON_SIZE |
511 | cmp byte[win.isvert], 1 |
512 | cmp byte[win.isvert], 1 |
512 | je .vert_name |
513 | je .vert_name |
513 | add eax, [win.x] |
514 | add eax, [win.x] |
514 | mov [nwin.x], eax |
515 | mov [nwin.x], eax |
515 | mov byte[nwin.change_shape], 1 |
516 | mov byte[nwin.change_shape], 1 |
516 | mcall 13, <0, [win.width]>, <[win.height], 1>, [color.frame] |
517 | mcall SF_DRAW_RECT, <0, [win.width]>, <[win.height], 1>, [color.frame] |
517 | jmp .vert_end |
518 | jmp .vert_end |
518 | .vert_name: |
519 | .vert_name: |
519 | add eax, [win.y] |
520 | add eax, [win.y] |
520 | add eax, 14 |
521 | add eax, 14 |
521 | mov [nwin.y], eax |
522 | mov [nwin.y], eax |
522 | mov byte[nwin.change_shape], 1 |
523 | mov byte[nwin.change_shape], 1 |
523 | mcall 13, <[win.width], 1>, <0, [win.height]>, [color.frame] |
524 | mcall SF_DRAW_RECT, <[win.width], 1>, <0, [win.height]>, [color.frame] |
524 | .vert_end: |
525 | .vert_end: |
525 | 526 | ||
526 | ; ==== OPEN/CLOSE WINDOW ==== |
527 | ; ==== OPEN/CLOSE WINDOW ==== |
527 | cmp byte[win.state], 1 |
528 | cmp byte[win.state], 1 |
528 | je main_loop |
529 | je main_loop |
529 | 530 | ||
530 | mov edx, esp |
531 | mov edx, esp |
531 | add edx, 512 |
532 | add edx, 512 |
532 | mcall 51, 1, n_main |
533 | mcall SF_CREATE_THREAD, 1, n_main |
533 | - | ||
534 | mov eax, 18 |
- | |
535 | 534 | ||
536 | mcall , 7 |
535 | mcall SF_SYSTEM, SSF_GET_ACTIVE_WINDOW |
537 | mov [win.psid], eax |
536 | mov [win.psid], eax |
538 | 537 | ||
539 | mcall 18, 3, [win.sid] |
538 | mcall SF_SYSTEM, SSF_FOCUS_WINDOW, [win.sid] |
540 | 539 | ||
541 | mov byte[win.state], 1 |
540 | mov byte[win.state], 1 |
542 | 541 | ||
543 | mov eax, [win.width_opn] |
542 | mov eax, [win.width_opn] |
544 | mov [win.width], eax |
543 | mov [win.width], eax |
545 | 544 | ||
546 | mov eax, [win.x_opn] |
545 | mov eax, [win.x_opn] |
547 | mov [win.x], eax |
546 | mov [win.x], eax |
548 | 547 | ||
549 | mov eax, [win.height_opn] |
548 | mov eax, [win.height_opn] |
550 | mov [win.height], eax |
549 | mov [win.height], eax |
551 | 550 | ||
552 | mov eax, [win.y_opn] |
551 | mov eax, [win.y_opn] |
553 | mov [win.y], eax |
552 | mov [win.y], eax |
554 | 553 | ||
555 | 554 | ||
556 | cmp byte[dock_items.ashow],1 |
555 | cmp byte[dock_items.ashow],1 |
557 | je .change_nothing |
556 | je .change_nothing |
558 | mcall 67, [win.x], [win.y], [win.width], [win.height] |
557 | mcall SF_CHANGE_WINDOW, [win.x], [win.y], [win.width], [win.height] |
559 | 558 | ||
560 | .change_nothing: |
559 | .change_nothing: |
561 | call DRAW_WINDOW |
560 | call DRAW_WINDOW |
562 | call DRAW_SELECTION |
561 | call DRAW_SELECTION |
563 | jmp main_loop |
562 | jmp main_loop |
564 | 563 | ||
565 | ;------------------------------------------------------------------------------- |
564 | ;------------------------------------------------------------------------------- |
566 | wnd_hide: |
565 | wnd_hide: |
567 | cmp byte[win.state], 0 |
566 | cmp byte[win.state], 0 |
568 | je main_loop |
567 | je main_loop |
569 | 568 | ||
570 | mov byte[nwin.close], 1 |
569 | mov byte[nwin.close], 1 |
571 | 570 | ||
572 | mcall 18, 3, [win.psid] |
571 | mcall SF_SYSTEM, SSF_FOCUS_WINDOW, [win.psid] |
573 | 572 | ||
574 | mov byte[win.state], 0 |
573 | mov byte[win.state], 0 |
575 | mov byte[win.button_index], -1 |
574 | mov byte[win.button_index], -1 |
576 | 575 | ||
577 | cmp byte[dock_items.ashow],1 |
576 | cmp byte[dock_items.ashow],1 |
578 | je .do_no_hide |
577 | je .do_no_hide |
579 | 578 | ||
580 | mov eax, [win.width_hdn] |
579 | mov eax, [win.width_hdn] |
581 | mov [win.width], eax |
580 | mov [win.width], eax |
582 | 581 | ||
583 | mov eax, [win.x_hdn] |
582 | mov eax, [win.x_hdn] |
584 | mov [win.x], eax |
583 | mov [win.x], eax |
585 | 584 | ||
586 | mov eax, [win.height_hdn] |
585 | mov eax, [win.height_hdn] |
587 | mov [win.height], eax |
586 | mov [win.height], eax |
588 | 587 | ||
589 | mov eax, [win.y_hdn] |
588 | mov eax, [win.y_hdn] |
590 | mov [win.y], eax |
589 | mov [win.y], eax |
591 | 590 | ||
592 | mcall 67, [win.x], [win.y], [win.width], [win.height] |
591 | mcall SF_CHANGE_WINDOW, [win.x], [win.y], [win.width], [win.height] |
593 | 592 | ||
594 | .do_no_hide: |
593 | .do_no_hide: |
595 | call DRAW_WINDOW |
594 | call DRAW_WINDOW |
596 | jmp main_loop |
595 | jmp main_loop |
597 | ;------------------------------------------------------------------------------- |
596 | ;------------------------------------------------------------------------------- |
598 | DRAW_SELECTION: |
597 | DRAW_SELECTION: |
599 | mov ebx, [win.prev_index] |
598 | mov ebx, [win.prev_index] |
600 | imul ebx, BUTTON_SIZE |
599 | imul ebx, BUTTON_SIZE |
601 | add ebx, 14 |
600 | add ebx, 14 |
602 | shl ebx, 16 |
601 | shl ebx, 16 |
603 | add ebx, 40 |
602 | add ebx, 40 |
604 | mov ecx, 0x00020028 |
603 | mov ecx, 0x00020028 |
605 | 604 | ||
606 | cmp byte[win.isvert], 1 |
605 | cmp byte[win.isvert], 1 |
607 | jne @f |
606 | jne @f |
608 | xchg ebx, ecx |
607 | xchg ebx, ecx |
609 | sub ecx, 0x000C0000 |
608 | sub ecx, 0x000C0000 |
610 | @@: |
609 | @@: |
611 | 610 | ||
612 | mcall 13, , , [color.bg] |
611 | mcall SF_DRAW_RECT, , , [color.bg] |
613 | 612 | ||
614 | mov edx, ebx |
613 | mov edx, ebx |
615 | shr ecx, 16 |
614 | shr ecx, 16 |
616 | mov dx, cx |
615 | mov dx, cx |
617 | add edx, 0x00040004 |
616 | add edx, 0x00040004 |
618 | 617 | ||
619 | mov ebx, [win.prev_index] |
618 | mov ebx, [win.prev_index] |
620 | imul ebx, 4 |
619 | imul ebx, 4 |
621 | add ebx, dock_items.icon |
620 | add ebx, dock_items.icon |
622 | mov ebx, [ebx] |
621 | mov ebx, [ebx] |
623 | imul ebx, ICON_SIZE_BGR |
622 | imul ebx, ICON_SIZE_BGR |
624 | add ebx, [img_data.rgb_object] |
623 | add ebx, [img_data.rgb_object] |
625 | 624 | ||
626 | mcall 7, , <32, 32> |
625 | mcall SF_PUT_IMAGE, , <32, 32> |
627 | 626 | ||
628 | mov ebx, [win.button_index] |
627 | mov ebx, [win.button_index] |
629 | imul ebx, BUTTON_SIZE |
628 | imul ebx, BUTTON_SIZE |
630 | add ebx, 14 |
629 | add ebx, 14 |
631 | shl ebx, 16 |
630 | shl ebx, 16 |
632 | add ebx, 40 |
631 | add ebx, 40 |
633 | mov ecx, 0x00020028 |
632 | mov ecx, 0x00020028 |
634 | 633 | ||
635 | cmp byte[win.isvert], 1 |
634 | cmp byte[win.isvert], 1 |
636 | jne @f |
635 | jne @f |
637 | xchg ebx, ecx |
636 | xchg ebx, ecx |
638 | sub ecx, 0x000C0000 |
637 | sub ecx, 0x000C0000 |
639 | @@: |
638 | @@: |
640 | 639 | ||
641 | mcall 13, , , [color.bt] |
640 | mcall SF_DRAW_RECT, , , [color.bt] |
642 | 641 | ||
643 | mov edx, ebx |
642 | mov edx, ebx |
644 | shr ecx, 16 |
643 | shr ecx, 16 |
645 | mov dx, cx |
644 | mov dx, cx |
646 | add edx, 0x00040004 |
645 | add edx, 0x00040004 |
647 | 646 | ||
648 | mov ecx, [win.button_index] |
647 | mov ecx, [win.button_index] |
649 | imul ecx, 4 |
648 | imul ecx, 4 |
650 | add ecx, dock_items.icon |
649 | add ecx, dock_items.icon |
651 | mov ecx, [ecx] |
650 | mov ecx, [ecx] |
652 | imul ecx, ICON_SIZE_BGR |
651 | imul ecx, ICON_SIZE_BGR |
653 | add ecx, [img_data.rgb_object] |
652 | add ecx, [img_data.rgb_object] |
654 | 653 | ||
655 | mov ebx, sel_img |
654 | mov ebx, sel_img |
656 | 655 | ||
657 | mov edi, 0 |
656 | mov edi, 0 |
658 | @@: |
657 | @@: |
659 | mov al, byte[ecx + 2] |
658 | mov al, byte[ecx + 2] |
660 | shl eax, 8 |
659 | shl eax, 8 |
661 | mov al, byte[ecx + 1] |
660 | mov al, byte[ecx + 1] |
662 | shl eax, 8 |
661 | shl eax, 8 |
663 | mov al, byte[ecx + 0] |
662 | mov al, byte[ecx + 0] |
664 | 663 | ||
665 | or eax, 0x10000000 |
664 | or eax, 0x10000000 |
666 | cmp eax, [color.bg] |
665 | cmp eax, [color.bg] |
667 | jne .notbg |
666 | jne .notbg |
668 | mov eax, [color.bt] |
667 | mov eax, [color.bt] |
669 | .notbg: |
668 | .notbg: |
670 | 669 | ||
671 | mov byte[ebx + 0], al |
670 | mov byte[ebx + 0], al |
672 | shr eax, 8 |
671 | shr eax, 8 |
673 | mov byte[ebx + 1], al |
672 | mov byte[ebx + 1], al |
674 | shr eax, 8 |
673 | shr eax, 8 |
675 | mov byte[ebx + 2], al |
674 | mov byte[ebx + 2], al |
676 | 675 | ||
677 | add ebx, 3 |
676 | add ebx, 3 |
678 | add ecx, 3 |
677 | add ecx, 3 |
679 | 678 | ||
680 | add edi, 3 |
679 | add edi, 3 |
681 | 680 | ||
682 | cmp edi, 1024 * 3 |
681 | cmp edi, 1024 * 3 |
683 | jne @b |
682 | jne @b |
684 | 683 | ||
685 | mcall 7, sel_img, <32, 32> |
684 | mcall SF_PUT_IMAGE, sel_img, <32, 32> |
686 | 685 | ||
687 | ret |
686 | ret |
688 | ;------------------------------------------------------------------------------- |
687 | ;------------------------------------------------------------------------------- |
689 | proc sections_callback, _file_name, _section_name |
688 | proc sections_callback, _file_name, _section_name |
690 | mov eax, [_section_name] |
689 | mov eax, [_section_name] |
691 | cmp byte[eax], '@' |
690 | cmp byte[eax], '@' |
692 | jne @f |
691 | jne @f |
693 | 692 | ||
694 | dec dword[dock_items.count] |
693 | dec dword[dock_items.count] |
695 | jmp .endproc |
694 | jmp .endproc |
696 | 695 | ||
697 | @@: |
696 | @@: |
698 | ; ==== GET NAME ==== |
697 | ; ==== GET NAME ==== |
699 | mov ebx, [dock_items.count] |
698 | mov ebx, [dock_items.count] |
700 | imul ebx, 16 |
699 | imul ebx, 16 |
701 | add ebx, dock_items.name |
700 | add ebx, dock_items.name |
702 | 701 | ||
703 | mov eax, [_section_name] |
702 | mov eax, [_section_name] |
704 | 703 | ||
705 | mov edi, 0 |
704 | mov edi, 0 |
706 | @@: |
705 | @@: |
707 | mov cl, byte[eax] |
706 | mov cl, byte[eax] |
708 | mov byte[ebx + edi], cl |
707 | mov byte[ebx + edi], cl |
709 | 708 | ||
710 | inc eax |
709 | inc eax |
711 | inc edi |
710 | inc edi |
712 | cmp edi, 10 |
711 | cmp edi, 10 |
713 | jne @b |
712 | jne @b |
714 | 713 | ||
715 | ; ==== GET PATH ==== |
714 | ; ==== GET PATH ==== |
716 | mov ebx, [dock_items.count] |
715 | mov ebx, [dock_items.count] |
717 | imul ebx, 256 |
716 | imul ebx, 256 |
718 | add ebx, dock_items.path |
717 | add ebx, dock_items.path |
719 | 718 | ||
720 | invoke ini.get_str, [_file_name], [_section_name], ini_data.path_name, ebx, 256, 0 |
719 | invoke ini.get_str, [_file_name], [_section_name], ini_data.path_name, ebx, 256, 0 |
721 | 720 | ||
722 | ; === GET PARAM === |
721 | ; === GET PARAM === |
723 | mov ebx, [dock_items.count] |
722 | mov ebx, [dock_items.count] |
724 | imul ebx, 256 |
723 | imul ebx, 256 |
725 | add ebx, dock_items.param |
724 | add ebx, dock_items.param |
726 | 725 | ||
727 | invoke ini.get_str, [_file_name], [_section_name], ini_data.param_name, ebx, 256, 0 |
726 | invoke ini.get_str, [_file_name], [_section_name], ini_data.param_name, ebx, 256, 0 |
728 | 727 | ||
729 | ; ==== GET ICON ==== |
728 | ; ==== GET ICON ==== |
730 | invoke ini.get_int, [_file_name], [_section_name], ini_data.icon_name, 0 |
729 | invoke ini.get_int, [_file_name], [_section_name], ini_data.icon_name, 0 |
731 | 730 | ||
732 | mov ebx, [dock_items.count] |
731 | mov ebx, [dock_items.count] |
733 | imul ebx, 4 |
732 | imul ebx, 4 |
734 | mov [dock_items.icon + ebx], eax |
733 | mov [dock_items.icon + ebx], eax |
735 | 734 | ||
736 | ; ==== GET SEPARATOR ==== |
735 | ; ==== GET SEPARATOR ==== |
737 | invoke ini.get_int, [_file_name], [_section_name], ini_data.separator_name, 0 |
736 | invoke ini.get_int, [_file_name], [_section_name], ini_data.separator_name, 0 |
738 | 737 | ||
739 | mov ebx, [dock_items.count] |
738 | mov ebx, [dock_items.count] |
740 | mov byte[dock_items.separator + ebx], al |
739 | mov byte[dock_items.separator + ebx], al |
741 | 740 | ||
742 | ; ====== END ======= |
741 | ; ====== END ======= |
743 | .endproc: |
742 | .endproc: |
744 | mov eax, 1 |
743 | mov eax, 1 |
745 | inc dword[dock_items.count] |
744 | inc dword[dock_items.count] |
746 | ret |
745 | ret |
747 | endp |
746 | endp |
748 | ;------------------------------------------------------------------------------- |
747 | ;------------------------------------------------------------------------------- |
749 | include "MEMORY.INC"32,>32,>0,>[win.width],>[win.height],>0,>32,>4,>4,>0,>0,>[win.y],>[win.x],> |
748 | include "MEMORY.INC"32,>32,>0,>[win.width],>[win.height],>0,>32,>4,>4,>0,>0,>[win.y],>[win.x],> |