forked from KolibriOS/kolibrios
89ac0aa669
git-svn-id: svn://kolibrios.org@4003 a494cfbc-eb01-0410-851d-a64ba20cac60
1441 lines
35 KiB
NASM
1441 lines
35 KiB
NASM
;<3B> ¯®â®¬: ¤®¡ ¢¨â § £à㧪ã ico ¨ ¢®§¬®¦®áâì ¢ë¡®à ¨ª®ª¨ ¥ ¨§ iconstrp
|
||
|
||
ICONS_DAT equ '/rd/1/icons.dat'
|
||
ICON_STRIP equ '/rd/1/iconstrp.png'
|
||
ICON_SIZE equ 68
|
||
IMG_SIZE equ 32
|
||
TEXT_BOTTOM_Y equ 14
|
||
IMAGE_TOP_Y equ 10 ;>=1
|
||
ALIGN_SIZE equ 68
|
||
NAME_LENGTH equ 11
|
||
MIN_NO_MOVING equ 8
|
||
;¤«ï ¤¨ «®£ ᮧ¤ ¨ï/। ªâ¨à®¢ ¨ï
|
||
ICONSX equ 20
|
||
ICONSY equ 80
|
||
ICONS_DRAW_COUNTW equ 10 ;ª®«¨ç¥á⢮ ¨ª®®ª ¢ è¨à¨ã
|
||
ICONS_DRAW_COUNTH equ 2 ;ª®«¨ç¥á⢮ ¨ª®®ª ¢ ¢ëá®âã
|
||
SPCW equ 3 ;¯à®¡¥« ¬¥¦¤ã ¨ª®ª ¬¨ ¯® £®à¨§®â «¨
|
||
SPCH equ 3
|
||
END_ICONS_AREAW equ ICONSX+(IMG_SIZE+SPCW)*ICONS_DRAW_COUNTW-SPCW
|
||
END_ICONS_AREAH equ ICONSY+(IMG_SIZE+SPCH)*ICONS_DRAW_COUNTH-SPCH
|
||
|
||
|
||
|
||
SizeData equ bufStdIco+32
|
||
BegData equ fiStdIco.point
|
||
;------------------------------------------------------------------------------
|
||
use32
|
||
org 0x0
|
||
db 'MENUET01' ; 8 byte id
|
||
dd 0x01 ; header version
|
||
dd START ; start of code
|
||
dd I_END ; size of image
|
||
dd ENDMEM ; memory for app
|
||
dd stack_area ; esp
|
||
dd 0 ; boot parameters
|
||
dd 0 ; path
|
||
;------------------------------------------------------------------------------
|
||
include 'lang.inc'
|
||
include '../../macros.inc'
|
||
include '../../proc32.inc'
|
||
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
|
||
include '../../dll.inc'
|
||
;include '../../debug.inc'
|
||
|
||
;------------------------------------------------------------------------------
|
||
START: ; start of execution
|
||
mcall 68,11
|
||
stdcall dll.Load,IMPORTS
|
||
test eax,eax
|
||
jnz ErrLoadLibs
|
||
|
||
; unpack deflate
|
||
mov eax,[unpack_DeflateUnpack2]
|
||
mov [deflate_unpack],eax
|
||
;---------------------------------------------------------------------
|
||
; get size of file ICONSTRP.PNG
|
||
mcall 70,fiStdIco
|
||
test eax,eax
|
||
jnz ErrorStrp
|
||
; get memory for ICONSTRP.PNG
|
||
mov ecx,dword[bufStdIco+32]
|
||
mov [fiStdIco.size],ecx
|
||
mov [img_size],ecx
|
||
mcall 68,12
|
||
mov [fiStdIco.point],eax
|
||
mov [image_file],eax
|
||
; load ICONSTRP.PNG
|
||
mov dword[fiStdIco],0
|
||
mcall 70,fiStdIco
|
||
test eax,eax
|
||
jnz close
|
||
; convert PNG to RAW
|
||
xor eax,eax
|
||
mov [return_code],eax
|
||
;int3
|
||
|
||
push image_file
|
||
call [cnv_png_import.Start]
|
||
|
||
mov eax,[raw_pointer]
|
||
mov ebx,[eax+32]
|
||
mov [strip_file_size],ebx
|
||
mov eax,[eax+28]
|
||
add eax,[raw_pointer]
|
||
mov [strip_file],eax
|
||
; back memory to system
|
||
mcall 68,13,[fiStdIco.point]
|
||
|
||
mov eax,[raw_pointer]
|
||
mov eax,[eax+8]
|
||
shr eax,5
|
||
mov [icon_count],eax
|
||
|
||
and eax,0x7
|
||
mov [cur_band_compensation],eax
|
||
|
||
;########## § £à㦠¥¬ ¤ ë¥ ¨ª®®ª ¢ ¯ ¬ïâì ##########################
|
||
|
||
mcall 70,fiIni ;¢ë¤¥«ï¥¬ ¯ ¬ïâì, ¤®áâ â®ç®© ¤«ï åà ¥¨ï ini ä ©« . …ñ â®ç® å¢ â¨â ¤«ï åà ¥¨ï ¤ ëå ®¡ ¨ª®ª å
|
||
test eax,eax
|
||
jnz ErrorIni
|
||
|
||
cmp dword[bufIni+32],0
|
||
je ErrorIni
|
||
mcall 68,12,dword[bufIni+32]
|
||
mov dword[BegData],eax
|
||
jmp NoErrIni
|
||
|
||
ErrorIni:
|
||
mcall 70,fiRunProg
|
||
mcall -1
|
||
|
||
NoErrIni:
|
||
m2m [PIcoDB],[BegData]
|
||
|
||
stdcall [ini_enum_sections],IconIni,LoadIconsData
|
||
;int3
|
||
mov eax,dword[PIcoDB]
|
||
sub eax,[BegData]
|
||
mov dword[SizeData],eax
|
||
mov eax,[BegData]
|
||
cmp eax,[PIcoDB]
|
||
jne @f
|
||
mov dword[eax],0
|
||
mov dword[SizeData],0
|
||
@@:
|
||
;######################################################################
|
||
|
||
call FillIconsOffs
|
||
|
||
mcall 40,0100000b
|
||
|
||
mov eax,[icon_count]
|
||
mov bl,ICONS_DRAW_COUNTH
|
||
div bl
|
||
test ah,ah
|
||
jz @f
|
||
inc al
|
||
@@:
|
||
and eax,0FFh
|
||
mov [sbIcons.max_area],eax
|
||
|
||
; int3
|
||
; mov eax,1
|
||
; mov eax,[IconsOffs+eax*4]
|
||
; stdcall [ini_del_section],IconIni,eax
|
||
; ret
|
||
;jmp MSGRedrawIcons
|
||
mcall 51,1,BGRedrawThread,stack_bredraw
|
||
|
||
|
||
messages:
|
||
mcall 10
|
||
sub eax,6
|
||
jz MSGMouse
|
||
|
||
jmp messages
|
||
|
||
|
||
MSGMouse:
|
||
mcall 37,0 ;GetMousePos
|
||
xor ebx,ebx
|
||
mov bx,ax
|
||
shr eax,16
|
||
mov ecx,ebx
|
||
mov ebx,eax
|
||
|
||
mcall 34
|
||
cmp eax,1
|
||
jne messages
|
||
|
||
cmp [RButtonActiv],1
|
||
je messages
|
||
|
||
mov [MouseY],ecx
|
||
mov [MouseX],ebx
|
||
|
||
|
||
mcall 37,2
|
||
test al,001b
|
||
jnz LButtonPress
|
||
test al,010b
|
||
jnz RButtonPress
|
||
jmp messages
|
||
|
||
ErrLoadLibs:
|
||
;dps '<27>¥ 㤠«®áì § £à㧨âì ¥®¡å®¤¨¬ë¥ ¡¨¡«¨®â¥ª¨'
|
||
;debug_newline
|
||
jmp close
|
||
ErrorStrp:
|
||
;dps 'Žè¨¡ª ®âªàëâ¨ï iconstrp.png'
|
||
;debug_newline
|
||
close:
|
||
mcall -1
|
||
|
||
LButtonPress:
|
||
stdcall GetNumIcon,[MouseX],[MouseY],-1
|
||
;int3
|
||
cmp eax,-1
|
||
jnz @f
|
||
|
||
WaitLB1:
|
||
mcall 37,2
|
||
test al,001b
|
||
jz messages
|
||
;Yield
|
||
mcall 5,1
|
||
jmp WaitLB1
|
||
|
||
|
||
@@:
|
||
push eax
|
||
stdcall DrawIcon,eax,1
|
||
WaitLB:
|
||
mcall 37,2
|
||
test al,001b
|
||
jz endWaitLB
|
||
|
||
mcall 37,0
|
||
xor ebx,ebx
|
||
mov bx,ax
|
||
shr eax,16
|
||
sub eax,[MouseX]
|
||
jns @f
|
||
neg eax
|
||
@@:
|
||
sub ebx,[MouseY]
|
||
jns @f
|
||
neg ebx
|
||
@@:
|
||
cmp [bFixIcons],0
|
||
jne @f
|
||
cmp eax,MIN_NO_MOVING
|
||
ja MovingIcon
|
||
cmp ebx,MIN_NO_MOVING
|
||
ja MovingIcon
|
||
@@:
|
||
;Yield
|
||
mcall 5,1 ;Sleep 1
|
||
|
||
jmp WaitLB
|
||
endWaitLB:
|
||
|
||
mcall 37,0
|
||
xor ebx,ebx
|
||
mov bx,ax
|
||
shr eax,16
|
||
mov ecx,ebx
|
||
mov ebx,eax
|
||
mov [MouseX],ebx
|
||
mov [MouseY],ecx
|
||
|
||
stdcall GetNumIcon,[MouseX],[MouseY],-1
|
||
cmp eax,[esp] ;[esp] = ®¬¥à ¨ª®ª¨
|
||
jne @f
|
||
|
||
mov edi,[IconsOffs+eax*4]
|
||
or ecx,-1
|
||
xor al,al
|
||
repne scasb
|
||
mov ebx,edi
|
||
repne scasb
|
||
;run program
|
||
mov dword[fiRunProg+8],edi
|
||
mov dword[fiRunProg+21],ebx
|
||
mcall 70,fiRunProg
|
||
test eax,80000000h
|
||
jz @f
|
||
|
||
mov dword[fiRunProg+8],ErrRunProg
|
||
mov dword[fiRunProg+21],pthNotify
|
||
mcall 70,fiRunProg
|
||
|
||
@@:
|
||
pop eax
|
||
stdcall RestoreBackgrnd,eax
|
||
jmp messages
|
||
|
||
;-------------------------------------------------------------------------------
|
||
MovingIcon:
|
||
stdcall GetNumIcon,[MouseX],[MouseY],-1
|
||
mov [SelIcon],eax
|
||
mov [IconNoDraw],eax
|
||
stdcall RestoreBackgrnd,[SelIcon]
|
||
|
||
; mov ecx,[MaxNumIcon]
|
||
; xor ebx,ebx
|
||
; .MI: push ecx
|
||
; cmp ebx,[SelIcon]
|
||
; je @f
|
||
; stdcall DrawIcon,ebx,0
|
||
; @@:
|
||
; inc ebx
|
||
; pop ecx
|
||
; loop .MI
|
||
|
||
|
||
|
||
;dps 'Moving'
|
||
;debug_newline
|
||
; mov edi,[SelIcon]
|
||
; mov edi,[IconsOffs+edi*4]
|
||
; or ecx,-1
|
||
; xor al,al
|
||
; repne scasb
|
||
; repne scasb
|
||
; repne scasb
|
||
; repne scasb
|
||
; xor ebx,ebx
|
||
; xor esi,esi
|
||
; mov bx,word[edi+2]
|
||
; mov si,word[edi]
|
||
; stdcall GetNumIcon,ebx,esi,[SelIcon]
|
||
; cmp eax,-1
|
||
; je @f
|
||
; dps 'Q'
|
||
; stdcall DrawIcon,eax,0
|
||
; @@:
|
||
;
|
||
; add ebx,ICON_SIZE-1
|
||
; stdcall GetNumIcon,ebx,esi,[SelIcon]
|
||
; cmp eax,-1
|
||
; je @f
|
||
; dps 'Q'
|
||
; stdcall DrawIcon,eax,0
|
||
;
|
||
; @@:
|
||
; add esi,ICON_SIZE-1
|
||
; stdcall GetNumIcon,ebx,esi,[SelIcon]
|
||
; cmp eax,-1
|
||
; je @f
|
||
; dps 'Q'
|
||
; stdcall DrawIcon,eax,0
|
||
;
|
||
; @@:
|
||
; sub ebx,ICON_SIZE-1
|
||
; stdcall GetNumIcon,ebx,esi,[SelIcon]
|
||
; cmp eax,-1
|
||
; je @f
|
||
; dps 'Q'
|
||
; stdcall DrawIcon,eax,0
|
||
; @@:
|
||
|
||
|
||
; Sleep 40
|
||
|
||
;qweqwe:
|
||
|
||
mov [MovingActiv],1
|
||
mcall 51,1,MovingWnd,stack_dlg ;CreateThread MovingWnd,stack_dlg
|
||
.WaitLB:
|
||
mcall 37,2 ;GetMouseKey
|
||
test al,001b
|
||
jz .endWaitLB
|
||
|
||
;Yield
|
||
mcall 5,1 ;Sleep 1
|
||
jmp .WaitLB
|
||
.endWaitLB:
|
||
mov [MovingActiv],0
|
||
|
||
mcall 37,0 ;GetMousePos
|
||
xor ebx,ebx
|
||
mov bx,ax
|
||
shr eax,16
|
||
|
||
add ebx,7
|
||
dec eax
|
||
|
||
sub eax,ICON_SIZE/2
|
||
jns @f
|
||
xor eax,eax
|
||
@@:
|
||
sub ebx,ICON_SIZE/2
|
||
jns @f
|
||
xor ebx,ebx
|
||
@@:
|
||
|
||
movzx edx,[ScreenX]
|
||
sub edx,ICON_SIZE
|
||
cmp eax,edx
|
||
jbe @f
|
||
mov eax,edx
|
||
@@:
|
||
|
||
movzx edx,[ScreenY]
|
||
sub edx,ICON_SIZE
|
||
cmp ebx,edx
|
||
jbe @f
|
||
mov ebx,edx
|
||
@@:
|
||
|
||
xor edx,edx
|
||
mov dx,[ScreenX]
|
||
shr edx,1
|
||
cmp eax,edx
|
||
jbe @f
|
||
sub ax,[ScreenX]
|
||
inc ax
|
||
@@:
|
||
|
||
xor edx,edx
|
||
mov dx,[ScreenY]
|
||
shr edx,1
|
||
cmp ebx,edx
|
||
jbe @f
|
||
sub bx,[ScreenY]
|
||
inc bx
|
||
@@:
|
||
|
||
stdcall SetPosition,[SelIcon],eax,ebx
|
||
|
||
|
||
m2m [PIcoDB],[BegData]
|
||
stdcall [ini_enum_sections],IconIni,Ini_SavePos ;in RButton.inc
|
||
|
||
mov [bNotSave],1
|
||
mov [IconNoDraw],-1
|
||
mcall 15,3
|
||
|
||
jmp messages
|
||
|
||
;-------------------------------------------------------------------------------
|
||
|
||
RButtonPress:
|
||
cmp [RButtonActiv],1
|
||
je messages
|
||
mov [RButtonActiv],1
|
||
|
||
@@:
|
||
mcall 37,2 ;GetMouseKey
|
||
test al,010b
|
||
jz @f
|
||
mcall 5,1 ;Yield
|
||
jmp @b
|
||
@@:
|
||
|
||
mcall 51,1,RButtonWin,stack_dlg ;CreateThread RButtonWin,stack_dlg
|
||
|
||
jmp messages
|
||
|
||
|
||
;###############################################################################
|
||
;ret eax = 1/0 = 㤠ç /®è¨¡ª
|
||
proc DrawIcon NumIcon:DWORD,Activ:DWORD ;NumIcon = 0..n
|
||
local IconData:DWORD
|
||
; int3
|
||
push ebx edi esi
|
||
|
||
mov ecx,ICON_SIZE*ICON_SIZE
|
||
xor eax,eax
|
||
;mov eax,0FFFFFFFh
|
||
mov edi,IconArea
|
||
rep stosd
|
||
|
||
mov eax,[NumIcon]
|
||
cmp eax,[MaxNumIcon]
|
||
jb @f
|
||
xor eax,eax
|
||
pop esi edi ebx
|
||
ret
|
||
@@:
|
||
|
||
mov esi,[IconsOffs+eax*4]
|
||
mov [IconData],esi
|
||
|
||
;à¨á㥬 ⥪áâ
|
||
mov edi,esi
|
||
xor al,al
|
||
or ecx,-1
|
||
repne scasb
|
||
mov edx,esi
|
||
mov eax,edi
|
||
sub eax,esi
|
||
dec eax
|
||
shl eax,1 ;*6
|
||
lea eax,[eax*2+eax]
|
||
mov ebx,ICON_SIZE
|
||
sub ebx,eax
|
||
shr ebx,1 ;ebx = x ⥪áâ
|
||
shl ebx,16
|
||
mov bx,ICON_SIZE
|
||
sub bx,TEXT_BOTTOM_Y
|
||
mov ecx,88000000h
|
||
mov edi,IconAreaH
|
||
add ebx,-1*10000h+0
|
||
mcall 4
|
||
add ebx,2*10000h+0
|
||
mcall 4
|
||
add ebx,-1*10000h-1
|
||
mcall 4
|
||
add ebx,0*10000h+2
|
||
mcall 4
|
||
add ebx,1*10000h+0
|
||
mcall 4
|
||
add ebx,0*10000h+1
|
||
mcall 4
|
||
add ebx,-1*10000h+0
|
||
mcall 4
|
||
add ebx,0*10000h-2
|
||
mov ecx,88FFFFFFh
|
||
mcall 4
|
||
;à¨á㥬 ª à⨪ã
|
||
|
||
mov edi,esi
|
||
xor al,al
|
||
or ecx,-1
|
||
repne scasb
|
||
repne scasb
|
||
repne scasb
|
||
mov al,[edi]
|
||
cmp al,'9'
|
||
ja PathToIcon
|
||
cmp al,'/'
|
||
jne GetIconInd
|
||
|
||
PathToIcon:
|
||
;stdcall LoadIcon,edi
|
||
;mov esi,eax
|
||
mov al,30h ;§ £«ãèª !!!!!!!!!!!!!
|
||
mov byte[edi+1],0
|
||
|
||
jmp CopyToMem
|
||
GetIconInd:
|
||
|
||
sub al,30h
|
||
cmp byte[edi+1],0
|
||
je @f
|
||
shl eax,1
|
||
lea eax,[eax*4+eax]
|
||
xor edx,edx
|
||
mov dl,[edi+1]
|
||
sub dl,30h
|
||
add eax,edx
|
||
@@: ;eax=num icon
|
||
cmp eax,[icon_count]
|
||
jb @f
|
||
xor eax,eax
|
||
@@:
|
||
test eax,eax
|
||
je DI1
|
||
mov ecx,eax
|
||
xor eax,eax
|
||
@@:
|
||
add eax,IMG_SIZE*IMG_SIZE*4
|
||
loop @b
|
||
DI1:
|
||
mov esi,eax
|
||
add esi,[raw_pointer]
|
||
add esi,0+4*11
|
||
|
||
CopyToMem:
|
||
mov edi,IconArea+((IMAGE_TOP_Y*ICON_SIZE)+((ICON_SIZE-IMG_SIZE)/2))*4
|
||
|
||
mov eax,IMG_SIZE
|
||
mov edx,eax
|
||
@@:
|
||
mov ecx,eax
|
||
rep movsd
|
||
add edi,(ICON_SIZE-IMG_SIZE)*4
|
||
dec edx
|
||
jnz @b
|
||
|
||
;-----------------
|
||
;¥á«¨ ¤®, â® à¨á㥬 ®¡¢®¤ªã
|
||
cmp [Activ],0
|
||
je .NoSelect
|
||
|
||
mov edi,IconArea
|
||
mov eax,0FF000000h
|
||
mov ecx,ICON_SIZE
|
||
rep stosd
|
||
;mov edi,IconArea+ICON_SIZE*1
|
||
|
||
mov ecx,ICON_SIZE-1
|
||
@@: mov dword[edi],eax
|
||
add edi,(ICON_SIZE)*4
|
||
loop @b
|
||
|
||
mov edi,IconArea+ICON_SIZE*2*4-4
|
||
mov ecx,ICON_SIZE-1
|
||
@@: mov dword[edi],eax
|
||
add edi,(ICON_SIZE)*4
|
||
loop @b
|
||
|
||
mov edi,IconArea+ICON_SIZE*(ICON_SIZE-1)*4+4
|
||
mov ecx,ICON_SIZE-2
|
||
rep stosd
|
||
|
||
|
||
mov edi,IconArea+ICON_SIZE*4+4
|
||
mov eax,0FFFFFFFFh
|
||
mov ecx,ICON_SIZE-2
|
||
rep stosd
|
||
|
||
mov edi,IconArea+ICON_SIZE*4+4
|
||
mov ecx,ICON_SIZE-2
|
||
@@: mov dword[edi],eax
|
||
add edi,(ICON_SIZE)*4
|
||
loop @b
|
||
|
||
mov edi,IconArea+ICON_SIZE*2*4-4*2
|
||
mov ecx,ICON_SIZE-3
|
||
@@: mov dword[edi],eax
|
||
add edi,(ICON_SIZE)*4
|
||
loop @b
|
||
|
||
mov edi,IconArea+ICON_SIZE*(ICON_SIZE-2)*4+4*2
|
||
mov ecx,ICON_SIZE-3
|
||
rep stosd
|
||
;--------------
|
||
|
||
.NoSelect:
|
||
mov edi,[IconData]
|
||
xor al,al
|
||
or ecx,-1
|
||
repne scasb
|
||
repne scasb
|
||
repne scasb
|
||
repne scasb
|
||
mov edx,[edi]
|
||
|
||
test edx,00008000h
|
||
jz @f
|
||
add dx,[ScreenY]
|
||
@@:
|
||
test edx,80000000h
|
||
jz @f
|
||
rol edx,16
|
||
add dx,[ScreenX]
|
||
rol edx,16
|
||
@@:
|
||
|
||
mov ebx,IconArea
|
||
mov ecx,ICON_SIZE*10000h+ICON_SIZE
|
||
mcall 25
|
||
|
||
; mov eax,1
|
||
pop esi edi ebx
|
||
ret
|
||
endp
|
||
|
||
|
||
|
||
proc RestoreBackgrnd,NumIcon:DWORD
|
||
push ebx edi
|
||
mov eax,[NumIcon]
|
||
cmp eax,[MaxNumIcon]
|
||
jb @f
|
||
xor eax,eax
|
||
pop edi ebx
|
||
ret
|
||
@@:
|
||
|
||
mov edi,[IconsOffs+eax*4]
|
||
xor al,al
|
||
or ecx,-1
|
||
repne scasb
|
||
repne scasb
|
||
repne scasb
|
||
repne scasb
|
||
|
||
mov ax,[edi+2]
|
||
test ax,8000h
|
||
jz @f
|
||
add ax,[ScreenX]
|
||
@@:
|
||
|
||
mov bx,[edi]
|
||
test bx,8000h
|
||
jz @f
|
||
add bx,[ScreenY]
|
||
@@:
|
||
|
||
mov cx,ax
|
||
shl ecx,16
|
||
add ax,ICON_SIZE
|
||
mov cx,ax
|
||
mov dx,bx
|
||
shl edx,16
|
||
add bx,ICON_SIZE
|
||
mov dx,bx
|
||
dec ecx
|
||
dec edx
|
||
mcall 15,9
|
||
pop edi ebx
|
||
ret
|
||
endp
|
||
|
||
;ret eax=numIcon
|
||
proc AddIcon stdcall,x,y,lpIcon,lpName,lpExeFile,lpParams
|
||
push ebx edi esi
|
||
|
||
mov eax,[x]
|
||
mov ebx,[y]
|
||
|
||
xor edx,edx
|
||
test eax,8000h
|
||
jnz @f
|
||
mov dx,[ScreenX] ;¥á«¨ ¤®, â® ¯à¥®¡à §®¢ë¢ ¥¬ ¢
|
||
shr edx,1 ;®âà¨æ ⥫ìë¥ ª®®à¤¨ âë
|
||
cmp eax,edx
|
||
jbe @f
|
||
sub ax,[ScreenX]
|
||
inc eax
|
||
@@:
|
||
|
||
test ebx,8000h
|
||
jnz @f
|
||
mov dx,[ScreenY]
|
||
shr edx,1
|
||
cmp ebx,edx
|
||
jbe @f
|
||
sub bx,[ScreenY]
|
||
inc ebx
|
||
@@:
|
||
;¯®¯à ¢ª á«ãç © ¢ë室 § ªà © íªà
|
||
|
||
test eax,8000h
|
||
jnz @f
|
||
mov dx,[ScreenX]
|
||
sub edx,ICON_SIZE
|
||
cmp eax,edx
|
||
jbe @f
|
||
mov eax,edx
|
||
@@:
|
||
|
||
test ebx,8000h
|
||
jnz @f
|
||
mov dx,[ScreenY]
|
||
sub edx,ICON_SIZE
|
||
cmp ebx,edx
|
||
jbe @f
|
||
mov ebx,edx
|
||
@@:
|
||
|
||
mov [x],eax
|
||
mov [y],ebx
|
||
|
||
xor al,al
|
||
or ecx,-1
|
||
mov edi,[lpName]
|
||
repne scasb
|
||
sub edi,[lpName]
|
||
mov ebx,edi
|
||
mov edi,[lpExeFile]
|
||
repne scasb
|
||
sub edi,[lpExeFile]
|
||
add ebx,edi
|
||
mov edi,[lpParams]
|
||
repne scasb
|
||
sub edi,[lpParams]
|
||
add ebx,edi
|
||
mov edi,[lpIcon]
|
||
repne scasb
|
||
sub edi,[lpIcon]
|
||
add ebx,edi
|
||
add ebx,4
|
||
mov ecx,dword[SizeData]
|
||
add ecx,ebx
|
||
mov edx,[IconsOffs]
|
||
mcall 68,20
|
||
|
||
mov edx,dword[SizeData]
|
||
mov dword[SizeData],ecx
|
||
mov dword[BegData],eax
|
||
mov edi,eax
|
||
add edi,edx
|
||
mov esi,[lpName]
|
||
@@: lodsb
|
||
stosb
|
||
test al,al
|
||
jnz @b
|
||
|
||
mov esi,[lpExeFile]
|
||
@@: lodsb
|
||
stosb
|
||
test al,al
|
||
jnz @b
|
||
|
||
mov esi,[lpParams]
|
||
@@: lodsb
|
||
stosb
|
||
test al,al
|
||
jnz @b
|
||
|
||
mov esi,[lpIcon]
|
||
@@: lodsb
|
||
stosb
|
||
test al,al
|
||
jnz @b
|
||
|
||
mov eax,[x]
|
||
mov ebx,[y]
|
||
shl eax,16
|
||
mov ax,bx
|
||
mov dword[edi],eax
|
||
|
||
stdcall FillIconsOffs
|
||
|
||
pop esi edi ebx
|
||
ret
|
||
endp
|
||
|
||
|
||
proc EditIcon stdcall,NumIcon,lpIcon,lpName,lpExeFile,lpParams
|
||
push edi
|
||
mov eax,[NumIcon]
|
||
mov edi,[IconsOffs+eax*4]
|
||
xor al,al
|
||
or ecx,-1
|
||
repne scasb
|
||
repne scasb
|
||
repne scasb
|
||
repne scasb
|
||
push dword[edi]
|
||
stdcall DelIcon,[NumIcon]
|
||
pop edx
|
||
xor eax,eax
|
||
mov ax,dx
|
||
shr edx,16
|
||
stdcall AddIcon,edx,eax,DAreaIcon,DAreaName,DAreaPath,DAreaParams
|
||
pop edi
|
||
ret
|
||
endp
|
||
|
||
proc SetPosition stdcall,NumIcon,x,y
|
||
push edi
|
||
mov eax,[NumIcon]
|
||
mov edi,[IconsOffs+eax*4]
|
||
xor al,al
|
||
or ecx,-1
|
||
repne scasb
|
||
repne scasb
|
||
repne scasb
|
||
repne scasb
|
||
mov eax,[x]
|
||
shl eax,16
|
||
mov ax,word[y]
|
||
mov dword[edi],eax
|
||
pop edi
|
||
ret
|
||
endp
|
||
|
||
proc GetNumIcon stdcall,x,y,NumIconI ;®¬¥à ¨ª®ª¨, ª®â®àë© ¯à®¢¥àïâì ¥ ¤® ¨«¨ -1
|
||
local posX:WORD,\
|
||
posY:WORD
|
||
push ebx edi
|
||
mov ecx,[MaxNumIcon]
|
||
test ecx,ecx
|
||
jnz @f
|
||
or eax,-1
|
||
pop edi ebx
|
||
ret
|
||
@@:
|
||
|
||
xor ebx,ebx
|
||
.TestIcon:
|
||
cmp dword[NumIconI],-1
|
||
je @f
|
||
|
||
cmp ebx,[NumIconI]
|
||
jne @f
|
||
inc ebx
|
||
dec ecx
|
||
test ecx,ecx
|
||
jz .NoIcon
|
||
@@:
|
||
|
||
push ecx
|
||
|
||
or ecx,-1
|
||
xor al,al
|
||
mov edi,[IconsOffs+ebx*4]
|
||
repne scasb
|
||
repne scasb
|
||
repne scasb
|
||
repne scasb
|
||
|
||
mov ax,[edi+2]
|
||
test ax,8000h
|
||
jz @f
|
||
add ax,[ScreenX]
|
||
@@:
|
||
mov [posX],ax
|
||
|
||
mov ax,[edi]
|
||
test ax,8000h
|
||
jz @f
|
||
add ax,[ScreenY]
|
||
@@:
|
||
mov [posY],ax
|
||
|
||
mov eax,[x]
|
||
mov edx,[y]
|
||
|
||
cmp ax,[posX]
|
||
jb @f
|
||
add word[posX],ICON_SIZE
|
||
cmp ax,[posX]
|
||
ja @f
|
||
|
||
cmp dx,[posY]
|
||
jb @f
|
||
add word[posY],ICON_SIZE
|
||
cmp dx,[posY]
|
||
ja @f
|
||
|
||
jmp .OkIcon
|
||
@@:
|
||
|
||
inc ebx
|
||
pop ecx
|
||
|
||
;loop .TestIcon
|
||
dec ecx
|
||
jnz .TestIcon
|
||
jmp .NoIcon
|
||
.OkIcon:
|
||
mov eax,ebx
|
||
pop edi ebx
|
||
ret
|
||
.NoIcon:
|
||
or eax,-1
|
||
pop edi ebx
|
||
ret
|
||
endp
|
||
|
||
proc DelIcon stdcall,NumIcon
|
||
push ebx edi esi
|
||
|
||
cmp [MaxNumIcon],0
|
||
je .end
|
||
|
||
cmp [MaxNumIcon],1
|
||
je .OhneIco
|
||
|
||
mov ebx,[NumIcon]
|
||
|
||
mov eax,[MaxNumIcon]
|
||
dec eax
|
||
mov [MaxNumIcon],eax
|
||
cmp ebx,eax
|
||
je @f
|
||
|
||
shl ebx,2
|
||
|
||
mov ecx,dword[BegData]
|
||
add ecx,dword[SizeData]
|
||
sub ecx,[IconsOffs+4+ebx]
|
||
|
||
mov edx,[IconsOffs+4+ebx]
|
||
sub edx,[IconsOffs+ebx]
|
||
sub dword[SizeData],edx
|
||
|
||
mov esi,[IconsOffs+4+ebx]
|
||
mov edi,[IconsOffs+ebx]
|
||
rep movsb
|
||
jmp .endDel
|
||
|
||
@@:
|
||
mov ecx,dword[BegData]
|
||
add ecx,dword[SizeData]
|
||
sub ecx,[IconsOffs+ebx*4]
|
||
sub dword[SizeData],ecx
|
||
|
||
.endDel:
|
||
stdcall FillIconsOffs
|
||
jmp .end
|
||
|
||
.OhneIco:
|
||
mov edi,[BegData]
|
||
mov [SizeData],0
|
||
mov dword[edi],0
|
||
mov [MaxNumIcon],0
|
||
mov dword[IconsOffs],0
|
||
.end:
|
||
mcall 15,3
|
||
pop esi edi ebx
|
||
ret
|
||
endp
|
||
;§ ¯®«ï¥â MaxNumIcon,IconsOffs
|
||
proc FillIconsOffs
|
||
push ebx edi
|
||
mov edi,[BegData]
|
||
mov dword[MaxNumIcon],0
|
||
cmp dword[edi],0
|
||
jne @f
|
||
mov dword[IconsOffs],0
|
||
pop edi ebx
|
||
ret
|
||
@@:
|
||
|
||
mov [IconsOffs],edi
|
||
xor al,al
|
||
xor edx,edx
|
||
mov ebx,dword[SizeData]
|
||
add ebx,dword[BegData]
|
||
or ecx,-1
|
||
.CalcNumIc:
|
||
repne scasb
|
||
repne scasb
|
||
repne scasb
|
||
repne scasb
|
||
add edi,4
|
||
mov dword[IconsOffs+edx+4],edi
|
||
inc dword[MaxNumIcon]
|
||
add edx,4
|
||
|
||
cmp edi,ebx
|
||
jae @f
|
||
jmp .CalcNumIc
|
||
@@:
|
||
|
||
mov dword[IconsOffs+edx],0
|
||
pop edi ebx
|
||
ret
|
||
endp
|
||
|
||
proc LoadIconsData stdcall,f_name,sec_name
|
||
push ebx esi edi
|
||
|
||
mov edi,secRButt
|
||
mov esi,[sec_name]
|
||
@@: lodsb
|
||
scasb
|
||
jnz .lid1
|
||
test al,al
|
||
jnz @b
|
||
|
||
mov eax,1
|
||
pop edi esi ebx
|
||
ret
|
||
.lid1:
|
||
|
||
mov edi,[PIcoDB]
|
||
mov esi,[sec_name]
|
||
@@: lodsb
|
||
stosb
|
||
test al,al
|
||
jnz @b
|
||
|
||
stdcall [ini_get_str],[f_name],[sec_name],keyPath,edi,4096,0
|
||
test eax,eax
|
||
jz @f
|
||
xor eax,eax
|
||
pop edi esi ebx
|
||
ret
|
||
@@:
|
||
xor al,al
|
||
or ecx,-1
|
||
repne scasb
|
||
|
||
stdcall [ini_get_str],[f_name],[sec_name],keyParams,edi,4096,0
|
||
test eax,eax
|
||
jz @f
|
||
xor eax,eax
|
||
pop edi esi ebx
|
||
ret
|
||
@@:
|
||
xor al,al
|
||
or ecx,-1
|
||
repne scasb
|
||
|
||
stdcall [ini_get_str],[f_name],[sec_name],keyIco,edi,4096,0
|
||
test eax,eax
|
||
jz @f
|
||
xor eax,eax
|
||
pop edi esi ebx
|
||
ret
|
||
@@:
|
||
xor al,al
|
||
or ecx,-1
|
||
repne scasb
|
||
|
||
stdcall [ini_get_int],[f_name],[sec_name],keyX,80000000h
|
||
cmp eax,80000000h
|
||
jne @f
|
||
xor eax,eax
|
||
pop edi esi ebx
|
||
ret
|
||
@@:
|
||
mov word[edi+2],ax
|
||
|
||
stdcall [ini_get_int],[f_name],[sec_name],keyY,80000000h
|
||
cmp eax,80000000h
|
||
jne @f
|
||
xor eax,eax
|
||
pop edi esi ebx
|
||
ret
|
||
@@:
|
||
mov word[edi],ax
|
||
add edi,4
|
||
mov [PIcoDB],edi
|
||
|
||
mov eax,1
|
||
pop edi esi ebx
|
||
ret
|
||
endp
|
||
|
||
include 'bgredraw.inc'
|
||
include 'RButton.inc'
|
||
include 'DlgAdd.inc'
|
||
include 'Moving.inc'
|
||
|
||
;'Eolite',0,'/sys/File managers/eolite',0,'/hd0/3/Muzik',0,'1',0,00010001h
|
||
;-------------------------------------------------------------------------------
|
||
;##### DATA ####################################################################
|
||
;-------------------------------------------------------------------------------
|
||
; not change this section!!!
|
||
; start section
|
||
;------------------------------------------------------------------------------
|
||
align 4
|
||
image_file dd 0 ;+0
|
||
raw_pointer dd 0 ;+4
|
||
return_code dd 0 ;+8
|
||
img_size dd 0 ;+12
|
||
deflate_unpack dd 0 ;+16 ; not use for scaling
|
||
raw_pointer_2 dd 0 ;+20 ; not use for scaling
|
||
;------------------------------------------------------------------------------
|
||
; end section
|
||
;------------------------------------------------------------------------------
|
||
|
||
|
||
align 4
|
||
fiStdIco:
|
||
dd 5
|
||
dd 0
|
||
dd 0
|
||
.size dd 0
|
||
.point dd bufStdIco
|
||
db ICON_STRIP,0
|
||
|
||
|
||
align 4
|
||
fiRunProg: ;¤«ï § ¯ã᪠¯à®£à ¬¬
|
||
dd 7
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd ErrNotFoundIni
|
||
db 0
|
||
dd pthNotify
|
||
|
||
fiIni dd 5 ;¤«ï ini ä ©«
|
||
dd 0
|
||
dd 0
|
||
dd 0
|
||
dd bufIni
|
||
db '/rd/1/icon.ini',0
|
||
|
||
|
||
IconsFile db ICON_STRIP,0
|
||
NameIconsDat db ICONS_DAT,0
|
||
align 4
|
||
MaxNumIcon dd 0 ;ª®«¨ç¥á⢮ ¨ª®®ª
|
||
IconNoDraw dd -1 ;-1 «¨¡® ®¬¥à ¨ª®ª¨, ª®â®àãî ¥ ¤® à¨á®¢ âì( ª®£¤ ¥ñ â ᪠îâ :))
|
||
|
||
bFixIcons dd 1
|
||
bNotSave dd 0
|
||
|
||
LButtonActiv dd 0
|
||
RButtonActiv dd 0
|
||
MovingActiv dd 0
|
||
DlgAddActiv dd 0
|
||
|
||
IconIni db '/rd/1/icon.ini',0
|
||
|
||
|
||
|
||
;keyName db 'name',0
|
||
keyPath db 'path',0
|
||
keyParams db 'param',0
|
||
keyIco db 'ico',0
|
||
keyX db 'x',0
|
||
keyY db 'y',0
|
||
keyMenuColor db 'menucolor',0
|
||
|
||
;-------------------------------------------------------------------------------
|
||
IMPORTS:
|
||
library cnv_png,'cnv_png.obj',\
|
||
archiver,'archiver.obj',\
|
||
box_lib,'box_lib.obj',\
|
||
proc_lib,'proc_lib.obj',\
|
||
libini,'libini.obj'
|
||
|
||
import cnv_png,\
|
||
cnv_png_import.Start,'START',\
|
||
cnv_png_import.Version,'version',\
|
||
cnv_png_import.Check,'Check_Header',\
|
||
cnv_png_import.Assoc,'Associations'
|
||
|
||
import archiver,\
|
||
unpack_DeflateUnpack2,'deflate_unpack2'
|
||
|
||
import box_lib,\
|
||
edit_box_draw,'edit_box',\
|
||
edit_box_key,'edit_box_key',\
|
||
edit_box_mouse,'edit_box_mouse',\
|
||
scrollbar_h_draw,'scrollbar_h_draw',\
|
||
scrollbar_h_mouse,'scrollbar_h_mouse'
|
||
|
||
import proc_lib,\
|
||
OpenDialog_Init,'OpenDialog_init',\
|
||
OpenDialog_Start,'OpenDialog_start'
|
||
|
||
import libini,\
|
||
ini_enum_sections,'ini_enum_sections',\
|
||
ini_enum_keys,'ini_enum_keys',\
|
||
ini_get_str,'ini_get_str',\
|
||
ini_set_str,'ini_set_str',\
|
||
ini_get_color,'ini_get_color',\
|
||
ini_get_int,'ini_get_int',\
|
||
ini_set_int,'ini_set_int',\
|
||
ini_del_section,'ini_del_section'
|
||
|
||
|
||
;ini.get_str (f_name, sec_name, key_name, buffer, buf_len, def_val)
|
||
;ini.set_str (f_name, sec_name, key_name, buffer, buf_len)
|
||
|
||
|
||
;-------------------------------------------------------------------------------
|
||
;----- RButton.inc -------------------------------------------------------------
|
||
;-------------------------------------------------------------------------------
|
||
secRButt db 'rbmenu',0
|
||
|
||
if lang eq ru
|
||
RMenuRedrawFon db '<27>¥à¥à¨á®¢ âì',0
|
||
RMenuAlign db '‚ë஢ïâì ¯® á¥âª¥',0
|
||
RMenuAdd db '„®¡ ¢¨âì',0
|
||
RMenuDel db '“¤ «¨âì',0
|
||
RMenuProp db '‘¢®©á⢠',0
|
||
RMenuOffMoving db '‡ ªà¥¯¨âì ¨ª®ª¨',0
|
||
RMenuOnMoving db 'Žâªà¥¯¨âì ¨ª®ª¨',0
|
||
|
||
else
|
||
|
||
RMenuRedrawFon db 'Redraw',0
|
||
RMenuAlign db 'Snap to Grid',0
|
||
RMenuAdd db 'Add',0
|
||
RMenuDel db 'Delete',0
|
||
RMenuProp db 'Properties',0
|
||
RMenuOffMoving db 'Fix the icons',0
|
||
RMenuOnMoving db 'Unfix the icons',0
|
||
|
||
end if
|
||
|
||
if lang eq ru
|
||
|
||
ErrRunProg db 'Žè¨¡ª § ¯ã᪠¯à®£à ¬¬ë',0
|
||
WarningSave db '<27>¥ § ¡ã¤ì⥠á®åà ¨âì ¨§¬¥¥¨ï, § ¯ãáâ¨âì RDSave',0
|
||
ErrNotFoundIni db '<27>¥ ©¤¥ icon.ini',0
|
||
ErrName db 'ˆ¬ï "rbmenu" § १¥à¢¨à®¢ ®',0
|
||
else
|
||
|
||
ErrRunProg db 'Error runing program',0
|
||
WarningSave db 'Do not forget to save the changes, run the RDSave',0
|
||
ErrNotFoundIni db 'icon.ini not found',0
|
||
ErrName db 'The Name "rbmenu" reserved',0
|
||
end if
|
||
|
||
|
||
pthNotify db '/rd/1/@notify',0
|
||
|
||
;-------------------------------------------------------------------------------
|
||
;------- AddDlg.inc ---------------------------------------------------------------
|
||
;-------------------------------------------------------------------------------
|
||
if lang eq ru
|
||
DTitleAdd db '„®¡ ¢¨âì ¨ª®ªã',0
|
||
DTitleProp db 'ˆ§¬¥¨âì ¨ª®ªã',0
|
||
|
||
DCaptName db 'ˆ¬ï',0
|
||
DCaptPath db '<27>ãâì',0
|
||
DCaptParams db '<27> à ¬¥âàë',0
|
||
DCaptIcon db 'ˆª®ª ',0
|
||
;DCaptChange db '.',0
|
||
DCaptCreate db '‘®§¤ âì',0
|
||
DCaptProperties db 'ˆ§¬¥¨âì',0
|
||
DCaptCancel db 'Žâ¬¥¨âì',0
|
||
|
||
else
|
||
DTitleAdd db 'Add icon',0
|
||
DTitleProp db 'Change icon',0
|
||
|
||
DCaptName db 'Name',0
|
||
DCaptPath db 'Path',0
|
||
DCaptParams db 'Parameters',0
|
||
DCaptIcon db 'Icon',0
|
||
;DCaptChange db '.',0
|
||
DCaptCreate db 'Create',0
|
||
DCaptProperties db 'Change',0
|
||
DCaptCancel db 'Cancel',0
|
||
end if
|
||
|
||
;/¥ ¬¥ïâì ¯®«®¦¥¨¥
|
||
edtName edit_box NAME_LENGTH*6+4,70+20+IMG_SIZE,6,0FFFFFFh,06F9480h,0FFh,0h,0,NAME_LENGTH,\
|
||
DAreaName,mouse_dd,0,0,0
|
||
edtExePath edit_box 281-3-20-IMG_SIZE,70+20+IMG_SIZE,26,0FFFFFFh,06F9480h,0FFh,0h,0,256,\
|
||
DAreaPath,mouse_dd,0,0,0
|
||
edtParams edit_box 295-20-IMG_SIZE,70+20+IMG_SIZE,46,0FFFFFFh,06F9480h,0FFh,0h,0,256,\
|
||
DAreaParams,mouse_dd,0,0,0
|
||
edtIcon edit_box 295-20-IMG_SIZE,70+20+IMG_SIZE,66,0FFFFFFh,06F9480h,0FFh,0h,0,256,\
|
||
DAreaIcon,mouse_dd,0,0,0
|
||
endEdits:
|
||
;\
|
||
|
||
sbIcons:
|
||
dw END_ICONS_AREAW-ICONSX
|
||
dw ICONSX
|
||
dw 15
|
||
dw END_ICONS_AREAH+3
|
||
dd 0
|
||
dd 1
|
||
.max_area dd 0
|
||
.cur_area dd ICONS_DRAW_COUNTW
|
||
.position dd 0
|
||
.bckg_col dd 0
|
||
.frnt_col dd 0
|
||
.line_col dd 0
|
||
.redraw dd 0
|
||
.delta dd 0
|
||
.delta2 dd 0
|
||
.r_size_x dw 0
|
||
.r_start_x dw 0
|
||
.r_size_y dw 0
|
||
.r_start_y dw 0
|
||
.m_pos dd 0
|
||
.m_pos2 dd 0
|
||
.m_keys dd 0
|
||
.run_size dd 0
|
||
.position2 dd 0
|
||
.work_size dd 0
|
||
.all_redraw dd 0
|
||
.ar_offset dd 0
|
||
|
||
;-------------------------------------------------------------------------------
|
||
OpenDialog_data:
|
||
.type dd 0
|
||
.procinfo dd RBProcInfo ;+4
|
||
.com_area_name dd communication_area_name ;+8
|
||
.com_area dd 0 ;+12
|
||
.opendir_pach dd temp_dir_pach ;+16
|
||
.dir_default_pach dd communication_area_default_pach ;+20
|
||
.start_path dd open_dialog_path ;+24
|
||
.draw_window dd DRedraw;draw_window_for_OD ;+28
|
||
.status dd 0 ;+32
|
||
.openfile_pach dd DAreaPath;fname_Info ;+36
|
||
.filename_area dd 0;DAreaPath ;+40
|
||
.filter_area dd Filter
|
||
.x:
|
||
.x_size dw 420 ;+48 ; Window X size
|
||
.x_start dw 100 ;+50 ; Window X position
|
||
.y:
|
||
.y_size dw 320 ;+52 ; Window y size
|
||
.y_start dw 100 ;+54 ; Window Y position
|
||
|
||
communication_area_name:
|
||
db 'FFFFFFFF_open_dialog',0
|
||
open_dialog_path:
|
||
db '/sys/File managers/opendial',0
|
||
|
||
communication_area_default_pach:
|
||
db '/sys',0
|
||
|
||
Filter dd 0
|
||
|
||
;open_dialog db 0
|
||
;-------------------------------------------------------------------------------
|
||
|
||
;/¥ à §¤¥«ïâì
|
||
align 4
|
||
IconAreaH dd ICON_SIZE,ICON_SIZE
|
||
I_END:
|
||
;##### UDATA ###################################################################
|
||
IconArea rb 4*ICON_SIZE*ICON_SIZE
|
||
;\
|
||
|
||
ScreenX rw 1
|
||
ScreenY rw 1
|
||
|
||
MouseX rd 1
|
||
MouseY rd 1
|
||
|
||
RBSlot rd 1
|
||
|
||
AddX rd 1
|
||
AddY rd 1
|
||
|
||
SelIcon rd 1
|
||
DlgSelIcon rd 1
|
||
slotDlgAdd rd 1
|
||
|
||
sc system_colors
|
||
|
||
align 4
|
||
bufStdIco rb 40
|
||
IconsOffs rd 100
|
||
PIcoDB rd 1
|
||
|
||
|
||
align 4
|
||
icon_count rd 1
|
||
strip_file rd 1
|
||
strip_file_size rd 1
|
||
|
||
cur_band_compensation rd 1
|
||
|
||
;---- RButton -----------------------------------------------------------------------
|
||
bufIni rb 40
|
||
NumUserButt rd 1
|
||
RBUser rd 16*2+1
|
||
RMenuW rw 1
|
||
RMenuH rw 1
|
||
RMenuHsb rw 1
|
||
|
||
MaxPage rd 1
|
||
RBMenuColor rd 1
|
||
mouse_dd rd 1
|
||
|
||
DAreaName rb NAME_LENGTH+1
|
||
DAreaPath rb 256+1
|
||
DAreaParams rb 256+1
|
||
DAreaIcon rb 256+1
|
||
|
||
align 4
|
||
RBProcInfo rb 1024
|
||
align 4
|
||
|
||
; OpenDialog
|
||
temp_dir_pach rb 1024
|
||
fname_Info rb 1024
|
||
;-------------------------------------------------------------------------------
|
||
rb 1024
|
||
stack_dlg:
|
||
align 4
|
||
rb 1024
|
||
stack_bredraw:
|
||
rb 1024
|
||
stack_area:
|
||
;------------------------------------------------------------------------------
|
||
ENDMEM: |