Added f18.25: the ability to make a window on top of all and behind all

git-svn-id: svn://kolibrios.org@5836 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
GerdtR
2015-10-09 13:59:11 +00:00
parent 2fadaa9c40
commit b4331f8494
6 changed files with 302 additions and 3 deletions

View File

@@ -2231,6 +2231,8 @@ sys_system_table:
dd sysfn_min_rest_window ; 22 = minimize and restore any window
dd sysfn_min_windows ; 23 = minimize all windows
dd sysfn_set_screen_sizes ; 24 = set screen sizes for Vesa
dd sysfn_zmodif ; 25 = get/set window z modifier ;Fantomer
sysfn_num = ($ - sys_system_table)/4
endg
;------------------------------------------------------------------------------
@@ -2390,6 +2392,67 @@ sysfn_activate: ; 18.3 = ACTIVATE WINDOW
.nowindowactivate:
ret
;------------------------------------------------------------------------------
align 4 ;Fantomer
sysfn_zmodif:
;18,25,1 - get z_modif
;18,25,2 - set z_modif
;edx = -1(for current task) or TID
;esi(for 2) = new value z_modif
;return:
;1: eax = z_modif
;2: eax=0(fail),1(success) for set z_modif
xor eax, eax
cmp edx, -1
jne @f
mov edx, [CURRENT_TASK]
@@:
cmp edx, [TASK_COUNT]
ja .exit
cmp edx, 1
je .exit
shl edx, 5
cmp [edx + CURRENT_TASK + TASKDATA.state], 9
je .exit
cmp ecx, 1
jnz .set_zmod
mov al, [edx + window_data + WDATA.z_modif]
jmp .exit
align 4
.set_zmod:
cmp ecx, 2
jnz .exit
mov eax, esi
mov esi, edx
cmp al, ZPOS_ALWAYS_TOP
ja .exit
mov [edx + window_data + WDATA.z_modif], al
mov eax, [edx + window_data + WDATA.box.left]
mov ebx, [edx + window_data + WDATA.box.top]
mov ecx, [edx + window_data + WDATA.box.width]
mov edx, [edx + window_data + WDATA.box.height]
add ecx, eax
add edx, ebx
call window._.set_top_wnd
mov eax, 1
align 4
.exit:
mov [esp+32], eax
ret
;------------------------------------------------------------------------------
sysfn_getidletime: ; 18.4 = GET IDLETIME
mov eax, [CURRENT_TASK+32+TASKDATA.cpu_usage]
mov [esp+32], eax