Revert r4937

git-svn-id: svn://kolibrios.org@4945 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Yogev Ezra 2014-05-28 17:01:28 +00:00
parent 561e68ee8f
commit 4ce0d6d0a6

View File

@ -1,19 +1,19 @@
ICON_STRIP equ '/rd/1/iconstrp.png' ICON_STRIP equ '/rd/1/iconstrp.png'
ICON_INI equ '/rd/1/settings/icon.ini' ICON_INI equ '/rd/1/settings/icon.ini'
ICON_SIZE equ 68 ;размер области для иконки с надписью ICON_SIZE equ 68 ;à §¬¥à ®¡« á⨠¤«ï ¨ª®­ª¨ á ­ ¤¯¨áìî
IMG_SIZE equ 32 ;размер иконок IMG_SIZE equ 32 ;à §¬¥à ¨ª®­®ª
TEXT_BOTTOM_Y equ 15 ;отступ по Y текста от низа иконки TEXT_BOTTOM_Y equ 15 ;®âáâ㯠¯® Y ⥪áâ  ®â ­¨§  ¨ª®­ª¨
IMAGE_TOP_Y equ 10 ;>=1 Координата Y иконки в области для данной иконки IMAGE_TOP_Y equ 10 ;>=1 Š®®à¤¨­ â  Y ¨ª®­ª¨ ¢ ®¡« á⨠¤«ï ¤ ­­®© ¨ª®­ª¨
ALIGN_SIZE equ 68 ;размер сетки выравнивания ALIGN_SIZE equ 68 ;à §¬¥à á¥âª¨ ¢ëà ¢­¨¢ ­¨ï
NAME_LENGTH equ 11 ;длина имени иконки NAME_LENGTH equ 11 ;¤«¨­  ¨¬¥­¨ ¨ª®­ª¨
MIN_NO_MOVING equ 8 ;через столько пикселей сдвига мыши начинается таскание иконки MIN_NO_MOVING equ 8 ;ç¥à¥§ á⮫쪮 ¯¨ªá¥«¥© ᤢ¨£  ¬ëè¨ ­ ç¨­ ¥âáï â áª ­¨¥ ¨ª®­ª¨
;--------для диалога создания/редактирования ;--------¤«ï ¤¨ «®£  ᮧ¤ ­¨ï/। ªâ¨à®¢ ­¨ï
ICONSX equ 20 ICONSX equ 20
ICONSY equ 80 ICONSY equ 80
ICONS_DRAW_COUNTW equ 10 ;количество иконок в ширину ICONS_DRAW_COUNTW equ 10 ;ª®«¨ç¥á⢮ ¨ª®­®ª ¢ è¨à¨­ã
ICONS_DRAW_COUNTH equ 2 ;количество иконок в высоту ICONS_DRAW_COUNTH equ 2 ;ª®«¨ç¥á⢮ ¨ª®­®ª ¢ ¢ëá®âã
SPCW equ 3 ;пробел между иконками по горизонтали SPCW equ 3 ;¯à®¡¥« ¬¥¦¤ã ¨ª®­ª ¬¨ ¯® £®à¨§®­â «¨
SPCH equ 3 SPCH equ 3
END_ICONS_AREAW equ ICONSX+(IMG_SIZE+SPCW)*ICONS_DRAW_COUNTW-SPCW END_ICONS_AREAW equ ICONSX+(IMG_SIZE+SPCW)*ICONS_DRAW_COUNTW-SPCW
END_ICONS_AREAH equ ICONSY+(IMG_SIZE+SPCH)*ICONS_DRAW_COUNTH-SPCH END_ICONS_AREAH equ ICONSY+(IMG_SIZE+SPCH)*ICONS_DRAW_COUNTH-SPCH
@ -92,10 +92,10 @@ START: ; start of execution
and eax,0x7 and eax,0x7
mov [cur_band_compensation],eax mov [cur_band_compensation],eax
;########## загружаем данные иконок в память ########################## ;########## § £à㦠¥¬ ¤ ­­ë¥ ¨ª®­®ª ¢ ¯ ¬ïâì ##########################
mcall 70,fiIni ;выделяем память, достаточной для хранения ini файла. mcall 70,fiIni ;¢ë¤¥«ï¥¬ ¯ ¬ïâì, ¤®áâ â®ç­®© ¤«ï åà ­¥­¨ï ini ä ©« .
test eax,eax ;Её точно хватит для хранения данных об иконках test eax,eax ;…ñ â®ç­® 墠â¨â ¤«ï åà ­¥­¨ï ¤ ­­ëå ®¡ ¨ª®­ª å
jnz ErrorIni jnz ErrorIni
cmp dword[bufIni+32],0 cmp dword[bufIni+32],0
@ -130,9 +130,9 @@ START: ; start of execution
mov dword[SizeData],0 mov dword[SizeData],0
@@: @@:
;###################################################################### ;######################################################################
call FillIconsOffs ;заполняет MaxNumIcon,IconsOffs call FillIconsOffs ;§ ¯®«­ï¥â MaxNumIcon,IconsOffs
mcall 40,0100000b ;нужны только события мыши, перерисовка иконок будет в другом потоке mcall 40,0100000b ;­ã¦­ë ⮫쪮 ᮡëâ¨ï ¬ëè¨, ¯¥à¥à¨á®¢ª  ¨ª®­®ª ¡ã¤¥â ¢ ¤à㣮¬ ¯®â®ª¥
mov eax,[icon_count] mov eax,[icon_count]
mov bl,ICONS_DRAW_COUNTH mov bl,ICONS_DRAW_COUNTH
@ -144,7 +144,7 @@ START: ; start of execution
and eax,0FFh and eax,0FFh
mov [sbIcons.max_area],eax mov [sbIcons.max_area],eax
mcall 51,1,BGRedrawThread,stack_bredraw ;запускаем поток перерисовки иконок mcall 51,1,BGRedrawThread,stack_bredraw ;§ ¯ã᪠¥¬ ¯®â®ª ¯¥à¥à¨á®¢ª¨ ¨ª®­®ª
stdcall [OpenDialog_Init],OpenDialog_data stdcall [OpenDialog_Init],OpenDialog_data
;dph [MaxNumIcon] ;dph [MaxNumIcon]
@ -184,11 +184,11 @@ MSGMouse:
jmp messages jmp messages
ErrLoadLibs: ErrLoadLibs:
;dps 'Не удалось загрузить необходимые библиотеки' ;dps '<EFBFBD>¥ 㤠«®áì § £à㧨âì ­¥®¡å®¤¨¬ë¥ ¡¨¡«¨®â¥ª¨'
;debug_newline ;debug_newline
jmp close jmp close
ErrorStrp: ErrorStrp:
;dps 'Ошибка открытия iconstrp.png' ;dps 'Žè¨¡ª  ®âªàëâ¨ï iconstrp.png'
;debug_newline ;debug_newline
close: close:
mcall -1 mcall -1
@ -252,7 +252,7 @@ LButtonPress:
mov [MouseY],ecx mov [MouseY],ecx
stdcall GetNumIcon,[MouseX],[MouseY],-1 stdcall GetNumIcon,[MouseX],[MouseY],-1
cmp eax,[esp] ;[esp] = номер иконки cmp eax,[esp] ;[esp] = ­®¬¥à ¨ª®­ª¨
jne @f jne @f
mov edi,[IconsOffs+eax*4] mov edi,[IconsOffs+eax*4]
@ -383,7 +383,7 @@ MovingIcon:
cmp bx,[wsY] cmp bx,[wsY]
jae @f jae @f
mov bx,[wsY] mov bx,[wsY]
@@: ;eax,ebx - реальная координата. Все координаты в проге относительно левого верхнего угла рабочей области @@: ;eax,ebx - ॠ«ì­ ï ª®®à¤¨­ â . ‚ᥠª®®à¤¨­ âë ¢ ¯à®£¥ ®â­®á¨â¥«ì­® «¥¢®£® ¢¥àå­¥£® 㣫  à ¡®ç¥© ®¡« áâ¨
xor edx,edx xor edx,edx
mov dx,[wsXe] mov dx,[wsXe]
@ -400,7 +400,7 @@ MovingIcon:
mov ebx,edx mov ebx,edx
@@: @@:
xor edx,edx ;преобразовываем в относительные xor edx,edx ;¯à¥®¡à §®¢ë¢ ¥¬ ¢ ®â­®á¨â¥«ì­ë¥
mov dx,[wsW] mov dx,[wsW]
shr edx,1 shr edx,1
add dx,[wsX] add dx,[wsX]
@ -434,7 +434,7 @@ MovingIcon:
mov [bNotSave],1 mov [bNotSave],1
mov [IconNoDraw],-1 mov [IconNoDraw],-1
mov [MovingActiv],0 ;только теперь отключаем окно с мышью mov [MovingActiv],0 ;⮫쪮 ⥯¥àì ®âª«îç ¥¬ ®ª­® á ¬ëèìî
jmp messages jmp messages
@ -457,7 +457,7 @@ RButtonPress:
;############################################################################### ;###############################################################################
;ret eax = 1/0 = удача/ошибка ;ret eax = 1/0 = 㤠ç /®è¨¡ª 
proc DrawIcon NumIcon:DWORD,Activ:DWORD ;NumIcon = 0..n proc DrawIcon NumIcon:DWORD,Activ:DWORD ;NumIcon = 0..n
local IconData:DWORD local IconData:DWORD
push ebx edi esi push ebx edi esi
@ -478,7 +478,7 @@ local IconData:DWORD
mov esi,[IconsOffs+eax*4] mov esi,[IconsOffs+eax*4]
mov [IconData],esi mov [IconData],esi
;рисуем текст ;à¨á㥬 ⥪áâ
mov edi,esi mov edi,esi
xor al,al xor al,al
or ecx,-1 or ecx,-1
@ -491,7 +491,7 @@ local IconData:DWORD
lea eax,[eax*2+eax] lea eax,[eax*2+eax]
mov ebx,ICON_SIZE mov ebx,ICON_SIZE
sub ebx,eax sub ebx,eax
shr ebx,1 ;ebx = x текста shr ebx,1 ;ebx = x ⥪áâ 
shl ebx,16 shl ebx,16
mov bx,ICON_SIZE mov bx,ICON_SIZE
sub bx,TEXT_BOTTOM_Y sub bx,TEXT_BOTTOM_Y
@ -514,7 +514,7 @@ local IconData:DWORD
add ebx,0*10000h-2 add ebx,0*10000h-2
mov ecx,88FFFFFFh mov ecx,88FFFFFFh
mcall ;4 mcall ;4
;рисуем картинку ;à¨á㥬 ª à⨭ªã
mov edi,esi mov edi,esi
xor al,al xor al,al
@ -529,7 +529,7 @@ local IconData:DWORD
jne GetIconInd jne GetIconInd
PathToIcon: PathToIcon:
mov al,30h ;заглушка!!!!!!!!!!!!! mov al,30h ;§ £«ã誠!!!!!!!!!!!!!
mov byte[edi+1],0 mov byte[edi+1],0
jmp CopyToMem jmp CopyToMem
@ -574,7 +574,7 @@ local IconData:DWORD
jnz @b jnz @b
;----------------- ;-----------------
;если надо, то рисуем обводку ;¥á«¨ ­ ¤®, â® à¨á㥬 ®¡¢®¤ªã
cmp [Activ],0 cmp [Activ],0
je .NoSelect je .NoSelect
@ -712,7 +712,7 @@ proc RestoreBackgrnd,NumIcon:DWORD
ret ret
endp endp
;заполняет MaxNumIcon,IconsOffs ;§ ¯®«­ï¥â MaxNumIcon,IconsOffs
proc FillIconsOffs proc FillIconsOffs
push ebx edi push ebx edi
mov edi,[BegData] mov edi,[BegData]
@ -769,7 +769,7 @@ proc LoadIconsData stdcall,f_name,sec_name
.lid1: .lid1:
mov ebx,[sec_name] ;копируем ID mov ebx,[sec_name] ;ª®¯¨à㥬 ID
mov ax,[ebx] mov ax,[ebx]
mov edi,[nLoadIcon] mov edi,[nLoadIcon]
mov word[edi*4+IconsID],ax mov word[edi*4+IconsID],ax
@ -932,7 +932,7 @@ fiStdIco:
align 4 align 4
fiRunProg: ;для запуска программ fiRunProg: ;¤«ï § ¯ã᪠ ¯à®£à ¬¬
dd 7 dd 7
dd 0 dd 0
dd 0 dd 0
@ -941,7 +941,7 @@ fiRunProg: ;для запуска программ
db 0 db 0
dd pthNotify dd pthNotify
fiIni dd 5 ;для ini файла fiIni dd 5 ;¤«ï ini ä ©« 
dd 0 dd 0
dd 0 dd 0
dd 0 dd 0
@ -953,8 +953,8 @@ fiIni dd 5 ;для ini файла
IconsFile db ICON_STRIP,0 IconsFile db ICON_STRIP,0
align 4 align 4
MaxNumIcon dd 0 ;количество иконок MaxNumIcon dd 0 ;ª®«¨ç¥á⢮ ¨ª®­®ª
IconNoDraw dd -1 ;-1 либо номер иконки, которую не надо рисовать( когда её таскают ) IconNoDraw dd -1 ;-1 «¨¡® ­®¬¥à ¨ª®­ª¨, ª®â®àãî ­¥ ­ ¤® à¨á®¢ âì( ª®£¤  ¥ñ â áª îâ )
bFixIcons dd 1 bFixIcons dd 1
bNotSave dd 0 bNotSave dd 0
@ -1034,13 +1034,13 @@ secRButt db 'rbmenu',0
PredItem dd -1 PredItem dd -1
if lang eq ru if lang eq ru
RMenuRedrawFon db 'Перерисовать',0 RMenuRedrawFon db '<EFBFBD>¥à¥à¨á®¢ âì',0
RMenuAlign db 'Выровнять по сетке',0 RMenuAlign db '‚ë஢­ïâì ¯® á¥âª¥',0
RMenuOffMoving db 'Закрепить иконки',0 RMenuOffMoving db '‡ ªà¥¯¨âì ¨ª®­ª¨',0
RMenuOnMoving db 'Открепить иконки',0 RMenuOnMoving db 'Žâªà¥¯¨âì ¨ª®­ª¨',0
RMenuAdd db 'Добавить',0 RMenuAdd db '„®¡ ¢¨âì',0
RMenuDel db 'Удалить',0 RMenuDel db '“¤ «¨âì',0
RMenuProp db 'Свойства',0 RMenuProp db '‘¢®©á⢠',0
else else
RMenuRedrawFon db 'Redraw',0 RMenuRedrawFon db 'Redraw',0
RMenuAlign db 'Snap to Grid',0 RMenuAlign db 'Snap to Grid',0
@ -1052,32 +1052,32 @@ else
end if end if
if lang eq ru if lang eq ru
ErrRunProg db '"Ошибка запуска программы" -E"',0 ErrRunProg db '"Icon\nŽè¨¡ª  § ¯ã᪠ ¯à®£à ¬¬ë" -tE"',0
WarningSave db '"Не забудьте сохранить изменения, запустить RDSave" -I',0 WarningSave db '"Icon\n<>¥ § ¡ã¤ì⥠á®åà ­¨âì ¨§¬¥­¥­¨ï, § ¯ãáâ¨âì RDSave" -tI',0
ErrNotFoundIni db '"Не найден icon.ini" -E',0 ErrNotFoundIni db '"Icon\n<>¥ ­ ©¤¥­ icon.ini" -tE',0
ErrName db '"Имя "rbmenu" зарезервировано" -E',0 ErrName db '"Icon\nˆ¬ï "rbmenu" § à¥§¥à¢¨à®¢ ­®" -tE',0
else else
ErrRunProg db '"Error runing program" -E',0 ErrRunProg db '"Icon\nError runing program" -tE',0
WarningSave db '"Do not forget to save the changes, run the RDSave" -I',0 WarningSave db '"Icon\nDo not forget to save the changes, run the RDSave" -tI',0
ErrNotFoundIni db '"Icon.ini not found" -E',0 ErrNotFoundIni db '"Icon\nicon.ini not found" -tE',0
ErrName db '"The name "rbmenu" reserved" -E',0 ErrName db '"Icon\nThe name "rbmenu" reserved" -tE',0
end if end if
;------------------------------------------------------------------------------- ;-------------------------------------------------------------------------------
;------- AddDlg.inc --------------------------------------------------------------- ;------- AddDlg.inc ---------------------------------------------------------------
;------------------------------------------------------------------------------- ;-------------------------------------------------------------------------------
if lang eq ru if lang eq ru
DTitleAdd db 'Добавить иконку',0 DTitleAdd db '„®¡ ¢¨âì ¨ª®­ªã',0
DTitleProp db 'Изменить иконку',0 DTitleProp db 'ˆ§¬¥­¨âì ¨ª®­ªã',0
DCaptName db 'Имя',0 DCaptName db 'ˆ¬ï',0
DCaptPath db 'Путь',0 DCaptPath db '<EFBFBD>ãâì',0
DCaptParams db 'Параметры',0 DCaptParams db '<EFBFBD> à ¬¥âàë',0
DCaptIcon db 'Иконка',0 DCaptIcon db 'ˆª®­ª ',0
;DCaptChange db '.',0 ;DCaptChange db '.',0
DCaptCreate db 'Создать',0 DCaptCreate db '‘®§¤ âì',0
DCaptProperties db 'Изменить',0 DCaptProperties db 'ˆ§¬¥­¨âì',0
DCaptCancel db 'Отменить',0 DCaptCancel db 'Žâ¬¥­¨âì',0
else else
DTitleAdd db 'Add icon',0 DTitleAdd db 'Add icon',0
@ -1092,7 +1092,7 @@ DCaptProperties db 'Change',0
DCaptCancel db 'Cancel',0 DCaptCancel db 'Cancel',0
end if end if
;/не менять положение ;/­¥ ¬¥­ïâì ¯®«®¦¥­¨¥
edtName edit_box NAME_LENGTH*6+4,70+20+IMG_SIZE,6,0FFFFFFh,06F9480h,0FFh,0h,0,NAME_LENGTH,\ 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 DAreaName,mouse_dd,0,0,0
edtExePath edit_box 281-3-20-IMG_SIZE,70+20+IMG_SIZE,26,0FFFFFFh,06F9480h,0FFh,0h,0,255,\ edtExePath edit_box 281-3-20-IMG_SIZE,70+20+IMG_SIZE,26,0FFFFFFh,06F9480h,0FFh,0h,0,255,\
@ -1168,7 +1168,7 @@ Filter dd 0
;open_dialog db 0 ;open_dialog db 0
;------------------------------------------------------------------------------- ;-------------------------------------------------------------------------------
;/не разделять ;/­¥ à §¤¥«ïâì
align 4 align 4
IconAreaH dd ICON_SIZE,ICON_SIZE IconAreaH dd ICON_SIZE,ICON_SIZE
I_END: I_END:
@ -1206,10 +1206,10 @@ DlgBufImg rb IMG_SIZE*IMG_SIZE*3
align 4 align 4
bufStdIco rb 40 bufStdIco rb 40
IconsOffs rd 100 ;таблица с указателями на конкретные иконки(для ускорения) IconsOffs rd 100 ;â ¡«¨æ  á 㪠§ â¥«ï¬¨ ­  ª®­ªà¥â­ë¥ ¨ª®­ª¨(¤«ï ã᪮७¨ï)
PIcoDB rd 1 PIcoDB rd 1
nLoadIcon rd 1 ;номер читаемой из ini иконки nLoadIcon rd 1 ;­®¬¥à ç¨â ¥¬®© ¨§ ini ¨ª®­ª¨
IconsID rd 100 ;ID иконок - 2 байтa + байт 0 + выравнивающий байт - строка с 2мя шеснадцетиричными цифрами IconsID rd 100 ;ID ¨ª®­®ª - 2 ¡ ©âa + ¡ ©â 0 + ¢ëà ¢­¨¢ î騩 ¡ ©â - áâப  á 2¬ï è¥á­ ¤æ¥â¨à¨ç­ë¬¨ æ¨äà ¬¨
nameSection rb 4 nameSection rb 4
@ -1224,7 +1224,7 @@ cur_band_compensation rd 1
bufIni rb 40 bufIni rb 40
NumMenuButt rd 1 NumMenuButt rd 1
RBMenuCP rd MAX_USER_BUTTONS*2 ;указатели на подпись и путь с прогой (Caption(dd), Path(dd)) и запасной (dd) для завершающего нуля RBMenuCP rd MAX_USER_BUTTONS*2 ;㪠§ â¥«¨ ­  ¯®¤¯¨áì ¨ ¯ãâì á ¯à®£®© (Caption(dd), Path(dd)) ¨ § ¯ á­®© (dd) ¤«ï § ¢¥àè î饣® ­ã«ï
RMenuW rw 1 RMenuW rw 1
RMenuH rw 1 RMenuH rw 1
@ -1247,7 +1247,7 @@ fname_Info rb 1024
;------------------------------------------------------------------------------- ;-------------------------------------------------------------------------------
rb 512 rb 512
stack_mov: ;одновременно таскать и держать открытым менюшку невозможно stack_mov: ;®¤­®¢à¥¬¥­­® â áª âì ¨ ¤¥à¦ âì ®âªàëâë¬ ¬¥­îèªã ­¥¢®§¬®¦­®
stack_rmenu: stack_rmenu:
rb 512 rb 512
stack_dlg: stack_dlg: