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