forked from KolibriOS/kolibrios
Update roadmap; new mode 3 for Hot Angles
git-svn-id: svn://kolibrios.org@7443 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
f188191965
commit
a623f90476
@ -2,7 +2,7 @@
|
|||||||
; Hot Angles Config ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
; Hot Angles Config ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
; Compile with FASM
|
; Compile with FASM
|
||||||
; Version 0.3.5: Oct 5, 2018
|
; Version 0.3.6: Oct 9, 2018
|
||||||
|
|
||||||
; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage
|
; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage
|
||||||
; All rights reserved.
|
; All rights reserved.
|
||||||
@ -45,11 +45,13 @@ include '../../macros.inc'
|
|||||||
include '../../proc32.inc'
|
include '../../proc32.inc'
|
||||||
include '../../dll.inc'
|
include '../../dll.inc'
|
||||||
include '../../develop/libraries/box_lib/trunk/box_lib.mac' ;êîìïîíåíòû checkBox è editBox
|
include '../../develop/libraries/box_lib/trunk/box_lib.mac' ;êîìïîíåíòû checkBox è editBox
|
||||||
;![
|
|
||||||
include '../../develop/libraries/box_lib/load_lib.mac' ;ìàêðîñ äëÿ çàãðóçêè áèáëèîòåê
|
include '../../develop/libraries/box_lib/load_lib.mac' ;ìàêðîñ äëÿ çàãðóçêè áèáëèîòåê
|
||||||
@use_library
|
@use_library
|
||||||
;@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
|
|
||||||
;!]
|
KMENUITEM_NORMAL equ 0
|
||||||
|
KMENUITEM_SUBMENU equ 1
|
||||||
|
KMENUITEM_SEPARATOR equ 2
|
||||||
|
|
||||||
Otstup = 30
|
Otstup = 30
|
||||||
|
|
||||||
START:
|
START:
|
||||||
@ -67,7 +69,7 @@ START:
|
|||||||
or eax, eax
|
or eax, eax
|
||||||
jnz exit
|
jnz exit
|
||||||
|
|
||||||
invoke init_checkbox, ch1
|
;invoke init_checkbox, ch1
|
||||||
|
|
||||||
mov eax,40 ;óñòàíîâèòü ìàñêó äëÿ îæèäàåìûõ ñîáûòèé
|
mov eax,40 ;óñòàíîâèòü ìàñêó äëÿ îæèäàåìûõ ñîáûòèé
|
||||||
mov ebx,0x27 ;ñèñòåìà áóäåò ðåàãèðîâàòü òîëüêî íà ñîîáùåíèå î ïåðåðèñîâêå, íàæàòà êíîïêà, îïðåäåë¸ííàÿ ðàíåå, ñîáûòèå îò ìûøè (÷òî-òî ñëó÷èëîñü - íàæàòèå íà êíîïêó ìûøè èëè ïåðåìåùåíèå; ñáðàñûâàåòñÿ ïðè ïðî÷òåíèè)
|
mov ebx,0x27 ;ñèñòåìà áóäåò ðåàãèðîâàòü òîëüêî íà ñîîáùåíèå î ïåðåðèñîâêå, íàæàòà êíîïêà, îïðåäåë¸ííàÿ ðàíåå, ñîáûòèå îò ìûøè (÷òî-òî ñëó÷èëîñü - íàæàòèå íà êíîïêó ìûøè èëè ïåðåìåùåíèå; ñáðàñûâàåòñÿ ïðè ïðî÷òåíèè)
|
||||||
@ -77,6 +79,20 @@ START:
|
|||||||
;mcall 48,3,sc,sizeof.system_colors ;ïîëó÷èòü ñèñòåìíûå öâåòà
|
;mcall 48,3,sc,sizeof.system_colors ;ïîëó÷èòü ñèñòåìíûå öâåòà
|
||||||
stdcall [OpenDialog_Init],OpenDialog_data ;ïîäãîòîâêà äèàëîãà
|
stdcall [OpenDialog_Init],OpenDialog_data ;ïîäãîòîâêà äèàëîãà
|
||||||
|
|
||||||
|
;mode menu
|
||||||
|
stdcall [kmenu_init], sc ;kmenu initialisation
|
||||||
|
stdcall [ksubmenu_new]
|
||||||
|
mov [modeMenu], eax
|
||||||
|
stdcall [kmenuitem_new], KMENUITEM_NORMAL, valueModeMenu0, 110
|
||||||
|
stdcall [ksubmenu_add], [modeMenu], eax
|
||||||
|
stdcall [kmenuitem_new], KMENUITEM_NORMAL, valueModeMenu1, 111
|
||||||
|
stdcall [ksubmenu_add], [modeMenu], eax
|
||||||
|
stdcall [kmenuitem_new], KMENUITEM_NORMAL, valueModeMenu2, 112
|
||||||
|
stdcall [ksubmenu_add], [modeMenu], eax
|
||||||
|
stdcall [kmenuitem_new], KMENUITEM_NORMAL, valueModeMenu3, 113
|
||||||
|
stdcall [ksubmenu_add], [modeMenu], eax
|
||||||
|
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, valueModeMenu1, [modeMenu]
|
||||||
|
|
||||||
call loadConfig ;çàãðóæàåì êîíôèãóðàöèþ èç ôàéëà, åñëè íåò - òî âûñòàâëÿåì ïàðàìåòðû ïî óìîë÷àíèþ
|
call loadConfig ;çàãðóæàåì êîíôèãóðàöèþ èç ôàéëà, åñëè íåò - òî âûñòàâëÿåì ïàðàìåòðû ïî óìîë÷àíèþ
|
||||||
call draw_window ;îòðèñîâàòü îêíî ïðèëîæåíèÿ
|
call draw_window ;îòðèñîâàòü îêíî ïðèëîæåíèÿ
|
||||||
|
|
||||||
@ -101,7 +117,8 @@ event_wait:
|
|||||||
invoke edit_box_mouse, editLD
|
invoke edit_box_mouse, editLD
|
||||||
invoke edit_box_mouse, editRU
|
invoke edit_box_mouse, editRU
|
||||||
invoke edit_box_mouse, editRD
|
invoke edit_box_mouse, editRD
|
||||||
invoke check_box_mouse, ch1 ;ïðîâåðêà ÷åê áîêñà
|
;invoke check_box_mouse, ch1 ;ïðîâåðêà ÷åê áîêñà
|
||||||
|
;stdcall [kmainmenu_dispatch_cursorevent], [modeMenu] ;ïðîâåðêà ìûøè äëÿ êîìáîáîêñà
|
||||||
|
|
||||||
jmp event_wait
|
jmp event_wait
|
||||||
|
|
||||||
@ -158,6 +175,43 @@ noclose:
|
|||||||
mov byte[editID], 7
|
mov byte[editID], 7
|
||||||
call but_open_dlg
|
call but_open_dlg
|
||||||
jmp event_wait
|
jmp event_wait
|
||||||
|
@@:
|
||||||
|
cmp ah, 8
|
||||||
|
jne @f
|
||||||
|
push eax ebx ecx
|
||||||
|
mcall 9, pi, -1 ;get window coord
|
||||||
|
|
||||||
|
mov eax, dword[pi+34]
|
||||||
|
add eax, buttonModeX ;+ 5
|
||||||
|
mov word[coordModeMenu.x], ax
|
||||||
|
|
||||||
|
mov eax, dword[pi+38]
|
||||||
|
add eax, buttonModeY + 17 ;20 ;42
|
||||||
|
mov word[coordModeMenu.y], ax
|
||||||
|
|
||||||
|
stdcall [ksubmenu_draw], [modeMenu], coordModeMenu
|
||||||
|
pop ecx ebx eax
|
||||||
|
jmp event_wait
|
||||||
|
@@:
|
||||||
|
cmp ah, 110
|
||||||
|
jne @f
|
||||||
|
mov byte[mode], 48 ;'0'
|
||||||
|
jmp event_wait
|
||||||
|
@@:
|
||||||
|
cmp ah, 111
|
||||||
|
jne @f
|
||||||
|
mov byte[mode], 49 ;'1'
|
||||||
|
jmp event_wait
|
||||||
|
@@:
|
||||||
|
cmp ah, 112
|
||||||
|
jne @f
|
||||||
|
mov byte[mode], 50 ;'2'
|
||||||
|
jmp event_wait
|
||||||
|
@@:
|
||||||
|
cmp ah, 113
|
||||||
|
jne @f
|
||||||
|
mov byte[mode], 51 ;'3'
|
||||||
|
jmp event_wait
|
||||||
@@:
|
@@:
|
||||||
butend:
|
butend:
|
||||||
jmp event_wait ;this is for ignored events, useful at development
|
jmp event_wait ;this is for ignored events, useful at development
|
||||||
@ -255,11 +309,17 @@ applyButton:
|
|||||||
;jne @f
|
;jne @f
|
||||||
;@@:
|
;@@:
|
||||||
;
|
;
|
||||||
mov byte[eax], 48;'0' ;110; 'n' ;ïî óìîë÷àíèþ ôëàã ñíÿò
|
|
||||||
cmp word[ch1.flags], 110b ;ch_flag_en and ch_flag_middle ;âûñòàâëåí checkBox èëè íåò?
|
push ebx ;ñîõðàíÿåì âûáðàííûé ðåæèì
|
||||||
jne applyButton.no
|
mov bl, byte[mode]
|
||||||
mov byte[eax], 49;'1' ;121 ;èíà÷å êëàä¸ì 'y'
|
mov byte[eax], bl
|
||||||
.no:
|
pop ebx
|
||||||
|
|
||||||
|
;; mov byte[eax], 48;'0' ;110; 'n' ;ïî óìîë÷àíèþ ôëàã ñíÿò
|
||||||
|
;; cmp word[ch1.flags], 110b ;ch_flag_en and ch_flag_middle ;âûñòàâëåí checkBox èëè íåò?
|
||||||
|
;; jne applyButton.no
|
||||||
|
;; mov byte[eax], 49;'1' ;121 ;èíà÷å êëàä¸ì 'y'
|
||||||
|
;;.no:
|
||||||
inc eax
|
inc eax
|
||||||
call addPerenos
|
call addPerenos
|
||||||
|
|
||||||
@ -414,17 +474,37 @@ loadConfig:
|
|||||||
add edx, eax ;êëàä¸ì â edx - àäðåñ êîíöà êîíôèã.äàííûõ
|
add edx, eax ;êëàä¸ì â edx - àäðåñ êîíöà êîíôèã.äàííûõ
|
||||||
|
|
||||||
.chStart:
|
.chStart:
|
||||||
cmp byte[eax], 49;'1' ;121 ;'y' ;âûñòàâëÿåì checkBox - ïàðàìåòð àêòèâíîñòè ïðèëîæåíèÿ
|
|
||||||
jne @f ;loadConfig.no
|
push ebx
|
||||||
.yes:
|
mov bl, byte[eax]
|
||||||
mov word[ch1.flags], 110b ;ch_flag_en and ch_flag_middle
|
cmp bl, 48 ; åñëè çíà÷åíèå âûõîäèò çà äîïóñòèìûå ïðåäåëû, òî ïðîâåðÿåì íà 'n' (äëÿ ñîâìåñòèìîñòè)
|
||||||
jmp loadConfig.chEnd
|
jb loadConfig.checkN
|
||||||
|
cmp bl, 51
|
||||||
|
ja loadConfig.checkN
|
||||||
|
|
||||||
|
mov byte[mode], bl ;èíà÷å óñòàíàâëèâàåì ýòîò ðåæèì êàê åñòü
|
||||||
|
jmp loadConfig.modeEnd ;è èä¸ì äàëüøå
|
||||||
|
.checkN:
|
||||||
|
cmp bl, 'n' ;åñëè n - òî ðåæèì "îòêëþ÷åíî"
|
||||||
|
jne @f
|
||||||
|
mov byte[mode], 48 ;'0'
|
||||||
|
jmp loadConfig.modeEnd
|
||||||
@@:
|
@@:
|
||||||
cmp byte[eax], 50;'2' ;âòîðîé ðåæèì àêòèâèðîâàí
|
mov byte[mode], 49 ;'1' èíà÷å ïî óìîë÷àíèþ âêëþ÷¸í êëàññè÷åñêèé ðåæèì ðàáîòû
|
||||||
je loadConfig.yes
|
.modeEnd:
|
||||||
.no:
|
pop ebx
|
||||||
mov word[ch1.flags], 100b ;ch_flag_middle
|
|
||||||
.chEnd:
|
;; cmp byte[eax], 49;'1' ;121 ;'y' ;âûñòàâëÿåì checkBox - ïàðàìåòð àêòèâíîñòè ïðèëîæåíèÿ
|
||||||
|
;; jne @f ;loadConfig.no
|
||||||
|
;;.yes:
|
||||||
|
;; mov word[ch1.flags], 110b ;ch_flag_en and ch_flag_middle
|
||||||
|
;; jmp loadConfig.chEnd
|
||||||
|
;;@@:
|
||||||
|
;; cmp byte[eax], 50;'2' ;âòîðîé ðåæèì àêòèâèðîâàí
|
||||||
|
;; je loadConfig.yes
|
||||||
|
;;.no:
|
||||||
|
;; mov word[ch1.flags], 100b ;ch_flag_middle
|
||||||
|
;;.chEnd:
|
||||||
;jmp loadConfig.end ;êîìàíäà äëÿ óäîáñòâà îòëàäêè è ïîèñêà îøèáîê
|
;jmp loadConfig.end ;êîìàíäà äëÿ óäîáñòâà îòëàäêè è ïîèñêà îøèáîê
|
||||||
|
|
||||||
;êîïèðóåì ñîäåðæèìîå ñòðîê â áóôåð
|
;êîïèðóåì ñîäåðæèìîå ñòðîê â áóôåð
|
||||||
@ -644,7 +724,7 @@ draw_window:
|
|||||||
invoke edit_box_draw, editRU
|
invoke edit_box_draw, editRU
|
||||||
invoke edit_box_draw, editRD
|
invoke edit_box_draw, editRD
|
||||||
|
|
||||||
invoke check_box_draw, ch1 ;ðèñîâàíèå ÷åêáîêñîâ
|
;invoke check_box_draw, ch1 ;ðèñîâàíèå ÷åêáîêñîâ
|
||||||
|
|
||||||
;ðèñóåì êíîïêó
|
;ðèñóåì êíîïêó
|
||||||
mov ebx, (WindowsWidth-80-Otstup)*65536 + 80 ;êîîðäèíàòà X, øèðèíà êíîïêè
|
mov ebx, (WindowsWidth-80-Otstup)*65536 + 80 ;êîîðäèíàòà X, øèðèíà êíîïêè
|
||||||
@ -705,6 +785,28 @@ draw_window:
|
|||||||
mcall 4
|
mcall 4
|
||||||
|
|
||||||
|
|
||||||
|
;delete mode button, if it exist
|
||||||
|
mov edx, 0x80000008
|
||||||
|
mcall 8
|
||||||
|
;draw button Mode
|
||||||
|
buttonModeX = 30 ;433
|
||||||
|
buttonModeY = 160 ;50
|
||||||
|
buttonModeWidth = 221
|
||||||
|
buttonModeHeight = 20
|
||||||
|
buttonModeTextXoffset = 5
|
||||||
|
mov ebx, buttonModeX*65536 + buttonModeWidth ;X + Width
|
||||||
|
mov ecx, buttonModeY*65536 + buttonModeHeight ;Y + Height
|
||||||
|
mov edx, 0x00000008 ;button id
|
||||||
|
mov esi, 0x00AABBCC ;color button
|
||||||
|
mcall 8
|
||||||
|
;draw text for button Mode
|
||||||
|
mov ebx, (buttonModeX+buttonModeTextXoffset) * 65536 + (buttonModeY+6) ;(x, y)
|
||||||
|
mov ecx, 0xFFFFFF
|
||||||
|
call setTextModeMenu
|
||||||
|
mov esi, valueModeMenuSize
|
||||||
|
mcall 4
|
||||||
|
|
||||||
|
|
||||||
call draw_super_text
|
call draw_super_text
|
||||||
|
|
||||||
LineLength = 62
|
LineLength = 62
|
||||||
@ -728,6 +830,29 @@ draw_window:
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
setTextModeMenu:
|
||||||
|
cmp byte[mode], 48
|
||||||
|
jne @f
|
||||||
|
mov edx, valueModeMenu0
|
||||||
|
ret
|
||||||
|
@@:
|
||||||
|
cmp byte[mode], 49
|
||||||
|
jne @f
|
||||||
|
mov edx, valueModeMenu1
|
||||||
|
ret
|
||||||
|
@@:
|
||||||
|
cmp byte[mode], 50
|
||||||
|
jne @f
|
||||||
|
mov edx, valueModeMenu2
|
||||||
|
ret
|
||||||
|
@@:
|
||||||
|
cmp byte[mode], 51
|
||||||
|
jne @f
|
||||||
|
mov edx, valueModeMenu3
|
||||||
|
ret
|
||||||
|
@@:
|
||||||
|
mov edx, valueModeMenu1
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
align 16
|
align 16
|
||||||
@ -749,7 +874,7 @@ import box_lib,\
|
|||||||
;DATA äàííûå check_box èñïîëüçóåò ñèñòåìíûå öâåòà
|
;DATA äàííûå check_box èñïîëüçóåò ñèñòåìíûå öâåòà
|
||||||
|
|
||||||
;êîîðäèíàòû (x,y) = (30, 160) ðàçìåð ÷åêáîêñà 12, öâåò òåêñòà 0x224466
|
;êîîðäèíàòû (x,y) = (30, 160) ðàçìåð ÷åêáîêñà 12, öâåò òåêñòà 0x224466
|
||||||
ch1 check_box2 30 shl 16 + 12, 160 shl 16 + 12, 6, 0xFFFFFFFF, 0xAABBCC, 0x224466, ch_text, 110b ; ch_flag_en and ch_flag_middle
|
;ch1 check_box2 30 shl 16 + 12, 160 shl 16 + 12, 6, 0xFFFFFFFF, 0xAABBCC, 0x224466, ch_text, 110b ; ch_flag_en and ch_flag_middle
|
||||||
|
|
||||||
commonButtonText db '...', 0 ;òåêñò äëÿ êíîïîê âûçîâà OpenDial
|
commonButtonText db '...', 0 ;òåêñò äëÿ êíîïîê âûçîâà OpenDial
|
||||||
commonButtonTextSize = 3
|
commonButtonTextSize = 3
|
||||||
@ -774,6 +899,13 @@ superText:
|
|||||||
.rd db 'Š®¬ ¤ ¯à ¢®£® ¨¦¥£® 㣫 : ', 0
|
.rd db 'Š®¬ ¤ ¯à ¢®£® ¨¦¥£® 㣫 : ', 0
|
||||||
superTextSize = 30
|
superTextSize = 30
|
||||||
|
|
||||||
|
valueModeMenuSize = 32
|
||||||
|
ModeMenu db '<27>¥¦¨¬ à ¡®âë:',0
|
||||||
|
valueModeMenu0 db '®âª«î祮 ',0
|
||||||
|
valueModeMenu1 db 'ª« áá¨ç¥áª¨© ०¨¬ ',0
|
||||||
|
valueModeMenu2 db '०¨¬ £®àï祩 ª« ¢¨è¨ ',0
|
||||||
|
valueModeMenu3 db '०¨¬ ¦¥áâ ¯® ª« ¢¨è¥ ªâ¨¢ 樨',0
|
||||||
|
|
||||||
else ;èíà÷å àíãëèéñêèé òåêñò
|
else ;èíà÷å àíãëèéñêèé òåêñò
|
||||||
|
|
||||||
text db "This is a Hot Angles Configurator. "
|
text db "This is a Hot Angles Configurator. "
|
||||||
@ -794,6 +926,13 @@ superText:
|
|||||||
.rd db 'Right down angle command:', 0
|
.rd db 'Right down angle command:', 0
|
||||||
superTextSize = 25
|
superTextSize = 25
|
||||||
|
|
||||||
|
valueModeMenuSize = 32
|
||||||
|
ModeMenu db 'Mode:',0
|
||||||
|
valueModeMenu0 db 'disabled ',0
|
||||||
|
valueModeMenu1 db 'classic mode ',0
|
||||||
|
valueModeMenu2 db 'hot key mode ',0
|
||||||
|
valueModeMenu3 db 'activation key gesture mode ',0
|
||||||
|
|
||||||
end if
|
end if
|
||||||
|
|
||||||
|
|
||||||
@ -821,6 +960,12 @@ draw_super_text:
|
|||||||
mov esi, superTextSize
|
mov esi, superTextSize
|
||||||
mcall 4
|
mcall 4
|
||||||
|
|
||||||
|
mov ebx, Otstup * 65536 + (buttonModeY-11)
|
||||||
|
or ecx, 0x80000000
|
||||||
|
mov edx, ModeMenu
|
||||||
|
mov esi, 3
|
||||||
|
mcall 4
|
||||||
|
|
||||||
pop esi edi edx ecx ebx eax
|
pop esi edi edx ecx ebx eax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@ -949,12 +1094,17 @@ communication_area_default_path: db '/rd/1/File managers/',0
|
|||||||
Filter:
|
Filter:
|
||||||
dd Filter.end - Filter.1
|
dd Filter.end - Filter.1
|
||||||
.1:
|
.1:
|
||||||
;db 'ASM',0
|
|
||||||
;db 'KEX',0
|
;db 'KEX',0
|
||||||
;db 'TXT',0
|
|
||||||
.end:
|
.end:
|
||||||
db 0
|
db 0
|
||||||
|
|
||||||
|
mode db 49 ;'1'
|
||||||
|
modeMenu dd 0
|
||||||
|
coordModeMenu:
|
||||||
|
.x dw 100
|
||||||
|
.y dw 200
|
||||||
|
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
proclib_import: ;îïèñàíèå ýêñïîðòèðóåìûõ ôóíêöèé
|
proclib_import: ;îïèñàíèå ýêñïîðòèðóåìûõ ôóíêöèé
|
||||||
OpenDialog_Init dd aOpenDialog_Init
|
OpenDialog_Init dd aOpenDialog_Init
|
||||||
@ -967,28 +1117,20 @@ head_f_i:
|
|||||||
head_f_l db 'Ñèñòåìíàÿ îøèáêà',0
|
head_f_l db 'Ñèñòåìíàÿ îøèáêà',0
|
||||||
err_message_found_lib0 db 'Íå íàéäåíà áèáëèîòåêà ',39,'proc_lib.obj',39,0
|
err_message_found_lib0 db 'Íå íàéäåíà áèáëèîòåêà ',39,'proc_lib.obj',39,0
|
||||||
err_message_import0 db 'Îøèáêà ïðè èìïîðòå áèáëèîòåêè ',39,'proc_lib.obj',39,0
|
err_message_import0 db 'Îøèáêà ïðè èìïîðòå áèáëèîòåêè ',39,'proc_lib.obj',39,0
|
||||||
|
err_message_found_lib1 db 'Íå íàéäåíà áèáëèîòåêà ',39,'kmenu.obj',39,0 ;'<27>¥ ©¤¥ ¡¨¡«¨®â¥ª '
|
||||||
|
err_message_import1 db 'Îøèáêà ïðè èìïîðòå áèáëèîòåêè ',39,'kmenu',39,0 ;'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ '
|
||||||
|
|
||||||
system_dir0 db '/sys/lib/'
|
system_dir0 db '/sys/lib/'
|
||||||
lib0_name db 'proc_lib.obj',0
|
lib0_name db 'proc_lib.obj',0
|
||||||
|
lib1_name db 'kmenu.obj',0
|
||||||
|
|
||||||
;library structures
|
;library structures
|
||||||
l_libs_start:
|
l_libs_start:
|
||||||
lib0 l_libs lib0_name, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l, proclib_import,err_message_import0, head_f_i
|
lib0 l_libs lib0_name, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l, proclib_import,err_message_import0, head_f_i
|
||||||
|
lib1 l_libs lib1_name, sys_path, file_name, system_dir0, err_message_found_lib1, head_f_l, import_libkmenu,err_message_import1,head_f_i
|
||||||
load_lib_end:
|
load_lib_end:
|
||||||
|
|
||||||
;txt_open db 'Îòêðûòü',0
|
|
||||||
|
|
||||||
sys_path: rb 4096
|
|
||||||
file_name: rb 4096
|
|
||||||
plugin_path: rb 4096
|
|
||||||
openfile_path: rb 4096
|
|
||||||
filename_area: rb 256
|
|
||||||
rb 1024
|
|
||||||
procinfo process_information
|
|
||||||
;!]
|
;!]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
edMaxSize = 510 ;òåïåðü ñ íîâûì êîìïîíåíòîì ìîæíî è 511 óêàçàòü
|
edMaxSize = 510 ;òåïåðü ñ íîâûì êîìïîíåíòîì ìîæíî è 511 óêàçàòü
|
||||||
edMax = 0 ;max, size, pos
|
edMax = 0 ;max, size, pos
|
||||||
|
|
||||||
@ -998,9 +1140,45 @@ editLD edit_box 180-buttonW,Otstup+buttonW,120, 0xffffff, 0x6a9480, 0, 0xAABBC
|
|||||||
editRU edit_box 180-buttonW,240,85, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.3, mouse_dd, 0, edMax, edMax
|
editRU edit_box 180-buttonW,240,85, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.3, mouse_dd, 0, edMax, edMax
|
||||||
editRD edit_box 180-buttonW,240,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.4, mouse_dd, 0, edMax, edMax
|
editRD edit_box 180-buttonW,240,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.4, mouse_dd, 0, edMax, edMax
|
||||||
|
|
||||||
|
align 4
|
||||||
|
import_libkmenu:
|
||||||
|
kmenu_init dd akmenu_init
|
||||||
|
kmainmenu_draw dd akmainmenu_draw
|
||||||
|
kmainmenu_dispatch_cursorevent dd akmainmenu_dispatch_cursorevent
|
||||||
|
ksubmenu_new dd aksubmenu_new
|
||||||
|
ksubmenu_delete dd aksubmenu_delete
|
||||||
|
ksubmenu_draw dd aksubmenu_draw
|
||||||
|
ksubmenu_add dd aksubmenu_add
|
||||||
|
kmenuitem_new dd akmenuitem_new
|
||||||
|
kmenuitem_delete dd akmenuitem_delete
|
||||||
|
kmenuitem_draw dd akmenuitem_draw
|
||||||
|
dd 0,0
|
||||||
|
akmenu_init db 'kmenu_init',0
|
||||||
|
akmainmenu_draw db 'kmainmenu_draw',0
|
||||||
|
akmainmenu_dispatch_cursorevent db 'kmainmenu_dispatch_cursorevent',0
|
||||||
|
aksubmenu_new db 'ksubmenu_new',0
|
||||||
|
aksubmenu_delete db 'ksubmenu_delete',0
|
||||||
|
aksubmenu_draw db 'ksubmenu_draw',0
|
||||||
|
aksubmenu_add db 'ksubmenu_add',0
|
||||||
|
akmenuitem_new db 'kmenuitem_new',0
|
||||||
|
akmenuitem_delete db 'kmenuitem_delete',0
|
||||||
|
akmenuitem_draw db 'kmenuitem_draw',0
|
||||||
|
|
||||||
mouse_dd dd ?
|
mouse_dd dd ?
|
||||||
sc system_colors
|
sc system_colors
|
||||||
|
|
||||||
|
button_press rd 0 ;for kmenu
|
||||||
|
|
||||||
|
sys_path: rb 4096
|
||||||
|
file_name: rb 4096
|
||||||
|
plugin_path: rb 4096
|
||||||
|
openfile_path: rb 4096
|
||||||
|
filename_area: rb 256
|
||||||
|
rb 1024
|
||||||
|
procinfo process_information
|
||||||
|
pi rb 1024
|
||||||
|
|
||||||
|
|
||||||
dataBuffer:
|
dataBuffer:
|
||||||
.1: rb 512
|
.1: rb 512
|
||||||
.2: rb 512
|
.2: rb 512
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
; Hot Angles ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
; Hot Angles ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
; Compile with FASM
|
; Compile with FASM
|
||||||
; Version 0.3.5: Oct 5, 2018
|
; Version 0.3.6: Oct 9, 2018
|
||||||
|
|
||||||
; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage
|
; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage
|
||||||
; All rights reserved.
|
; All rights reserved.
|
||||||
@ -52,6 +52,13 @@ START_DEBUG:
|
|||||||
cmp byte[mode], 0 ;функция отключена - выход
|
cmp byte[mode], 0 ;функция отключена - выход
|
||||||
jne @f
|
jne @f
|
||||||
mcall -1
|
mcall -1
|
||||||
|
@@:
|
||||||
|
;режим жеста по горячей клавише?
|
||||||
|
cmp byte[mode], 3 ;подписываемся на интересные нам события в зависимости от режима работы
|
||||||
|
jne @f
|
||||||
|
mov ebx, 00000100000000000000000000100010b ;если да, то подписываемся на клавиши
|
||||||
|
mcall 40
|
||||||
|
jmp init03
|
||||||
@@:
|
@@:
|
||||||
;режим активации горячей клавишей?
|
;режим активации горячей клавишей?
|
||||||
cmp byte[mode], 2 ;подписываемся на интересные нам события в зависимости от режима работы
|
cmp byte[mode], 2 ;подписываемся на интересные нам события в зависимости от режима работы
|
||||||
@ -110,8 +117,24 @@ hotkey:
|
|||||||
|
|
||||||
cmp ah, byte[keyActivate] ;если нажата наша горячая клавиша
|
cmp ah, byte[keyActivate] ;если нажата наша горячая клавиша
|
||||||
jne @f
|
jne @f
|
||||||
|
|
||||||
|
;for mode 3 [
|
||||||
|
cmp byte[keyState], 1
|
||||||
|
je hotkey.e
|
||||||
|
|
||||||
|
push eax ebx
|
||||||
|
mcall 37, 0 ;запоминаем текущие(начальные) координаты мыши
|
||||||
|
;mov dword[o.x], eax
|
||||||
|
mov word[o.y], ax
|
||||||
|
shr eax, 16
|
||||||
|
mov word[o.x], ax
|
||||||
|
pop ebx eax
|
||||||
|
|
||||||
mov byte[keyState], 1
|
mov byte[keyState], 1
|
||||||
mov byte[state], UNLOCKd
|
mov byte[state], UNLOCKd
|
||||||
|
.e:
|
||||||
|
;]
|
||||||
|
;mov byte[state], UNLOCKd
|
||||||
jmp hotkey.end
|
jmp hotkey.end
|
||||||
@@:
|
@@:
|
||||||
push edx
|
push edx
|
||||||
@ -127,7 +150,7 @@ hotkey:
|
|||||||
@@:
|
@@:
|
||||||
pop edx
|
pop edx
|
||||||
.end:
|
.end:
|
||||||
jmp mode02
|
jmp dword[backAdr]
|
||||||
|
|
||||||
|
|
||||||
init01:
|
init01:
|
||||||
@ -449,10 +472,165 @@ copyKill:
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
;MODE 3
|
||||||
|
init03:
|
||||||
|
mov dword[radius2], 100; 10*10
|
||||||
|
mov dword[backAdr], mode03
|
||||||
|
call setHotKey
|
||||||
|
mode03:
|
||||||
|
mcall 10
|
||||||
|
cmp eax, 2 ;обработка нажатия клавиши
|
||||||
|
je hotkey
|
||||||
|
|
||||||
|
;cmp byte[keyState], 0
|
||||||
|
;je mode03
|
||||||
|
cmp eax, 6 ;обработка перемещений и нажатия мыши
|
||||||
|
je mouse03
|
||||||
|
|
||||||
|
jmp mode03
|
||||||
|
|
||||||
|
mouse03:
|
||||||
|
cmp byte[keyState], 0 ;если клавиша не зажата, то обновим начальные координаты
|
||||||
|
je mouse03.updateCoord
|
||||||
|
|
||||||
|
cmp byte[state], LOCKd ;если угол заблокирован, то обновим начальные координаты
|
||||||
|
je mouse03.updateCoord
|
||||||
|
|
||||||
|
call checkPointInCircle ;иначе если преодолели радиус активации, то вызываем действие нужного угла
|
||||||
|
jmp @f
|
||||||
|
.updateCoord:
|
||||||
|
push eax ebx
|
||||||
|
mcall 37, 0 ;запоминаем текущие(начальные) координаты мыши
|
||||||
|
;mov dword[o.x], eax
|
||||||
|
mov word[o.y], ax
|
||||||
|
shr eax, 16
|
||||||
|
mov word[o.x], ax
|
||||||
|
pop ebx eax
|
||||||
|
@@:
|
||||||
|
jmp dword[backAdr]
|
||||||
|
|
||||||
|
|
||||||
|
radius2 dd 0 ;квадрат радиуса для mode 3
|
||||||
|
o: ;координаты начальной и текущей точки
|
||||||
|
.x: dw 0
|
||||||
|
.y: dw 0
|
||||||
|
.cx: dw 0
|
||||||
|
.cy: dw 0
|
||||||
|
|
||||||
|
;проверка выхода за пределы круга
|
||||||
|
; sqrt( (x2-x1)^2 + (y2-y1)^2 ) <= radius
|
||||||
|
; (x2-x1)^2 + (y2-y1)^2 <= radius^2
|
||||||
|
checkPointInCircle:
|
||||||
|
push eax ebx ecx edx
|
||||||
|
mcall 37, 0 ;получаем текущие координаты мыши
|
||||||
|
;mov dword[o.cx], eax
|
||||||
|
mov word[o.cy], ax
|
||||||
|
shr eax, 16
|
||||||
|
mov word[o.cx], ax
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
|
xor edx, edx
|
||||||
|
mov ax, word[o.x]
|
||||||
|
mov dx, word[o.cx]
|
||||||
|
cmp dx, ax
|
||||||
|
jae @f
|
||||||
|
sub ax, dx
|
||||||
|
mov dx, ax
|
||||||
|
jmp .xend
|
||||||
|
@@:
|
||||||
|
sub dx, ax
|
||||||
|
.xend:
|
||||||
|
mov eax, edx
|
||||||
|
mul dx
|
||||||
|
|
||||||
|
mov ebx, eax
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
|
xor edx, edx
|
||||||
|
mov ax, word[o.y]
|
||||||
|
mov dx, word[o.cy]
|
||||||
|
cmp dx, ax
|
||||||
|
jae @f
|
||||||
|
sub ax, dx
|
||||||
|
mov dx, ax
|
||||||
|
jmp .yend
|
||||||
|
@@:
|
||||||
|
sub dx, ax
|
||||||
|
.yend:
|
||||||
|
mov eax, edx
|
||||||
|
mul dx
|
||||||
|
|
||||||
|
add ebx, eax
|
||||||
|
|
||||||
|
cmp ebx, dword[radius2]
|
||||||
|
jbe @f
|
||||||
|
call activateCorner ;иначе активируем нужный угол
|
||||||
|
@@:
|
||||||
|
pop edx ecx ebx eax
|
||||||
|
ret
|
||||||
|
|
||||||
|
;выяснить в сторону какого угла ушли и активировать его
|
||||||
|
activateCorner:
|
||||||
|
push eax ecx
|
||||||
|
xor eax, eax
|
||||||
|
|
||||||
|
mov ax, word[o.cx]
|
||||||
|
cmp ax, word[o.x]
|
||||||
|
je activateCorner.end ;если координата равна, то выходим (такого быть не должно)
|
||||||
|
ja activateCorner.right
|
||||||
|
|
||||||
|
;иначе левая сторона
|
||||||
|
mov ax, word[o.cy]
|
||||||
|
cmp ax, word[o.y]
|
||||||
|
je activateCorner.end ;если координата равна, то выходим (такого быть не должно)
|
||||||
|
jb activateCorner.leftup
|
||||||
|
|
||||||
|
;иначе левый нижний угол
|
||||||
|
mov ecx, 1
|
||||||
|
call run_command
|
||||||
|
mov byte[keyState], 0
|
||||||
|
mov byte[state], LOCKd
|
||||||
|
jmp activateCorner.end
|
||||||
|
|
||||||
|
.leftup:
|
||||||
|
;левый верхний угол
|
||||||
|
mov ecx, 0
|
||||||
|
call run_command
|
||||||
|
mov byte[keyState], 0
|
||||||
|
mov byte[state], LOCKd
|
||||||
|
jmp activateCorner.end
|
||||||
|
|
||||||
|
.right: ;правая сторона экрана
|
||||||
|
mov ax, word[o.cy]
|
||||||
|
cmp ax, word[o.y]
|
||||||
|
je activateCorner.end ;если координата равна, то выходим (такого быть не должно)
|
||||||
|
jb activateCorner.rightup
|
||||||
|
|
||||||
|
;иначе правый нижний угол
|
||||||
|
mov ecx, 3
|
||||||
|
call run_command
|
||||||
|
mov byte[keyState], 0
|
||||||
|
mov byte[state], LOCKd
|
||||||
|
jmp activateCorner.end
|
||||||
|
|
||||||
|
.rightup:
|
||||||
|
;правый верхний угол
|
||||||
|
mov ecx, 2
|
||||||
|
call run_command
|
||||||
|
mov byte[keyState], 0
|
||||||
|
mov byte[state], LOCKd
|
||||||
|
jmp activateCorner.end
|
||||||
|
|
||||||
|
.end:
|
||||||
|
pop ecx eax
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
keyActivate db 41 ;16 ;'Q' ;клавиша активации
|
keyActivate db 41 ;16 ;'Q' ;клавиша активации
|
||||||
keyState db 0 ;0-клавиша не активна, 1 - клавиша активна
|
keyState db 0 ;0-клавиша не активна, 1 - клавиша активна
|
||||||
|
|
||||||
backAdr rd 1 ;dd 0 ; àäðåñ äëÿ âîçâðàòà èç ïðîâåðêè ìûøè
|
backAdr rd 1 ;адрес для возврата из проверки мыши
|
||||||
|
|
||||||
;slotMax dd 0
|
;slotMax dd 0
|
||||||
;selfPID dd 0
|
;selfPID dd 0
|
||||||
@ -463,8 +641,8 @@ buf rb 1024
|
|||||||
|
|
||||||
;структурка данных для хранения параметров экрана
|
;структурка данных для хранения параметров экрана
|
||||||
screen:
|
screen:
|
||||||
.width rw 1 ;dw 0
|
.width rw 1
|
||||||
.height rw 1 ;dw 0
|
.height rw 1
|
||||||
|
|
||||||
state: rb 1 ;состояние: 0=unlock, 1=lock
|
state: rb 1 ;состояние: 0=unlock, 1=lock
|
||||||
mode: rb 1 ;режим работы приложения: 0=не работает, 1=классический, 2=по горячей клавише
|
mode: rb 1 ;режим работы приложения: 0=не работает, 1=классический, 2=по горячей клавише
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
Hot Angles
|
Hot Angles
|
||||||
|
|
||||||
Version 0.3.5: Oct 5, 2018
|
Version 0.3.6: Oct 9, 2018
|
||||||
RU
|
RU
|
||||||
|
|
||||||
Комплект утилит (аналог Hot Corners в других ОС) для расширения возможностей рабочего стола пользователя. Название выбрано путём голосования. В комплект входят две утилиты:
|
Комплект утилит (аналог Hot Corners в других ОС) для расширения возможностей рабочего стола пользователя. Название выбрано путём голосования. В комплект входят две утилиты:
|
||||||
@ -10,7 +10,9 @@ HACONFIG -
|
|||||||
1) состояние активности опции (один символ):
|
1) состояние активности опции (один символ):
|
||||||
1 или y - опция активна, активирован классический режим работы уголков,
|
1 или y - опция активна, активирован классический режим работы уголков,
|
||||||
2 - опция активна, активирован режим работы по горячей клавише,
|
2 - опция активна, активирован режим работы по горячей клавише,
|
||||||
n или любой другой символ - опция отключена;
|
3 - опция активна, активирован режим жеста при зажатой активационной клавише,
|
||||||
|
n или 0 - опция отключена,
|
||||||
|
любой другой символ - поведение по умолчанию (зависит от версии);
|
||||||
2) команда (полное имя приложения) для верхнего левого угла экрана;
|
2) команда (полное имя приложения) для верхнего левого угла экрана;
|
||||||
3) команда (полное имя приложения) для левого нижнего угла экрана;
|
3) команда (полное имя приложения) для левого нижнего угла экрана;
|
||||||
4) команда (полное имя приложения) для правого верхнего угла экрана;
|
4) команда (полное имя приложения) для правого верхнего угла экрана;
|
||||||
@ -33,11 +35,15 @@ MIN -
|
|||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
Текущая версия конфигуратора и утилиты работают стабильно только в классическом режиме.
|
Текущая версия конфигуратора и утилиты работают стабильно только в классическом режиме.
|
||||||
В классическом режиме угол активируется путём наведения курсора. Всё происходит автоматически. Вы наводите мышь в заданный угол рабочего стола, и запускается приложение, связанное с этим углом.
|
В классическом режиме угол активируется путём наведения курсора. Всё происходит автоматически. Вы наводите мышь в заданный угол рабочего стола, и запускается приложение, связанное с этим углом.
|
||||||
Этот режим активируется символом '1' или символом 'y' в начале конфигурационного файла.
|
Этот режим активируется символом '1' в начале конфигурационного файла.
|
||||||
|
|
||||||
Начиная с версии 0.3.5 утилита @HOTANGLES поддерживает второй режим работы - активацию углов по горячей клавише. Эта функциональность тестируется, поэтому настроить её через конфигуратор нельзя.
|
Начиная с версии 0.3.5 утилита @HOTANGLES поддерживает второй режим работы - активацию углов по горячей клавише. Эта функциональность тестируется, поэтому настроить её через конфигуратор нельзя.
|
||||||
Активируется режим символом '2' в начале конфигурационного файла. Изменить клавишу активации нельзя, по умолчанию это символ тильда '~' или '`'. В этом режиме для активации угла требуется зажать клавишу тильда и, одновременно с этим, навести курсор в нужный угол рабочего стола.
|
Активируется режим символом '2' в начале конфигурационного файла. Изменить клавишу активации нельзя, по умолчанию это символ тильда '~' или '`'. В этом режиме для активации угла требуется зажать клавишу тильда и, одновременно с этим, навести курсор в нужный угол рабочего стола.
|
||||||
|
|
||||||
|
Начиная с версии 0.3.6 поддерживается третий режим работы - активация жестом при зажатой активационной клавише. Этот режим находится в тестировании. Клавиша активации - тильда '~'. Изменить клавишу нельзя. В этом режиме для активации угла необходимо зажать клавишу тильда и сместить курсор на расстояние 10 пикселей в сторону нужного угла. Спорные направления (вертикально вверх или вниз и горизонтально влево или вправо) игнорируются. Режим предполагает использование из центра экрана, из угла эрана можно вызвать только противоположный ему по диагонали угол. Этот режим в файле конфигурации отмечается символом '3'.
|
||||||
|
|
||||||
|
'n' и '0' в начале конфигурационного файла отключают утилиту. Начиная с версии 0.3.6 в конфигураторе HACONFIG есть возможность выбрать любой из этих 4 режимов работы Hot Angles.
|
||||||
|
|
||||||
|
|
||||||
Прочие рекомендации:
|
Прочие рекомендации:
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
@ -65,8 +71,8 @@ http://websvn.kolibrios.org/dl.php?repname=Kolibri+OS&path=%2Fprograms%2Fother%2
|
|||||||
[+] знак минус не влияет на попытку запуска в конкретном углу;
|
[+] знак минус не влияет на попытку запуска в конкретном углу;
|
||||||
[+] пустое поле в конфигураторе и пустая строка в конфигурационном файле неверно обрабатываются;
|
[+] пустое поле в конфигураторе и пустая строка в конфигурационном файле неверно обрабатываются;
|
||||||
[-] повреждение файла конфигурации после многократного вкл./выкл. опции Hot Angles;
|
[-] повреждение файла конфигурации после многократного вкл./выкл. опции Hot Angles;
|
||||||
[-] режим явной команды клавишей активации: зажимаем горячую клавишу (например, shift), наводим курсор в угол - происходит реакция;
|
[+] режим явной команды клавишей активации: зажимаем горячую клавишу (например, shift), наводим курсор в угол - происходит реакция;
|
||||||
[-] режим жеста/направления: зажимаем активирующую клавишу, после этого приложение анализирует мышь, в зависимости от направления движения мыши (от начальных координат в момент активации опции) выбирается активируемый угол - происходит реакция;
|
[+] режим жеста/направления: зажимаем активирующую клавишу, после этого приложение анализирует мышь, в зависимости от направления движения мыши (от начальных координат в момент активации опции) выбирается активируемый угол - происходит реакция;
|
||||||
[+] добавить диалог выбора пути OpenDialog в конфигураторе;
|
[+] добавить диалог выбора пути OpenDialog в конфигураторе;
|
||||||
[+] переход на EditBox из библиотеки box_lib;
|
[+] переход на EditBox из библиотеки box_lib;
|
||||||
[+] размазывание текста или его наслоение при вводе в поле EditBox'а;
|
[+] размазывание текста или его наслоение при вводе в поле EditBox'а;
|
||||||
|
12
roadmap.txt
12
roadmap.txt
@ -25,11 +25,11 @@ Notations:
|
|||||||
[-] semblance of cron;
|
[-] semblance of cron;
|
||||||
[-] jabber xmpp-client;
|
[-] jabber xmpp-client;
|
||||||
[-] drive format utility (only for fully supported FS);
|
[-] drive format utility (only for fully supported FS);
|
||||||
[-] development and discussion of architecture Kolibri Machine Controller(KMC), semblance of LinuxCNC, based on MachineKit;
|
[+] development and discussion of architecture Kolibri Machine Controller(KMC), semblance of LinuxCNC, based on MachineKit;
|
||||||
[+] Apps: CNC Editor, Hot Angles, SysMon;
|
[+] Apps: CNC Editor, Hot Angles, SysMon;
|
||||||
[-] modify&improve apps: IconEdit, uPDF;
|
[-] modify&improve apps: IconEdit, uPDF;
|
||||||
[-] new app "Notes";
|
[+] new app "Notes";
|
||||||
[-] port / adapt one of the existing text editors with code highlighting;
|
[+] port / adapt one of the existing text editors with code highlighting;
|
||||||
[-] QR-code in boot log and QR-code utility;
|
[-] QR-code in boot log and QR-code utility;
|
||||||
[-] fixing a branch/tags in SVN.
|
[-] fixing a branch/tags in SVN.
|
||||||
|
|
||||||
@ -59,11 +59,11 @@ Notations:
|
|||||||
[-] приложение аналог cron;
|
[-] приложение аналог cron;
|
||||||
[-] jabber xmpp-клиент;
|
[-] jabber xmpp-клиент;
|
||||||
[-] утилита форматирования дисков (только для полностью поддерживаемых ФС);
|
[-] утилита форматирования дисков (только для полностью поддерживаемых ФС);
|
||||||
[-] ïðîðàáîòêà àðõèòåêòóðû Kolibri Machine Controller(KMC), àíàëîãà LinuxCNC, íà îñíîâå MachineKit;
|
[+] ïðîðàáîòêà àðõèòåêòóðû Kolibri Machine Controller(KMC), àíàëîãà LinuxCNC, íà îñíîâå MachineKit;
|
||||||
[+] приложения: CNC Editor, Hot Angles, SysMon;
|
[+] приложения: CNC Editor, Hot Angles, SysMon;
|
||||||
[-] доработать/улучшить приложения: IconEdit, uPDF;
|
[-] доработать/улучшить приложения: IconEdit, uPDF;
|
||||||
[-] ðàçðàáîòàòü íîâîå ïðèëîæåíèå "Notes";
|
[+] ðàçðàáîòàòü íîâîå ïðèëîæåíèå "Notes";
|
||||||
[-] ïîðòèðîâàòü îäèí èç ñóùåñòâóþùèõ òåêñòîâûõ ðåäàêòîðîâ ñ ïîäñâåòêîé êîäà;
|
[+] ïîðòèðîâàòü îäèí èç ñóùåñòâóþùèõ òåêñòîâûõ ðåäàêòîðîâ ñ ïîäñâåòêîé êîäà;
|
||||||
[-] QR-код в логе загрузки и утилита работы с QR-кодами;
|
[-] QR-код в логе загрузки и утилита работы с QR-кодами;
|
||||||
[-] фиксация ветви/тега в SVN (скорее tags, т.к. до этого ветви использовались для сборок под конкретные архитектуры, а теги как раз для фиксации версий).
|
[-] фиксация ветви/тега в SVN (скорее tags, т.к. до этого ветви использовались для сборок под конкретные архитектуры, а теги как раз для фиксации версий).
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user