Rev 9641 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
31 | halyavin | 1 | ; |
51 | mikedld | 2 | ; UNIFORM WINDOW COLOURS & SKIN |
31 | halyavin | 3 | ; |
4 | ; Compile with FASM for Menuet |
||
5 | ; |
||
6 | ; < russian edition by Ivan Poddubny > |
||
51 | mikedld | 7 | ; < skin selection by Mike Semenyako > |
3435 | mario79 | 8 | ;****************************************************************************** |
9 | ; last update: 01/04/2013 |
||
10 | ; written by: Marat Zakiyanov aka Mario79, aka Mario |
||
11 | ; changes: select colors with ColorDialog |
||
12 | ; some redesign of the look of the program |
||
13 | ;****************************************************************************** |
||
1611 | mario79 | 14 | ; last update: 10/09/2010 |
15 | ; written by: Marat Zakiyanov aka Mario79, aka Mario |
||
16 | ; changes: select path with OpenDialog |
||
31 | halyavin | 17 | ;****************************************************************************** |
3271 | mario79 | 18 | use32 |
19 | org 0 |
||
20 | db 'MENUET01' ; identifier |
||
21 | dd 1 ; header version |
||
22 | dd START ; start address |
||
3435 | mario79 | 23 | dd IM_END ; file size |
24 | dd I_END ; memory |
||
3271 | mario79 | 25 | dd stacktop ; stack pointer |
10017 | Doczom | 26 | M01header.params: |
7937 | leency | 27 | dd app_param ; parameters |
3271 | mario79 | 28 | dd cur_dir_path ; path to file |
29 | |||
1611 | mario79 | 30 | include 'lang.inc' |
7639 | leency | 31 | include '../../../proc32.inc' |
1702 | Lrz | 32 | include '../../../config.inc' ;for nightbuild |
1611 | mario79 | 33 | include '../../../macros.inc' |
7937 | leency | 34 | include '../../../string.inc' |
7639 | leency | 35 | include '../../../dll.inc' |
1611 | mario79 | 36 | include 'kglobals.inc' |
37 | include 'unpacker.inc' |
||
9568 | IgorA | 38 | include '../../../KOSfuncs.inc' |
39 | include '../../../load_lib.mac' |
||
1611 | mario79 | 40 | @use_library |
31 | halyavin | 41 | ;****************************************************************************** |
3435 | mario79 | 42 | ;-------------------------------------- |
51 | mikedld | 43 | struct SKIN_HEADER |
485 | heavyiron | 44 | ident dd ? |
45 | version dd ? |
||
46 | params dd ? |
||
47 | buttons dd ? |
||
48 | bitmaps dd ? |
||
51 | mikedld | 49 | ends |
3435 | mario79 | 50 | ;-------------------------------------- |
51 | mikedld | 51 | struct SKIN_PARAMS |
485 | heavyiron | 52 | skin_height dd ? |
53 | margin.right dw ? |
||
54 | margin.left dw ? |
||
55 | margin.bottom dw ? |
||
56 | margin.top dw ? |
||
57 | colors.inner dd ? |
||
58 | colors.outer dd ? |
||
59 | colors.frame dd ? |
||
60 | colors_1.inner dd ? |
||
61 | colors_1.outer dd ? |
||
62 | colors_1.frame dd ? |
||
63 | dtp.size dd ? |
||
64 | dtp.data db 40 dup (?) |
||
51 | mikedld | 65 | ends |
3435 | mario79 | 66 | ;-------------------------------------- |
51 | mikedld | 67 | struct SKIN_BUTTONS |
485 | heavyiron | 68 | type dd ? |
69 | pos: |
||
70 | left dw ? |
||
71 | top dw ? |
||
72 | size: |
||
8992 | leency | 73 | w dw ? |
485 | heavyiron | 74 | height dw ? |
51 | mikedld | 75 | ends |
3435 | mario79 | 76 | ;-------------------------------------- |
51 | mikedld | 77 | struct SKIN_BITMAPS |
485 | heavyiron | 78 | kind dw ? |
79 | type dw ? |
||
80 | _data dd ? |
||
51 | mikedld | 81 | ends |
3435 | mario79 | 82 | ;-------------------------------------- |
83 | frame_1: |
||
84 | .x = 5 |
||
8992 | leency | 85 | .y = area.y + area.height + 20 |
86 | .w = area.w + 217 |
||
87 | .height = 65 |
||
3435 | mario79 | 88 | ;-------------------------------------- |
89 | frame_2: |
||
8992 | leency | 90 | .x = frame_1.x |
91 | .y = frame_1.y + frame_1.height + 20 |
||
92 | .w = frame_1.w |
||
93 | .height = frame_1.height |
||
1611 | mario79 | 94 | ;--------------------------------------------------------------------- |
8992 | leency | 95 | win: |
96 | .w = frame_2.w + frame_2.x + frame_2.x + 9 |
||
97 | .h = frame_2.y + frame_2.height + 10 |
||
98 | ;--------------------------------------------------------------------- |
||
3271 | mario79 | 99 | START: ; start of execution |
100 | ;--------------------------------------------------------------------- |
||
9641 | IgorA | 101 | mcall SF_SYS_MISC,SSF_HEAP_INIT |
1611 | mario79 | 102 | |
103 | test eax,eax |
||
104 | jz close |
||
105 | |||
7639 | leency | 106 | stdcall dll.Load,LibIniImportTable |
1611 | mario79 | 107 | load_libraries l_libs_start,end_l_libs |
108 | |||
109 | ;if return code =-1 then exit, else nornary work |
||
110 | inc eax |
||
111 | test eax,eax |
||
112 | jz close |
||
113 | ;--------------------------------------------------------------------- |
||
7937 | leency | 114 | ; set default pathes |
7938 | leency | 115 | stdcall string.copy, default_skin, skin_info |
116 | stdcall string.copy, default_dtp, dtp_name |
||
1611 | mario79 | 117 | ;--------------------------------------------------------------------- |
7937 | leency | 118 | ; check app param |
10017 | Doczom | 119 | stdcall string.length, [M01header.params] |
120 | add eax, [M01header.params] |
||
7937 | leency | 121 | mov ecx, [eax-4] |
9641 | IgorA | 122 | or ecx, 0x20202000 ;letters to lowercase |
7937 | leency | 123 | cmp ecx, '.skn' |
124 | je load_skin_from_param |
||
125 | cmp ecx, '.dtp' |
||
9632 | leency | 126 | je load_dtp_from_param |
127 | jmp no_param |
||
7937 | leency | 128 | |
129 | load_dtp_from_param: |
||
10017 | Doczom | 130 | stdcall string.copy, [M01header.params], dtp_name |
7937 | leency | 131 | call load_dtp_file.1 |
132 | jmp skin_path_ready |
||
133 | |||
134 | load_skin_from_param: |
||
10017 | Doczom | 135 | stdcall string.copy, [M01header.params], skin_info |
7937 | leency | 136 | call load_skin_file.2 |
137 | jmp skin_path_ready |
||
138 | |||
139 | no_param: |
||
9641 | IgorA | 140 | mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,color_table,4*10 ; get current colors |
7937 | leency | 141 | call load_skin_file.2 |
142 | |||
1611 | mario79 | 143 | skin_path_ready: |
144 | ;--------------------------------------------------------------------- |
||
145 | ;OpenDialog initialisation |
||
3271 | mario79 | 146 | push dword OpenDialog_data |
147 | call [OpenDialog_Init] |
||
1611 | mario79 | 148 | |
3271 | mario79 | 149 | push dword OpenDialog_data2 |
150 | call [OpenDialog_Init] |
||
3435 | mario79 | 151 | ;-------------------------------------------------------------------- |
152 | ;init_ColorDialog ColorDialog_data |
||
153 | push dword ColorDialog_data |
||
154 | call [ColorDialog_Init] |
||
155 | ;-------------------------------------------------------------------- |
||
1611 | mario79 | 156 | ; prepare for PathShow |
157 | push dword PathShow_data_1 |
||
158 | call [PathShow_prepare] |
||
159 | |||
160 | push dword PathShow_data_2 |
||
161 | call [PathShow_prepare] |
||
162 | ;--------------------------------------------------------------------- |
||
31 | halyavin | 163 | red: |
3271 | mario79 | 164 | call draw_window ; at first, draw the window |
165 | ;--------------------------------------------------------------------- |
||
31 | halyavin | 166 | still: |
9641 | IgorA | 167 | mcall SF_WAIT_EVENT |
31 | halyavin | 168 | |
3271 | mario79 | 169 | dec eax ; redraw request ? |
170 | jz red |
||
3435 | mario79 | 171 | |
3271 | mario79 | 172 | dec eax ; key in buffer ? |
173 | jz key |
||
3435 | mario79 | 174 | |
3271 | mario79 | 175 | dec eax ; button in buffer ? |
176 | jz button |
||
31 | halyavin | 177 | |
3271 | mario79 | 178 | jmp still |
179 | ;--------------------------------------------------------------------- |
||
180 | key: ; key |
||
9641 | IgorA | 181 | mcall SF_GET_KEY |
3271 | mario79 | 182 | jmp still |
183 | ;--------------------------------------------------------------------- |
||
184 | button: ; button |
||
9641 | IgorA | 185 | mcall SF_GET_BUTTON |
31 | halyavin | 186 | |
3271 | mario79 | 187 | cmp ah,12 ; load file |
188 | jne no_load |
||
31 | halyavin | 189 | |
7937 | leency | 190 | call load_dtp_file |
3271 | mario79 | 191 | call draw_window |
192 | jmp still |
||
193 | ;-------------------------------------- |
||
194 | no_load: |
||
195 | cmp ah,13 ; save file |
||
196 | jne no_save |
||
31 | halyavin | 197 | |
3271 | mario79 | 198 | call save_file |
199 | jmp still |
||
200 | ;-------------------------------------- |
||
201 | no_save: |
||
202 | cmp ah,14 ; set 3d buttons |
||
203 | jne no_3d |
||
31 | halyavin | 204 | |
9641 | IgorA | 205 | mcall SF_STYLE_SETTINGS,SSF_SET_BUTTON_STYLE,1 |
7639 | leency | 206 | invoke ini_set_int, aIni, aSectionSkn, aButtonStyle, 1 |
3271 | mario79 | 207 | jmp doapply |
208 | ;-------------------------------------- |
||
209 | no_3d: |
||
210 | cmp ah,15 ; set flat buttons |
||
211 | jne no_flat |
||
31 | halyavin | 212 | |
7639 | leency | 213 | invoke ini_set_int, aIni, aSectionSkn, aButtonStyle, 0 |
9641 | IgorA | 214 | mcall SF_STYLE_SETTINGS,SSF_SET_BUTTON_STYLE, 0 |
3271 | mario79 | 215 | ;-------------------------------------- |
484 | diamond | 216 | doapply: |
9641 | IgorA | 217 | mcall SF_STYLE_SETTINGS,SSF_APPLY, 0 |
3271 | mario79 | 218 | jmp still |
219 | ;-------------------------------------- |
||
220 | no_flat: |
||
221 | cmp ah,16 ; apply |
||
222 | jne no_apply |
||
223 | ;-------------------------------------- |
||
224 | apply_direct: |
||
9641 | IgorA | 225 | mcall SF_STYLE_SETTINGS,SSF_SET_COLORS,color_table,10*4 |
3271 | mario79 | 226 | jmp doapply |
227 | ;-------------------------------------- |
||
228 | no_apply: |
||
229 | cmp ah,17 ; load skin file |
||
230 | jne no_load_skin |
||
31 | halyavin | 231 | |
3271 | mario79 | 232 | call load_skin_file |
233 | call draw_window |
||
234 | jmp still |
||
235 | ;-------------------------------------- |
||
236 | no_load_skin: |
||
237 | cmp ah,18 ; apply skin |
||
238 | jne no_apply_skin |
||
31 | halyavin | 239 | |
3271 | mario79 | 240 | cmp [skin_info],0 |
241 | je no_apply_skin |
||
51 | mikedld | 242 | |
9641 | IgorA | 243 | mcall SF_STYLE_SETTINGS,SSF_SET_SKIN,skin_info |
3271 | mario79 | 244 | call draw_window |
245 | jmp still |
||
246 | ;-------------------------------------- |
||
247 | no_apply_skin: |
||
248 | cmp ah,31 |
||
249 | jb no_new_colour |
||
51 | mikedld | 250 | |
3271 | mario79 | 251 | cmp ah,41 |
252 | jg no_new_colour |
||
253 | |||
3435 | mario79 | 254 | ;--------------------------------------------------------------------- |
255 | .start_ColorDialog: |
||
256 | push dword ColorDialog_data |
||
257 | call [ColorDialog_Start] |
||
258 | ; 2 - use another method/not found program |
||
259 | cmp [ColorDialog_data.status],2 |
||
260 | je still |
||
261 | ; 1 - OK, color selected |
||
262 | cmp [ColorDialog_data.status],1 |
||
263 | jne still |
||
264 | ;--------------------------------------------------------------------- |
||
265 | |||
3271 | mario79 | 266 | shr eax,8 |
267 | sub eax,31 |
||
268 | shl eax,2 |
||
3435 | mario79 | 269 | mov ebx,[ColorDialog_data.color] |
270 | and ebx,0xffffff ; temporary for ColorDialog!!!!!!!!!! |
||
3271 | mario79 | 271 | mov [eax+color_table],ebx |
272 | cmp dword[not_packed_area+SKIN_HEADER.ident],'SKIN' |
||
273 | jne @f |
||
31 | halyavin | 274 | |
3271 | mario79 | 275 | mov edi,[not_packed_area+SKIN_HEADER.params] |
276 | mov dword[edi+not_packed_area+SKIN_PARAMS.dtp.data+eax],ebx |
||
277 | call draw_skin |
||
278 | ;-------------------------------------- |
||
279 | @@: |
||
280 | call draw_colours |
||
281 | jmp still |
||
282 | ;-------------------------------------- |
||
283 | no_new_colour: |
||
284 | cmp ah,1 ; terminate |
||
285 | jnz noid1 |
||
286 | ;-------------------------------------- |
||
1611 | mario79 | 287 | close: |
3271 | mario79 | 288 | or eax,-1 |
289 | mcall |
||
290 | ;-------------------------------------- |
||
291 | noid1: |
||
292 | jmp still |
||
293 | ;--------------------------------------------------------------------- |
||
7937 | leency | 294 | load_dtp_file: |
1611 | mario79 | 295 | ;--------------------------------------------------------------------- |
296 | ; invoke OpenDialog |
||
297 | mov [OpenDialog_data.type],dword 0 |
||
3271 | mario79 | 298 | push dword OpenDialog_data |
299 | call [OpenDialog_Start] |
||
1611 | mario79 | 300 | cmp [OpenDialog_data.status],1 |
301 | je .1 |
||
302 | ret |
||
303 | .1: |
||
304 | ; prepare for PathShow |
||
305 | push dword PathShow_data_1 |
||
306 | call [PathShow_prepare] |
||
31 | halyavin | 307 | |
1611 | mario79 | 308 | call draw_PathShow |
309 | ;--------------------------------------------------------------------- |
||
7937 | leency | 310 | .2: |
3271 | mario79 | 311 | xor eax, eax |
312 | mov ebx, read_info |
||
313 | mov dword [ebx], eax ; subfunction: read |
||
314 | mov dword [ebx+4], eax ; offset (low dword) |
||
315 | mov dword [ebx+8], eax ; offset (high dword) |
||
316 | mov dword [ebx+12], 40 ; read colors file: 4*10 bytes |
||
317 | mov dword [ebx+16], color_table ; address |
||
9641 | IgorA | 318 | mcall SF_FILE |
3271 | mario79 | 319 | ret |
1611 | mario79 | 320 | ;--------------------------------------------------------------------- |
321 | load_skin_file: |
||
322 | ;--------------------------------------------------------------------- |
||
323 | ; invoke OpenDialog |
||
3271 | mario79 | 324 | push dword OpenDialog_data2 |
325 | call [OpenDialog_Start] |
||
1611 | mario79 | 326 | cmp [OpenDialog_data2.status],1 |
327 | je .1 |
||
328 | ret |
||
329 | .1: |
||
330 | ; prepare for PathShow |
||
331 | push dword PathShow_data_2 |
||
332 | call [PathShow_prepare] |
||
31 | halyavin | 333 | |
1611 | mario79 | 334 | call draw_PathShow |
335 | ;--------------------------------------------------------------------- |
||
336 | .2: |
||
3271 | mario79 | 337 | xor eax,eax |
338 | mov ebx,read_info2 |
||
339 | mov dword [ebx], eax ; subfunction: read |
||
340 | mov dword [ebx+4], eax ; offset (low dword) |
||
341 | mov dword [ebx+8], eax ; offset (high dword) |
||
342 | mov dword [ebx+12], 32*1024 ; read: max 32 KBytes |
||
343 | mov dword [ebx+16], file_load_area ; address |
||
9641 | IgorA | 344 | mcall SF_FILE |
31 | halyavin | 345 | |
3271 | mario79 | 346 | mov esi, file_load_area |
179 | mikedld | 347 | |
3271 | mario79 | 348 | cmp dword [esi], 'KPCK' |
349 | jnz notpacked |
||
31 | halyavin | 350 | |
3271 | mario79 | 351 | cmp dword [esi+4], 32*1024 ; max 32 KBytes |
352 | ja doret |
||
51 | mikedld | 353 | |
3271 | mario79 | 354 | push unpack_area |
355 | push esi |
||
356 | call unpack |
||
357 | mov esi,unpack_area |
||
358 | ;-------------------------------------- |
||
359 | notpacked: |
||
360 | cmp [esi+SKIN_HEADER.ident],dword 'SKIN' |
||
361 | jne doret |
||
51 | mikedld | 362 | |
3271 | mario79 | 363 | mov edi,not_packed_area |
364 | mov ecx,0x8000/4 |
||
365 | rep movsd |
||
51 | mikedld | 366 | |
3271 | mario79 | 367 | mov ebp,not_packed_area |
368 | mov esi,[ebp+SKIN_HEADER.params] |
||
369 | add esi,ebp |
||
370 | lea esi,[esi+SKIN_PARAMS.dtp.data] |
||
371 | mov edi,color_table |
||
372 | mov ecx,10 |
||
373 | rep movsd |
||
374 | ;-------------------------------------- |
||
375 | doret: |
||
376 | ret |
||
1611 | mario79 | 377 | ;--------------------------------------------------------------------- |
378 | save_file: |
||
379 | ;--------------------------------------------------------------------- |
||
380 | ; invoke OpenDialog |
||
381 | mov [OpenDialog_data.type],dword 1 |
||
3271 | mario79 | 382 | push dword OpenDialog_data |
383 | call [OpenDialog_Start] |
||
1611 | mario79 | 384 | cmp [OpenDialog_data.status],1 |
385 | je .1 |
||
386 | ret |
||
387 | .1: |
||
388 | ; prepare for PathShow |
||
389 | push dword PathShow_data_1 |
||
390 | call [PathShow_prepare] |
||
31 | halyavin | 391 | |
1611 | mario79 | 392 | call draw_PathShow |
393 | ;--------------------------------------------------------------------- |
||
3271 | mario79 | 394 | xor eax,eax |
395 | mov ebx,write_info |
||
396 | mov [ebx],dword 2 ; subfunction: write |
||
397 | and [ebx+4],eax ; (reserved) |
||
398 | and [ebx+8],eax ; (reserved) |
||
399 | mov [ebx+12],dword 10*4 ; bytes to write |
||
400 | mov [ebx+16],dword color_table ; address |
||
9641 | IgorA | 401 | mcall SF_FILE |
3271 | mario79 | 402 | ret |
1611 | mario79 | 403 | ;--------------------------------------------------------------------- |
3435 | mario79 | 404 | draw_button_row: |
8992 | leency | 405 | mov edx,0x40000000 + 31 ; BUTTON ROW |
406 | mov ebx,(area.w+18)*65536+29 |
||
407 | mov ecx,9*65536+15 |
||
3435 | mario79 | 408 | mov eax,8 |
409 | ;----------------------------------- |
||
410 | .newb: |
||
411 | mcall |
||
8992 | leency | 412 | add ecx,22*65536 |
3435 | mario79 | 413 | inc edx |
8992 | leency | 414 | cmp edx,0x40000000 + 40 |
3435 | mario79 | 415 | jbe .newb |
3271 | mario79 | 416 | ret |
3435 | mario79 | 417 | ;--------------------------------------------------------------------- |
418 | draw_button_row_of_texts: |
||
8992 | leency | 419 | mov ebx,(area.w+49)*65536+9 ; ROW OF TEXTS |
3435 | mario79 | 420 | mov ecx,[w_work_text] |
8992 | leency | 421 | add ecx,0x10000000 |
3435 | mario79 | 422 | mov edx,text |
423 | mov esi,32 |
||
424 | mov eax,4 |
||
425 | ;----------------------------------- |
||
426 | .newline: |
||
427 | mcall |
||
8992 | leency | 428 | add ebx,22 |
3435 | mario79 | 429 | add edx,32 |
430 | cmp [edx],byte 'x' |
||
431 | jne .newline |
||
432 | ret |
||
433 | ;--------------------------------------------------------------------- |
||
31 | halyavin | 434 | draw_colours: |
3271 | mario79 | 435 | pusha |
436 | mov esi,color_table |
||
8992 | leency | 437 | mov ebx,(area.w+19)*65536+28 |
3435 | mario79 | 438 | mov ecx,10*65536+14 |
439 | mov eax,13 |
||
3472 | mario79 | 440 | mov [frame_data.draw_text_flag],dword 0 |
3271 | mario79 | 441 | ;-------------------------------------- |
442 | newcol: |
||
443 | mov edx,[esi] |
||
3435 | mario79 | 444 | mcall |
3472 | mario79 | 445 | |
446 | push ebx ecx |
||
447 | |||
448 | sub ebx,2 shl 16 |
||
449 | add bx,4 |
||
450 | sub ecx,2 shl 16 |
||
451 | add cx,4 |
||
452 | |||
453 | mov [frame_data.x],ebx |
||
454 | mov [frame_data.y],ecx |
||
455 | |||
456 | push dword frame_data |
||
457 | call [Frame_draw] |
||
458 | |||
459 | pop ecx ebx |
||
460 | |||
8992 | leency | 461 | add ecx,22*65536 |
3271 | mario79 | 462 | add esi,4 |
3435 | mario79 | 463 | cmp esi,color_table+4*9 |
3271 | mario79 | 464 | jbe newcol |
31 | halyavin | 465 | |
3271 | mario79 | 466 | popa |
467 | ret |
||
2068 | mario79 | 468 | ;---------------------------------------------------------------------- |
1611 | mario79 | 469 | draw_PathShow: |
470 | pusha |
||
9641 | IgorA | 471 | mcall SF_DRAW_RECT, |
472 | mcall SF_DRAW_RECT, |
||
1611 | mario79 | 473 | ; draw for PathShow |
474 | push dword PathShow_data_1 |
||
475 | call [PathShow_draw] |
||
476 | |||
477 | push dword PathShow_data_2 |
||
478 | call [PathShow_draw] |
||
479 | popa |
||
480 | ret |
||
481 | ;--------------------------------------------------------------------- |
||
31 | halyavin | 482 | ; ********************************************* |
483 | ; ******* WINDOW DEFINITIONS AND DRAW ******** |
||
484 | ; ********************************************* |
||
485 | draw_window: |
||
9641 | IgorA | 486 | mcall SF_REDRAW,SSF_BEGIN_DRAW |
487 | mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,app_colours,10*4 |
||
488 | mcall SF_GET_SCREEN_SIZE |
||
489 | mcall SF_STYLE_SETTINGS,SSF_GET_SKIN_HEIGHT |
||
3435 | mario79 | 490 | mov [current_skin_high],eax |
2068 | mario79 | 491 | ; DRAW WINDOW |
492 | xor eax,eax ; function 0 : define and draw window |
||
493 | xor esi,esi |
||
494 | mov edx,[w_work] ; color of work area RRGGBB,8->color |
||
3435 | mario79 | 495 | or edx,0x34000000 |
8992 | leency | 496 | mov ecx,50 shl 16 + win.h |
3435 | mario79 | 497 | add ecx,[current_skin_high] |
8992 | leency | 498 | mcall ,<110, win.w>,,,,title |
31 | halyavin | 499 | |
9641 | IgorA | 500 | mcall SF_THREAD_INFO,procinfo,-1 |
2068 | mario79 | 501 | |
502 | mov eax,[procinfo+70] ;status of window |
||
503 | test eax,100b |
||
504 | jne .end |
||
3271 | mario79 | 505 | |
3435 | mario79 | 506 | ;if lang eq ru |
51 | mikedld | 507 | load_w = (5*2+6*9) |
508 | save_w = (5*2+6*9) |
||
509 | flat_w = (5*2+6*7) |
||
510 | apply_w = (5*2+6*9) |
||
3435 | mario79 | 511 | ;else |
512 | ; load_w = (5*2+6*6) |
||
513 | ; save_w = (5*2+6*8) |
||
514 | ; flat_w = (5*2+6*4) |
||
515 | ; apply_w = (5*2+6*7) |
||
516 | ;end if |
||
517 | ;----------------------------------- |
||
518 | ; select color DTP frame |
||
519 | ; LOAD BUTTON ; button 12 |
||
9641 | IgorA | 520 | mcall SF_DEFINE_BUTTON, |
2068 | mario79 | 521 | ; SAVE BUTTON |
522 | add ebx,(load_w+2)*65536-load_w+save_w |
||
523 | inc edx |
||
3435 | mario79 | 524 | mcall ; button 13 |
525 | ; APPLY BUTTON |
||
8992 | leency | 526 | mov ebx,(frame_1.x + frame_1.w - apply_w - 15)*65536+apply_w |
9641 | IgorA | 527 | mcall SF_DEFINE_BUTTON,,,16 ; button 17 |
3435 | mario79 | 528 | ; select color DTP button text |
9641 | IgorA | 529 | mcall SF_DRAW_TEXT, |
3435 | mario79 | 530 | ;----------------------------------- |
531 | ; select skin frame |
||
532 | ; LOAD SKIN BUTTON ; button 17 |
||
9641 | IgorA | 533 | mcall SF_DEFINE_BUTTON, |
2068 | mario79 | 534 | ; 3D |
3435 | mario79 | 535 | mov ebx,(frame_2.x+155)*65536+34 |
536 | mcall ,,,14 ; button 14 |
||
2068 | mario79 | 537 | ; FLAT |
3435 | mario79 | 538 | add ebx,36*65536-34+flat_w |
2068 | mario79 | 539 | inc edx |
3435 | mario79 | 540 | mcall ; button 15 |
2068 | mario79 | 541 | ; APPLY SKIN BUTTON |
8992 | leency | 542 | mov ebx,(frame_2.x + frame_2.w - apply_w -15)*65536+apply_w |
3435 | mario79 | 543 | mcall ,,,18 ; button 18 |
544 | ; select skin button text |
||
9641 | IgorA | 545 | mcall SF_DRAW_TEXT, |
3435 | mario79 | 546 | ;----------------------------------- |
547 | call draw_button_row |
||
548 | call draw_button_row_of_texts |
||
549 | call draw_colours |
||
2068 | mario79 | 550 | ;----------------------------------- |
8992 | leency | 551 | mov [frame_data.x],dword frame_1.x shl 16+frame_1.w |
3472 | mario79 | 552 | mov [frame_data.y],dword frame_1.y shl 16+frame_1.height |
553 | mov [frame_data.text_pointer],dword select_dtp_text |
||
554 | mov eax,[w_work] |
||
555 | mov [frame_data.font_backgr_color],eax |
||
556 | mov eax,[w_work_text] |
||
557 | mov [frame_data.font_color],eax |
||
558 | mov [frame_data.draw_text_flag],dword 1 |
||
559 | |||
560 | push dword frame_data |
||
561 | call [Frame_draw] |
||
562 | ;----------------------------------- |
||
8992 | leency | 563 | mov [frame_data.x],dword frame_2.x shl 16+frame_2.w |
3472 | mario79 | 564 | mov [frame_data.y],dword frame_2.y shl 16+frame_2.height |
565 | mov [frame_data.text_pointer],dword select_skin_text |
||
31 | halyavin | 566 | |
3472 | mario79 | 567 | push dword frame_data |
568 | call [Frame_draw] |
||
2068 | mario79 | 569 | ;----------------------------------- |
3435 | mario79 | 570 | call draw_PathShow |
571 | ;----------------------------------- |
||
2068 | mario79 | 572 | cmp dword[not_packed_area+SKIN_HEADER.ident],'SKIN' |
573 | jne @f |
||
574 | call draw_skin |
||
575 | @@: |
||
576 | .end: |
||
9641 | IgorA | 577 | mcall SF_REDRAW,SSF_END_DRAW |
2068 | mario79 | 578 | ret |
3435 | mario79 | 579 | ;----------------------------------------------------------------------------- |
580 | include 'drawskin.inc' |
||
581 | ;----------------------------------------------------------------------------- |
||
31 | halyavin | 582 | ; DATA AREA |
3435 | mario79 | 583 | ;----------------------------------------------------------------------------- |
584 | include 'idata.inc' |
||
585 | ;----------------------------------------------------------------------------- |
||
586 | IM_END: |
||
587 | ;----------------------------------------------------------------------------- |
||
588 | include 'udata.inc' |
||
589 | ;----------------------------------------------------------------------------- |
||
31 | halyavin | 590 | I_END: |
3435 | mario79 | 591 | ;-----------------------------------------------------------------------------110,>>> |