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

View File

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

View File

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

View File

@ -2953,7 +2953,10 @@ sys_drawwindow:
nosyswIII: nosyswIII:
cmp edi,3 ; type IV - skinned window 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 ; parameter for drawwindow_IV
push 0 push 0
@ -2973,7 +2976,7 @@ sys_drawwindow:
;call [draw_pointer] ;call [draw_pointer]
;ret ;ret
jmp draw_window_caption.2 jmp draw_window_caption.2
nosyswIV: nosyswV:
ret ret
@ -2994,7 +2997,12 @@ draw_window_caption:
movzx ebx,[edx+WDATA.fl_wstyle] movzx ebx,[edx+WDATA.fl_wstyle]
and bl,0x0F and bl,0x0F
cmp bl,3 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 push edx
call drawwindow_IV_caption call drawwindow_IV_caption
@ -3028,8 +3036,12 @@ draw_window_caption:
movzx eax,[edi+window_data+WDATA.fl_wstyle] movzx eax,[edi+window_data+WDATA.fl_wstyle]
and al,0x0F and al,0x0F
cmp al,3 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 ebp,[edi+window_data+WDATA.box.left-2]
mov bp,word[edi+window_data+WDATA.box.top] mov bp,word[edi+window_data+WDATA.box.top]
movzx eax,word[edi+window_data+WDATA.box.width] movzx eax,word[edi+window_data+WDATA.box.width]
@ -3085,10 +3097,11 @@ draw_window_caption:
iglobal iglobal
align 4 align 4
window_topleft dd \ window_topleft dd \
1, 21,\ 1, 21,\ ;type 0
0, 0,\ 0, 0,\ ;type 1
5, 20,\ 5, 20,\ ;type 2
5, ? 5, ?,\ ;type 3 {set by skin}
5, ? ;type 4 {set by skin}
endg endg
set_window_clientbox: set_window_clientbox:
@ -3096,6 +3109,7 @@ set_window_clientbox:
mov eax,[_skinh] mov eax,[_skinh]
mov [window_topleft+4*7],eax mov [window_topleft+4*7],eax
mov [window_topleft+4*9],eax
mov ecx,edi mov ecx,edi
sub edi,window_data sub edi,window_data
@ -3181,7 +3195,12 @@ sys_set_window:
and cl,0x0F and cl,0x0F
mov [edi+APPDATA.wnd_caption],0 mov [edi+APPDATA.wnd_caption],0
cmp cl,3 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 [edi+APPDATA.wnd_caption],esi
@@: mov esi,[esp+0] @@: mov esi,[esp+0]