/programs/system/icon_new/@icon.asm |
---|
38,7 → 38,6 |
include 'lang.inc' |
include '../../macros.inc' |
include '../../proc32.inc' |
;include '../../API.inc' |
include '../../develop/libraries/box_lib/trunk/box_lib.mac' |
include '../../dll.inc' |
;include '../../debug.inc' |
49,6 → 48,7 |
stdcall dll.Load,IMPORTS |
test eax,eax |
jnz ErrLoadLibs |
;------------------------------------------------------------------------------- |
; unpack deflate |
mov eax,[unpack_DeflateUnpack2] |
141,11 → 141,8 |
and eax,0FFh |
mov [sbIcons.max_area],eax |
; int3 |
; mov eax,1 |
; mov eax,[IconsOffs+eax*4] |
; stdcall [ini_del_section],IconIni,eax |
; ret |
stdcall [OpenDialog_Init],OpenDialog_data |
jmp MSGRedrawIcons |
messages: |
301,6 → 298,7 |
;------------------------------------------------------------------------------- |
MovingIcon: |
;int3 |
stdcall GetNumIcon,[MouseX],[MouseY],-1 |
mov [SelIcon],eax |
stdcall RestoreBackgrnd,[SelIcon] |
369,7 → 367,7 |
;qweqwe: |
mov [MovingActiv],1 |
mcall 51,1,MovingWnd,stack_dlg ;CreateThread MovingWnd,stack_dlg |
mcall 51,1,MovingWnd,stack_move ;CreateThread MovingWnd,stack_dlg |
.WaitLB: |
mcall 37,2 ;GetMouseKey |
test al,001b |
458,7 → 456,7 |
jmp @b |
@@: |
mcall 51,1,RButtonWin,stack_dlg ;CreateThread RButtonWin,stack_dlg |
mcall 51,1,RButtonWin,stack_rb ;CreateThread RButtonWin,stack_dlg |
jmp messages |
1178,13 → 1176,16 |
align 4 |
MaxNumIcon dd 0 ;ª®«¨ç¥á⢮ ¨ª®®ª |
bFixIcons dd 0 |
bFixIcons dd 1 |
bNotSave dd 0 |
LButtonActiv dd 0 |
RButtonActiv dd 0 |
MovingActiv dd 0 |
DlgAddActiv dd 0 |
slotDlgAdd dd 0 |
IconIni db '/rd/1/icon.ini',0 |
1242,6 → 1243,7 |
;----- RButton.inc ------------------------------------------------------------- |
;------------------------------------------------------------------------------- |
secRButt db 'rbmenu',0 |
keyMenuColor db 'menucolor',0 |
if lang eq ru |
RMenuRedrawFon db '¥à¥à¨á®¢ âì',0 |
1291,7 → 1293,6 |
DCaptPath db 'ãâì',0 |
DCaptParams db ' à ¬¥âàë',0 |
DCaptIcon db 'ª®ª ',0 |
;DCaptChange db '.',0 |
DCaptCreate db '®§¤ âì',0 |
DCaptProperties db '§¬¥¨âì',0 |
DCaptCancel db '⬥¨âì',0 |
1303,7 → 1304,6 |
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 |
1404,6 → 1404,7 |
AddY rd 1 |
SelIcon rd 1 |
DlgSelIcon rd 1 |
sc system_colors |
1438,12 → 1439,17 |
align 4 |
RBProcInfo rb 1024 |
align 4 |
RBMenuColor rd 1 |
; OpenDialog |
temp_dir_pach rb 1024 |
fname_Info rb 1024 |
;------------------------------------------------------------------------------- |
rb 256 |
stack_move: |
stack_rb: |
rb 1024 |
stack_dlg: |
align 4 |
/programs/system/icon_new/DlgAdd.inc |
---|
6,7 → 6,9 |
DlgAdd: |
DlgProp: |
mov eax,[SelIcon] |
mov [DlgSelIcon],eax |
cmp eax,-1 |
jne SetProp |
92,6 → 94,10 |
startDlg: |
mcall 9,RBProcInfo,-1 |
mcall 18,21,dword[RBProcInfo+30] |
mov [slotDlgAdd],eax |
or [edtName.flags],ed_focus |
mcall 40,100111b ;SetMaskMessage 100111b |
108,8 → 114,6 |
mov dword[MaxPage],1 |
@@: |
stdcall [OpenDialog_Init],OpenDialog_data |
DReDraw: |
mcall 48,3,sc,40 |
332,14 → 336,14 |
mcall 70,fiRunProg |
cmp [SelIcon],-1 |
cmp [DlgSelIcon],-1 |
je @f |
;㤠«ï¥¬ ¨§ ini áâ àãî ¨ª®ªã |
mov ebx,[SelIcon] |
mov ebx,[DlgSelIcon] |
mov eax,[IconsOffs+ebx*4] |
stdcall [ini_del_section],IconIni,eax |
stdcall EditIcon,[SelIcon],DAreaIcon,DAreaName,DAreaPath,DAreaParams |
stdcall EditIcon,[DlgSelIcon],DAreaIcon,DAreaName,DAreaPath,DAreaParams |
jmp DExitAndSave |
@@: |
stdcall AddIcon,[AddX],[AddY],DAreaIcon,DAreaName,DAreaPath,DAreaParams |
354,7 → 358,9 |
stdcall [ini_set_int],IconIni,DAreaName,keyY,[MouseY] |
DExit: |
mcall -1 ;ExitProcess |
mov [DlgAddActiv],0 |
mov [slotDlgAdd],0 |
mcall -1 ;ExitThread |
;################################################################## |
proc DRedraw |
404,7 → 410,7 |
or ecx,80000000h |
mcall ,<309,35+END_ICONS_AREAH>,,DCaptCancel |
cmp [SelIcon],-1 |
cmp [DlgSelIcon],-1 |
jne @f |
mpack ebx,255,35+END_ICONS_AREAH |
mov edx,DCaptCreate |
419,7 → 425,7 |
mcall ,<315,35+END_ICONS_AREAH>,,DCaptCancel |
cmp [SelIcon],-1 |
cmp [DlgSelIcon],-1 |
jne @f |
mpack ebx,257,35+END_ICONS_AREAH |
mov edx,DCaptCreate |
/programs/system/icon_new/RButton.inc |
---|
63,7 → 63,7 |
xor ebx,ebx |
mov bx,[RMenuW] |
mov esi,0888888h |
mov esi,[RBMenuColor];0888888h |
mcall 8 |
mov ebx,50000h |
93,7 → 93,7 |
mov cx,dx |
;¯¥à¢ ï à §¤¥«¨â¥«ì ï «¨¨ï |
mcall 38,,,0888888h |
mcall 38,,,[RBMenuColor];0888888h |
add ecx,00010001h |
mcall ,,, |
103,7 → 103,7 |
shl ecx,16 |
mov cx,16 |
mcall 8,,,idbRRedrawFon,0888888h ;3 ª®¯ª¨ ¢â®à®£® ¡«®ª |
mcall 8,,,idbRRedrawFon,[RBMenuColor];0888888h ;3 ª®¯ª¨ ¢â®à®£® ¡«®ª |
add ecx,00100000h |
mcall ,,,idbRAlign |
add ecx,00100000h |
134,7 → 134,7 |
mov dx,cx |
shl ecx,16 |
mov cx,dx |
mcall 38,,,0888888h |
mcall 38,,,[RBMenuColor];0888888h |
add ecx,00010001h |
mcall ,,, |
;------------ |
146,9 → 146,9 |
cmp dword[SelIcon],-1 |
je @f |
mcall 8,,,idbRDel,0888888h |
mcall 8,,,idbRDel,[RBMenuColor];0888888h |
add ecx,00100000h |
mcall ,,,idbRProp,0888888h |
mcall ,,,idbRProp,[RBMenuColor];0888888h |
mov ebx,50000h |
mov bx,word[esp] |
160,7 → 160,7 |
jmp .endRM |
@@: |
mcall 8,,,idbRAdd,0888888h |
mcall 8,,,idbRAdd,[RBMenuColor];0888888h |
mov ebx,50000h |
mov bx,word[esp] |
add bx,16*3+4+5 |
266,7 → 266,10 |
jmp RBWExit |
RBAdd: |
; mov [DlgAddActiv],1 |
cmp [DlgAddActiv],1 |
je RBWSetActivWin |
mov [DlgAddActiv],1 |
mcall 51,1,DlgAdd,stack_dlg ;CreateThread DlgAdd,stack_dlg |
jmp RBWExit |
289,10 → 292,16 |
jmp RBRedrawFon |
RBPropeties: |
; mov [DlgAddActiv],1 |
cmp [DlgAddActiv],1 |
je RBWSetActivWin |
mov [DlgAddActiv],1 |
mcall 51,1,DlgProp,stack_dlg ;CreateThread DlgProp,stack_dlg |
jmp RBWExit |
RBWSetActivWin: |
mcall 18,3,[slotDlgAdd] |
jmp RBWExit |
proc AlignIcons |
443,6 → 452,19 |
push ebx esi edi |
mov edi,[key_name] |
mov esi,keyMenuColor |
@@: lodsb |
scasb |
jne @f |
test al,al |
jnz @b |
stdcall [ini_get_color],[f_name],[sec_name],[key_name],0888888h |
mov [RBMenuColor],eax |
ret |
@@: |
mov edi,[key_name] ;®¯à¥¤¥«ï¥¬ è¨à¨ã ¬¥î |
xor eax,eax |
or ecx,-1 |
491,7 → 513,7 |
proc Ini_SavePos stdcall,f_name,sec_name |
push ebx edi esi |
;int3 |
xor ebx,ebx |
.SearchSect: |
mov edi,[IconsOffs+ebx*4] |
520,6 → 542,7 |
repne scasb |
repne scasb |
;int3 |
movzx eax,word[edi+2] |
test eax,8000h |
jz @f |
/programs/system/icon_new/build.bat |
---|
0,0 → 1,5 |
@echo lang fix en >lang.inc |
@fasm -m 16384 @icon.asm @icon |
@erase lang.inc |
@kpack @icon |
@pause |
/programs/system/icon_new/build.sh |
---|
0,0 → 1,13 |
#!/bin/bash |
# This script does for linux the same as build.bat for DOS, |
echo "lang fix en" |
echo "lang fix en" > lang.inc |
fasm -m 16384 @icon.asm @icon |
kpack @icon |
rm -f lang.inc |
exit 0 |
/programs/system/icon_new/ico.inc |
---|
0,0 → 1,131 |
include 'libimg/libimg.asm' |
;¢®§¢à é ¥â 㪠§ â¥«ì ¯ ¬ïâì «¨¡® 0 |
LoadIcon: |
path equ ebp+8 |
BuffR equ ebp-16 |
BuffH equ ebp-22 |
endTablI equ ebp-26 |
push ebp |
mov ebp,esp |
add esp,-26 |
push ebx edi esi |
;--------------------------- ¯à®¢¥à塞 - § £à㦥 «¨ íâ®â ä ©« á ¨ª®ª®© ------ |
xor ebx,ebx |
.SearchIco: |
mov edi,[path] |
mov esi,[IcoTable+ebx] |
@@: lodsb |
scasb |
jne @f |
test al,al |
jnz @b |
mov eax,[IcoTable+ebx+4] |
pop esi edi ebx |
leave |
ret 4 |
@@: |
add ebx,8 |
cmp ebx,50*8 |
jne @f |
xor eax,eax |
pop esi edi ebx |
leave |
ret 4 |
@@: |
cmp [IcoTable+ebx],0 |
jnz .SearchIco |
;------------------------------------------------------------------------------- |
mov [endTablI],ebx |
m2m dword[fiIcon.path],dword[path] |
mcall 70,fiIcon |
test eax,eax |
jz @f |
xor eax,eax |
pop esi edi ebx |
leave |
ret 4 |
@@: |
xor ecx,ecx |
mov cx,[BuffH+4] |
xor edi,edi |
.TestRecord: |
cmp word[BuffR],2020h |
jne .NextRec |
cmp byte[BuffR+2],0 |
jne .NextRec |
lea eax,[BuffR] |
stdcall LoadIco32b, [path],eax |
pop esi edi ebx |
leave |
ret 4 |
.NextRec: |
inc edi |
mov eax,edi |
shl eax,4 |
add eax,6 |
mov dword[fiIcon.pos],eax |
mcall 70,fiIcon |
loop .TestRecord |
xor eax,eax |
pop esi edi ebx |
leave |
ret 4 |
restore path |
restore BuffH |
restore BuffR |
proc LoadIco32b, path,bufHeader |
local ImgBuff:DWORD |
mov edi,[bufHeader] |
cmp dword[edi+8],10A8h |
je @f |
xor eax,eax |
ret |
@@: |
mcall 68,12,32*32*4*2 |
mov ebx,[endTablI] |
mov [IcoTable+ebx],eax |
add eax,4096 |
mov [IcoTable+ebx+4],eax |
mov [ImgBuff],eax |
m2m dword[fiIcon.pos],dword[edi+12] |
mov dword[fiIcon.size],32*32*4 |
mcall 70,fiIcon |
mov eax,[ImgBuff] |
ret |
endp |
fiIcon: |
dd 0 |
.pos dd 0 |
dd 0 |
.size dd 22 |
.point dd 0 |
db 0 |
.path dd 0 |
IcoTable rd 2*50 ;(name(4), data(4)). End - dword 0 |
/programs/system/icon_new/icon.ini |
---|
3,6 → 3,7 |
¨á¯¥âç¥à ¯à®æ¥áᮢ=/rd/1/cpu |
¯à ¢«¥¨¥ ⥬®©=desktop |
áâனª ãáâனáâ¢=setup |
menucolor=128,128,128 |
[KFM] |
path=/SYS/FILE MANAGERS/KFM |
param= |