4,6 → 4,12 |
; ; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;------------------------------------------------------------------------------ |
; version: 2.24 |
; last update: 16/06/2013 |
; changed by: hidnplayr |
; changes: Changed keymap hotkeys to only use left alt |
; (Right alt has special function on some keyboards) |
;------------------------------------------------------------------------------ |
; version: 2.23 |
; last update: 26/04/2012 |
; changed by: Marat Zakiyanov aka Mario79, aka Mario |
51,24 → 57,24 |
;------------------------------------------------------------------------------ |
format binary as "" |
|
use32 |
org 0x0 |
db 'MENUET01' ; 8 byte id |
dd 0x01 ; header version |
dd START ; program start |
dd IM_END ; program image size |
dd I_END ; reguired amount of memory - 10 Kb |
dd stack_top ; esp |
dd 0x0 ; boot parameters |
dd path ; application pach |
use32 |
org 0x0 |
db 'MENUET01' ; 8 byte id |
dd 0x01 ; header version |
dd START ; program start |
dd IM_END ; program image size |
dd I_END ; reguired amount of memory - 10 Kb |
dd stack_top ; esp |
dd 0x0 ; boot parameters |
dd path ; application pach |
;------------------------------------------------------------------------------ |
include 'lang.inc' |
include '../../../macros.inc' |
include '../../../proc32.inc' |
;include '../../../debug.inc' |
include 'MOI.INC' ;à ᪫ ¤ª¨ ª« ¢¨ âãàë |
include 'MOI.INC' ;à ᪫ ¤ª¨ ª« ¢¨ âãàë |
include '../../../develop/libraries/box_lib/load_lib.mac' |
@use_library ;use load lib macros |
@use_library ;use load lib macros |
;------------------------------------------------------------------------------ |
caps_lock_check fix 1 |
;------------------------------------------------------------------------------ |
78,7 → 84,7 |
MR_SIZE = 10 |
MENU_SIZE = 50 |
CLD_SIZE = 20 |
TAB_SIZE = 75 ;60 |
TAB_SIZE = 75 ;60 |
TRAY_SIZE = 140 |
|
CLOCK_SIZE = 40 |
88,124 → 94,124 |
;------------------------------------------------------------------------------ |
align 4 |
handle_key: |
mcall 18,7 |
mov [active_process],eax |
mcall 18,7 |
mov [active_process],eax |
|
mcall 2 |
|
mcall 2 |
|
; dps "panel key: " |
; dph eax |
; newline |
|
cmp al, 2 |
jnz begin_1.ret |
cmp al, 2 |
jnz begin_1.ret |
|
mov ebx, exec_fileinfo |
shr eax, 8 |
cmp al, 0 |
je prod |
mov ebx, exec_fileinfo |
shr eax, 8 |
cmp al, 0 |
je prod |
|
mov [key_r],al |
sub [key_r],2 |
cmp al, 2 |
jz alter |
mov [key_r],al |
sub [key_r],2 |
cmp al, 2 |
jz alter |
|
cmp al, 3 |
jz alter |
cmp al, 3 |
jz alter |
|
cmp al, 4 |
jz alter |
cmp al, 4 |
jz alter |
|
cmp al, 5 |
jz alter |
cmp al, 5 |
jz alter |
|
cmp al, 6 |
jz alter |
cmp al, 6 |
jz alter |
|
cmp al, 7 |
jz alter |
cmp al, 7 |
jz alter |
|
cmp al, 8 |
jz alter |
cmp al, 8 |
jz alter |
;-------------------------------------- |
;align 4 |
;prod: |
if caps_lock_check |
cmp al,58 ;CAPS LOCK DOWN |
jne @f |
cmp al,58 ;CAPS LOCK DOWN |
jne @f |
|
pusha |
mcall 26,2,9 |
mov ebx,eax |
mov eax,2 |
pusha |
mcall 26,2,9 |
mov ebx,eax |
mov eax,2 |
; call draw_window ;;;??? |
mov [draw_flag_certainly],1 |
call draw_flag ; language |
popa |
ret |
mov [draw_flag_certainly],1 |
call draw_flag ; language |
popa |
ret |
@@: |
end if |
cmp al, 15 ; Alt+Tab DOWN |
jz alt_tab_pressed |
cmp al, 15 ; Alt+Tab DOWN |
jz alt_tab_pressed |
|
cmp al, 88 ; Ctrl+Alt+F12 |
jz start_end_application |
cmp al, 88 ; Ctrl+Alt+F12 |
jz start_end_application |
|
|
|
cmp al, 91 ; RWin DOWN |
jz set_win_key_flag |
|
|
cmp al, 91 ; RWin DOWN |
jz set_win_key_flag |
|
cmp al, 92 ; LWin DOWN |
jz set_win_key_flag |
|
|
cmp al, 219 ; RWin UP |
jz cut_win_key_flag ;start_menu_application |
cmp al, 92 ; LWin DOWN |
jz set_win_key_flag |
|
|
cmp al, 219 ; RWin UP |
jz cut_win_key_flag ;start_menu_application |
|
cmp al, 220 ; LWin UP |
jz cut_win_key_flag ;start_menu_application |
|
cmp al, 220 ; LWin UP |
jz cut_win_key_flag ;start_menu_application |
|
|
cmp al, 62 ; Alt+F4 |
jz kill_active_application |
cmp al, 62 ; Alt+F4 |
jz kill_active_application |
|
cmp al, 205 |
jz page_list_next |
cmp al, 205 |
jz page_list_next |
|
cmp al, 203 |
jz page_list_prev |
cmp al, 203 |
jz page_list_prev |
|
cmp al, 69 ; Alt+Shift+NumLock |
jz start_mousemul_application |
|
cmp al, 19 ; Win+R |
jz start_run_application |
cmp al, 69 ; Alt+Shift+NumLock |
jz start_mousemul_application |
|
cmp al, 19 ; Win+R |
jz start_run_application |
|
cmp al, 32 ; Win+D |
jz minimize_all_windows |
|
cmp al, 55 ; PrintScreen DOWN |
jz start_PrintScreen_application |
cmp al, 32 ; Win+D |
jz minimize_all_windows |
|
cmp al, 55 ; PrintScreen DOWN |
jz start_PrintScreen_application |
;-------------------------------------- |
align 4 |
prod: |
; cmp eax,0x20000 |
; je start_menu_application |
|
|
; cmp eax,0x40000 |
; je start_menu_application |
|
cmp [current_alt_tab_app], -1 |
jz @f |
cmp [current_alt_tab_app], -1 |
jz @f |
|
test ah, 0x30 ; Alt+Tab UP |
jz alt_tab_released |
test ah, 0x30 ; Alt+Tab UP |
jz alt_tab_released |
;-------------------------------------- |
align 4 |
@@: |
; this is hotkey Ctrl+Shift ;or LShift+RShift |
jmp karu |
jmp karu |
; mov ebx, setup_exec |
; test ah, 001100b |
; jz change_sys_lang |
212,32 → 218,32 |
;------------------------------------------------------------------------------ |
align 4 |
set_win_key_flag: |
mov [win_key_flag],1 |
ret |
mov [win_key_flag],1 |
ret |
;------------------------------------------------------------------------------ |
align 4 |
cut_win_key_flag: |
xor eax,eax |
mov [win_key_flag],al |
xchg [start_menu_flag],al |
test al,al |
jz start_menu_application |
ret |
xor eax,eax |
mov [win_key_flag],al |
xchg [start_menu_flag],al |
test al,al |
jz start_menu_application |
ret |
;------------------------------------------------------------------------------ |
align 4 |
change_key_lang: |
mov dword [ebx+8], chlang |
mcall 70 |
mov dword [ebx+8], chlang |
mcall 70 |
;-------------------------------------- |
align 4 |
begin_1: |
mov ecx,[active_process] |
mcall 18, 3 |
mcall 5, 25 |
mov ecx,[active_process] |
mcall 18, 3 |
mcall 5, 25 |
;-------------------------------------- |
align 4 |
.ret: |
ret |
ret |
;------------------------------------------------------------------------------ |
;align 4 |
;change_sys_lang: |
247,660 → 253,660 |
;------------------------------------------------------------------------------ |
align 4 |
start_end_application: |
mov esi,end_name |
call algorithm_anti_duplication |
test eax,eax |
jz @f |
mov esi,end_name |
call algorithm_anti_duplication |
test eax,eax |
jz @f |
|
mcall 18,3,edi |
ret |
mcall 18,3,edi |
ret |
;-------------------------------------- |
align 4 |
@@: |
mov ebx, exec_fileinfo |
mov dword [ebx+21],end_name |
mcall 70 |
ret |
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 |
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 |
mov ebx, exec_fileinfo |
mov dword [ebx+21],mousemul_name |
mcall 70 |
ret |
;------------------------------------------------------------------------------ |
align 4 |
kill_active_application: |
mcall 72,1,3,1 |
jmp begin_1.ret |
mcall 72,1,3,1 |
jmp begin_1.ret |
;------------------------------------------------------------------------------ |
|
align 4 |
start_menu_application: |
call menu_handler |
jmp begin_1.ret |
call menu_handler |
jmp begin_1.ret |
;------------------------------------------------------------------------------ |
align 4 |
start_run_application: |
cmp [win_key_flag],1 |
je @f |
ret |
cmp [win_key_flag],1 |
je @f |
ret |
;-------------------------------------- |
align 4 |
@@: |
mov [start_menu_flag],1 |
|
mov esi,run_name |
call algorithm_anti_duplication |
test eax,eax |
jz @f |
mov [start_menu_flag],1 |
|
mov esi,run_name |
call algorithm_anti_duplication |
test eax,eax |
jz @f |
|
mcall 18,3,edi |
ret |
mcall 18,3,edi |
ret |
;-------------------------------------- |
align 4 |
@@: |
mov ebx, exec_fileinfo |
mov dword [ebx+21], run_name |
mcall 70 |
jmp begin_1.ret |
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 |
mcall 18,3,edi |
ret |
mov esi,printscreen_name |
call algorithm_anti_duplication |
test eax,eax |
jz @f |
mcall 18,3,edi |
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 |
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 |
ret |
cmp [win_key_flag],1 |
je @f |
ret |
;-------------------------------------- |
align 4 |
@@: |
mov [start_menu_flag],1 |
call clean_desktop |
ret |
mov [start_menu_flag],1 |
call clean_desktop |
ret |
;------------------------------------------------------------------------------ |
align 4 |
algorithm_anti_duplication: |
cld |
cld |
;-------------------------------------- |
align 4 |
@@: |
lodsb |
test al,al |
jnz @r |
lodsb |
test al,al |
jnz @r |
;-------------------------------------- |
align 4 |
@@: |
std |
lodsb |
cmp al,'/' |
jnz @r |
add esi,2 |
mov edx,esi |
|
mov edi,1 |
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 |
inc edi |
mov ecx,edi |
mcall 9,procinfo_window_tabs |
|
cmp edi,eax |
jg .apply_changes |
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 |
mov esi,edx |
mov ecx,11 |
add ebx,9 |
cld |
;-------------------------------------- |
align 4 |
.loop: |
lodsb |
inc ebx |
cmp al,[ebx] |
jne @r |
lodsb |
inc ebx |
cmp al,[ebx] |
jne @r |
|
loop .loop |
loop .loop |
|
mov eax,1 |
ret |
mov eax,1 |
ret |
;-------------------------------------- |
align 4 |
.apply_changes: |
xor eax,eax |
ret |
xor eax,eax |
ret |
;------------------------------------------------------------------------------ |
align 4 |
page_list_next: |
cmp [page_list],50 |
je @f |
cmp [page_list],50 |
je @f |
|
xor eax,eax |
cmp [page_list_enable],eax |
je @f |
xor eax,eax |
cmp [page_list_enable],eax |
je @f |
|
inc [page_list] |
mov [redraw_window_flag],1 |
inc [page_list] |
mov [redraw_window_flag],1 |
;-------------------------------------- |
align 4 |
@@: |
jmp begin_1.ret |
jmp begin_1.ret |
;------------------------------------------------------------------------------ |
align 4 |
page_list_prev: |
xor eax,eax |
cmp [page_list],eax |
je @f |
xor eax,eax |
cmp [page_list],eax |
je @f |
|
cmp [page_list_enable],eax |
je @f |
cmp [page_list_enable],eax |
je @f |
|
dec [page_list] |
mov [redraw_window_flag],1 |
dec [page_list] |
mov [redraw_window_flag],1 |
;-------------------------------------- |
align 4 |
@@: |
jmp begin_1.ret |
jmp begin_1.ret |
;------------------------------------------------------------------------------ |
align 4 |
alt_tab_pressed: |
; handle Alt+Tab and Alt+Shift+Tab |
mov ebp, eax |
cmp [current_alt_tab_app], -1 |
jnz has_alt_tab_app |
mov ebp, eax |
cmp [current_alt_tab_app], -1 |
jnz has_alt_tab_app |
; § ¯®«ï¥¬ â ¡«¨æ㠯ਫ®¦¥¨©, ¯®¤«¥¦ é¨å ¯¥à¥ª«î票î |
xor edx, edx |
mov ebx, procinfo_window_tabs |
mov ecx, 1 |
xor edx, edx |
mov ebx, procinfo_window_tabs |
mov ecx, 1 |
;-------------------------------------- |
align 4 |
.fill: |
inc ecx |
mcall 9 |
call need_window_tab |
jz @f |
inc ecx |
mcall 9 |
call need_window_tab |
jz @f |
|
cmp edx, 256 |
jz @f |
cmp edx, 256 |
jz @f |
|
mov [alt_tab_list+edx*8], ecx |
movzx esi, word [ebx+4] |
mov [alt_tab_list+edx*8+4], esi |
inc edx |
mov [alt_tab_list+edx*8], ecx |
movzx esi, word [ebx+4] |
mov [alt_tab_list+edx*8+4], esi |
inc edx |
;-------------------------------------- |
align 4 |
@@: |
cmp ecx,eax |
jb .fill |
cmp ecx,eax |
jb .fill |
|
mov [alt_tab_list_size], edx |
test edx, edx |
jz begin_1.ret |
mov [alt_tab_list_size], edx |
test edx, edx |
jz begin_1.ret |
|
mcall 66,4,0,0 ; «®¢¨¬ ¬®¬¥â ®â¯ã᪠¨ï ¢á¥å ã¯à ¢«ïîé¨å ª« ¢¨è |
test eax, eax |
jnz begin_1.ret |
mcall 66,4,0,0 ; «®¢¨¬ ¬®¬¥â ®â¯ã᪠¨ï ¢á¥å ã¯à ¢«ïîé¨å ª« ¢¨è |
test eax, eax |
jnz begin_1.ret |
|
xor edx, edx |
mov eax, [alt_tab_list+4] |
xor ecx, ecx |
inc ecx |
xor edx, edx |
mov eax, [alt_tab_list+4] |
xor ecx, ecx |
inc ecx |
;-------------------------------------- |
align 4 |
.findmax: |
cmp [alt_tab_list+ecx*8+4], eax |
jb @f |
cmp [alt_tab_list+ecx*8+4], eax |
jb @f |
|
mov edx, ecx |
mov eax, [alt_tab_list+ecx*8+4] |
mov edx, ecx |
mov eax, [alt_tab_list+ecx*8+4] |
;-------------------------------------- |
align 4 |
@@: |
inc ecx |
cmp ecx, [alt_tab_list_size] |
jb .findmax |
inc ecx |
cmp ecx, [alt_tab_list_size] |
jb .findmax |
|
mov [current_alt_tab_app], edx |
mov [current_alt_tab_app], edx |
;-------------------------------------- |
align 4 |
has_alt_tab_app: |
mov eax, [current_alt_tab_app] |
mov edx, [alt_tab_list+eax*8+4] ; slot |
xor ecx, ecx |
or eax, -1 |
test ebp, 300h |
jz .notshift |
mov eax, [current_alt_tab_app] |
mov edx, [alt_tab_list+eax*8+4] ; slot |
xor ecx, ecx |
or eax, -1 |
test ebp, 300h |
jz .notshift |
|
or esi, -1 |
or esi, -1 |
;-------------------------------------- |
align 4 |
.loop1: |
cmp [alt_tab_list+ecx*8+4], edx |
jbe @f |
cmp [alt_tab_list+ecx*8+4], edx |
jbe @f |
|
cmp [alt_tab_list+ecx*8+4], esi |
jae @f |
cmp [alt_tab_list+ecx*8+4], esi |
jae @f |
|
mov eax, ecx |
mov esi, [alt_tab_list+ecx*8+4] |
mov eax, ecx |
mov esi, [alt_tab_list+ecx*8+4] |
;-------------------------------------- |
align 4 |
@@: |
inc ecx |
cmp ecx, [alt_tab_list_size] |
jb .loop1 |
inc ecx |
cmp ecx, [alt_tab_list_size] |
jb .loop1 |
|
cmp eax, -1 |
jnz .found |
cmp eax, -1 |
jnz .found |
|
xor edx, edx |
xor ecx, ecx |
jmp .loop1 |
xor edx, edx |
xor ecx, ecx |
jmp .loop1 |
;-------------------------------------- |
align 4 |
.notshift: |
xor esi, esi |
xor esi, esi |
;-------------------------------------- |
align 4 |
.loop2: |
cmp [alt_tab_list+ecx*8+4], edx |
jae @f |
cmp [alt_tab_list+ecx*8+4], edx |
jae @f |
|
cmp [alt_tab_list+ecx*8+4], esi |
jbe @f |
cmp [alt_tab_list+ecx*8+4], esi |
jbe @f |
|
mov eax, ecx |
mov esi, [alt_tab_list+ecx*8+4] |
mov eax, ecx |
mov esi, [alt_tab_list+ecx*8+4] |
;-------------------------------------- |
align 4 |
@@: |
inc ecx |
cmp ecx, [alt_tab_list_size] |
jb .loop2 |
inc ecx |
cmp ecx, [alt_tab_list_size] |
jb .loop2 |
|
cmp eax, -1 |
jnz .found |
cmp eax, -1 |
jnz .found |
|
or edx, -1 |
xor ecx, ecx |
jmp .loop2 |
or edx, -1 |
xor ecx, ecx |
jmp .loop2 |
;-------------------------------------- |
align 4 |
.found: |
mov [current_alt_tab_app], eax |
push eax |
xor edx, edx |
div [max_applications] |
mov [page_list], eax |
mov edi, app_list |
push edi |
mov ecx, 20 |
or eax, -1 |
rep stosd |
pop edi |
pop ecx |
sub ecx, edx |
mov [current_alt_tab_app], eax |
push eax |
xor edx, edx |
div [max_applications] |
mov [page_list], eax |
mov edi, app_list |
push edi |
mov ecx, 20 |
or eax, -1 |
rep stosd |
pop edi |
pop ecx |
sub ecx, edx |
;-------------------------------------- |
align 4 |
@@: |
cmp ecx, [alt_tab_list_size] |
jae redraw_window_tabs |
cmp ecx, [alt_tab_list_size] |
jae redraw_window_tabs |
|
mov eax, [alt_tab_list+ecx*8] |
stosd |
inc ecx |
jmp @b |
mov eax, [alt_tab_list+ecx*8] |
stosd |
inc ecx |
jmp @b |
;-------------------------------------- |
align 4 |
alt_tab_released: |
mcall 66,5,0,0 ; 㦥 ¯®©¬ «¨, å¢ â¨â :) |
mcall 66,5,0,0 ; 㦥 ¯®©¬ «¨, å¢ â¨â :) |
|
or eax, -1 |
xchg eax, [current_alt_tab_app] |
mov ecx, [alt_tab_list+eax*8] |
mcall 18,3 |
or eax, -1 |
xchg eax, [current_alt_tab_app] |
mov ecx, [alt_tab_list+eax*8] |
mcall 18,3 |
|
jmp redraw_window_tabs |
jmp redraw_window_tabs |
;------------------------------------------------------------------------------ |
align 4 |
active_process dd 0 |
active_process dd 0 |
|
exit: |
mcall -1 |
mcall -1 |
;------------------------------------------------------------------------------ |
START: |
mcall 68,11 |
mcall 66,1,1 |
|
mcall 9,process_info_buffer,-1 |
mov ecx,[ebx+30] ; PID |
mcall 18,21 |
mov [my_active_slot],eax ; WINDOW SLOT |
|
|
mcall 68,11 |
mcall 66,1,1 |
|
mcall 9,process_info_buffer,-1 |
mov ecx,[ebx+30] ; PID |
mcall 18,21 |
mov [my_active_slot],eax ; WINDOW SLOT |
|
|
load_libraries l_libs_start,end_l_libs |
|
test eax,eax |
jnz exit |
test eax,eax |
jnz exit |
|
call Get_ini |
call Get_ini |
|
mcall 48,1,[button_style] |
|
mcall 66,4,0,2 ; LShift+RShift |
mcall 66,,,11h ; Ctrl+Shift |
mcall 66,,88,110h ; Alt+Ctrl+F12 |
mcall 48,1,[button_style] |
|
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,,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 |
mcall 66,,220 ; LWin UP |
mcall 66,,205 ; Alt+Ctrl+ArrowRight UP |
|
mcall 66,,91,0h ; RWin DOWN |
mcall 66,,92 ; LWin DOWN |
mcall 66,,219 ; RWin UP |
mcall 66,,220 ; LWin UP |
|
; mcall 66,,147,0h ; Win+R UP |
mcall 66,,19,0h ; Win+R DOWN |
mcall 66,,19,0h ; Win+R DOWN |
|
; mcall 66,,23,0h ; Win+I DOWN |
|
mcall 66,,32,0h ; Win+D DOWN |
mcall 66,,32,0h ; Win+D DOWN |
; mcall 66,,160,0h ; Win+D UP |
|
mcall 66,,55,0h ; PrintScreen DOWN |
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,300h ; Alt+F4 |
mcall 66,,62,300h ; Alt+F4 |
; mcall 66,,71 ; Alt+Home |
; mcall 66,,72 ; Alt+Up |
mcall 66,,2 ; Alt+1 |
mcall 66,,3 ; Alt+2 |
mcall 66,,4 ; Alt+3 |
mcall 66,,5 ; Alt+4 |
mcall 66,,6 ; Alt+5 |
mcall 66,,7 ; Alt+6 |
mcall 66,,8 ; Alt+7 |
mcall 66,,15 ; Alt+Tab DOWN |
mcall 66,,15,301h ; Alt+Shift+Tab DOWN |
mcall 66,,69 ; Alt+Shift+NumLock |
mcall 66,,2 ; Alt+1 |
mcall 66,,3 ; Alt+2 |
mcall 66,,4 ; Alt+3 |
mcall 66,,5 ; Alt+4 |
mcall 66,,6 ; Alt+5 |
mcall 66,,7 ; Alt+6 |
mcall 66,,8 ; Alt+7 |
mcall 66,,15 ; Alt+Tab DOWN |
mcall 66,,15,301h ; Alt+Shift+Tab DOWN |
mcall 66,,69 ; Alt+Shift+NumLock |
|
if caps_lock_check |
xor edx,edx |
mcall 66,4,58 |
xor edx,edx |
mcall 66,4,58 |
end if |
mcall 14 |
mov [screen_size],eax |
mcall 14 |
mov [screen_size],eax |
|
|
mov ecx,eax |
|
mov ecx,eax |
;eax = [xsize]*65536 + [ysize], £¤¥ |
shr ecx,16 |
and eax,0xFFFF |
|
cmp [place_attachment],1 |
je @f |
ror eax,16 |
add eax,[height] |
rol eax,16 |
mov edx,eax |
jmp .selected |
shr ecx,16 |
and eax,0xFFFF |
|
cmp [place_attachment],1 |
je @f |
ror eax,16 |
add eax,[height] |
rol eax,16 |
mov edx,eax |
jmp .selected |
;-------------------------------------- |
align 4 |
@@: |
sub eax,[height] |
mov edx, eax |
sub eax,[height] |
mov edx, eax |
;-------------------------------------- |
align 4 |
.selected: |
mcall 48,6 |
mcall 48,6 |
|
mcall 9,process_info_buffer,-1 |
mov ecx,[process_info_buffer+30] |
mcall 18,21 |
mov [this_slot],eax |
mov [max_slot],255 |
mcall 9,process_info_buffer,-1 |
mov ecx,[process_info_buffer+30] |
mcall 18,21 |
mov [this_slot],eax |
mov [max_slot],255 |
;-------------------------------------- |
align 4 |
start_after_minimize: |
call draw_window |
call draw_window |
; call draw_tray |
call draw_running_applications |
call draw_running_applications |
|
mcall 23,30 |
call load_ini |
call fir_lng |
mcall 23,30 |
call load_ini |
call fir_lng |
;------------------------------------------------------------------------------ |
align 4 |
still: |
; call draw_tray |
call draw_time |
call draw_cpu_usage |
call draw_running_applications |
call draw_time |
call draw_cpu_usage |
call draw_running_applications |
|
mcall 18,7 ; check if active window changed |
cmp eax, [last_active_window] |
jz @f |
mcall 18,7 ; check if active window changed |
cmp eax, [last_active_window] |
jz @f |
; need_window_tab: |
; in: ebx->process info |
; out: ZF set <=> do not draw |
mov ebx,[last_active_window] |
mov [prev_active_window], ebx |
mov [last_active_window], eax |
mov ebx,[last_active_window] |
mov [prev_active_window], ebx |
mov [last_active_window], eax |
|
mov ecx, eax |
mcall 9,process_info_buffer |
mov ecx, eax |
mcall 9,process_info_buffer |
|
call need_window_tab |
jnz .need_repaint |
call need_window_tab |
jnz .need_repaint |
|
mcall 9,process_info_buffer,[prev_active_window] |
call need_window_tab |
jz @f |
mcall 9,process_info_buffer,[prev_active_window] |
call need_window_tab |
jz @f |
;-------------------------------------- |
align 4 |
.need_repaint: |
mov dword [active_window_changed], 1 |
mov dword [active_window_changed], 1 |
;-------------------------------------- |
align 4 |
@@: |
mcall 23,20 |
|
push eax |
mcall 18,7 |
cmp [my_active_slot],eax |
je @f |
mcall 23,20 |
|
push eax |
mcall 18,7 |
cmp [my_active_slot],eax |
je @f |
|
mov [current_active_slot],eax |
mov [current_active_slot],eax |
;-------------------------------------- |
align 4 |
@@: |
pop eax |
|
cmp eax,1 ; redraw ? |
jz red |
pop eax |
|
cmp eax,1 ; redraw ? |
jz red |
|
push eax |
mov eax,[redraw_window_flag] |
test eax,eax |
jz @f |
push eax |
mov eax,[redraw_window_flag] |
test eax,eax |
jz @f |
|
call draw_window |
call draw_window |
;-------------------------------------- |
align 4 |
@@: |
pop eax |
|
cmp eax,2 |
jnz @f |
call handle_key |
jmp .key |
pop eax |
|
cmp eax,2 |
jnz @f |
call handle_key |
jmp .key |
;-------------------------------------- |
align 4 |
@@: |
cmp eax,3 ; button ? |
jz button |
cmp eax,3 ; button ? |
jz button |
|
; call handle_key |
;-------------------------------------- |
align 4 |
.key: |
cmp dword [active_window_changed], 0 |
jnz red_active |
cmp dword [active_window_changed], 0 |
jnz red_active |
|
call draw_flag ; language |
jmp still |
call draw_flag ; language |
jmp still |
;------------------------------------------------------------------------------ |
align 4 |
red_active: |
red: |
mov dword [active_window_changed], 0 |
mov dword [active_window_changed], 0 |
|
mcall 14 |
movzx ecx,ax |
mov edx,eax |
shr edx,16 |
cmp [screen_size.height],ax |
jne @f |
mcall 14 |
movzx ecx,ax |
mov edx,eax |
shr edx,16 |
cmp [screen_size.height],ax |
jne @f |
|
rol eax,16 |
cmp [screen_size.width],ax |
je .lp1 |
rol eax,16 |
cmp [screen_size.width],ax |
je .lp1 |
|
rol eax,16 |
rol eax,16 |
;-------------------------------------- |
align 4 |
@@: |
mov [screen_size],eax |
sub ecx,[height] |
mcall 67,0,,,[height] |
mov [screen_size],eax |
sub ecx,[height] |
mcall 67,0,,,[height] |
;-------------------------------------- |
align 4 |
.lp1: |
call draw_window |
call draw_window |
; call draw_tray |
jmp still |
jmp still |
;------------------------------------------------------------------------------ |
align 4 |
button: |
mcall 17 |
test eax,0xfffffe00 ; is it close button? (signal from @panel) |
jz still ; if so - wait for another event, because @panel shouldn't be closed |
mcall 17 |
test eax,0xfffffe00 ; is it close button? (signal from @panel) |
jz still ; if so - wait for another event, because @panel shouldn't be closed |
|
cmp al, 0 |
jnz right_mouse |
cmp al, 0 |
jnz right_mouse |
|
cmp ah,50 |
jb no_activate |
cmp ah,70 |
jg no_activate |
cmp ah,50 |
jb no_activate |
cmp ah,70 |
jg no_activate |
|
movzx ecx,byte ah |
sub ecx,52 |
shl ecx,2 |
movzx ecx,byte ah |
sub ecx,52 |
shl ecx,2 |
|
mov ecx,[app_list+ecx] |
|
mcall 9,process_info_buffer |
mov ecx,[app_list+ecx] |
|
mcall 9,process_info_buffer |
|
test [ebx+70],dword 10b ; window is minimized to panel |
jnz @f |
test [ebx+70],dword 10b ; window is minimized to panel |
jnz @f |
|
cmp ecx,[current_active_slot] |
je .turn_off |
cmp ecx,[current_active_slot] |
je .turn_off |
;-------------------------------------- |
align 4 |
@@: |
mcall 18,3, |
jmp .task_switching |
mcall 18,3, |
jmp .task_switching |
;-------------------------------------- |
align 4 |
.turn_off: |
mov edx,ecx |
mcall 18,22,0 |
mov edx,ecx |
mcall 18,22,0 |
;-------------------------------------- |
align 4 |
.task_switching: |
mcall 68,1 |
jmp still |
mcall 68,1 |
jmp still |
;------------------------------------------------------------------------------ |
align 4 |
right_mouse: |
cmp ah,50 |
jb still |
cmp ah,50 |
jb still |
|
cmp ah,70 |
jg still |
cmp ah,70 |
jg still |
|
movzx ecx,byte ah |
sub ecx,52 |
movzx ecx,byte ah |
sub ecx,52 |
|
cmp ecx, [app_tab_count] |
jge still |
cmp ecx, [app_tab_count] |
jge still |
|
shl ecx,2 |
mcall 37,0 |
mov ebx, eax |
shr eax, 16 |
mov [x_coord], ax |
and ebx, 0xFFFF |
mov [y_coord], bx |
shl ecx,2 |
mcall 37,0 |
mov ebx, eax |
shr eax, 16 |
mov [x_coord], ax |
and ebx, 0xFFFF |
mov [y_coord], bx |
|
mov ecx,[app_list+ecx] ; ecx->selected app.slot |
mov [n_slot], ecx |
mcall 9,procinfo_for_detect |
mov ecx,[app_list+ecx] ; ecx->selected app.slot |
mov [n_slot], ecx |
mcall 9,procinfo_for_detect |
|
mcall 51,1,context_menu_start,ctx_menu_stack |
mcall 51,1,context_menu_start,ctx_menu_stack |
|
mov [ctx_menu_PID], eax |
jmp still |
mov [ctx_menu_PID], eax |
jmp still |
;------------------------------------------------------------------------------ |
align 4 |
no_activate: |
cmp ah,101 ; minimize to left |
je left_button |
cmp ah,101 ; minimize to left |
je left_button |
|
cmp ah,102 ; minimize to right |
je right_button |
cmp ah,102 ; minimize to right |
je right_button |
|
cmp ah, 103 |
je clean_desktop_1 ; minimize all windows |
cmp ah, 103 |
je clean_desktop_1 ; minimize all windows |
|
; cmp ah, 104 |
; je restore_desktop ; restore minimized windows |
908,50 → 914,50 |
; cmp ah, 105 |
; je swap_minimized_desktop ; minimize normal windows, and restore minimized windows |
|
cmp ah,byte 1 ; start/terminate menu |
jnz noselect |
cmp ah,byte 1 ; start/terminate menu |
jnz noselect |
|
call menu_handler |
call menu_handler |
|
jmp still |
jmp still |
;-------------------------------------- |
align 4 |
clean_desktop_1: |
call clean_desktop |
jmp still |
call clean_desktop |
jmp still |
;-------------------------------------- |
align 4 |
noselect: |
mov ebx, exec_fileinfo |
cmp ah,byte 2 ; start calendar |
jnz noid15 ;noclock |
mov ebx, exec_fileinfo |
cmp ah,byte 2 ; start calendar |
jnz noid15 ;noclock |
|
mov esi,calendar_name |
call algorithm_anti_duplication |
test eax,eax |
jz @f |
mov esi,calendar_name |
call algorithm_anti_duplication |
test eax,eax |
jz @f |
|
mcall 18,3,edi |
jmp still |
mcall 18,3,edi |
jmp still |
;-------------------------------------- |
align 4 |
@@: |
mov ebx, exec_fileinfo |
mov dword [ebx+21], calendar_name |
mcall 70 |
jmp still |
mov ebx, exec_fileinfo |
mov dword [ebx+21], calendar_name |
mcall 70 |
jmp still |
;-------------------------------------- |
align 4 |
noid15: |
cmp ah,16 |
jne noid16 |
cmp ah,16 |
jne noid16 |
|
; mov ebx, setup_exec |
; mov dword [ebx+8], chlang |
; mcall 70 |
call karu |
call draw_flag ; language |
jmp still |
call karu |
call draw_flag ; language |
jmp still |
;-------------------------------------- |
align 4 |
noid16: |
965,23 → 971,23 |
;-------------------------------------- |
;align 4 |
; noid17: |
cmp ah,18 |
jne noid18 |
cmp ah,18 |
jne noid18 |
|
mov esi,sysmeter_name |
call algorithm_anti_duplication |
test eax,eax |
jz @f |
mov esi,sysmeter_name |
call algorithm_anti_duplication |
test eax,eax |
jz @f |
|
mcall 18,3,edi |
jmp still |
mcall 18,3,edi |
jmp still |
;-------------------------------------- |
align 4 |
@@: |
mov ebx, exec_fileinfo |
mov dword [ebx+21], sysmeter_name |
mcall 70 |
jmp still |
mov ebx, exec_fileinfo |
mov dword [ebx+21], sysmeter_name |
mcall 70 |
jmp still |
;-------------------------------------- |
align 4 |
noid18: |
1004,238 → 1010,238 |
;-------------------------------------- |
;align 4 |
;noid20: |
cmp ah,21 |
jnz noid21 |
cmp ah,21 |
jnz noid21 |
|
cmp [page_list],50 |
jnc still |
inc [page_list] |
jmp red |
cmp [page_list],50 |
jnc still |
inc [page_list] |
jmp red |
;-------------------------------------- |
align 4 |
noid21: |
cmp ah,22 |
jnz still |
cmp ah,22 |
jnz still |
|
cmp [page_list],0 |
je still |
cmp [page_list],0 |
je still |
|
dec [page_list] |
jmp red |
dec [page_list] |
jmp red |
;------------------------------------------------------------------------------ |
align 4 |
restore_desktop: |
mcall 9,process_info_buffer,-1 |
mov [max_slot], eax |
mov ecx, 2 |
mov edx, 2 |
mcall 9,process_info_buffer,-1 |
mov [max_slot], eax |
mov ecx, 2 |
mov edx, 2 |
;-------------------------------------- |
align 4 |
@@: |
mcall 18, 22 |
inc edx |
cmp edx, [max_slot] |
jbe @b |
ret |
mcall 18, 22 |
inc edx |
cmp edx, [max_slot] |
jbe @b |
ret |
;------------------------------------------------------------------------------ |
align 4 |
clean_desktop: |
mcall 18,23 |
test eax,eax |
jnz @f |
call restore_desktop |
mcall 18,23 |
test eax,eax |
jnz @f |
call restore_desktop |
;-------------------------------------- |
align 4 |
@@: |
ret |
ret |
;------------------------------------------------------------------------------ |
align 4 |
conversion_HEX_to_ASCII: |
ror eax,12 |
mov ecx,4 |
ror eax,12 |
mov ecx,4 |
;-------------------------------------- |
align 4 |
.loop: |
mov bl,al |
rol eax,4 |
and bl,0xf |
cmp bl,0xA ; check for ABCDEF |
jae @f |
mov bl,al |
rol eax,4 |
and bl,0xf |
cmp bl,0xA ; check for ABCDEF |
jae @f |
|
add bl,0x30 ; 0-9 |
jmp .store |
add bl,0x30 ; 0-9 |
jmp .store |
;-------------------------------------- |
align 4 |
@@: |
add bl,0x57 ; A-F |
add bl,0x57 ; A-F |
;-------------------------------------- |
align 4 |
.store: |
; dps "param_store: " |
mov [edi],bl |
inc edi |
dec ecx |
jnz .loop |
ret |
mov [edi],bl |
inc edi |
dec ecx |
jnz .loop |
ret |
;------------------------------------------------------------------------------ |
align 4 |
menu_handler: |
mov edi,bootparam |
|
mov eax,[menu_button_x.start] |
call conversion_HEX_to_ASCII |
mov edi,bootparam |
|
mov eax,[menu_button_x.start] |
call conversion_HEX_to_ASCII |
|
mov eax,[menu_button_x.size] |
call conversion_HEX_to_ASCII |
|
mov eax,[menu_button_y.start] |
call conversion_HEX_to_ASCII |
|
mov eax,[menu_button_y.size] |
call conversion_HEX_to_ASCII |
|
mov eax,[height] |
call conversion_HEX_to_ASCII |
|
mov eax,[place_attachment] |
call conversion_HEX_to_ASCII |
|
xor eax,eax ; terminator for boot parameters string |
stosd |
|
mov ebx, exec_fileinfo |
mov [ebx+21],dword menu_name |
mov [ebx+8],dword bootparam |
mcall 70 |
mov [ebx+8],dword 0 |
ret |
mov eax,[menu_button_x.size] |
call conversion_HEX_to_ASCII |
|
mov eax,[menu_button_y.start] |
call conversion_HEX_to_ASCII |
|
mov eax,[menu_button_y.size] |
call conversion_HEX_to_ASCII |
|
mov eax,[height] |
call conversion_HEX_to_ASCII |
|
mov eax,[place_attachment] |
call conversion_HEX_to_ASCII |
|
xor eax,eax ; terminator for boot parameters string |
stosd |
|
mov ebx, exec_fileinfo |
mov [ebx+21],dword menu_name |
mov [ebx+8],dword bootparam |
mcall 70 |
mov [ebx+8],dword 0 |
ret |
;------------------------------------------------------------------------------ |
align 4 |
draw_small_right: |
pusha |
mcall 12,1 |
pusha |
mcall 12,1 |
|
xor eax,eax |
mov edx,[wcolor] |
mov esi,edx |
mov edi,edx |
or edx, 0x01000000 |
mcall |
xor eax,eax |
mov edx,[wcolor] |
mov esi,edx |
mov edi,edx |
or edx, 0x01000000 |
mcall |
|
xor ecx,ecx |
mov cx,[height] |
mcall 8,<0,10>,,1,[wcolor] |
xor ecx,ecx |
mov cx,[height] |
mcall 8,<0,10>,,1,[wcolor] |
|
mov ebx,2*65536 ;+6 |
mov bx,[height] |
shr bx,1 |
sub bx,3 |
mov ebx,2*65536 ;+6 |
mov bx,[height] |
shr bx,1 |
sub bx,3 |
; mov ecx,[wcolor] |
; add ecx,0x303030 |
mov edx,[wcolor] |
mov eax,COLOR_CHANGE_MAGNITUDE_2 |
call add_color_change_magnitude |
mov ecx,edx |
mcall 4,,,hidetext,1 |
mov edx,[wcolor] |
mov eax,COLOR_CHANGE_MAGNITUDE_2 |
call add_color_change_magnitude |
mov ecx,edx |
mcall 4,,,hidetext,1 |
|
mcall 12,2 |
popa |
ret |
mcall 12,2 |
popa |
ret |
;------------------------------------------------------------------------------ |
align 4 |
draw_small_left: |
pusha |
mcall 12,1 |
pusha |
mcall 12,1 |
|
xor eax,eax |
mov edx,[wcolor] |
mov esi,edx |
mov edi,edx |
or edx, 0x01000000 |
mcall |
xor eax,eax |
mov edx,[wcolor] |
mov esi,edx |
mov edi,edx |
or edx, 0x01000000 |
mcall |
|
xor ecx,ecx |
mov cx,[height] |
mcall 8,<0,9>,,1,[wcolor] |
xor ecx,ecx |
mov cx,[height] |
mcall 8,<0,9>,,1,[wcolor] |
|
mov ebx,3*65536 ;+6 |
mov bx,[height] |
shr bx,1 |
sub bx,3 |
mov ebx,3*65536 ;+6 |
mov bx,[height] |
shr bx,1 |
sub bx,3 |
; mov ecx,[wcolor] |
; add ecx,0x303030 |
mov edx,[wcolor] |
mov eax,COLOR_CHANGE_MAGNITUDE_2 |
call add_color_change_magnitude |
mov ecx,edx |
mcall 4,,,hidetext+1,1 |
mov edx,[wcolor] |
mov eax,COLOR_CHANGE_MAGNITUDE_2 |
call add_color_change_magnitude |
mov ecx,edx |
mcall 4,,,hidetext+1,1 |
|
mcall 12,2 |
popa |
ret |
mcall 12,2 |
popa |
ret |
;------------------------------------------------------------------------------ |
align 4 |
right_button: |
mov [small_draw],dword draw_small_right |
mov [small_draw],dword draw_small_right |
|
mcall 14 |
mcall 14 |
|
shr eax, 16 |
mov ebx, eax |
mov ecx, -1 |
mov edx, 9 |
sub ebx, edx |
mov esi, -1 |
mcall 67 |
shr eax, 16 |
mov ebx, eax |
mov ecx, -1 |
mov edx, 9 |
sub ebx, edx |
mov esi, -1 |
mcall 67 |
|
call draw_small_right |
jmp small_wait |
call draw_small_right |
jmp small_wait |
;------------------------------------------------------------------------------ |
align 4 |
left_button: |
mov [small_draw],dword draw_small_left |
mov [small_draw],dword draw_small_left |
|
xor ebx,ebx |
mcall 67,,-1,9,-1 |
xor ebx,ebx |
mcall 67,,-1,9,-1 |
|
call draw_small_left |
call draw_small_left |
;-------------------------------------- |
align 4 |
small_wait: |
mcall 10 |
cmp eax,1 |
jne no_win |
mcall 10 |
cmp eax,1 |
jne no_win |
|
call [small_draw] |
jmp small_wait |
call [small_draw] |
jmp small_wait |
;-------------------------------------- |
align 4 |
no_win: |
cmp eax,2 |
jne no_key |
cmp eax,2 |
jne no_key |
|
call handle_key |
jmp small_wait |
call handle_key |
jmp small_wait |
;-------------------------------------- |
align 4 |
no_key: |
mcall 17 |
cmp ah,1 |
jne no_full |
mcall 17 |
cmp ah,1 |
jne no_full |
|
mcall 14 ; get screen max x & max y |
mcall 14 ; get screen max x & max y |
|
mov edx, eax |
shr edx, 16 |
xor ebx, ebx |
mcall 67,,-1,,-1 ; x0 y0 xs ys |
mov edx, eax |
shr edx, 16 |
xor ebx, ebx |
mcall 67,,-1,,-1 ; x0 y0 xs ys |
|
jmp still |
jmp still |
;-------------------------------------- |
align 4 |
no_full: |
call menu_handler |
jmp small_wait |
call menu_handler |
jmp small_wait |
;------------------------------------------------------------------------------ |
include 'libini.inc' |
;------------------------------------------------------------------------------ |