forked from KolibriOS/kolibrios
6f44ae55dd
fix scroll broken in 6352, fix keyboard function git-svn-id: svn://kolibrios.org@6357 a494cfbc-eb01-0410-851d-a64ba20cac60
146 lines
3.8 KiB
PHP
146 lines
3.8 KiB
PHP
;----------------------------------------------------------
|
||
;-------------draw window of program-----------------------
|
||
;----------------------------------------------------------
|
||
drawwin:
|
||
or ecx,-1
|
||
mcall SF_THREAD_INFO,procinfo
|
||
mov esi,procinfo
|
||
|
||
mov eax,[esi+34]
|
||
mov ebx,[esi+38]
|
||
mov ecx,[esi+42]
|
||
mov edx,[esi+46]
|
||
mov [Window_CordinatX],eax
|
||
mov [Window_CordinatY],ebx
|
||
|
||
cmp ecx,585
|
||
jae @f
|
||
mov ecx,585 ;minimum size x
|
||
@@:
|
||
cmp [Window_SizeY],400
|
||
jae @f
|
||
mov edx,400 ;minimum size y
|
||
@@:
|
||
mov [Window_SizeX],ecx
|
||
mov [Window_SizeY],edx
|
||
|
||
mov [MaxWorkScreen_SizeX],ecx
|
||
mov [MaxWorkScreen_SizeY],edx
|
||
sub [MaxWorkScreen_SizeX],ci_edit_wnd_x_pos+2*ci_edit_wnd_border+34
|
||
sub [MaxWorkScreen_SizeY],ci_edit_wnd_y_pos+2*ci_edit_wnd_border+34
|
||
|
||
cmp [MaxWorkScreen_SizeX],0
|
||
jns no_znak1
|
||
|
||
mov [MaxWorkScreen_SizeX],ecx
|
||
|
||
no_znak1:
|
||
cmp [MaxWorkScreen_SizeY],0
|
||
jns no_znak2
|
||
|
||
mov [MaxWorkScreen_SizeY],edx
|
||
|
||
no_znak2:
|
||
|
||
mcall SF_REDRAW,SSF_BEGIN_DRAW
|
||
;------------------------------------------------
|
||
mov ebx,50 ;[Window_CordinatX]
|
||
mov ecx,50 ;[Window_CordinatY]
|
||
shl ebx,16
|
||
shl ecx,16
|
||
add ebx,[Window_SizeX]
|
||
add ecx,[Window_SizeY]
|
||
mcall SF_CREATE_WINDOW,,,0x53aabbcc,,name_of_program
|
||
|
||
mov eax,[procinfo+70] ;staus of window
|
||
test eax,100b
|
||
jne .end
|
||
|
||
;------------------------------------------------
|
||
mov eax,5
|
||
mov ebx,20
|
||
mov ecx,[Window_SizeX]
|
||
mov edx,15
|
||
mov esi,6
|
||
sub ecx,10
|
||
call draw_volume_rectangle ; top menu - file and etc.
|
||
|
||
mov [counter],7
|
||
mov edi,panel_text
|
||
call print_panel_text
|
||
;------------------------------------------------
|
||
mov eax,5
|
||
mov ebx,20+15+1
|
||
mov ecx,[Window_SizeX]
|
||
mov edx,50
|
||
mov esi,1
|
||
sub ecx,10
|
||
call draw_volume_rectangle ; tools panel
|
||
call draw_icons
|
||
call PrintMousePos
|
||
;------------------------------------------------
|
||
mov ecx,[k]
|
||
call MovePictureToWorkScreen
|
||
;------------------------------------------------
|
||
mov ebx,[WorkScreen_SizeX]
|
||
add ebx,ci_edit_wnd_x_pos+ci_edit_wnd_border
|
||
shl ebx,16
|
||
mov bx,ci_edit_wnd_border ;<EFBFBD><EFBFBD>ਭ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
mov ecx,ci_edit_wnd_y_pos+ci_edit_wnd_border
|
||
mov edx,[Window_SizeY]
|
||
sub edx,ci_edit_wnd_y_pos+2*ci_edit_wnd_border+34
|
||
shl ecx,16
|
||
mov cx,dx ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
mcall SF_DRAW_RECT,,,0xc7cbcf ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ࠢ<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>। <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
;------------------------------------------------
|
||
mcall ,<ci_edit_wnd_x_pos,ci_edit_wnd_border> ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
;------------------------------------------------
|
||
mov ebx,ci_edit_wnd_x_pos
|
||
mov edx,[Window_SizeX]
|
||
sub edx,25+10+ci_edit_wnd_x_pos
|
||
shl ebx,16
|
||
mov bx,dx ;<EFBFBD><EFBFBD>ਭ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
mov ecx,[WorkScreen_SizeY]
|
||
add ecx,ci_edit_wnd_y_pos+ci_edit_wnd_border
|
||
shl ecx,16
|
||
mov cx,ci_edit_wnd_border ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
mcall SF_DRAW_RECT,,,0xc7cbcf ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
;------------------------------------------------
|
||
mcall ,,<ci_edit_wnd_y_pos,ci_edit_wnd_border> ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
;------------------------------------------------
|
||
mov eax,ci_edit_wnd_x_pos
|
||
mov ebx,[Window_SizeY]
|
||
mov ecx,[Window_SizeX]
|
||
mov edx,20+10
|
||
mov esi,3
|
||
sub ecx,35+ci_edit_wnd_x_pos
|
||
sub ebx,25+10
|
||
call draw_volume_rectangle ; horizontal scrollbar border
|
||
;------------------------------------------------
|
||
mov eax,[Window_SizeX]
|
||
mov ebx,ci_edit_wnd_y_pos
|
||
mov ecx,20+10
|
||
mov edx,[Window_SizeY]
|
||
mov esi,3
|
||
sub eax,25+10
|
||
sub edx,35+ci_edit_wnd_y_pos
|
||
call draw_volume_rectangle ; vertical scrollbar border
|
||
call draw_scrollers
|
||
;------------------------------------------------
|
||
mov eax,[Window_SizeX]
|
||
mov ebx,[Window_SizeY]
|
||
mov ecx,20+10
|
||
mov edx,20+10
|
||
mov esi,6
|
||
sub eax,25+10
|
||
sub ebx,25+10
|
||
call draw_volume_rectangle ; down and right small area
|
||
;------------------------------------------------
|
||
.end:
|
||
mcall SF_REDRAW,SSF_END_DRAW
|
||
ret
|
||
;----------------------------------------------------------------------------- |