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:
parent
f6fbed07ac
commit
d7d49c0feb
@ -22,6 +22,7 @@
|
||||
* Y=1 - ⮫쪮 ®¯à¥¤¥«¨âì ®¡« áâì ®ª , ¨ç¥£® ¥ à¨á®¢ âì
|
||||
* Y=2 - ⨯ II - ®ª® ¨§¬¥ï¥¬ëå à §¬¥à®¢
|
||||
* Y=3 - ®ª® ᮠ᪨®¬
|
||||
* Y=4 - ®ª® ᮠ᪨®¬ ¨ 䨪á¨à®¢ 묨 à §¬¥à ¬¨
|
||||
* ®áâ «ìë¥ ¢®§¬®¦ë¥ § 票ï (®â 4 ¤® 15) § १¥à¢¨à®¢ ë,
|
||||
¢ë§®¢ äãªæ¨¨ á â ª¨¬¨ Y ¨£®à¨àã¥âáï
|
||||
* RR, GG, BB = ᮮ⢥âá⢥® ªà á ï, §¥«¥ ï, á¨ïï
|
||||
|
@ -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,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]
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user