Rename Panel to Taskbar
git-svn-id: svn://kolibrios.org@5452 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
229
programs/system/taskbar/trunk/drawappl.inc
Normal file
229
programs/system/taskbar/trunk/drawappl.inc
Normal file
@@ -0,0 +1,229 @@
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
draw_running_applications:
|
||||
pusha
|
||||
|
||||
cmp [run_appl],dword 0
|
||||
je .exit
|
||||
|
||||
call calculate_applications
|
||||
|
||||
cmp edi,[running_applications]
|
||||
jne .noret
|
||||
popa
|
||||
ret
|
||||
;--------------------------------------
|
||||
align 4
|
||||
.noret:
|
||||
call draw_window
|
||||
mov [running_applications],edi
|
||||
call redraw_window_tabs
|
||||
;--------------------------------------
|
||||
align 4
|
||||
.exit:
|
||||
popa
|
||||
ret
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
need_window_tab:
|
||||
; in: ebx->process info
|
||||
; out: ZF set <=> do not draw
|
||||
cmp byte [ebx+10], '@'
|
||||
jz .nodraw
|
||||
; do not draw undefined (zero-sized) windows
|
||||
cmp dword [ebx+42], 0
|
||||
jnz @f
|
||||
cmp dword [ebx+46], 0
|
||||
jz .nodraw
|
||||
;--------------------------------------
|
||||
align 4
|
||||
@@:
|
||||
; do not draw OpenDialog windows
|
||||
push edi
|
||||
mov edi, dword [ebx+10]
|
||||
or edi, 0x20202020
|
||||
cmp edi, 'open'
|
||||
jne @f
|
||||
|
||||
mov edi, dword [ebx+14]
|
||||
or edi, 0x20202020
|
||||
cmp dword [ebx+14], 'dial'
|
||||
jne @f
|
||||
|
||||
pop edi
|
||||
jmp .nodraw
|
||||
;--------------------------------------
|
||||
align 4
|
||||
@@:
|
||||
pop edi
|
||||
cmp dword [ebx+10], 'ICON'
|
||||
jnz @f
|
||||
|
||||
cmp [ebx+42], dword 51
|
||||
jnz @f
|
||||
|
||||
cmp [ebx+46], dword 51
|
||||
jz .nodraw
|
||||
;--------------------------------------
|
||||
align 4
|
||||
@@:
|
||||
cmp [ebx+10], dword ' '
|
||||
;--------------------------------------
|
||||
align 4
|
||||
.nodraw:
|
||||
ret
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
calculate_applications:
|
||||
mov eax,[max_applications]
|
||||
mul [page_list]
|
||||
test eax,eax
|
||||
je @f
|
||||
|
||||
inc eax
|
||||
;--------------------------------------
|
||||
align 4
|
||||
@@:
|
||||
mov [draw_start_position],eax
|
||||
|
||||
mov edi,app_list
|
||||
mov ecx,20 ; show max 20 application ???!!!
|
||||
mov eax,-1
|
||||
cld
|
||||
rep stosd
|
||||
|
||||
mov edi,0
|
||||
mov ecx,2
|
||||
;--------------------------------------
|
||||
align 4
|
||||
cnewpr:
|
||||
mcall 9,procinfo_window_tabs
|
||||
|
||||
call need_window_tab
|
||||
jz cnorpl
|
||||
|
||||
sub [draw_start_position], 1
|
||||
jg cnorpl
|
||||
|
||||
mov [app_list+edi*4],ecx
|
||||
inc edi
|
||||
;--------------------------------------
|
||||
align 4
|
||||
cnorpl:
|
||||
inc ecx
|
||||
cmp eax,ecx
|
||||
jge cnewpr
|
||||
|
||||
mov [app_tab_count], edi
|
||||
ret
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
redraw_window_tabs:
|
||||
xor edi, edi
|
||||
mov [contrast], 0
|
||||
|
||||
push ebp
|
||||
mcall 18,7
|
||||
mov ebp,eax
|
||||
|
||||
call calculate_offset_X
|
||||
;--------------------------------------
|
||||
align 4
|
||||
.loop:
|
||||
mov ecx,[app_list+edi*4]
|
||||
cmp ecx,-1
|
||||
jz .done
|
||||
|
||||
mov [active_slot_number],ecx
|
||||
mcall 9,procinfo_window_tabs
|
||||
|
||||
|
||||
imul ebx, edi, TAB_SIZE
|
||||
add ebx,[offset_X]
|
||||
add ebx,2
|
||||
shl ebx,16
|
||||
add ebx,TAB_SIZE-2 ;54
|
||||
|
||||
push edi
|
||||
mov edx,[system_colours.work_button]
|
||||
xor edi,edi
|
||||
|
||||
cmp ebp,[active_slot_number] ;ecx ; ecx=active slot number
|
||||
jnz @f
|
||||
|
||||
mov edx,[wcolor]
|
||||
inc edi
|
||||
;--------------------------------------
|
||||
align 4
|
||||
@@:
|
||||
mov esi,[current_alt_tab_app]
|
||||
cmp esi,-1
|
||||
jz @f
|
||||
|
||||
cmp ecx,[alt_tab_list+esi*8]
|
||||
jnz @f
|
||||
|
||||
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
|
||||
;------------------------------------------------------------------------------
|
||||
add ebx,4 shl 16
|
||||
mov bx,cx ;[height]
|
||||
shr bx,1
|
||||
sub bx,4
|
||||
shr ecx,16
|
||||
add bx,cx
|
||||
|
||||
mov edx, procinfo_window_tabs+10
|
||||
mcall 4,,[system_colours.work_button_text],,11
|
||||
;--------------------------------------
|
||||
align 4
|
||||
.nodraw:
|
||||
inc edi
|
||||
cmp edi, [max_applications]
|
||||
jb .loop
|
||||
|
||||
mov ecx,[app_list+edi*4]
|
||||
cmp ecx,-1
|
||||
jz .done
|
||||
|
||||
xor eax,eax
|
||||
cmp [page_list],eax
|
||||
jne @f
|
||||
|
||||
inc eax
|
||||
cmp [page_list_enable],eax
|
||||
je @f
|
||||
|
||||
mov [page_list_enable],eax
|
||||
mov [redraw_window_flag],eax
|
||||
;--------------------------------------
|
||||
align 4
|
||||
@@:
|
||||
pop ebp
|
||||
ret
|
||||
;--------------------------------------
|
||||
align 4
|
||||
.done:
|
||||
xor eax,eax
|
||||
cmp [page_list],eax
|
||||
jne @f
|
||||
|
||||
cmp [page_list_enable],eax
|
||||
je @f
|
||||
|
||||
mov [page_list_enable],eax
|
||||
inc eax
|
||||
mov [redraw_window_flag],eax
|
||||
;--------------------------------------
|
||||
align 4
|
||||
@@:
|
||||
pop ebp
|
||||
ret
|
||||
;------------------------------------------------------------------------------
|
Reference in New Issue
Block a user