Receives a IPC-message about creating icons

git-svn-id: svn://kolibrios.org@5017 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
GerdtR
2014-08-03 22:17:27 +00:00
parent 3838117207
commit 098f10ccbc
2 changed files with 95 additions and 19 deletions

View File

@@ -2,7 +2,7 @@ ICON_STRIP equ '/rd/1/iconstrp.png'
ICON_INI equ '/rd/1/settings/icon.ini'
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>
TEXT_BOTTOM_Y equ 15 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Y ⥪<><E2A5AA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TEXT_BOTTOM_Y equ 14 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Y ⥪<><E2A5AA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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>
@@ -132,8 +132,13 @@ START: ; start of execution
;######################################################################
call FillIconsOffs ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MaxNumIcon,IconsOffs
mcall 40,0100000b ;<3B><EFBFBD> ⮫쪮 ᮡ<><E1AEA1><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><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
mcall 40,01100000b ;<3B><EFBFBD> ⮫쪮 ᮡ<><E1AEA1><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> IPC,
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD>
mov eax,[icon_count]
mov bl,ICONS_DRAW_COUNTH
div bl
@@ -153,9 +158,13 @@ messages:
mcall 10
sub eax,6
jz MSGMouse
dec eax
jz MSGIPC
jmp messages
MSGIPC:
call IPCCreateIcon
jmp messages
MSGMouse:
mcall 37,0 ;GetMousePos
@@ -896,6 +905,71 @@ proc GenerateID ;ax = ID
ret
endp
;-------------------------------------------------------------------------------
;<3B><><EFBFBD> IPC-ᮮ<><EFBFBD><E9A5AD>
;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 @@ else
end if
if lang eq ru
ErrRunProg db '"Icon\n<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><20>ணࠬ<E0AEA3><E0A0AC>" -tE"',0
WarningSave db '"Icon\n<EFBFBD><EFBFBD> <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" -tI',0
ErrNotFoundIni db '"Icon\n<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> icon.ini" -tE',0
ErrName db '"Icon\n<EFBFBD><EFBFBD><EFBFBD> \"rbmenu\" <20><><EFBFBD>ࢨ஢<E0A2A8><E0AEA2><EFBFBD>" -tE',0
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
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,6 +1254,10 @@ sc system_colors
sc.workL rd 1
sc.workH rd 1
align 4
IPCbuffer rb 1024
align 4
ScreenW rw 1

View File

@@ -24,7 +24,7 @@ DlgProp:
cmp bx,[wsY]
jae @f
mov bx,[wsY]
@@: ;eax,ebx - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@: ;eax,ebx - <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⥫쭮 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
xor edx,edx
mov dx,[wsXe]
@@ -41,7 +41,7 @@ DlgProp:
mov ebx,edx
@@:
xor edx,edx ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
xor edx,edx ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov dx,[wsW]
shr edx,1
add dx,[wsX]
@@ -193,10 +193,8 @@ DReDraw:
m2m [sbIcons.frnt_col],[sc.work]
m2m [sbIcons.line_col],[sc.work_graph]
edit_boxes_set_sys_color edtName,edtExePath,sc
edit_boxes_set_sys_color edtExePath,edtParams,sc
edit_boxes_set_sys_color edtParams,edtIcon,sc
;edit_boxes_set_sys_color edtIcon,endEdits,sc
edit_boxes_set_sys_color edtName,endEdits,sc
call DRedrawWin
@@ -624,7 +622,7 @@ local IcoX:DWORD,\
add edi,3
loop @b
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
jmp .Dalee
.DrawIcons2:
@@ -667,7 +665,7 @@ proc DrawSelIcon
cmp al,'/'
jne .GetIconInd
.PathToIcon:
mov al,30h ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!!!!!!!!!!!
mov al,30h ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!!!!!!!!!!!
mov byte[edi+1],0
.GetIconInd:
;int3