forked from KolibriOS/kolibrios
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:
@@ -22,6 +22,7 @@
|
||||
* Y=1 - ⮫쪮 <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><>祣<EFBFBD> <20><> <20><>ᮢ<EFBFBD><E1AEA2><EFBFBD>
|
||||
* Y=2 - ⨯ II - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>塞<EFBFBD><EFA5AC> ࠧ<><E0A0A7>
|
||||
* Y=3 - <20><><EFBFBD><EFBFBD> <20><> ᪨<><E1AAA8><EFBFBD>
|
||||
* Y=4 - <20><><EFBFBD><EFBFBD> <20><> ᪨<><E1AAA8><EFBFBD> <20> 䨪<><E4A8AA><EFBFBD><E0AEA2><EFBFBD>묨 ࠧ<><E0A0A7>ࠬ<EFBFBD>
|
||||
* <20><>⠫<EFBFBD><E2A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> (<28><> 4 <20><> 15) <20><>१<EFBFBD>ࢨ<E0A2A8><E0AEA2><EFBFBD>,
|
||||
<20>맮<EFBFBD> <20>㭪樨 <20> ⠪<><E2A0AA><EFBFBD> Y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* RR, GG, BB = ᮮ⢥<E1AEAE><E2A2A5>⢥<EFBFBD><E2A2A5><EFBFBD> <20><><EFBFBD>᭠<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, ᨭ<><E1A8AD>
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -2953,7 +2953,10 @@ 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
|
||||
@@ -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]
|
||||
|
||||
|
Reference in New Issue
Block a user