2020-10-02 14:33:16 +02:00
ICON_STRIP equ '/sys/icons32.png'
ICON_INI equ '/sys/settings/icon.ini'
2014-05-28 19:01:28 +02:00
ICON_SIZE equ 68 ;ࠧ<> <E0A0A7> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
IMG_SIZE equ 32 ;ࠧ<> <E0A0A7> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2014-08-04 00:17:27 +02:00
TEXT_BOTTOM_Y equ 14 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> Y ⥪<> <E2A5AA> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2014-05-28 19:01:28 +02:00
IMAGE_TOP_Y equ 10 ;>=1 <20> <> <EFBFBD> न<EFBFBD> <E0A4A8> <EFBFBD> <EFBFBD> Y <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ALIGN_SIZE equ 68 ;ࠧ<> <E0A0A7> <EFBFBD> <20> <> ⪨ <20> <> ࠢ<EFBFBD> <E0A0A2> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
NAME_LENGTH equ 11 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
MIN_NO_MOVING equ 8 ;<3B> <> १ <20> ⮫쪮 <20> <> <EFBFBD> ᥫ<EFBFBD> <E1A5AB> ᤢ<> <E1A4A2> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> 稭<EFBFBD> <E7A8AD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ᪠<EFBFBD> <E1AAA0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
;--------<2D> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ᮧ<> <E1AEA7> <EFBFBD> <EFBFBD> <EFBFBD> /।<> <E0A5A4> <EFBFBD> <EFBFBD> <EFBFBD> <E0AEA2> <EFBFBD> <EFBFBD>
2013-11-01 22:07:43 +01:00
ICONSX equ 20
2017-09-26 20:05:30 +02:00
ICONSY equ 90
ICONS_DRAW_COUNTW equ 12 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⢮ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> ਭ<EFBFBD>
ICONS_DRAW_COUNTH equ 6 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⢮ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2014-05-28 19:01:28 +02:00
SPCW equ 3 ;<3B> <EFBFBD> <E0AEA1> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> ਧ<EFBFBD> <E0A8A7> ⠫<EFBFBD>
2013-11-01 22:07:43 +01:00
SPCH equ 3
2013-08-04 22:58:46 +02:00
END_ICONS_AREAW equ ICONSX + ( IMG_SIZE + SP CW ) * ICONS_DRAW_COUNTW - SP CW
END_ICONS_AREAH equ ICONSY + ( IMG_SIZE + SP CH ) * ICONS_DRAW_COUNTH - SP CH
2013-11-01 22:07:43 +01:00
SizeData equ bufStdIco + 32
BegData equ fiStdIco.point
2013-08-04 22:58:46 +02:00
;------------------------------------------------------------------------------
2013-11-01 22:07:43 +01:00
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_main ; esp
dd 0 ; boot parameters
dd 0 ; path
2013-08-04 22:58:46 +02:00
;------------------------------------------------------------------------------
include 'lang.inc'
include '../../macros.inc'
include '../../proc32.inc'
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
include '../../dll.inc'
2018-10-06 00:10:27 +02:00
include '../../debug.inc'
; include '../include/lang.inc'
; include '../include/macros.inc'
; include '../include/proc32.inc'
; include '../include/box_lib.mac'
; include '../include/dll.inc'
2013-08-04 22:58:46 +02:00
;------------------------------------------------------------------------------
2013-11-01 22:07:43 +01:00
START: ; start of execution
2018-10-06 00:10:27 +02:00
2013-11-01 22:07:43 +01:00
mcall 68 , 11
stdcall dl l.Load , IMPORTS
test eax , eax
jnz ErrLoadLibs
2013-08-04 22:58:46 +02:00
2020-04-25 16:36:28 +02:00
mcall 30 , 1 , curpath
2013-08-04 22:58:46 +02:00
; unpack deflate
2013-11-01 22:07:43 +01:00
mov eax ,[ unpack_DeflateUnpack2 ]
mov [ deflate_unpack ], eax
2013-08-04 22:58:46 +02:00
;---------------------------------------------------------------------
2015-02-18 22:58:18 +01:00
; get size of file icons32.png
2013-11-01 22:07:43 +01:00
mcall 70 , fiStdIco
test eax , eax
jnz ErrorStrp
2015-02-18 22:58:18 +01:00
; get memory for icons32.png
2013-11-01 22:07:43 +01:00
mov ecx , dword [ bufStdIco + 32 ]
mov [ fiStdIco.size ], ecx
mov [ img_size ], ecx
mcall 68 , 12
mov [ fiStdIco.point ], eax
mov [ image_file ], eax
2015-02-18 22:58:18 +01:00
; load icons32.png
2013-11-01 22:07:43 +01:00
mov dword [ fiStdIco ], 0
mcall 70 , fiStdIco
test eax , eax
jnz cl ose
2013-08-04 22:58:46 +02:00
; convert PNG to RAW
2013-11-01 22:07:43 +01:00
xor eax , eax
mov [ return_code ], eax
2013-08-04 22:58:46 +02:00
;int3
2013-11-01 22:07:43 +01:00
push image_file
call [ cnv_png_import.Start ]
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
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
2013-08-04 22:58:46 +02:00
; back memory to system
2013-11-01 22:07:43 +01:00
mcall 68 , 13 ,[ fiStdIco.point ]
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
mov eax ,[ raw_pointer ]
mov eax ,[ eax + 8 ]
shr eax , 5
mov [ icon_count ], eax
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
and eax , 0x7
mov [ cur_band_compensation ], eax
2013-08-04 22:58:46 +02:00
2014-05-28 19:01:28 +02:00
;########## <20> <> <EFBFBD> <EFBFBD> 㦠<EFBFBD> <E3A6A0> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ##########################
2013-08-04 22:58:46 +02:00
2014-05-28 19:01:28 +02:00
mcall 70 , fiIni ;<3B> 뤥<EFBFBD> 塞 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 筮<EFBFBD> <20> <> <EFBFBD> <20> ࠭<EFBFBD> <E0A0AD> <EFBFBD> <EFBFBD> ini 䠩<> <E4A0A9> .
test eax , eax ;<3B> <> <20> <> 筮 墠<> <E5A2A0> <EFBFBD> <20> <> <EFBFBD> <20> ࠭<EFBFBD> <E0A0AD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2013-11-01 22:07:43 +01:00
jnz ErrorIni
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
cmp dword [ bufIni + 32 ], 0
je ErrorIni
mcall 68 , 12 , dword [ bufIni + 32 ]
mov dword [ BegData ], eax
jmp NoErrIni
2013-08-04 22:58:46 +02:00
ErrorIni:
2013-11-01 22:07:43 +01:00
mcall 70 , fiRunProg
mcall - 1
2013-08-04 22:58:46 +02:00
NoErrIni:
2013-11-01 22:07:43 +01:00
m2m [ PIcoDB ],[ BegData ]
2013-08-04 22:58:46 +02:00
2013-12-09 22:02:13 +01:00
mov edi , IconsID
xor eax , eax
mov ecx , 100h / 4
rep stosd
mov [ nLoadIcon ], 0
2013-11-01 22:07:43 +01:00
stdcall [ ini_enum_sections ], IconIni , LoadIconsData
2018-10-06 00:10:27 +02:00
2013-11-01 22:07:43 +01:00
mov eax , dword [ PIcoDB ]
sub eax ,[ BegData ]
mov dword [ Si zeData ], eax
mov eax ,[ BegData ]
cmp eax ,[ PIcoDB ]
jne @ f
mov dword [ eax ], 0
mov dword [ Si zeData ], 0
2013-08-04 22:58:46 +02:00
@ @ :
;######################################################################
2014-05-28 19:01:28 +02:00
call FillIconsOffs ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> MaxNumIcon,IconsOffs
2013-08-04 22:58:46 +02:00
2014-08-04 00:17:27 +02:00
;<3B> <> <EFBFBD> 樠<EFBFBD> <E6A8A0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> IPC <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mov dword [ IPCbuffer ], 0
mov dword [ IPCbuffer + 4 ], 8
mcall 60 , 1 , IPCbuffer , 1024
2013-08-04 22:58:46 +02:00
2017-09-27 03:11:14 +02:00
mcall 40 , EVM_MOUSE + EVM_IPC ;<3B> 㦭<EFBFBD> ⮫쪮 ᮡ<> <E1AEA1> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> IPC,
2014-08-04 00:17:27 +02:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ᮢ<EFBFBD> <E1AEA2> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 㤥<EFBFBD> <20> <20> <> 㣮<EFBFBD> <20> <> ⮪<EFBFBD>
2013-11-01 22:07:43 +01:00
mov eax ,[ icon_count ]
mov bl , ICONS_DRAW_COUNTH
div bl
test ah , ah
jz @ f
inc al
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
and eax , 0FFh
mov [ sbIcons.max_area ], eax
2013-08-04 22:58:46 +02:00
2014-05-28 19:01:28 +02:00
mcall 51 , 1 , BGRedrawThread , stack_bredraw ;<3B> <> <EFBFBD> <EFBFBD> ᪠<EFBFBD> <E1AAA0> <20> <> ⮪ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ᮢ<EFBFBD> <E1AEA2> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2013-11-01 22:07:43 +01:00
stdcall [ OpenDialog_Init ], OpenDialog_data
2013-08-04 22:58:46 +02:00
2013-12-09 22:02:13 +01:00
;dph [MaxNumIcon]
2013-08-04 22:58:46 +02:00
messages:
2013-11-01 22:07:43 +01:00
mcall 10
sub eax , 6
jz MSGMouse
2014-08-04 00:17:27 +02:00
dec eax
jz MSGIPC
2013-11-01 22:07:43 +01:00
jmp messages
2013-08-04 22:58:46 +02:00
2014-08-04 00:17:27 +02:00
MSGIPC:
call IPCCreateIcon
jmp messages
2013-08-04 22:58:46 +02:00
MSGMouse:
2013-11-01 22:07:43 +01:00
mcall 37 , 0 ;GetMousePos
xor ebx , ebx
mov bx , ax
shr eax , 16
mov ecx , ebx
mov ebx , eax
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
mcall 34
cmp eax , 1
jne messages
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
cmp [ RButtonActiv ], 1
je messages
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
mov [ MouseY ], ecx
mov [ MouseX ], ebx
2013-08-04 22:58:46 +02:00
2020-05-20 03:13:52 +02:00
MOUSE_STATE_LMB_HOLD = $ 00000001
MOUSE_STATE_RMB_HOLD = $ 00000002
MOUSE_EVENT_LMB_DOWN = $ 00000100
MOUSE_EVENT_RMB_DOWN = $ 00000200
2013-08-04 22:58:46 +02:00
2020-05-19 23:39:09 +02:00
mcall 37 , 3
2020-05-20 03:13:52 +02:00
;check LMB is pressed
test eax , MOUSE_STATE_LMB_HOLD
jz @ f
test eax , MOUSE_EVENT_LMB_DOWN
jz @ f
jmp LButtonPress
2020-05-19 23:39:09 +02:00
@ @ :
2020-05-20 03:13:52 +02:00
;check RMB is pressed
test eax , MOUSE_STATE_RMB_HOLD
jz @ f
test eax , MOUSE_EVENT_RMB_DOWN
jz @ f
jmp RButtonPress
2020-05-19 23:39:09 +02:00
@ @ :
2020-05-20 03:13:52 +02:00
jmp messages
2013-08-04 22:58:46 +02:00
ErrLoadLibs:
2014-05-28 19:01:28 +02:00
;dps '<27> <> 㤠<> <E3A4A0> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 㧨<EFBFBD> <E3A7A8> <20> <> <EFBFBD> <EFBFBD> 室<EFBFBD> <E5AEA4> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⥪<EFBFBD> '
2013-11-01 22:07:43 +01:00
;debug_newline
jmp cl ose
2013-08-04 22:58:46 +02:00
ErrorStrp:
2015-02-18 22:58:18 +01:00
;dps '<27> 訡<EFBFBD> <E8A8A1> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> icons32.png'
2013-11-01 22:07:43 +01:00
;debug_newline
2013-08-04 22:58:46 +02:00
close:
2013-11-01 22:07:43 +01:00
mcall - 1
2013-08-04 22:58:46 +02:00
LButtonPress:
2013-12-09 22:02:13 +01:00
2013-11-01 22:07:43 +01:00
stdcall GetNumIcon ,[ MouseX ],[ MouseY ], - 1
2013-08-04 22:58:46 +02:00
;int3
2013-11-01 22:07:43 +01:00
cmp eax , - 1
jnz @ f
2013-08-04 22:58:46 +02:00
WaitLB1:
2013-11-01 22:07:43 +01:00
mcall 37 , 2
test al , 001b
jz messages
;Yield
mcall 5 , 1
jmp WaitLB1
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
push eax
stdcall DrawIcon , eax , 1
2013-08-04 22:58:46 +02:00
WaitLB:
2013-11-01 22:07:43 +01:00
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
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
sub ebx ,[ MouseY ]
jns @ f
neg ebx
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
cmp [ bFixIcons ], 0
jne @ f
cmp eax , MIN_NO_MOVING
ja MovingIcon
cmp ebx , MIN_NO_MOVING
ja MovingIcon
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
;Yield
mcall 5 , 1 ;Sleep 1
2013-10-04 00:53:51 +02:00
2013-11-01 22:07:43 +01:00
jmp WaitLB
2013-08-04 22:58:46 +02:00
endWaitLB:
2013-11-01 22:07:43 +01:00
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
2014-05-28 19:01:28 +02:00
cmp eax ,[ esp ] ;[esp] = <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2013-11-01 22:07:43 +01:00
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
2018-10-06 00:10:27 +02:00
2013-11-01 22:07:43 +01:00
test eax , 80000000h
jz @ f
mov dword [ fiRunProg + 8 ], ErrRunProg
mov dword [ fiRunProg + 21 ], pthNotify
mcall 70 , fiRunProg
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
pop eax
stdcall RestoreBackgrnd , eax
2017-10-11 12:49:15 +02:00
mcall 5 , 60
2013-11-01 22:07:43 +01:00
jmp messages
2013-08-04 22:58:46 +02:00
;-------------------------------------------------------------------------------
MovingIcon:
2013-11-01 22:07:43 +01:00
stdcall GetNumIcon ,[ MouseX ],[ MouseY ], - 1
mov [ SelIcon ], eax
mov [ IconNoDraw ], eax
stdcall RestoreBackgrnd ,[ SelIcon ]
2013-08-04 22:58:46 +02:00
; 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:
2013-11-01 22:07:43 +01:00
mov [ MovingActiv ], 1
mcall 51 , 1 , MovingWnd , stack_mov ;CreateThread MovingWnd,stack_dlg
2013-08-04 22:58:46 +02:00
.WaitLB:
2013-11-01 22:07:43 +01:00
mcall 37 , 2 ;GetMouseKey
test al , 001b
jz .endWaitLB
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
;Yield
mcall 5 , 1 ;Sleep 1
jmp .WaitLB
2013-08-04 22:58:46 +02:00
.endWaitLB:
2013-10-11 14:39:43 +02:00
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
mcall 37 , 0 ;GetMousePos
xor ebx , ebx
mov bx , ax
shr eax , 16
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
sub eax , 1 + ICON_SIZE / 2
jnc @ f
xor eax , eax
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
sub ebx , ICON_SIZE / 2 - 7
jnc @ f
xor ebx , ebx
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
cmp ax ,[ wsX ]
jae @ f
mov ax ,[ wsX ]
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
cmp bx ,[ wsY ]
jae @ f
mov bx ,[ wsY ]
2014-05-28 19:01:28 +02:00
@ @ : ;eax,ebx - ॠ<> 쭠<EFBFBD> <20> <> <EFBFBD> न<EFBFBD> <E0A4A8> <EFBFBD> <EFBFBD> . <20> <> <EFBFBD> <20> <> <EFBFBD> न<EFBFBD> <E0A4A8> <EFBFBD> <EFBFBD> <20> <20> ண<EFBFBD> <20> ⭮<EFBFBD> <E2ADAE> ⥫쭮 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> 孥<EFBFBD> <E5ADA5> 㣫<> ࠡ<> 祩 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2013-11-01 22:07:43 +01:00
xor edx , edx
mov dx ,[ wsXe ]
sub edx , ICON_SIZE
cmp eax , edx
jbe @ f
mov eax , edx
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
mov dx ,[ wsYe ]
sub edx , ICON_SIZE
cmp ebx , edx
jbe @ f
mov ebx , edx
2013-08-04 22:58:46 +02:00
@ @ :
2014-05-28 19:01:28 +02:00
xor edx , edx ;<3B> ८<EFBFBD> ࠧ<EFBFBD> <E0A0A7> 뢠<EFBFBD> <EBA2A0> <20> <20> ⭮<EFBFBD> <E2ADAE> ⥫<EFBFBD> <E2A5AB> <EFBFBD> <EFBFBD>
2013-11-01 22:07:43 +01:00
mov dx ,[ wsW ]
shr edx , 1
add dx ,[ wsX ]
cmp eax , edx
jbe @ f
sub ax ,[ wsXe ]
inc ax
jmp .mov1
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
sub ax ,[ wsX ]
.mov1:
xor edx , edx
mov dx ,[ wsH ]
shr edx , 1
add dx ,[ wsY ]
cmp ebx , edx
jbe @ f
sub bx ,[ wsYe ]
inc bx
jmp .mov2
@ @ :
sub bx ,[ wsY ]
.mov2:
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
stdcall SetPosition ,[ SelIcon ], eax , ebx
2013-10-08 01:32:08 +02:00
2013-11-01 22:07:43 +01:00
m2m [ PIcoDB ],[ BegData ]
stdcall [ ini_enum_sections ], IconIni , Ini_SavePos ;in RButton.inc
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
mov [ bNotSave ], 1
mov [ IconNoDraw ], - 1
2013-10-11 14:39:43 +02:00
2014-05-28 19:01:28 +02:00
mov [ MovingActiv ], 0 ;⮫쪮 ⥯<> <E2A5AF> <EFBFBD> <20> ⪫<EFBFBD> 砥<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <EFBFBD>
2013-10-08 01:32:08 +02:00
2013-11-01 22:07:43 +01:00
jmp messages
2013-08-04 22:58:46 +02:00
;-------------------------------------------------------------------------------
RButtonPress:
2013-11-01 22:07:43 +01:00
mov [ RButtonActiv ], 1
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
mcall 37 , 2 ;GetMouseKey
test al , 010b
jz @ f
mcall 5 , 1 ;Yield
jmp @ b
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
mcall 51 , 1 , RButtonWin , stack_rmenu ;CreateThread RButtonWin,stack_rmenu
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
jmp messages
2013-08-04 22:58:46 +02:00
;###############################################################################
2014-05-28 19:01:28 +02:00
;ret eax = 1/0 = 㤠<> <E3A4A0> /<2F> 訡<EFBFBD> <E8A8A1>
2013-08-04 22:58:46 +02:00
proc DrawIcon NumIcon : DWORD , Activ : DWORD ;NumIcon = 0..n
2013-11-01 22:07:43 +01:00
local IconData : DWORD
push ebx edi esi
mov ecx , ICON_SIZE * ICON_SIZE
xor eax , eax
mov edi , IconArea
rep stosd
mov eax ,[ NumIcon ]
cmp eax ,[ MaxNumIcon ]
jb @ f
xor eax , eax
pop esi edi ebx
ret
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
mov esi ,[ IconsOffs + eax * 4 ]
mov [ IconData ], esi
2014-05-28 19:01:28 +02:00
;<3B> <> <EFBFBD> 㥬 ⥪<> <E2A5AA>
2013-11-01 22:07:43 +01:00
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
2014-05-28 19:01:28 +02:00
shr ebx , 1 ;ebx = x ⥪<> <E2A5AA> <EFBFBD>
2013-11-01 22:07:43 +01:00
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
inc ebx ;add ebx,0*10000h+1
mcall ;4
add ebx , - 1 * 10000h + 0
mcall ;4
add ebx , 0 * 10000h - 2
mov ecx , 88FFFFFFh
mcall ;4
2014-05-28 19:01:28 +02:00
;<3B> <> <EFBFBD> 㥬 <20> <> <EFBFBD> ⨭<EFBFBD> <E2A8AD>
2013-11-01 22:07:43 +01:00
mov edi , esi
xor al , al
or ecx , - 1
repne scasb
repne scasb
repne scasb
2013-08-04 22:58:46 +02:00
2018-10-06 00:10:27 +02:00
;stdcall hexToInt,edi
stdcall strToInt , edi
2013-11-01 22:07:43 +01:00
@ @ : ;eax=num icon
cmp eax ,[ icon_count ]
jb @ f
xor eax , eax
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
test eax , eax
je DI 1
mov ecx , eax
xor eax , eax
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
add eax , IMG_SIZE * IMG_SIZE * 4
loop @ b
2013-08-04 22:58:46 +02:00
DI1:
2013-11-01 22:07:43 +01:00
add eax ,[ raw_pointer ]
add eax , 0 + 4 * 11
mov esi , eax
2013-08-04 22:58:46 +02:00
CopyToMem:
2013-11-01 22:07:43 +01:00
mov edi , IconArea + (( IMAGE_TOP_Y * ICON_SIZE ) + (( ICON_SIZE - IMG_SIZE ) / 2 )) * 4
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
mov eax , IMG_SIZE
mov edx , eax
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
mov ecx , eax
rep movsd
add edi ,( ICON_SIZE - IMG_SIZE ) * 4
dec edx
jnz @ b
2013-08-04 22:58:46 +02:00
;-----------------
2014-05-28 19:01:28 +02:00
;<3B> <20> <> <EFBFBD> <EFBFBD> , <20> <> <20> <> <EFBFBD> 㥬 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2013-11-01 22:07:43 +01:00
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
2013-08-04 22:58:46 +02:00
;--------------
.NoSelect:
2013-11-01 22:07:43 +01:00
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 ,[ wsYe ]
jmp .DI11
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
add dx ,[ wsY ]
.DI11:
test edx , 80000000h
jz @ f
mov ax ,[ wsXe ]
shl eax , 16
add edx , eax
jmp .DI12
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
mov ax ,[ wsX ]
shl eax , 16
add edx , eax
.DI12:
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
mov ebx , IconArea
mov ecx , ICON_SIZE * 10000h + ICON_SIZE
mcall 25
2013-08-04 22:58:46 +02:00
; mov eax,1
2013-11-01 22:07:43 +01:00
pop esi edi ebx
ret
2013-08-04 22:58:46 +02:00
endp
proc RestoreBackgrnd , NumIcon : DWORD
2013-11-01 22:07:43 +01:00
push ebx edi
mov eax ,[ NumIcon ]
cmp eax ,[ MaxNumIcon ]
jb @ f
xor eax , eax
pop edi ebx
ret
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
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 ,[ wsXe ]
jmp .rbg1
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
add ax ,[ wsX ]
.rbg1:
mov bx ,[ edi ]
test bx , 8000h
jz @ f
add bx ,[ wsYe ]
jmp .rbg2
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
add bx ,[ wsY ]
.rbg2:
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
2013-08-04 22:58:46 +02:00
endp
2014-05-28 19:01:28 +02:00
;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> MaxNumIcon,IconsOffs
2013-08-04 22:58:46 +02:00
proc FillIconsOffs
2013-11-01 22:07:43 +01:00
push ebx edi
mov edi ,[ BegData ]
mov dword [ MaxNumIcon ], 0
cmp dword [ edi ], 0
jne @ f
mov dword [ IconsOffs ], 0
pop edi ebx
ret
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
mov [ IconsOffs ], edi
xor al , al
xor edx , edx
mov ebx , dword [ Si zeData ]
add ebx , dword [ BegData ]
or ecx , - 1
2013-08-04 22:58:46 +02:00
.CalcNumIc:
2013-12-09 22:02:13 +01:00
2013-11-01 22:07:43 +01:00
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
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
mov dword [ IconsOffs + edx ], 0
2013-12-09 22:02:13 +01:00
2013-11-01 22:07:43 +01:00
pop edi ebx
ret
2013-08-04 22:58:46 +02:00
endp
proc LoadIconsData stdcall , f_name , sec_name
2013-11-01 22:07:43 +01:00
push ebx esi edi
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
mov edi , secRButt
mov esi ,[ sec_name ]
2013-08-04 22:58:46 +02:00
@ @ : lodsb
2013-11-01 22:07:43 +01:00
scasb
jnz .lid1
test al , al
jnz @ b
mov eax , 1
pop edi esi ebx
ret
2013-08-04 22:58:46 +02:00
.lid1:
2013-12-09 22:02:13 +01:00
2014-05-28 19:01:28 +02:00
mov ebx ,[ sec_name ] ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> 㥬 ID
2013-12-09 22:02:13 +01:00
mov ax ,[ ebx ]
mov edi ,[ nLoadIcon ]
mov word [ edi * 4 + IconsID ], ax
mov word [ edi * 4 + IconsID + 2 ], 0
2013-11-01 22:07:43 +01:00
mov edi ,[ PIcoDB ]
2013-12-09 22:02:13 +01:00
stdcall [ ini_get_str ],[ f_name ],[ sec_name ], keyName , edi , 4096 , 0
test eax , eax
jz @ f
xor eax , eax
pop edi esi ebx
ret
@ @ :
xor al , al
or ecx , - 1
repne scasb
2013-11-01 22:07:43 +01:00
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
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
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
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
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
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
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
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
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
2013-08-04 22:58:46 +02:00
@ @ :
2013-11-01 22:07:43 +01:00
mov word [ edi ], ax
add edi , 4
mov [ PIcoDB ], edi
2013-08-04 22:58:46 +02:00
2013-12-09 22:02:13 +01:00
inc [ nLoadIcon ]
2013-11-01 22:07:43 +01:00
mov eax , 1
pop edi esi ebx
ret
2013-08-04 22:58:46 +02:00
endp
2013-12-09 22:02:13 +01:00
proc GenerateID ;ax = ID
push ebx edi
mov ebx ,[ MaxNumIcon ]
test ebx , ebx
jnz @ f
mov eax , '00'
pop edi ebx
ret
@ @ :
mov eax , dword [ IconsID + ebx * 4 - 4 ]
.inc:
inc ah
cmp ah , '9' + 1
jne @ f
mov ah , 'A'
@ @ :
cmp ah , 'F' + 1
jne @ f
mov ah , '0'
inc al
@ @ :
cmp al , '9' + 1
jne @ f
mov al , 'A'
@ @ :
cmp al , 'F' + 1
jne @ f
mov al , '0'
@ @ :
mov edi , IconsID
;cmp dword[edi],0
;je @f
mov ecx , 100h
@ @ : scasd
je .inc
cmp dword [ edi ], 0
je @ f
loop @ b
@ @ :
pop edi ebx
ret
endp
2014-08-04 00:17:27 +02:00
;-------------------------------------------------------------------------------
;<3B> <> ଠ <EFBFBD> IPC-ᮮ<> 饭<EFBFBD> <E9A5AD>
;dd X
;dd Y
2018-10-06 00:10:27 +02:00
;asciiz Icon - in decimal
2014-08-04 00:17:27 +02:00
;asciiz Name
;asciiz Path
;asciiz Params
;-------------------------------------------------------------------------------
proc IPCCreateIcon
locals
ix rd 1
iy rd 1
endl
mov eax , IPCbuffer + 8
mov dword [ IPCbuffer ], 1
lea edx ,[ eax + 8 ]
m2m dword [ ix ], dword [ edx ]
m2m dword [ iy ], dword [ edx + 4 ]
lea esi ,[ edx + 8 ]
mov ecx , 256
mov edi , DAreaIcon
@ @ : lodsb
stosb
test al , al
jnz @ b
mov ecx , NAME_LENGTH + 1
mov edi , DAreaName
@ @ : lodsb
stosb
test al , al
jz @ f
loop @ b
@ @ :
mov edi , DAreaPath
@ @ : lodsb
stosb
test al , al
jnz @ b
mov edi , DAreaParams
@ @ : lodsb
stosb
test al , al
jnz @ b
mov dword [ IPCbuffer + 4 ], 8
mov dword [ IPCbuffer ], 0
stdcall AddIcon ,[ ix ],[ iy ], DAreaIcon , DAreaName , DAreaPath , DAreaParams
mcall 15 , 3
ret
endp
2013-12-09 22:02:13 +01:00
include 'iconman.inc'
2013-10-10 21:43:44 +02:00
include 'bgredraw.inc'
2013-08-04 22:58:46 +02:00
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:
2013-11-01 22:07:43 +01:00
dd 5
dd 0
dd 0
.size dd 0
.point dd bufStdIco
db ICON_STRIP , 0
2013-08-04 22:58:46 +02:00
align 4
2014-05-28 19:01:28 +02:00
fiRunProg: ;<3B> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ᪠ <20> ணࠬ<E0AEA3>
2013-11-01 22:07:43 +01:00
dd 7
dd 0
dd 0
dd 0
dd ErrNotFoundIni
db 0
dd pthNotify
2014-05-28 19:01:28 +02:00
fiIni dd 5 ;<3B> <> <EFBFBD> ini 䠩<> <E4A0A9>
2013-11-01 22:07:43 +01:00
dd 0
dd 0
dd 0
dd bufIni
2013-12-09 22:02:13 +01:00
db 0
dd IconIni
2013-11-01 22:07:43 +01:00
IconsFile db ICON_STRIP , 0
2013-12-09 22:02:13 +01:00
2013-08-04 22:58:46 +02:00
align 4
2014-05-28 19:01:28 +02:00
MaxNumIcon dd 0 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⢮ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
IconNoDraw dd - 1 ;-1 <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> ( <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> ᪠<EFBFBD> <E1AAA0> )
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
bFixIcons dd 1
bNotSave dd 0
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
LButtonActiv dd 0
RButtonActiv dd 0
MovingActiv dd 0
DlgAddActiv dd 0
2013-09-21 14:25:30 +02:00
2013-12-09 22:02:13 +01:00
IconIni db ICON_INI , 0
2013-08-04 22:58:46 +02:00
2020-10-02 14:33:16 +02:00
pthNotify db '/sys/@notify' , 0
2013-10-04 00:53:51 +02:00
2013-12-09 22:02:13 +01:00
keyName db 'name' , 0
2013-11-01 22:07:43 +01:00
keyPath db 'path' , 0
keyParams db 'param' , 0
keyIco db 'ico' , 0
keyX db 'x' , 0
keyY db 'y' , 0
2013-08-04 22:58:46 +02:00
;-------------------------------------------------------------------------------
IMPORTS:
2013-12-09 22:02:13 +01:00
library cnv_png , 'cnv_png.obj' , \
2013-11-01 22:07:43 +01:00
archiver , 'archiver.obj' , \
2013-12-09 22:02:13 +01:00
box_lib , 'box_lib.obj' , \
2013-11-01 22:07:43 +01:00
proc_lib , 'proc_lib.obj' , \
2013-12-09 22:02:13 +01:00
libini , 'libini.obj'
2013-11-01 22:07:43 +01:00
import cnv_png , \
2013-12-09 22:02:13 +01:00
cnv_png_import.Start , 'START' , \
cnv_png_import.Version , 'version' , \
cnv_png_import.Check , 'Check_Header' , \
cnv_png_import.Assoc , 'Associations'
2013-11-01 22:07:43 +01:00
import archiver , \
2013-12-09 22:02:13 +01:00
unpack_DeflateUnpack2 , 'deflate_unpack2'
2013-11-01 22:07:43 +01:00
import box_lib , \
2022-01-03 22:03:06 +01:00
edit_box_draw , 'edit_box_draw' , \
2013-12-09 22:02:13 +01:00
edit_box_key , 'edit_box_key' , \
edit_box_mouse , 'edit_box_mouse' , \
scrollbar_h_draw , 'scrollbar_h_draw' , \
scrollbar_h_mouse , 'scrollbar_h_mouse'
2013-11-01 22:07:43 +01:00
import proc_lib , \
2013-12-09 22:02:13 +01:00
OpenDialog_Init , 'OpenDialog_init' , \
OpenDialog_Start , 'OpenDialog_start'
2013-11-01 22:07:43 +01:00
import libini , \
2013-12-09 22:02:13 +01:00
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_exist_sect , 'ini_exist_sect'
2013-08-04 22:58:46 +02:00
;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 -------------------------------------------------------------
;-------------------------------------------------------------------------------
2013-12-09 22:02:13 +01:00
2024-06-03 01:34:02 +02:00
if lang eq ru_RU
2013-12-09 22:02:13 +01:00
MinRMenuW dd 18 * 6 + 10
else
MinRMenuW dd 15 * 6 + 10
end if
2013-11-01 22:07:43 +01:00
secRButt db 'rbmenu' , 0
2013-08-04 22:58:46 +02:00
2020-04-25 16:36:28 +02:00
curpath db '/sys' , 0
2013-11-01 22:07:43 +01:00
PredItem dd - 1
2013-10-15 21:20:30 +02:00
2024-06-03 01:34:02 +02:00
if lang eq ru_RU
2014-05-28 19:01:28 +02:00
RMenuRedrawFon db '<27> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ᮢ<EFBFBD> <E1AEA2> <EFBFBD> ' , 0
RMenuAlign db '<27> <> <EFBFBD> <E0AEA2> <EFBFBD> <EFBFBD> <20> <> <20> <> ⪥' , 0
RMenuOffMoving db '<27> <> <EFBFBD> ९<EFBFBD> <E0A5AF> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ' , 0
RMenuOnMoving db '<27> <> <EFBFBD> ९<EFBFBD> <E0A5AF> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ' , 0
RMenuAdd db '<27> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ' , 0
RMenuDel db '<27> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ' , 0
RMenuProp db '<27> <> <EFBFBD> <EFBFBD> <EFBFBD> ⢠' , 0
2013-08-04 22:58:46 +02:00
else
2013-12-09 22:02:13 +01:00
RMenuRedrawFon db 'Redraw' , 0
2024-05-22 01:47:31 +02:00
RMenuAlign db 'Snap to grid' , 0
2013-12-09 22:02:13 +01:00
RMenuOffMoving db 'Fix the icons' , 0
RMenuOnMoving db 'Unfix the icons' , 0
RMenuAdd db 'Add' , 0
RMenuDel db 'Delete' , 0
RMenuProp db 'Properties' , 0
2013-08-04 22:58:46 +02:00
end if
2024-06-03 01:34:02 +02:00
if lang eq ru_RU
2014-08-04 00:17:27 +02:00
ErrRunProg db '<27> 訡<EFBFBD> <E8A8A1> <20> <> <EFBFBD> <EFBFBD> ᪠ <20> ணࠬ<E0AEA3> <E0A0AC> ' , 0
WarningSave db '<27> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ࠭<EFBFBD> <E0A0AD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> RDSave' , 0
ErrNotFoundIni db '<27> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> icon.ini' , 0
ErrName db '<27> <> <EFBFBD> "rbmenu" <20> <> १<EFBFBD> ࢨ<E0A2A8> <E0AEA2> <EFBFBD> ' , 0
2013-08-04 22:58:46 +02:00
else
2024-05-22 01:47:31 +02:00
ErrRunProg db 'Error running program' , 0
WarningSave db 'Remember to save changes with "RDSave"' , 0
2014-08-04 00:17:27 +02:00
ErrNotFoundIni db 'icon.ini not found' , 0
ErrName db 'The name "rbmenu" reserved' , 0
2013-08-04 22:58:46 +02:00
end if
;-------------------------------------------------------------------------------
;------- AddDlg.inc ---------------------------------------------------------------
;-------------------------------------------------------------------------------
2024-06-03 01:34:02 +02:00
if lang eq ru_RU
2014-05-28 19:01:28 +02:00
DT itleAdd db '<27> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ' , 0
DT itleProp db '<27> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ' , 0
2013-08-04 22:58:46 +02:00
2017-09-26 20:05:30 +02:00
DCaptName db ' <20> <> <EFBFBD> ' , 0
DCaptPath db ' <20> <> <EFBFBD> <EFBFBD> ' , 0
DCaptParams db ' <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ' , 0
2013-10-02 22:50:38 +02:00
;DCaptChange db '.',0
2014-05-28 19:01:28 +02:00
DCaptCreate db '<27> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ' , 0
DCaptProperties db '<27> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ' , 0
DCaptCancel db '<27> ⬥<EFBFBD> <E2ACA5> <EFBFBD> <EFBFBD> ' , 0
2013-08-04 22:58:46 +02:00
else
2013-11-01 22:07:43 +01:00
DT itleAdd db 'Add icon' , 0
DT itleProp db 'Change icon' , 0
2017-09-26 20:05:30 +02:00
DCaptName db ' Name' , 0
DCaptPath db ' Path' , 0
DCaptParams db ' Params' , 0
2013-11-01 22:07:43 +01:00
DCaptCreate db 'Create' , 0
2013-08-04 22:58:46 +02:00
DCaptProperties db 'Change' , 0
2013-11-01 22:07:43 +01:00
DCaptCancel db 'Cancel' , 0
2013-08-04 22:58:46 +02:00
end if
2017-09-26 20:05:30 +02:00
DCaptDots db '...' , 0
2013-08-04 22:58:46 +02:00
2014-05-28 19:01:28 +02:00
;/<2F> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2017-09-26 20:05:30 +02:00
edtName edi t_box NAME_LENGTH * 8 + 4 , 120 + IMG_SIZE , 6 , 0FFFFFFh , 06F9480h , 0FFh , 0h , 0x90000000 , NAME_LENGTH , \
2013-11-01 22:07:43 +01:00
DAreaName , mouse_dd , 0 , 0 , 0
2017-09-26 20:05:30 +02:00
edtExePath edi t_box END_ICONS_AREAW - 120 - IMG_SIZE - 40 , 120 + IMG_SIZE , 30 , 0FFFFFFh , 06F9480h , \
0 FFh , 0h , 0x90000000 , 255 , DAreaPath , mouse_dd , 0 , 0 , 0
edtParams edi t_box END_ICONS_AREAW - 120 - IMG_SIZE , 120 + IMG_SIZE , 54 , 0FFFFFFh , 06F9480h , \
0 FFh , 0h , 0x90000000 , 255 , DAreaParams , mouse_dd , 0 , 0 , 0
edtIcon edi t_box 28 , 24 , 62 , 0FFFFFFh , 0FFFFFFh , 0FFh , 0h , 0x90000000 , 3 , \
2015-02-21 01:49:06 +01:00
DAreaIcon , 0 , 0 , 0 , 0
2013-08-04 22:58:46 +02:00
endEdits:
;\
sbIcons:
2013-11-01 22:07:43 +01:00
dw END_ICONS_AREAW - ICONSX
dw ICONSX
dw 15
dw END_ICONS_AREAH + 3
dd 0
dd 1
2013-08-04 22:58:46 +02:00
.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
2013-10-25 22:03:51 +02:00
2013-08-04 22:58:46 +02:00
.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:
2013-11-01 22:07:43 +01:00
.type dd 0
.procinfo dd RBP rocInfo ;+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 DRedrawWin ;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
2013-08-04 22:58:46 +02:00
.x:
2013-11-01 22:07:43 +01:00
.x_size dw 420 ;+48 ; Window X size
.x_start dw 100 ;+50 ; Window X position
2013-08-04 22:58:46 +02:00
.y:
2013-11-01 22:07:43 +01:00
.y_size dw 320 ;+52 ; Window y size
.y_start dw 100 ;+54 ; Window Y position
2013-08-04 22:58:46 +02:00
communication_area_name:
2013-11-01 22:07:43 +01:00
db 'FFFFFFFF_open_dialog' , 0
2013-08-04 22:58:46 +02:00
open_dialog_path:
2013-11-01 22:07:43 +01:00
db '/sys/File managers/opendial' , 0
2013-08-04 22:58:46 +02:00
communication_area_default_pach:
2013-11-01 22:07:43 +01:00
db '/sys' , 0
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
Filter dd 0
2013-08-04 22:58:46 +02:00
;open_dialog db 0
;-------------------------------------------------------------------------------
2014-05-28 19:01:28 +02:00
;/<2F> <> ࠧ<> <E0A0A7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2013-08-04 22:58:46 +02:00
align 4
2013-11-01 22:07:43 +01:00
IconAreaH dd ICON_SIZE , ICON_SIZE
2013-08-04 22:58:46 +02:00
I_END:
;##### UDATA ###################################################################
2013-11-01 22:07:43 +01:00
IconArea rb 4 * ICON_SIZE * ICON_SIZE
2013-08-04 22:58:46 +02:00
;\
2013-11-01 22:07:43 +01:00
sc system_colors
sc.workL rd 1
sc.workH rd 1
2013-10-11 14:39:43 +02:00
2014-08-04 00:17:27 +02:00
align 4
IPCbuffer rb 1024
2013-10-15 01:04:34 +02:00
align 4
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
ScreenW rw 1
ScreenH rw 1
wsX rw 1
wsY rw 1
wsXe rw 1
wsYe rw 1
wsW rw 1
wsH rw 1
MouseX rd 1
MouseY rd 1
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
RBSlot rd 1
AddX rd 1
AddY rd 1
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
SelIcon rd 1
DlgSelIcon rd 1
slotDlgAdd rd 1
DlgBufImg rb IMG_SIZE * IMG_SIZE * 3
2013-10-15 01:04:34 +02:00
2013-12-09 22:02:13 +01:00
align 4
2013-11-01 22:07:43 +01:00
bufStdIco rb 40
2018-10-06 00:10:27 +02:00
IconsOffs rd 100h ;⠡<> <E2A0A1> <EFBFBD> <EFBFBD> <20> 㪠<> <E3AAA0> ⥫ﬨ <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <20> ७<E1AAAE> <E0A5AD> )
PIcoDB rd 1 ;㪠<> <E3AAA0> ⥫<EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> 䮩 <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2014-05-28 19:01:28 +02:00
nLoadIcon rd 1 ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ⠥<EFBFBD> <E2A0A5> <EFBFBD> <20> <> ini <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2018-10-06 00:10:27 +02:00
IconsID rd 100h ;ID <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> - 2 <20> <> <EFBFBD> <EFBFBD> a + <20> <> <EFBFBD> <EFBFBD> 0 + <20> <> ࠢ<EFBFBD> <E0A0A2> <EFBFBD> <EFBFBD> <EFBFBD> 騩 <20> <> <EFBFBD> <EFBFBD> - <20> <> ப<EFBFBD> <20> 2<> <32> <20> <> ᭠<EFBFBD> <E1ADA0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 묨 <20> <> <EFBFBD> ࠬ<EFBFBD>
2013-08-04 22:58:46 +02:00
2013-12-09 22:02:13 +01:00
nameSection rb 4
2013-10-02 22:50:38 +02:00
2013-08-04 22:58:46 +02:00
align 4
2013-11-01 22:07:43 +01:00
icon_count rd 1
strip_file rd 1
2013-08-04 22:58:46 +02:00
strip_file_size rd 1
cur_band_compensation rd 1
;---- RButton -----------------------------------------------------------------------
2013-10-24 21:29:45 +02:00
2013-11-01 22:07:43 +01:00
bufIni rb 40
NumMenuButt rd 1
2014-05-28 19:01:28 +02:00
RBMenuCP rd MAX_USER_BUTTONS * 2 ;㪠<> <E3AAA0> ⥫<EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <20> <> <EFBFBD> <EFBFBD> <20> <20> ண<EFBFBD> <E0AEA3> (Caption(dd), Path(dd)) <20> <20> <> <EFBFBD> <EFBFBD> ᭮<EFBFBD> (dd) <20> <> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 饣<EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2013-11-01 22:07:43 +01:00
RMenuW rw 1
RMenuH rw 1
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
MaxPage rd 1
mouse_dd rd 1
2013-08-04 22:58:46 +02:00
2013-11-01 22:07:43 +01:00
DAreaName rb NAME_LENGTH + 1
2013-12-09 22:02:13 +01:00
DAreaPath rb 255 + 1
DAreaParams rb 255 + 1
DAreaIcon rb 255 + 1
2013-08-04 22:58:46 +02:00
align 4
2013-11-01 22:07:43 +01:00
RBProcInfo rb 1024
2013-10-02 22:50:38 +02:00
align 4
2013-08-04 22:58:46 +02:00
2013-10-15 21:20:30 +02:00
;------ OpenDialog -------------------------------
2013-11-01 22:07:43 +01:00
temp_dir_pach rb 1024
fname_Info rb 1024
2013-10-15 21:20:30 +02:00
2013-08-04 22:58:46 +02:00
;-------------------------------------------------------------------------------
2013-11-01 22:07:43 +01:00
rb 512
2014-05-28 19:01:28 +02:00
stack_mov: ;<3B> <> <EFBFBD> <EFBFBD> <EFBFBD> ६<EFBFBD> <E0A5AC> <EFBFBD> <EFBFBD> <20> <> ᪠<EFBFBD> <E1AAA0> <20> <20> <> ঠ<EFBFBD> <E0A6A0> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2013-10-15 21:20:30 +02:00
stack_rmenu:
2013-11-01 22:07:43 +01:00
rb 512
2013-08-04 22:58:46 +02:00
stack_dlg:
2013-11-01 22:07:43 +01:00
rb 512
2013-10-04 00:53:51 +02:00
stack_bredraw:
2013-11-01 22:07:43 +01:00
rb 512
2013-10-15 21:20:30 +02:00
stack_main:
2013-08-04 22:58:46 +02:00
;------------------------------------------------------------------------------
2018-10-06 00:10:27 +02:00
2020-10-02 14:33:16 +02:00
ENDMEM: