added window type (Y=4). skinned window with fixed sizes

git-svn-id: svn://kolibrios.org@549 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
SPraid (simba) 2007-06-22 00:17:28 +00:00
parent f6fbed07ac
commit d7d49c0feb
4 changed files with 56 additions and 14 deletions

View File

@ -22,6 +22,7 @@
* Y=1 - ⮫쪮 ®¯à¥¤¥«¨âì ®¡« áâì ®ª­ , ­¨ç¥£® ­¥ à¨á®¢ âì
* Y=2 - ⨯ II - ®ª­® ¨§¬¥­ï¥¬ëå à §¬¥à®¢
* Y=3 - ®ª­® ᮠ᪨­®¬
* Y=4 - ®ª­® ᮠ᪨­®¬ ¨ 䨪á¨à®¢ ­­ë¬¨ à §¬¥à ¬¨
* ®áâ «ì­ë¥ ¢®§¬®¦­ë¥ §­ ç¥­¨ï (®â 4 ¤® 15) § à¥§¥à¢¨à®¢ ­ë,
¢ë§®¢ ä㭪樨 á â ª¨¬¨ Y ¨£­®à¨àã¥âáï
* RR, GG, BB = ᮮ⢥âá⢥­­® ªà á­ ï, §¥«¥­ ï, ᨭïï

View File

@ -22,6 +22,7 @@ Parameters:
* Y=1 - only define window area, draw nothing
* Y=2 - type II - variable-size window
* Y=3 - skinned window
* Y=4 - skinned window with fixed sizes
* other possible values (from 4 up to 15) are reserved,
function call with such Y is ignored
* RR, GG, BB = accordingly red, green, blue components of a color

View File

@ -899,7 +899,11 @@ windowactivate:
mov ebx, [eax + WDATA.cl_workarea]
and ebx, 0x0f000000
cmp ebx, 0x03000000
jne @f
je .set_WDATA_fl_redraw ; for 3 and 4 style
cmp ebx, 0x04000000
je .set_WDATA_fl_redraw
jmp @f
.set_WDATA_fl_redraw:
mov [eax + WDATA.fl_redraw], byte 1
@@:
@ -957,6 +961,8 @@ checkwindowdraw:
and eax, 0x0f000000
cmp eax, 0x03000000
je .return_yes ; window type 3
cmp eax, 0x04000000
je .return_yes ; window type 4
mov esi, edi
sub esi, window_data
@ -1264,8 +1270,13 @@ checkwindows:
mov [do_resize_from_corner],byte 0 ; resize for skinned window
mov edx, [edi + WDATA.cl_workarea]
and edx, 0x0f000000
cmp edx, 0x02000000
jb .no_resize_2 ; not type 2 wnd
cmp edx, 0x00000000 ;{test for resized}
je .no_resize_2
cmp edx, 0x01000000 ;{test for resized}
je .no_resize_2
cmp edx, 0x04000000 ;{test for resized}
je .no_resize_2
; jb .no_resize_2 ; not type 2 wnd
mov edx, [edi + WDATA.box.top]
add edx, [edi + WDATA.box.height]
@ -1497,6 +1508,16 @@ checkwindows:
pushad ; WINDOW SHADE/FULLSCREEN
;{doule click not worked for 4 type window}
mov edx, [edi + WDATA.cl_workarea]
and edx, 0x0f000000
cmp edx, 0x00000000
je no_fullscreen_restore
cmp edx, 0x01000000
je no_fullscreen_restore
cmp edx, 0x04000000
je no_fullscreen_restore
cmp [reposition],1
je no_window_sizing
mov edx,edi

View File

@ -2953,8 +2953,11 @@ sys_drawwindow:
nosyswIII:
cmp edi,3 ; type IV - skinned window
jne nosyswIV
je draw_skin_window
cmp edi,4 ; type V - skinned window not sized! {not_sized_skin_window}
jne nosyswV
draw_skin_window:
; parameter for drawwindow_IV
push 0
mov edi, [TASK_COUNT]
@ -2973,7 +2976,7 @@ sys_drawwindow:
;call [draw_pointer]
;ret
jmp draw_window_caption.2
nosyswIV:
nosyswV:
ret
@ -2994,7 +2997,12 @@ draw_window_caption:
movzx ebx,[edx+WDATA.fl_wstyle]
and bl,0x0F
cmp bl,3
jne .not_style_3
je .draw_caption_style_3 ;{for 3 and 4 style write caption}
cmp bl,4
je .draw_caption_style_3
jmp .not_style_3
.draw_caption_style_3:
push edx
call drawwindow_IV_caption
@ -3028,8 +3036,12 @@ draw_window_caption:
movzx eax,[edi+window_data+WDATA.fl_wstyle]
and al,0x0F
cmp al,3
jne .not_skinned
je .skinned
cmp al,4
je .skinned
jmp .not_skinned
.skinned:
mov ebp,[edi+window_data+WDATA.box.left-2]
mov bp,word[edi+window_data+WDATA.box.top]
movzx eax,word[edi+window_data+WDATA.box.width]
@ -3085,10 +3097,11 @@ draw_window_caption:
iglobal
align 4
window_topleft dd \
1, 21,\
0, 0,\
5, 20,\
5, ?
1, 21,\ ;type 0
0, 0,\ ;type 1
5, 20,\ ;type 2
5, ?,\ ;type 3 {set by skin}
5, ? ;type 4 {set by skin}
endg
set_window_clientbox:
@ -3096,6 +3109,7 @@ set_window_clientbox:
mov eax,[_skinh]
mov [window_topleft+4*7],eax
mov [window_topleft+4*9],eax
mov ecx,edi
sub edi,window_data
@ -3181,7 +3195,12 @@ sys_set_window:
and cl,0x0F
mov [edi+APPDATA.wnd_caption],0
cmp cl,3
jne @f
je set_APPDATA_wnd_caption
cmp cl,4 ; {SPraid.simba}
je set_APPDATA_wnd_caption
jmp @f
set_APPDATA_wnd_caption:
mov [edi+APPDATA.wnd_caption],esi
@@: mov esi,[esp+0]