10,17 → 10,17 |
; written by: Marat Zakiyanov aka Mario79, aka Mario |
; changes: select path with OpenDialog |
;****************************************************************************** |
use32 |
org 0 |
db 'MENUET01' ; identifier |
dd 1 ; header version |
dd START ; start address |
dd I_END ; file size |
dd i_end ;28000h ; memory |
dd stacktop ; stack pointer |
dd skin_info ; parameters |
dd cur_dir_path ; path to file |
|
use32 |
org 0 |
db 'MENUET01' ; identifier |
dd 1 ; header version |
dd START ; start address |
dd I_END ; file size |
dd i_end ; memory |
dd stacktop ; stack pointer |
dd skin_info ; parameters |
dd cur_dir_path ; path to file |
|
include 'lang.inc' |
include '../../../config.inc' ;for nightbuild |
include '../../../macros.inc' |
71,9 → 71,9 |
_data dd ? |
ends |
|
|
START: ; start of execution |
;--------------------------------------------------------------------- |
START: ; start of execution |
;--------------------------------------------------------------------- |
mcall 68,11 |
|
test eax,eax |
82,11 → 82,9 |
load_libraries l_libs_start,end_l_libs |
|
;if return code =-1 then exit, else nornary work |
; cmp eax,-1 |
inc eax |
test eax,eax |
jz close |
|
;--------------------------------------------------------------------- |
mov edi,filename_area |
mov esi,start_temp_file_name |
110,23 → 108,8 |
jnz @b |
|
;--------------------------------------------------------------------- |
; mov esi, param |
; cmp byte [esi], 0 |
; je @f |
; jnz has_param |
; mov esi,default_skn |
; mov edi,fname |
; mov ecx,default_skn.size |
; rep movsb |
; jmp skin_path_ready |
;has_param: |
; mov ecx, 256/4 |
; mov edi, fname |
; rep movsd |
; skin_path_ready |
;--------------------------------------------------------------------- |
mov edi,skin_info |
cmp byte [edi], 0 |
cmp byte [edi], 0 |
jne skin_path_ready |
mov esi,default_skin |
xor eax,eax |
139,11 → 122,11 |
skin_path_ready: |
;--------------------------------------------------------------------- |
;OpenDialog initialisation |
push dword OpenDialog_data |
call [OpenDialog_Init] |
push dword OpenDialog_data |
call [OpenDialog_Init] |
|
push dword OpenDialog_data2 |
call [OpenDialog_Init] |
push dword OpenDialog_data2 |
call [OpenDialog_Init] |
|
; prepare for PathShow |
push dword PathShow_data_1 |
152,208 → 135,180 |
push dword PathShow_data_2 |
call [PathShow_prepare] |
;--------------------------------------------------------------------- |
mov eax,48 ; get current colors |
mov ebx,3 |
mov ecx,color_table |
mov edx,4*10 |
mcall |
|
call load_skin_file.2 |
|
; mov esi, default_dtp |
; mov edi, fname |
; mov ecx, default_dtp.size |
; rep movsb |
|
mcall 48,3,color_table,4*10 ; get current colors |
call load_skin_file.2 |
;--------------------------------------------------------------------- |
red: |
call draw_window ; at first, draw the window |
|
call draw_window ; at first, draw the window |
;--------------------------------------------------------------------- |
still: |
mcall 23,5 ; wait here for event |
|
mov eax,23 ; wait here for event |
mov ebx,5 |
mcall |
dec eax ; redraw request ? |
jz red |
dec eax ; key in buffer ? |
jz key |
dec eax ; button in buffer ? |
jz button |
|
dec eax ; redraw request ? |
jz red |
dec eax ; key in buffer ? |
jz key |
dec eax ; button in buffer ? |
jz button |
call draw_cursor |
|
call draw_cursor |
jmp still |
;--------------------------------------------------------------------- |
key: ; key |
mcall 2 ; just read it and ignore |
jmp still |
;--------------------------------------------------------------------- |
button: ; button |
mcall 17 ; get id |
|
jmp still |
cmp ah,12 ; load file |
jne no_load |
|
call load_file |
call draw_window |
jmp still |
;-------------------------------------- |
no_load: |
cmp ah,13 ; save file |
jne no_save |
|
key: ; key |
mov al,2 ; just read it and ignore |
mcall |
jmp still |
call save_file |
jmp still |
;-------------------------------------- |
no_save: |
cmp ah,14 ; set 3d buttons |
jne no_3d |
|
button: ; button |
mov al,17 ; get id |
mcall |
mcall 48,1,1 |
jmp doapply |
;-------------------------------------- |
no_3d: |
cmp ah,15 ; set flat buttons |
jne no_flat |
|
; cmp ah,11 ; read string |
; jne no_string |
; call read_string |
; jmp still |
; no_string: |
|
cmp ah,12 ; load file |
jne no_load |
call load_file |
call draw_window |
jmp still |
no_load: |
|
cmp ah,13 ; save file |
jne no_save |
call save_file |
jmp still |
no_save: |
|
cmp ah,14 ; set 3d buttons |
jne no_3d |
mov eax,48 |
mov ebx,1 |
mov ecx,1 |
mcall |
jmp doapply |
no_3d: |
|
cmp ah,15 ; set flat buttons |
jne no_flat |
mcall 48, 1, 0 |
mcall 48, 1, 0 |
;-------------------------------------- |
doapply: |
mcall 48, 0, 0 |
jmp still |
no_flat: |
mcall 48, 0, 0 |
jmp still |
;-------------------------------------- |
no_flat: |
cmp ah,16 ; apply |
jne no_apply |
;-------------------------------------- |
apply_direct: |
mcall 48,2,color_table,10*4 |
jmp doapply |
;-------------------------------------- |
no_apply: |
cmp ah,17 ; load skin file |
jne no_load_skin |
|
cmp ah,16 ; apply |
jne no_apply |
apply_direct: |
mov eax,48 |
mov ebx,2 |
mov ecx,color_table |
mov edx,10*4 |
mcall |
jmp doapply |
no_apply: |
call load_skin_file |
call draw_window |
jmp still |
;-------------------------------------- |
no_load_skin: |
cmp ah,18 ; apply skin |
jne no_apply_skin |
|
cmp ah,17 ; load skin file |
jne no_load_skin |
call load_skin_file |
call draw_window |
jmp still |
no_load_skin: |
cmp [skin_info],0 |
je no_apply_skin |
|
cmp ah,18 ; apply skin |
jne no_apply_skin |
cmp [skin_info],0 |
je no_apply_skin |
mcall 48,8,skin_info |
call draw_window |
jmp still |
no_apply_skin: |
mcall 48,8,skin_info |
call draw_window |
jmp still |
;-------------------------------------- |
no_apply_skin: |
cmp ah,31 |
jb no_new_colour |
|
cmp ah,31 |
jb no_new_colour |
cmp ah,41 |
jg no_new_colour |
shr eax,8 |
sub eax,31 |
shl eax,2 |
mov ebx,[color] |
mov [eax+color_table],ebx |
cmp dword[not_packed_area+SKIN_HEADER.ident],'SKIN' |
jne @f |
mov edi,[not_packed_area+SKIN_HEADER.params] |
mov dword[edi+not_packed_area+SKIN_PARAMS.dtp.data+eax],ebx |
call draw_skin |
@@: call draw_colours |
jmp still |
no_new_colour: |
cmp ah,41 |
jg no_new_colour |
|
shr eax,8 |
sub eax,31 |
shl eax,2 |
mov ebx,[color] |
mov [eax+color_table],ebx |
cmp dword[not_packed_area+SKIN_HEADER.ident],'SKIN' |
jne @f |
|
cmp ah,1 ; terminate |
jnz noid1 |
mov edi,[not_packed_area+SKIN_HEADER.params] |
mov dword[edi+not_packed_area+SKIN_PARAMS.dtp.data+eax],ebx |
call draw_skin |
;-------------------------------------- |
@@: |
call draw_colours |
jmp still |
;-------------------------------------- |
no_new_colour: |
cmp ah,1 ; terminate |
jnz noid1 |
;-------------------------------------- |
close: |
or eax,-1 |
mcall |
noid1: |
|
jmp still |
|
|
or eax,-1 |
mcall |
;-------------------------------------- |
noid1: |
jmp still |
;--------------------------------------------------------------------- |
draw_cursor: |
pusha |
mcall 37,2 |
cmp eax,0 |
jne dc1 |
popa |
ret |
;-------------------------------------- |
dc1: |
mcall 37,1 |
mov ebx,eax |
shr ebx,16 |
mov ecx,eax |
and ecx,0xffff |
cmp ecx,29 |
jbe no_color |
|
pusha |
mov eax,37 |
mov ebx,2 |
mcall |
cmp ebx,32 |
jbe no_color |
|
cmp eax,0 |
jne dc1 |
popa |
ret |
cmp ebx,266 ; CHANGE COLOR |
jb no_color |
|
dc1: |
cmp ebx,266+20*3 |
jg no_color |
|
mov eax,37 |
mov ebx,1 |
mcall |
cmp ecx,30+128 |
jge no_color |
|
mov ebx,eax |
shr ebx,16 |
mov ecx,eax |
and ecx,0xffff |
cmp ecx,29 |
jb no_color |
|
cmp ecx,32 |
jbe no_color |
cmp ebx,32 |
jbe no_color |
sub ebx,266 |
mov eax,ebx |
cdq |
mov ebx,20 |
div ebx |
mov ebx,2 |
sub ebx,eax |
add ecx,-30 |
not ecx |
shl ecx,1 |
|
cmp ebx,266 ; CHANGE COLOR |
jb no_color |
cmp ebx,266+20*3 |
jg no_color |
|
cmp ecx,30+128 |
jge no_color |
cmp ecx,30 |
jb no_color |
|
sub ebx,266 |
mov eax,ebx |
cdq |
mov ebx,20 |
div ebx |
mov ebx,2 |
sub ebx,eax |
|
add ecx,-30 |
not ecx |
shl ecx,1 |
|
mov byte [ebx+color],cl |
call draw_color |
|
popa |
ret |
|
no_color: |
|
popa |
ret |
|
mov byte [ebx+color],cl |
call draw_color |
no_color: |
popa |
ret |
;--------------------------------------------------------------------- |
load_file: |
;--------------------------------------------------------------------- |
; invoke OpenDialog |
mov [OpenDialog_data.type],dword 0 |
push dword OpenDialog_data |
call [OpenDialog_Start] |
push dword OpenDialog_data |
call [OpenDialog_Start] |
cmp [OpenDialog_data.status],1 |
je .1 |
ret |
364,21 → 319,21 |
|
call draw_PathShow |
;--------------------------------------------------------------------- |
xor eax, eax |
mov ebx, read_info |
mov dword [ebx], eax ; subfunction: read |
mov dword [ebx+4], eax ; offset (low dword) |
mov dword [ebx+8], eax ; offset (high dword) |
mov dword [ebx+12], 40 ; read colors file: 4*10 bytes |
mov dword [ebx+16], color_table ; address |
mcall 70 |
ret |
xor eax, eax |
mov ebx, read_info |
mov dword [ebx], eax ; subfunction: read |
mov dword [ebx+4], eax ; offset (low dword) |
mov dword [ebx+8], eax ; offset (high dword) |
mov dword [ebx+12], 40 ; read colors file: 4*10 bytes |
mov dword [ebx+16], color_table ; address |
mcall 70 |
ret |
;--------------------------------------------------------------------- |
load_skin_file: |
;--------------------------------------------------------------------- |
; invoke OpenDialog |
push dword OpenDialog_data2 |
call [OpenDialog_Start] |
push dword OpenDialog_data2 |
call [OpenDialog_Start] |
cmp [OpenDialog_data2.status],1 |
je .1 |
ret |
390,57 → 345,53 |
call draw_PathShow |
;--------------------------------------------------------------------- |
.2: |
xor eax, eax |
mov ebx, read_info2 |
mov dword [ebx], eax ; subfunction: read |
mov dword [ebx+4], eax ; offset (low dword) |
mov dword [ebx+8], eax ; offset (high dword) |
mov dword [ebx+12], 32*1024 ; read: max 32 KBytes |
mov dword [ebx+16], file_load_area ; address |
mcall 70 |
xor eax,eax |
mov ebx,read_info2 |
mov dword [ebx], eax ; subfunction: read |
mov dword [ebx+4], eax ; offset (low dword) |
mov dword [ebx+8], eax ; offset (high dword) |
mov dword [ebx+12], 32*1024 ; read: max 32 KBytes |
mov dword [ebx+16], file_load_area ; address |
mcall 70 |
|
mov esi, file_load_area |
mov esi, file_load_area |
|
cmp dword [esi], 'KPCK' |
jnz notpacked |
cmp dword [esi+4], 32*1024 ; max 32 KBytes |
ja doret |
push unpack_area |
push esi |
call unpack |
mov esi, unpack_area |
notpacked: |
cmp dword [esi], 'KPCK' |
jnz notpacked |
|
cmp dword[esi+SKIN_HEADER.ident],'SKIN' |
jne doret |
cmp dword [esi+4], 32*1024 ; max 32 KBytes |
ja doret |
|
mov edi,not_packed_area |
mov ecx,0x8000/4 |
rep movsd |
push unpack_area |
push esi |
call unpack |
mov esi,unpack_area |
;-------------------------------------- |
notpacked: |
cmp [esi+SKIN_HEADER.ident],dword 'SKIN' |
jne doret |
|
; mov esi,fname |
; mov edi,skin_info.fname |
; mov ecx,257 |
; rep movsb |
mov edi,not_packed_area |
mov ecx,0x8000/4 |
rep movsd |
|
mov ebp,not_packed_area |
mov esi,[ebp+SKIN_HEADER.params] |
add esi,ebp |
lea esi,[esi+SKIN_PARAMS.dtp.data] |
mov edi,color_table |
mov ecx,10 |
rep movsd |
doret: |
|
ret |
|
mov ebp,not_packed_area |
mov esi,[ebp+SKIN_HEADER.params] |
add esi,ebp |
lea esi,[esi+SKIN_PARAMS.dtp.data] |
mov edi,color_table |
mov ecx,10 |
rep movsd |
;-------------------------------------- |
doret: |
ret |
;--------------------------------------------------------------------- |
save_file: |
;--------------------------------------------------------------------- |
; invoke OpenDialog |
mov [OpenDialog_data.type],dword 1 |
push dword OpenDialog_data |
call [OpenDialog_Start] |
push dword OpenDialog_data |
call [OpenDialog_Start] |
cmp [OpenDialog_data.status],1 |
je .1 |
ret |
451,116 → 402,113 |
|
call draw_PathShow |
;--------------------------------------------------------------------- |
mov ebx, write_info |
mov dword [ebx], 2 ; subfunction: write |
and dword [ebx+4], 0 ; (reserved) |
and dword [ebx+8], 0 ; (reserved) |
mov dword [ebx+12], 10*4 ; bytes to write |
mov dword [ebx+16], color_table ; address |
mcall 70 |
ret |
xor eax,eax |
mov ebx,write_info |
mov [ebx],dword 2 ; subfunction: write |
and [ebx+4],eax ; (reserved) |
and [ebx+8],eax ; (reserved) |
mov [ebx+12],dword 10*4 ; bytes to write |
mov [ebx+16],dword color_table ; address |
mcall 70 |
ret |
;--------------------------------------------------------------------- |
draw_color: |
|
pusha |
|
mov eax,13 |
mov ebx,266*65536+60 |
mov ecx,170*65536+30 |
mov edx,[color] |
mcall |
|
; mov eax,13 |
mov ebx,266*65536+60 |
mov ecx,200*65536+10 |
mov edx,[w_work] |
mcall |
|
mov eax,47 |
mov ebx,0+1*256+8*65536 |
mov ecx,[color] |
mov edx,272*65536+201 |
mov esi,[w_work_text] |
mcall |
|
popa |
ret |
pusha |
mcall 13,<266,60>,<170,30>,[color] |
mcall ,,<200,10>,[w_work] |
mcall 47,<8,0+1*256>,[color],<272,201>,[w_work_text] |
popa |
ret |
;---------------------------------------------------------------------- |
draw_colours: |
pusha |
mov esi,color_table |
mov ebx,225*65536+32 |
mov ecx,32*65536+12 |
;-------------------------------------- |
newcol: |
mov edx,[esi] |
mcall 13 |
add ecx,18*65536 |
add esi,4 |
cmp esi,color_table+4*9 |
jbe newcol |
|
pusha |
|
mov esi,color_table |
|
mov ebx,225*65536+32 |
mov ecx,32*65536+12 |
newcol: |
mov eax,13 |
mov edx,[esi] |
mcall |
add ecx,18*65536 |
add esi,4 |
cmp esi,color_table+4*9 |
jbe newcol |
|
popa |
ret |
popa |
ret |
;---------------------------------------------------------------------- |
draw_framerect: ; ebx,ecx |
push ebx ecx |
add bx,[esp+6] |
mov cx,[esp+2] |
dec ebx |
mcall 38 |
add cx,[esp] |
rol ecx,16 |
add cx,[esp] |
sub ecx,0x00010001 |
mcall |
mov ebx,[esp+4] |
mov ecx,[esp] |
mov bx,[esp+6] |
add cx,[esp+2] |
dec ecx |
mcall |
add bx,[esp+4] |
rol ebx,16 |
add bx,[esp+4] |
sub ebx,0x00010001 |
mcall |
add esp,8 |
ret |
push ebx ecx |
add bx,[esp+6] |
mov cx,[esp+2] |
dec ebx |
mcall 38 |
add cx,[esp] |
rol ecx,16 |
add cx,[esp] |
sub ecx,0x00010001 |
mcall |
mov ebx,[esp+4] |
mov ecx,[esp] |
mov bx,[esp+6] |
add cx,[esp+2] |
dec ecx |
mcall |
add bx,[esp+4] |
rol ebx,16 |
add bx,[esp+4] |
sub ebx,0x00010001 |
mcall |
add esp,8 |
ret |
;---------------------------------------------------------------------- |
find_bitmap: |
mov edi,[ebp+SKIN_HEADER.bitmaps] |
add edi,ebp |
xor ebx,ebx |
.lp1: cmp dword[edi],0 |
je .lp2 |
cmp dword[edi+0],eax |
jne @f |
mov ebx,[edi+SKIN_BITMAPS._data] |
add ebx,ebp |
mov ecx,[ebx-2] |
mov cx,[ebx+4] |
add ebx,8 |
.lp2: ret |
@@: add edi,8 |
jmp .lp1 |
mov edi,[ebp+SKIN_HEADER.bitmaps] |
add edi,ebp |
xor ebx,ebx |
;-------------------------------------- |
.lp1: |
cmp dword[edi],0 |
je .lp2 |
|
cmp dword[edi+0],eax |
jne @f |
;-------------------------------------- |
mov ebx,[edi+SKIN_BITMAPS._data] |
add ebx,ebp |
mov ecx,[ebx-2] |
mov cx,[ebx+4] |
add ebx,8 |
;-------------------------------------- |
.lp2: |
ret |
;-------------------------------------- |
@@: |
add edi,8 |
jmp .lp1 |
;---------------------------------------------------------------------- |
dec_edx: |
sub dl,4 |
jnc @f |
xor dl,dl |
@@: sub dh,4 |
jnc @f |
xor dh,dh |
@@: rol edx,16 |
sub dl,4 |
jnc @f |
xor dl,dl |
@@: rol edx,16 |
ret |
sub dl,4 |
jnc @f |
|
xor dl,dl |
;-------------------------------------- |
@@: |
sub dh,4 |
jnc @f |
|
xor dh,dh |
;-------------------------------------- |
@@: |
rol edx,16 |
sub dl,4 |
jnc @f |
|
xor dl,dl |
;-------------------------------------- |
@@: |
rol edx,16 |
ret |
;---------------------------------------------------------------------- |
area: |
.x = 345 |
567,264 → 515,267 |
.y = 20 |
.width = 206 |
.height = 191 |
|
;-------------------------------------- |
wnd1: |
.x = area.x+49 |
.y = area.y+5 |
.width = 150 |
.height = 90 |
;-------------------------------------- |
wnd2: |
.x = area.x+35 |
.y = area.y+35 |
.width = 150 |
.height = 90 |
;-------------------------------------- |
wnd3: |
.x = area.x+21 |
.y = area.y+65 |
.width = 150 |
.height = 90 |
;-------------------------------------- |
wnd4: |
.x = area.x+7 |
.y = area.y+95 |
.width = 150 |
.height = 90 |
|
;-------------------------------------- |
virtual at edi+SKIN_PARAMS.dtp.data |
dtp system_colors |
dtp system_colors |
end virtual |
;---------------------------------------------------------------------- |
draw_skin: |
mcall 13,<area.x,area.width>,<area.y+2,area.height-2>,0x00FFFFFF |
mcall 13,<area.x,area.width>,<area.y+2,area.height-2>,0x00FFFFFF |
mov ebp,not_packed_area |
mov edi,[ebp+SKIN_HEADER.params] |
add edi,ebp |
mpack ebx,wnd1.x,wnd1.width |
mpack ecx,wnd1.y,wnd1.height |
mov edx,[dtp.frame] |
call draw_framerect |
mcall 13,<wnd1.x+1,wnd1.width-2>,<wnd1.y+1,wnd1.height-2>,dword[dtp.work] |
mov eax,38 |
mpack ebx,wnd1.x+1,wnd1.x+wnd1.width-2 |
mpack ecx,wnd1.y+1,wnd1.y+1 |
mov edx,[dtp.grab] |
mov esi,20 |
;-------------------------------------- |
@@: |
mcall |
call dec_edx |
add ecx,0x00010001 |
dec esi |
jnz @b |
|
mov ebp,not_packed_area |
mov edi,[ebp+SKIN_HEADER.params] |
add edi,ebp |
mpack ebx,wnd1.x,wnd1.width |
mpack ecx,wnd1.y,wnd1.height |
mov edx,[dtp.frame] |
call draw_framerect |
mcall 13,<wnd1.x+1,wnd1.width-2>,<wnd1.y+1,wnd1.height-2>,dword[dtp.work] |
|
mov eax,38 |
mpack ebx,wnd1.x+1,wnd1.x+wnd1.width-2 |
mpack ecx,wnd1.y+1,wnd1.y+1 |
mov edx,[dtp.grab] |
mov esi,20 |
@@: mcall |
call dec_edx |
add ecx,0x00010001 |
dec esi |
jnz @b |
|
mov edi,[ebp+SKIN_HEADER.params] |
add edi,ebp |
mcall 4,<wnd1.x+6,wnd1.y+7>,dword[dtp.grab_text],caption_text,caption_text.size |
|
mcall 8,<wnd1.x+wnd1.width-18,12>,<wnd1.y+4,12>,0,[dtp.grab_button] |
mcall 4,<wnd1.x+wnd1.width-18+4,wnd1.y+4+2>,dword[dtp.grab_button_text],close_text,close_text.size |
|
mov edi,[ebp+SKIN_HEADER.params] |
add edi,ebp |
mcall 4,<wnd1.x+6,wnd1.y+7>,dword[dtp.grab_text],caption_text,caption_text.size |
mcall 8,<wnd1.x+wnd1.width-18,12>,<wnd1.y+4,12>,0,[dtp.grab_button] |
mcall 4,<wnd1.x+wnd1.width-18+4,wnd1.y+4+2>,dword[dtp.grab_button_text],close_text,close_text.size |
;---------------------------------------------------------------------- |
mov edi,[ebp+SKIN_HEADER.params] |
add edi,ebp |
mpack ebx,wnd2.x,wnd2.width |
mpack ecx,wnd2.y,wnd2.height |
mov edx,[dtp.frame] |
shr edx,1 |
and edx,0x007F7F7F |
call draw_framerect |
mpack ebx,wnd2.x+4,wnd2.width-8 |
mpack ecx,wnd2.y+4,wnd2.height-8 |
call draw_framerect |
mcall 13,<wnd2.x+1,wnd2.width-2>,<wnd2.y+1,3>,[dtp.frame] |
add ecx,(wnd2.height-5)*65536 |
mcall |
mcall ,<wnd2.x+1,3>,<wnd2.y+1,wnd2.height-2> |
add ebx,(wnd2.width-5)*65536 |
mcall |
mcall ,<wnd2.x+5,wnd2.width-10>,<wnd2.y+5,wnd2.height-10>,dword[dtp.work] |
|
mov edi,[ebp+SKIN_HEADER.params] |
add edi,ebp |
mpack ebx,wnd2.x,wnd2.width |
mpack ecx,wnd2.y,wnd2.height |
mov edx,[dtp.frame] |
shr edx,1 |
and edx,0x007F7F7F |
call draw_framerect |
mpack ebx,wnd2.x+4,wnd2.width-8 |
mpack ecx,wnd2.y+4,wnd2.height-8 |
call draw_framerect |
mcall 13,<wnd2.x+1,wnd2.width-2>,<wnd2.y+1,3>,[dtp.frame] |
add ecx,(wnd2.height-5)*65536 |
mcall |
mcall ,<wnd2.x+1,3>,<wnd2.y+1,wnd2.height-2> |
add ebx,(wnd2.width-5)*65536 |
mcall |
mcall ,<wnd2.x+5,wnd2.width-10>,<wnd2.y+5,wnd2.height-10>,dword[dtp.work] |
mov eax,38 |
mpack ebx,wnd2.x+4,wnd2.x+wnd2.width-5 |
mpack ecx,wnd2.y+4,wnd2.y+4 |
mov edx,[dtp.grab] |
mov esi,16 |
;-------------------------------------- |
@@: |
mcall |
call dec_edx |
add ecx,0x00010001 |
dec esi |
jnz @b |
|
mov eax,38 |
mpack ebx,wnd2.x+4,wnd2.x+wnd2.width-5 |
mpack ecx,wnd2.y+4,wnd2.y+4 |
mov edx,[dtp.grab] |
mov esi,16 |
@@: mcall |
call dec_edx |
add ecx,0x00010001 |
dec esi |
jnz @b |
|
mov edi,[ebp+SKIN_HEADER.params] |
add edi,ebp |
mcall 4,<wnd2.x+8,wnd2.y+7>,dword[dtp.grab_text],caption_text,caption_text.size |
|
mcall 8,<wnd2.x+wnd2.width-20,12>,<wnd2.y+4,12>,0,[dtp.grab_button] |
mcall 4,<wnd2.x+wnd2.width-20+4,wnd2.y+4+2>,dword[dtp.grab_button_text],close_text,close_text.size |
|
mov edi,[ebp+SKIN_HEADER.params] |
add edi,ebp |
mcall 4,<wnd2.x+8,wnd2.y+7>,dword[dtp.grab_text],caption_text,caption_text.size |
mcall 8,<wnd2.x+wnd2.width-20,12>,<wnd2.y+4,12>,0,[dtp.grab_button] |
mcall 4,<wnd2.x+wnd2.width-20+4,wnd2.y+4+2>,dword[dtp.grab_button_text],close_text,close_text.size |
;---------------------------------------------------------------------- |
mov edi,[ebp+SKIN_HEADER.params] |
add edi,ebp |
mpack ebx,wnd3.x,wnd3.width |
mpack ecx,wnd3.y,wnd3.height |
mov edx,[edi+SKIN_PARAMS.colors_1.outer] |
call draw_framerect |
mpack ebx,wnd3.x+4,wnd3.width-8 |
mpack ecx,wnd3.y+4,wnd3.height-8 |
mov edx,[edi+SKIN_PARAMS.colors_1.inner] |
call draw_framerect |
mcall 13,<wnd3.x+1,wnd3.width-2>,<wnd3.y+1,3>,[edi+SKIN_PARAMS.colors_1.frame] |
add ecx,(wnd3.height-5)*65536 |
mcall |
mcall ,<wnd3.x+1,3>,<wnd3.y+1,wnd3.height-2> |
add ebx,(wnd3.width-5)*65536 |
mcall |
mcall ,<wnd3.x+5,wnd3.width-10>,<wnd3.y+5,wnd3.height-10>,dword[dtp.work] |
|
mov edi,[ebp+SKIN_HEADER.params] |
add edi,ebp |
mpack ebx,wnd3.x,wnd3.width |
mpack ecx,wnd3.y,wnd3.height |
mov edx,[edi+SKIN_PARAMS.colors_1.outer] |
call draw_framerect |
mpack ebx,wnd3.x+4,wnd3.width-8 |
mpack ecx,wnd3.y+4,wnd3.height-8 |
mov edx,[edi+SKIN_PARAMS.colors_1.inner] |
call draw_framerect |
mcall 13,<wnd3.x+1,wnd3.width-2>,<wnd3.y+1,3>,[edi+SKIN_PARAMS.colors_1.frame] |
add ecx,(wnd3.height-5)*65536 |
mcall |
mcall ,<wnd3.x+1,3>,<wnd3.y+1,wnd3.height-2> |
add ebx,(wnd3.width-5)*65536 |
mcall |
mcall ,<wnd3.x+5,wnd3.width-10>,<wnd3.y+5,wnd3.height-10>,dword[dtp.work] |
mov eax,0x00000001 ; left, inactive |
call find_bitmap |
mcall 7,,,<wnd3.x,wnd3.y> |
|
mov eax,0x00000001 ; left, inactive |
call find_bitmap |
mcall 7,,,<wnd3.x,wnd3.y> |
pushd [ebx-8] |
mov eax,0x00000003 ; base, inactive |
call find_bitmap |
pop edx |
mov esi,wnd3.x+wnd3.width-1 |
sub esi,edx |
shl edx,16 |
add edx,wnd3.x*65536+wnd3.y |
mcall 7 |
;-------------------------------------- |
@@: |
rol edx,16 |
add dx,[ebx-8] |
cmp dx,si |
ja @f |
|
pushd [ebx-8] |
mov eax,0x00000003 ; base, inactive |
call find_bitmap |
pop edx |
mov esi,wnd3.x+wnd3.width-1 |
sub esi,edx |
shl edx,16 |
add edx,wnd3.x*65536+wnd3.y |
mcall 7 |
@@: rol edx,16 |
add dx,[ebx-8] |
cmp dx,si |
ja @f |
rol edx,16 |
mcall 7 |
jmp @b |
@@: |
rol edx,16 |
mcall 7 |
jmp @b |
;-------------------------------------- |
@@: |
mov eax,0x00000002 ; oper, inactive |
call find_bitmap |
mov edx,ecx |
shr edx,16 |
neg edx |
shl edx,16 |
add edx,(wnd3.x+wnd3.width)*65536+wnd3.y |
mcall 7 |
|
mov eax,0x00000002 ; oper, inactive |
call find_bitmap |
mov edx,ecx |
shr edx,16 |
neg edx |
shl edx,16 |
add edx,(wnd3.x+wnd3.width)*65536+wnd3.y |
mcall 7 |
|
mov ebp,not_packed_area |
mov edi,[ebp+SKIN_HEADER.params] |
add edi,ebp |
mov eax,dword[edi+SKIN_PARAMS.margin.left-2] |
mov ax,word[edi+SKIN_PARAMS.skin_height] |
sub ax,[edi+SKIN_PARAMS.margin.bottom] |
shr ax,1 |
add ax,[edi+SKIN_PARAMS.margin.top] |
add ax,-4 |
push eax |
lea ebx,[eax+wnd3.x*65536+wnd3.y] |
mcall 4,,dword[dtp.grab_text],caption_text,caption_text.size |
|
mov ebp,not_packed_area |
mov edi,[ebp+SKIN_HEADER.params] |
add edi,ebp |
mov eax,dword[edi+SKIN_PARAMS.margin.left-2] |
mov ax,word[edi+SKIN_PARAMS.skin_height] |
sub ax,[edi+SKIN_PARAMS.margin.bottom] |
shr ax,1 |
add ax,[edi+SKIN_PARAMS.margin.top] |
add ax,-4 |
push eax |
lea ebx,[eax+wnd3.x*65536+wnd3.y] |
mcall 4,,dword[dtp.grab_text],caption_text,caption_text.size |
;--------------------------------------------------------- |
mov edi,[ebp+SKIN_HEADER.params] |
add edi,ebp |
mpack ebx,wnd4.x,wnd4.width |
mpack ecx,wnd4.y,wnd4.height |
mov edx,[edi+SKIN_PARAMS.colors.outer] |
call draw_framerect |
mpack ebx,wnd4.x+4,wnd4.width-8 |
mpack ecx,wnd4.y+4,wnd4.height-8 |
mov edx,[edi+SKIN_PARAMS.colors.inner] |
call draw_framerect |
mcall 13,<wnd4.x+1,wnd4.width-2>,<wnd4.y+1,3>,[edi+SKIN_PARAMS.colors.frame] |
add ecx,(wnd4.height-5)*65536 |
mcall |
mcall ,<wnd4.x+1,3>,<wnd4.y+1,wnd4.height-2> |
add ebx,(wnd4.width-5)*65536 |
mcall |
mcall ,<wnd4.x+5,wnd4.width-10>,<wnd4.y+5,wnd4.height-10>,dword[dtp.work] |
|
mov edi,[ebp+SKIN_HEADER.params] |
add edi,ebp |
mpack ebx,wnd4.x,wnd4.width |
mpack ecx,wnd4.y,wnd4.height |
mov edx,[edi+SKIN_PARAMS.colors.outer] |
call draw_framerect |
mpack ebx,wnd4.x+4,wnd4.width-8 |
mpack ecx,wnd4.y+4,wnd4.height-8 |
mov edx,[edi+SKIN_PARAMS.colors.inner] |
call draw_framerect |
mcall 13,<wnd4.x+1,wnd4.width-2>,<wnd4.y+1,3>,[edi+SKIN_PARAMS.colors.frame] |
add ecx,(wnd4.height-5)*65536 |
mcall |
mcall ,<wnd4.x+1,3>,<wnd4.y+1,wnd4.height-2> |
add ebx,(wnd4.width-5)*65536 |
mcall |
mcall ,<wnd4.x+5,wnd4.width-10>,<wnd4.y+5,wnd4.height-10>,dword[dtp.work] |
mov eax,0x00010001 ; left, inactive |
call find_bitmap |
mcall 7,,,<wnd4.x,wnd4.y> |
|
mov eax,0x00010001 ; left, inactive |
call find_bitmap |
mcall 7,,,<wnd4.x,wnd4.y> |
pushd [ebx-8] |
mov eax,0x00010003 ; base, inactive |
call find_bitmap |
pop edx |
mov esi,wnd4.x+wnd4.width-1 |
sub esi,edx |
shl edx,16 |
add edx,wnd4.x*65536+wnd4.y |
mcall 7 |
;-------------------------------------- |
@@: |
rol edx,16 |
add dx,[ebx-8] |
cmp dx,si |
ja @f |
|
pushd [ebx-8] |
mov eax,0x00010003 ; base, inactive |
call find_bitmap |
pop edx |
mov esi,wnd4.x+wnd4.width-1 |
sub esi,edx |
shl edx,16 |
add edx,wnd4.x*65536+wnd4.y |
mcall 7 |
@@: rol edx,16 |
add dx,[ebx-8] |
cmp dx,si |
ja @f |
rol edx,16 |
mcall 7 |
jmp @b |
@@: |
rol edx,16 |
mcall 7 |
jmp @b |
;-------------------------------------- |
@@: |
mov eax,0x00010002 ; oper, inactive |
call find_bitmap |
mov edx,ecx |
shr edx,16 |
neg edx |
shl edx,16 |
add edx,(wnd4.x+wnd4.width)*65536+wnd4.y |
mcall 7 |
|
mov eax,0x00010002 ; oper, inactive |
call find_bitmap |
mov edx,ecx |
shr edx,16 |
neg edx |
shl edx,16 |
add edx,(wnd4.x+wnd4.width)*65536+wnd4.y |
mcall 7 |
|
mov ebp,not_packed_area |
mov edi,[ebp+SKIN_HEADER.params] |
add edi,ebp |
pop eax |
lea ebx,[eax+wnd4.x*65536+wnd4.y] |
mcall 4,,dword[dtp.grab_text],caption_text,caption_text.size |
|
mov ebp,not_packed_area |
mov edi,[ebp+SKIN_HEADER.params] |
add edi,ebp |
pop eax |
lea ebx,[eax+wnd4.x*65536+wnd4.y] |
mcall 4,,dword[dtp.grab_text],caption_text,caption_text.size |
;---------------------------------------------------------------------- |
mov edi,[ebp+SKIN_HEADER.buttons] |
add edi,ebp |
;-------------------------------------- |
.lp1: |
cmp dword[edi],0 |
je .lp2 |
|
mov edi,[ebp+SKIN_HEADER.buttons] |
add edi,ebp |
.lp1: cmp dword[edi],0 |
je .lp2 |
mov ebx,dword[edi+SKIN_BUTTONS.left-2] |
mov bx,[edi+SKIN_BUTTONS.width] |
mov ecx,dword[edi+SKIN_BUTTONS.top-2] |
mov cx,[edi+SKIN_BUTTONS.height] |
add ebx,(wnd4.x+wnd4.width)*65536 |
add ecx,wnd4.y*65536 |
dec ebx |
dec ecx |
mcall 8,,,0x40000000 |
add edi,12 |
jmp .lp1 |
.lp2: |
mov ebx,dword[edi+SKIN_BUTTONS.left-2] |
mov bx,[edi+SKIN_BUTTONS.width] |
mov ecx,dword[edi+SKIN_BUTTONS.top-2] |
mov cx,[edi+SKIN_BUTTONS.height] |
add ebx,(wnd4.x+wnd4.width)*65536 |
add ecx,wnd4.y*65536 |
dec ebx |
dec ecx |
mcall 8,,,0x40000000 |
add edi,12 |
jmp .lp1 |
;-------------------------------------- |
.lp2: |
mov edi,[ebp+SKIN_HEADER.params] |
add edi,ebp |
mpack ebx,wnd4.x+10,wnd4.y+10 |
add bx,word[edi+SKIN_PARAMS.skin_height] |
mcall 4,,[dtp.work_text],window_text,window_text.size |
|
mov edi,[ebp+SKIN_HEADER.params] |
add edi,ebp |
mpack ebx,wnd4.x+10,wnd4.y+10 |
add bx,word[edi+SKIN_PARAMS.skin_height] |
mcall 4,,[dtp.work_text],window_text,window_text.size |
mov ecx,[edi+SKIN_PARAMS.skin_height] |
shl ecx,16 |
add ecx,(wnd4.y+8)*65536+10 |
mcall 13,<wnd4.x+window_text.size*6+20,wnd4.x+wnd4.width-10-\ |
(wnd4.x+window_text.size*6+20)>,,[dtp.work_graph] |
|
mov ecx,[edi+SKIN_PARAMS.skin_height] |
shl ecx,16 |
add ecx,(wnd4.y+8)*65536+10 |
mcall 13,<wnd4.x+window_text.size*6+20,wnd4.x+wnd4.width-10-\ |
(wnd4.x+window_text.size*6+20)>,,[dtp.work_graph] |
add ecx,25*65536+8 |
mcall 8,<wnd4.x+wnd4.width/2-button_text.size*3-6,\ |
button_text.size*6+11>,,0,[dtp.work_button] |
|
add ecx,25*65536+8 |
mcall 8,<wnd4.x+wnd4.width/2-button_text.size*3-6,\ |
button_text.size*6+11>,,0,[dtp.work_button] |
|
shr ecx,16 |
mov bx,cx |
add ebx,0x00060006 |
mcall 4,,[dtp.work_button_text],button_text,button_text.size |
|
ret |
shr ecx,16 |
mov bx,cx |
add ebx,0x00060006 |
mcall 4,,[dtp.work_button_text],button_text,button_text.size |
ret |
;--------------------------------------------------------------------- |
draw_PathShow: |
pusha |
858,7 → 809,7 |
mov eax,[procinfo+70] ;status of window |
test eax,100b |
jne .end |
|
|
if lang eq ru |
load_w = (5*2+6*9) |
save_w = (5*2+6*9) |
872,8 → 823,6 |
end if |
|
; LOAD BUTTON |
; mov ebx,15*65536+load_w |
; mov ecx,(35+18*12)*65536+14 |
mcall 8,<15,load_w>,<35+18*12,14>,12,[w_work_button] |
; SAVE BUTTON |
add ebx,(load_w+2)*65536-load_w+save_w |
909,7 → 858,7 |
mov ebx,(15+(load_w+save_w+2-t3.size*6)/2)*65536+(35+18*12+4) |
mcall ,,,t3,t3.size |
|
mov eax,38 ; R G B COLOR GLIDES |
mov eax,38 ; R G B COLOR GLIDES |
mov ebx,266*65536+285 |
mov ecx,30*65536+30 |
mov edx,0xff0000 |
931,7 → 880,7 |
;----------------------------------- |
call draw_color |
|
mov edx,31 ; BUTTON ROW |
mov edx,31 ; BUTTON ROW |
mov ebx,15*65536+200 |
mov ecx,30*65536+14 |
mov esi,[w_work_button] |
945,7 → 894,7 |
cmp edx,40 |
jbe .newb |
;----------------------------------- |
mov ebx,15*65536+34 ; ROW OF TEXTS |
mov ebx,15*65536+34 ; ROW OF TEXTS |
mov ecx,[w_work_button_text] |
mov edx,text |
mov esi,32 |
1246,28 → 1195,29 |
db 'FFFFFFFF_open_dialog2',0 |
open_dialog_path: |
if __nightbuild eq yes |
db '/sys/MANAGERS/opendial',0 |
db '/sys/MANAGERS/opendial',0 |
else |
db '/sys/File Managers/opendial',0 |
db '/sys/File Managers/opendial',0 |
end if |
communication_area_default_pach: |
db '/sys',0 |
|
Filter: |
dd Filter.end - Filter |
dd Filter.end - Filter |
.1: |
db 'DTP',0 |
db 'DTP',0 |
.end: |
db 0 |
db 0 |
|
Filter2: |
dd Filter.end - Filter |
dd Filter.end - Filter |
.1: |
db 'SKN',0 |
db 'SKN',0 |
.end: |
db 0 |
db 0 |
|
start_temp_file_name: db 'default.dtp',0 |
start_temp_file_name: |
db 'default.dtp',0 |
|
default_skin: |
db '/sys/default.skn',0 |
1322,7 → 1272,7 |
w_work_graph dd ? |
|
color_table: |
times 10 dd ? |
times 10 dd ? |
;--------------------------------------------------------------------- |
align 4 |
cur_dir_path: |
1331,9 → 1281,6 |
library_path: |
rb 4096 |
;--------------------------------------------------------------------- |
;fname_buf: |
; rb 4096 |
;--------------------------------------------------------------------- |
temp_dir_pach: |
rb 4096 |
;--------------------------------------------------------------------- |