2,7 → 2,7 |
ICON_INI equ '/rd/1/settings/icon.ini' |
ICON_SIZE equ 68 ;à §¬¥à ®¡« á⨠¤«ï ¨ª®ª¨ á ¤¯¨áìî |
IMG_SIZE equ 32 ;à §¬¥à ¨ª®®ª |
TEXT_BOTTOM_Y equ 15 ;®âáâ㯠¯® Y ⥪á⠮⠨§ ¨ª®ª¨ |
TEXT_BOTTOM_Y equ 14 ;®âáâ㯠¯® Y ⥪á⠮⠨§ ¨ª®ª¨ |
IMAGE_TOP_Y equ 10 ;>=1 ®®à¤¨ â Y ¨ª®ª¨ ¢ ®¡« á⨠¤«ï ¤ ®© ¨ª®ª¨ |
ALIGN_SIZE equ 68 ;à §¬¥à á¥âª¨ ¢ëà ¢¨¢ ¨ï |
NAME_LENGTH equ 11 ;¤«¨ ¨¬¥¨ ¨ª®ª¨ |
132,8 → 132,13 |
;###################################################################### |
call FillIconsOffs ;§ ¯®«ï¥â MaxNumIcon,IconsOffs |
|
mcall 40,0100000b ;ã¦ë ⮫쪮 ᮡëâ¨ï ¬ëè¨, ¯¥à¥à¨á®¢ª ¨ª®®ª ¡ã¤¥â ¢ ¤à㣮¬ ¯®â®ª¥ |
;¨¨æ¨ «¨§ æ¨ï IPC ¡ãä¥à |
mov dword[IPCbuffer],0 |
mov dword[IPCbuffer+4],8 |
mcall 60,1,IPCbuffer,1024 |
|
mcall 40,01100000b ;ã¦ë ⮫쪮 ᮡëâ¨ï ¬ëè¨ ¨ IPC, |
;¯¥à¥à¨á®¢ª ¨ª®®ª ¡ã¤¥â ¢ ¤à㣮¬ ¯®â®ª¥ |
mov eax,[icon_count] |
mov bl,ICONS_DRAW_COUNTH |
div bl |
153,10 → 158,14 |
mcall 10 |
sub eax,6 |
jz MSGMouse |
dec eax |
jz MSGIPC |
jmp messages |
|
MSGIPC: |
call IPCCreateIcon |
jmp messages |
|
|
MSGMouse: |
mcall 37,0 ;GetMousePos |
xor ebx,ebx |
896,6 → 905,71 |
ret |
endp |
|
;------------------------------------------------------------------------------- |
|
|
;ä®à¬ â IPC-á®®¡é¥¨ï |
;dd X |
;dd Y |
;asciiz Icon |
;asciiz Name |
;asciiz Path |
;asciiz Params |
;------------------------------------------------------------------------------- |
proc IPCCreateIcon |
locals |
ix rd 1 |
iy rd 1 |
endl |
|
mov eax,IPCbuffer+8 |
mov dword[IPCbuffer],1 |
;mov edx,dword[IPCbuffer+4] |
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 |
|
|
include 'iconman.inc' |
include 'bgredraw.inc' |
include 'RButton.inc' |
1052,15 → 1126,15 |
end if |
|
if lang eq ru |
ErrRunProg db '"Icon\n訡ª § ¯ã᪠¯à®£à ¬¬ë" -tE"',0 |
WarningSave db '"Icon\n¥ § ¡ã¤ì⥠á®åà ¨âì ¨§¬¥¥¨ï, § ¯ãáâ¨âì RDSave" -tI',0 |
ErrNotFoundIni db '"Icon\n¥ ©¤¥ icon.ini" -tE',0 |
ErrName db '"Icon\n¬ï \"rbmenu\" § १¥à¢¨à®¢ ®" -tE',0 |
ErrRunProg db '訡ª § ¯ã᪠¯à®£à ¬¬ë',0 |
WarningSave db '¥ § ¡ã¤ì⥠á®åà ¨âì ¨§¬¥¥¨ï, § ¯ãáâ¨âì RDSave',0 |
ErrNotFoundIni db '¥ ©¤¥ icon.ini',0 |
ErrName db '¬ï "rbmenu" § १¥à¢¨à®¢ ®',0 |
else |
ErrRunProg db '"Icon\nError running program" -tE',0 |
WarningSave db '"Icon\nDo not forget to save the changes, run RDSave" -tI',0 |
ErrNotFoundIni db '"Icon\nicon.ini not found" -tE',0 |
ErrName db '"Icon\nThe name \"rbmenu\" is reserved" -tE',0 |
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 |
|
;------------------------------------------------------------------------------- |
1180,8 → 1254,12 |
sc.workL rd 1 |
sc.workH rd 1 |
|
|
align 4 |
IPCbuffer rb 1024 |
|
align 4 |
|
ScreenW rw 1 |
ScreenH rw 1 |
wsX rw 1 |