TASK PANEL v2.2

1) Support PrintScreen for SCRSHOOT.
2) Path to run applications from the INI file.
3) Algorithm anti-duplication of applications for run with hotkey.
4) Added color selection for the Alt+Tab.
5) Alt+Ctrl+ArrowLeft - Page list next, Alt+Ctrl+ArrowRight - Page list previous

git-svn-id: svn://kolibrios.org@2630 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Marat Zakiyanov (Mario79) 2012-04-18 21:39:37 +00:00
parent 1e3b48239a
commit d6e0b2fc01
14 changed files with 355 additions and 121 deletions

View File

@ -28,3 +28,13 @@ CpuUsageBckgr=255,0,0
ChangeLang=0,128,255
PageList=255,255,255
Text=255,255,255
AltTab=255,128,0
[ApplicationsPaths]
End=/sys/END
Menu=/sys/@MENU
Run=/sys/RUN
PrnScr=/sys/SCRSHOOT
Clock=/sys/CALENDAR
CpuUsage=/sys/GMON
MouseEmul=/sys/MOUSEMUL

View File

@ -28,3 +28,13 @@ CpuUsageBckgr=255,0,0
ChangeLang=0,128,255
PageList=255,255,255
Text=255,255,255
AltTab=255,128,0
[ApplicationsPaths]
End=/sys/END
Menu=/sys/@MENU
Run=/sys/RUN
PrnScr=/sys/SCRSHOOT
Clock=/sys/CALENDAR
CpuUsage=/sys/GMON
MouseEmul=/sys/MOUSEMUL

View File

@ -28,3 +28,13 @@ CpuUsageBckgr=255,0,0
ChangeLang=0,128,255
PageList=255,255,255
Text=255,255,255
AltTab=255,128,0
[ApplicationsPaths]
End=/sys/END
Menu=/sys/@MENU
Run=/sys/RUN
PrnScr=/sys/SCRSHOOT
Clock=/sys/CALENDAR
CpuUsage=/sys/GMON
MouseEmul=/sys/MOUSEMUL

View File

@ -28,3 +28,13 @@ CpuUsageBckgr=255,0,0
ChangeLang=0,128,255
PageList=255,255,255
Text=255,255,255
AltTab=255,128,0
[ApplicationsPaths]
End=/sys/END
Menu=/sys/@MENU
Run=/sys/RUN
PrnScr=/sys/SCRSHOOT
Clock=/sys/CALENDAR
CpuUsage=/sys/GMON
MouseEmul=/sys/MOUSEMUL

View File

@ -4,6 +4,16 @@
; ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;------------------------------------------------------------------------------
; version: 2.2
; last update: 19/04/2012
; changed by: Marat Zakiyanov aka Mario79, aka Mario
; changes: Support PrintScreen for SCRSHOOT.
; Path to run applications from the INI file.
; Algorithm anti-duplication of applications for run with hotkey.
; Added color selection for the Alt+Tab.
; Alt+Ctrl+ArrowLeft - Page list next
; Alt+Ctrl+ArrowRight - Page list previous
;------------------------------------------------------------------------------
; version: 2.1
; last update: 18/04/2012
; changed by: Marat Zakiyanov aka Mario79, aka Mario
@ -147,11 +157,11 @@ end if
cmp al, 62 ; Alt+F4
jz kill_active_application
; cmp al, 71
; jz page_list_next
cmp al, 205
jz page_list_next
; cmp al, 72
; jz page_list_prev
cmp al, 203
jz page_list_prev
cmp al, 69 ; Alt+Shift+NumLock
jz start_mousemul_application
@ -161,6 +171,9 @@ end if
cmp al, 32 ; Win+D
jz minimize_all_windows
cmp al, 55 ; PrintScreen DOWN
jz start_PrintScreen_application
;--------------------------------------
align 4
prod:
@ -221,12 +234,30 @@ align 4
;------------------------------------------------------------------------------
align 4
start_end_application:
mov esi,end_name
call algorithm_anti_duplication
test eax,eax
jz @f
ret
;--------------------------------------
align 4
@@:
mov ebx, exec_fileinfo
mov dword [ebx+21],end_name
mcall 70
ret
;------------------------------------------------------------------------------
align 4
start_mousemul_application:
mov esi,mousemul_name
call algorithm_anti_duplication
test eax,eax
jz @f
ret
;--------------------------------------
align 4
@@:
mov ebx, exec_fileinfo
mov dword [ebx+21],mousemul_name
mcall 70
ret
@ -239,7 +270,6 @@ kill_active_application:
align 4
start_menu_application:
mov [draw_window_1], 1
call menu_handler
jmp begin_1.ret
;------------------------------------------------------------------------------
@ -252,12 +282,37 @@ start_run_application:
align 4
@@:
mov [start_menu_flag],1
mov [draw_window_1], 1
mov esi,run_name
call algorithm_anti_duplication
test eax,eax
jz @f
ret
;--------------------------------------
align 4
@@:
mov ebx, exec_fileinfo
mov dword [ebx+21], run_name
mcall 70
jmp begin_1.ret
;------------------------------------------------------------------------------
align 4
start_PrintScreen_application:
mov esi,printscreen_name
call algorithm_anti_duplication
test eax,eax
jz @f
ret
;--------------------------------------
align 4
@@:
mov ebx, exec_fileinfo
mov dword [ebx+21],printscreen_name
mov [ebx+8],dword bootparam_printscreen
mcall 70
jmp begin_1.ret
;------------------------------------------------------------------------------
align 4
minimize_all_windows:
cmp [win_key_flag],1
je @f
@ -269,25 +324,98 @@ align 4
call clean_desktop
ret
;------------------------------------------------------------------------------
;align 4
;page_list_next:
; cmp [page_list],15
; je @f
;
; inc [page_list]
; mov [draw_window_1],1
;@@:
; jmp begin_1.ret
align 4
algorithm_anti_duplication:
cld
;--------------------------------------
align 4
@@:
lodsb
test al,al
jnz @r
;--------------------------------------
align 4
@@:
std
lodsb
cmp al,'/'
jnz @r
add esi,2
mov edx,esi
mov edi,1
;--------------------------------------
align 4
@@:
inc edi
mov ecx,edi
mcall 9,procinfo_window_tabs
cmp edi,eax
jg .apply_changes
; mov eax,[ebx+10]
; and eax,not 20202020h
; cmp eax,'SCRS'
; jz @f
; mov eax,[ebx+14]
; and eax,not 20202020h
; cmp eax,'HOOT'
; jne @r
mov esi,edx
mov ecx,11
add ebx,9
cld
;--------------------------------------
align 4
.loop:
lodsb
inc ebx
cmp al,[ebx]
jne @r
loop .loop
mov eax,1
ret
;--------------------------------------
align 4
.apply_changes:
xor eax,eax
ret
;------------------------------------------------------------------------------
;align 4
;page_list_prev:
; cmp [page_list],0
; je @f
;
; dec [page_list]
; mov [draw_window_1],1
;@@:
; jmp begin_1.ret
align 4
page_list_next:
cmp [page_list],50
je @f
xor eax,eax
cmp [page_list_enable],eax
je @f
inc [page_list]
mov [redraw_window_flag],1
;--------------------------------------
align 4
@@:
jmp begin_1.ret
;------------------------------------------------------------------------------
align 4
page_list_prev:
xor eax,eax
cmp [page_list],eax
je @f
cmp [page_list_enable],eax
je @f
dec [page_list]
mov [redraw_window_flag],1
;--------------------------------------
align 4
@@:
jmp begin_1.ret
;------------------------------------------------------------------------------
align 4
alt_tab_pressed:
@ -419,7 +547,6 @@ align 4
xor edx, edx
div [max_applications]
mov [page_list], eax
mov [draw_window_1], 1
mov edi, app_list
push edi
mov ecx, 20
@ -478,6 +605,11 @@ load_libraries l_libs_start,end_l_libs
mcall 66,4,0,2 ; LShift+RShift
mcall 66,,,11h ; Ctrl+Shift
mcall 66,,88,110h ; Alt+Ctrl+F12
; mcall 66,,75 ; Alt+Ctrl+ArrowLeft DOWN
mcall 66,,203 ; Alt+Ctrl+ArrowLeft UP
; mcall 66,,77 ; Alt+Ctrl+ArrowRight DOWN
mcall 66,,205 ; Alt+Ctrl+ArrowRight UP
mcall 66,,91,0h ; RWin DOWN
mcall 66,,92 ; LWin DOWN
mcall 66,,219 ; RWin UP
@ -491,13 +623,15 @@ load_libraries l_libs_start,end_l_libs
mcall 66,,32,0h ; Win+D DOWN
; mcall 66,,160,0h ; Win+D UP
mcall 66,,55,0h ; PrintScreen DOWN
; mcall 66,,183,0h ; PrintScreen UP
; mcall 66,,91,100h ; Alt+LWin
; mcall 66,,92 ; Alt+RWin
mcall 66,,62,100h ; Alt+F4
; mcall 66,,71 ; Alt+Home
; mcall 66,,72 ; Alt+Up
mcall 66,,15 ; Alt+Tab
mcall 66,,2 ; Alt+1
mcall 66,,3 ; Alt+2
mcall 66,,4 ; Alt+3
@ -505,7 +639,8 @@ load_libraries l_libs_start,end_l_libs
mcall 66,,6 ; Alt+5
mcall 66,,7 ; Alt+6
mcall 66,,8 ; Alt+7
mcall 66,,,101h ; Alt+Shift+Tab
mcall 66,,15 ; Alt+Tab DOWN
mcall 66,,15,101h ; Alt+Shift+Tab DOWN
mcall 66,,69 ; Alt+Shift+NumLock
if caps_lock_check
@ -593,7 +728,10 @@ align 4
mcall 18,7
cmp [my_active_slot],eax
je @f
mov [current_active_slot],eax
;--------------------------------------
align 4
@@:
pop eax
@ -604,7 +742,10 @@ align 4
mov eax,[redraw_window_flag]
test eax,eax
jz @f
call draw_window
;--------------------------------------
align 4
@@:
pop eax
@ -612,11 +753,15 @@ align 4
jnz @f
call handle_key
jmp .key
;--------------------------------------
align 4
@@:
cmp eax,3 ; button ?
jz button
; call handle_key
;--------------------------------------
align 4
.key:
cmp dword [active_window_changed], 0
jnz red_active
@ -639,7 +784,10 @@ red:
rol eax,16
cmp [screen_size.width],ax
je .lp1
rol eax,16
;--------------------------------------
align 4
@@:
mov [screen_size],eax
sub ecx,[height]
@ -678,6 +826,8 @@ button:
cmp ecx,[current_active_slot]
je .turn_off
;--------------------------------------
align 4
@@:
mcall 18,3,
jmp .task_switching
@ -686,6 +836,8 @@ align 4
.turn_off:
mov edx,ecx
mcall 18,22,0
;--------------------------------------
align 4
.task_switching:
mcall 68,1
jmp still
@ -747,11 +899,7 @@ no_activate:
;--------------------------------------
align 4
clean_desktop_1:
call clean_desktop
jmp still
;--------------------------------------
align 4
@ -760,6 +908,12 @@ noselect:
cmp ah,byte 2 ; start calendar
jnz noid15 ;noclock
mov esi,calendar_name
call algorithm_anti_duplication
test eax,eax
jnz still
mov ebx, exec_fileinfo
mov dword [ebx+21], calendar_name
mcall 70
jmp still
@ -791,6 +945,12 @@ noid16:
cmp ah,18
jne noid18
mov esi,sysmeter_name
call algorithm_anti_duplication
test eax,eax
jnz still
mov ebx, exec_fileinfo
mov dword [ebx+21], sysmeter_name
mcall 70
jmp still
@ -819,7 +979,7 @@ noid18:
cmp ah,21
jnz noid21
cmp [page_list], 99
cmp [page_list],50
jnc still
inc [page_list]
jmp red
@ -923,6 +1083,8 @@ align 4
cmp [clean_desktop_minimize],1
je @f
call restore_desktop
;--------------------------------------
align 4
@@:
ret
; jmp still
@ -1115,21 +1277,6 @@ no_full:
call menu_handler
jmp small_wait
;------------------------------------------------------------------------------
;align 4
;set_variables:
; pusha
; mov [button_frames],0x0
; cmp [buttons],0
; jne no_frames
; mov [button_frames],0x40000000
;--------------------------------------
;align 4
;no_frames:
; mcall 48,1,1 ; 3d button look
; popa
; ret
;------------------------------------------------------------------------------
include 'libini.inc'
;------------------------------------------------------------------------------
include 'dll.inc'

View File

@ -100,7 +100,7 @@ draw_ctx_menu:
add ecx, 60 ; 41
mov esi, [system_colours + 4] ; sc.grab
or esi, 0x81000000
mcall ,,,[system_colours + 20],[system_colours]
mcall ,,,[system_colours + 20],,[system_colours]
mcall 8,<0,133>,<22,17>,0x40000001

View File

@ -144,8 +144,6 @@ align 4
shl ebx,16
add ebx,TAB_SIZE-2 ;54
call calculate_button_y_coordinate_and_size
push edi
mov edx,[system_colours.work_button]
xor edi,edi
@ -165,10 +163,12 @@ align 4
cmp ecx,[alt_tab_list+esi*8]
jnz @f
mov edx,0xFF8000 ; current select for ALT+Tab
mov edx,[AltTab_color] ;0xFF8000 ; current select for ALT+Tab
;--------------------------------------
align 4
@@:
call calculate_button_y_coordinate_and_size
mov esi,[wcolor]
call draw_appl_button
pop edi

View File

@ -128,19 +128,28 @@ subtract_color_change_magnitude:
; edx = processed color
sub dl,al
jae @f
xor dl,dl
;--------------------------------------
align 4
@@:
ror edx,8
ror eax,8
sub dl,al
jae @f
xor dl,dl
;--------------------------------------
align 4
@@:
ror edx,8
ror eax,8
sub dl,al
jae @f
xor dl,dl
;--------------------------------------
align 4
@@:
rol edx,16
ret
@ -154,23 +163,33 @@ add_color_change_magnitude:
; edx = processed color
add dl,al
jae @f
mov dl,0xff
;--------------------------------------
align 4
@@:
ror edx,8
ror eax,8
add dl,al
jae @f
mov dl,0xff
;--------------------------------------
align 4
@@:
ror edx,8
ror eax,8
add dl,al
jae @f
mov dl,0xff
;--------------------------------------
align 4
@@:
rol edx,16
ret
;------------------------------------------------------------------------------
align 4
calculate_button_y_coordinate_and_size:
mov ecx,[button_top_offset]
shl ecx,16
@ -178,3 +197,4 @@ calculate_button_y_coordinate_and_size:
sub ecx,[button_top_offset]
sub ecx,[button_bottom_offset]
ret
;------------------------------------------------------------------------------

View File

@ -2,8 +2,6 @@
align 4
draw_tray: ; draw cpu usage, time, date etc.
pusha
; cmp [tray_enable],dword 1
; jne no_setup
call draw_tray_buttons
call draw_time_skin
@ -13,9 +11,7 @@ draw_tray: ; draw cpu usage, time, date etc.
call draw_flag ; language
call draw_list_button
;--------------------------------------
;align 4
;no_setup:
popa
ret
;------------------------------------------------------------------------------
@ -97,6 +93,7 @@ align 4
@@:
ret
;------------------------------------------------------------------------------
align 4
draw_time_skin:
cmp [clock_enable],dword 0
je .exit
@ -113,6 +110,7 @@ align 4
.exit:
ret
;------------------------------------------------------------------------------
align 4
draw_time:
cmp [clock_enable],dword 0
je .exit
@ -268,6 +266,8 @@ draw_list_button:
mov edx,ebx
add edx,9 shl 16
mcall 47,0x20000,[page_list],,[system_colours.work_button_text]
;--------------------------------------
align 4
.exit:
ret
;------------------------------------------------------------------------------
@ -330,6 +330,8 @@ align 4
mcall 13,,,[CpuUsage_color] ;0x44aa44
popad
;--------------------------------------
align 4
.exit:
ret
;------------------------------------------------------------------------------
@ -405,6 +407,8 @@ end if
mcall 4,,,,2
popa
mov [draw_flag_certainly],0
;--------------------------------------
align 4
.exit:
ret
;------------------------------------------------------------------------------

View File

@ -116,6 +116,8 @@ no_su:
mov eax,COLOR_CHANGE_MAGNITUDE_0
imul eax,dword [soften_height]
call subtract_color_change_magnitude
;--------------------------------------
align 4
@@:
mov eax,COLOR_CHANGE_MAGNITUDE_0
call add_color_change_magnitude
@ -348,14 +350,6 @@ draw_application_buttons:
shr eax,16
sub eax,[offset_X]
; check for tray enabled
; cmp [tray_enable],dword 0
; je @f
; sub eax, TRAY_SIZE
;--------------------------------------
;align 4
;@@:
; check for left minimize button enabled
cmp [minimize_right],dword 0
je @f

View File

@ -54,7 +54,6 @@ current_alt_tab_app dd -1
page_list dd 0
draw_start_position dd 0
draw_window_1 db 0
;b_size_y: dd 0x0
ysi dd 0
@ -96,37 +95,9 @@ exec_fileinfo:
db 0
.name dd 0
end_name db '/sys/END',0
menu_name db '/sys/@MENU',0
run_name db '/sys/RUN',0
calendar_name db '/sys/CALENDAR',0
sysmeter_name db '/sys/GMON',0
mousemul_name db '/sys/MOUSEMUL',0
bootparam_printscreen db 'DIRECT',0
;dat_fileinfo:
; dd 0
; dd 0
; dd 0
; dd 1024
; dd panel_ini_data_area ;I_END
; db '/sys/PANEL.DAT',0
;m_bmp_fileinfo:
; dd 0
; dd 0
; dd 0
; dd 8192
; dd image
; db '/sys/MENUET.BMP',0
;iconf_fileinfo:
; dd 0
; dd 0
; dd 0
; dd 8192
; dd image
; db '/sys/'
;iconf db 'MBAR_IX.BMP',0
Path_def_val db 'NONE',0
this_slot dd 0 ; Slot of this process
max_slot dd 255
@ -179,6 +150,7 @@ CpuUsageBckgr_color dd 0xdd2222 ; Red
ChangeLang_color dd 0x66cc ; Blue
PageList_color dd 0xffffff ; White
PanelText_color dd 0xffffff ; White
AltTab_color dd 0xff8000 ; Orange
;------------------------------------------------------------------------------
aVariables db 'Variables',0
aPanelHeight db 'PanelHeight',0
@ -205,6 +177,14 @@ aButtonsStyle db 'ButtonsStyle',0
aColors db 'Colors',0
aCpuUsageBckgr db 'CpuUsageBckgr',0
aPanelText db 'Text',0
aAltTab db 'AltTab',0
;------------------------------------------------------------------------------
aApplicationsPaths db 'ApplicationsPaths',0
aEnd db 'End',0
aMenu db 'Menu',0
aRun db 'Run',0
aPrnScr db 'PrnScr',0
aMouseEmul db 'MouseEmul',0
;------------------------------------------------------------------------------
plugins_directory db 0

View File

@ -183,33 +183,48 @@ Get_ini:
invoke ini_get_color,library_path,aColors,aPanelText,0xffffff
mov [PanelText_color],eax
;--------------------------------------
; invoke ini_get_str,library_path,aConvertPlugins,aCP0,plugin_0_name,127,ConvertPlugins_no_key
invoke ini_get_color,library_path,aColors,aAltTab,0xff8000
mov [AltTab_color],eax
;--------------------------------------
invoke ini_get_str,library_path,aApplicationsPaths,aEnd,end_name,63,Path_def_val
;--------------------------------------
invoke ini_get_str,library_path,aApplicationsPaths,aMenu,menu_name,63,Path_def_val
;--------------------------------------
invoke ini_get_str,library_path,aApplicationsPaths,aRun,run_name,63,Path_def_val
;--------------------------------------
invoke ini_get_str,library_path,aApplicationsPaths,aPrnScr,printscreen_name,63,Path_def_val
;--------------------------------------
invoke ini_get_str,library_path,aApplicationsPaths,aClock,calendar_name,63,Path_def_val
;--------------------------------------
invoke ini_get_str,library_path,aApplicationsPaths,aCpuUsage,sysmeter_name,63,Path_def_val
;--------------------------------------
invoke ini_get_str,library_path,aApplicationsPaths,aMouseEmul,mousemul_name,63,Path_def_val
ret
;-----------------------------------------------------------------------------
copy_file_path:
xor eax,eax
xor eax,eax
@@:
cld
lodsb
stosb
test eax,eax
jnz @b
mov esi,edi
dec esi
cld
lodsb
stosb
test eax,eax
jnz @b
mov esi,edi
dec esi
@@:
std
lodsb
cmp al,'/'
jnz @b
mov edi,esi
add edi,2
mov esi,ebx
std
lodsb
cmp al,'/'
jnz @b
mov edi,esi
add edi,2
mov esi,ebx
@@:
cld
lodsb
stosb
test eax,eax
jnz @b
ret
cld
lodsb
stosb
test eax,eax
jnz @b
ret
;-----------------------------------------------------------------------------

View File

@ -28,3 +28,13 @@ CpuUsageBckgr=255,0,0
ChangeLang=0,128,255
PageList=255,255,255
Text=255,255,255
AltTab=255,128,0
[ApplicationsPaths]
End=/sys/END
Menu=/sys/@MENU
Run=/sys/RUN
PrnScr=/sys/SCRSHOOT
Clock=/sys/CALENDAR
CpuUsage=/sys/GMON
MouseEmul=/sys/MOUSEMUL

View File

@ -68,9 +68,33 @@ align 4
tictable:
rd 256
;------------------------------------------------------------------------------
;align 4
;panel_ini_data_area:
; rb 61
align 4
end_name:
rb 64
;------------------------------------------------------------------------------
align 4
menu_name:
rb 64
;------------------------------------------------------------------------------
align 4
run_name:
rb 64
;------------------------------------------------------------------------------
align 4
printscreen_name:
rb 64
;------------------------------------------------------------------------------
align 4
calendar_name:
rb 64
;------------------------------------------------------------------------------
align 4
sysmeter_name:
rb 64
;------------------------------------------------------------------------------
align 4
mousemul_name:
rb 64
;------------------------------------------------------------------------------
align 4
rb 256