Subversion Repositories Kolibri OS

Rev

Rev 6369 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6369 Rev 8271
1
;----------------------------------------------------------
1
;----------------------------------------------------------
2
;-------------draw window of program-----------------------
2
;-------------draw window of program-----------------------
3
;----------------------------------------------------------
3
;----------------------------------------------------------
4
drawwin:
4
drawwin:
5
	or	ecx,-1
5
	or	ecx,-1
6
	mcall SF_THREAD_INFO,procinfo
6
	mcall SF_THREAD_INFO,procinfo
7
	mov	esi,procinfo
7
	mov	esi,procinfo
8
 
8
 
9
	mov	eax,[esi+34]
9
	mov	eax,[esi+process_information.box.left]
10
	mov	ebx,[esi+38]
10
	mov	ebx,[esi+process_information.box.top]
11
	mov	ecx,[esi+42]
11
	mov	ecx,[esi+process_information.box.width]
12
	mov	edx,[esi+46]
12
	mov	edx,[esi+process_information.box.height]
13
	mov	[Window_CordinatX],eax
13
	mov	[Window_CordinatX],eax
14
	mov	[Window_CordinatY],ebx
14
	mov	[Window_CordinatY],ebx
15
	
15
	
16
	cmp ecx,ci_wnd_min_siz_x
16
	cmp ecx,ci_wnd_min_siz_x
17
	jge @f
17
	jge @f
18
		mov ecx,ci_wnd_min_siz_x
18
		mov ecx,ci_wnd_min_siz_x
19
	@@:
19
	@@:
20
	cmp edx,ci_wnd_min_siz_y
20
	cmp edx,ci_wnd_min_siz_y
21
	jge @f
21
	jge @f
22
		mov edx,ci_wnd_min_siz_y
22
		mov edx,ci_wnd_min_siz_y
23
	@@:
23
	@@:
24
	mov	[Window_SizeX],ecx
24
	mov	[Window_SizeX],ecx
25
	mov [Window_SizeY],edx
25
	mov [Window_SizeY],edx
26
	mov	[MaxWorkScreen_SizeX],ecx
26
	mov	[MaxWorkScreen_SizeX],ecx
27
	mov	[MaxWorkScreen_SizeY],edx
27
	mov	[MaxWorkScreen_SizeY],edx
28
	sub	[MaxWorkScreen_SizeX],ci_edit_wnd_x_pos+2*ci_edit_wnd_border\
28
	sub	[MaxWorkScreen_SizeX],ci_edit_wnd_x_pos+2*ci_edit_wnd_border\
29
		+ci_scroll_dim+ci_offs_skin_w+5
29
		+ci_scroll_dim+ci_offs_skin_w+5
30
	sub	[MaxWorkScreen_SizeY],ci_edit_wnd_y_pos+2*ci_edit_wnd_border\
30
	sub	[MaxWorkScreen_SizeY],ci_edit_wnd_y_pos+2*ci_edit_wnd_border\
31
		+ci_scroll_dim+ci_offs_skin_h+5
31
		+ci_scroll_dim+ci_offs_skin_h+5
32
 
32
 
33
	cmp	[MaxWorkScreen_SizeX],0
33
	cmp	[MaxWorkScreen_SizeX],0
34
	jns	no_znak1
34
	jns	no_znak1
35
 
35
 
36
	mov	[MaxWorkScreen_SizeX],ecx
36
	mov	[MaxWorkScreen_SizeX],ecx
37
 
37
 
38
no_znak1:
38
no_znak1:
39
	cmp	[MaxWorkScreen_SizeY],0
39
	cmp	[MaxWorkScreen_SizeY],0
40
	jns	no_znak2
40
	jns	no_znak2
41
 
41
 
42
	mov	[MaxWorkScreen_SizeY],edx
42
	mov	[MaxWorkScreen_SizeY],edx
43
 
43
 
44
no_znak2:
44
no_znak2:
45
 
45
 
46
	mcall SF_REDRAW,SSF_BEGIN_DRAW
46
	mcall SF_REDRAW,SSF_BEGIN_DRAW
47
;------------------------------------------------
47
;------------------------------------------------
48
	mov	ebx,50 ;[Window_CordinatX]
48
	mov	ebx,50 shl 16 ;[Window_CordinatX]
49
	mov	ecx,50 ;[Window_CordinatY]
49
	mov	ecx,50 shl 16 ;[Window_CordinatY]
50
	shl	ebx,16
-
 
51
	shl	ecx,16
-
 
52
	add	ebx, [Window_SizeX]
50
	add	ebx, [Window_SizeX]
53
	add	ecx, [Window_SizeY]
51
	add	ecx, [Window_SizeY]
54
	mcall SF_CREATE_WINDOW,,,0x73aabbcc,,name_of_program
52
	mcall SF_CREATE_WINDOW,,,0x73aabbcc,,name_of_program
55
	
53
	
56
	mov	eax,[procinfo+70] ;staus of window
54
	mov	eax,[procinfo+70] ;staus of window
57
	test eax,100b
55
	test eax,100b
58
	jne	.end
56
	jne	.end
59
	
57
	
60
;------------------------------------------------
58
;------------------------------------------------
61
	mov	ebx,[Window_SizeX]
59
	mov	ebx,[Window_SizeX]
62
	sub	ebx,5+ci_panel_x_pos+ci_offs_skin_w-1
60
	sub	ebx,5+ci_panel_x_pos+ci_offs_skin_w-1
63
	mcall SF_DRAW_RECT,,ci_panel_y_pos,dword[syscolors+20] ; ç¨á⪠ ¯®«®áë ¤«ï ¬¥­î
61
	mcall SF_DRAW_RECT,,ci_panel_y_pos,dword[syscolors+20] ; ç¨á⪠ ¯®«®áë ¤«ï ¬¥­î
64
 
62
 
65
	call put_main_menu
63
	call put_main_menu
66
;------------------------------------------------
64
;------------------------------------------------
67
	; draw toolbard background
65
	; draw toolbard background
68
	mov ebx, ci_panel_x_pos
66
	mov ebx, ci_panel_x_pos
69
	shl ebx, 16
67
	shl ebx, 16
70
	add ebx, [Window_SizeX]
68
	add ebx, [Window_SizeX]
71
	sub	ebx, 9
69
	sub	ebx, 9
72
	mov ecx, ci_panel_y_pos
70
	mov ecx, (ci_panel_y_pos shl 16) + 51
73
	shl ecx, 16
-
 
74
	add ecx, 51
-
 
75
	mov edx, 0xD5CDCB
71
	mov edx, 0xD5CDCB
76
	mcall 13
72
	mcall SF_DRAW_RECT
77
 
-
 
78
	;mov	eax,ci_panel_x_pos
-
 
79
	;mov	ebx,ci_panel_y_pos
-
 
80
	;mov	ecx,[Window_SizeX]
-
 
81
	;mov	edx,50
-
 
82
	;mov	esi,1
-
 
83
	;sub	ecx,5+ci_panel_x_pos+ci_offs_skin_w
73
 
84
	call	draw_icons
74
	call	draw_icons
85
	call	PrintMousePos
75
	call	PrintMousePos
86
;------------------------------------------------
76
;------------------------------------------------
87
	mov ecx,[k]
77
	mov ecx,[k]
88
	call MovePictureToWorkScreen
78
	call MovePictureToWorkScreen
89
;------------------------------------------------
79
;------------------------------------------------
90
	mov	ebx,[WorkScreen_SizeX]
80
	mov	ebx,[WorkScreen_SizeX]
91
	add	ebx,ci_edit_wnd_x_pos+ci_edit_wnd_border
81
	add	ebx,ci_edit_wnd_x_pos+ci_edit_wnd_border
92
	mov	edx,[Window_SizeX]
82
	mov	edx,[Window_SizeX]
93
	sub	edx,ebx
83
	sub	edx,ebx
94
	sub	edx,ci_scroll_dim+5-ci_edit_wnd_border
84
	sub	edx,ci_scroll_dim+5-ci_edit_wnd_border
95
	shl	ebx,16
85
	shl	ebx,16
96
	mov	bx,dx ;è¨à¨­  ¡®à¤îà 
86
	mov	bx,dx ;è¨à¨­  ¡®à¤îà 
97
	
87
	
98
	mov	ecx,ci_edit_wnd_y_pos+ci_edit_wnd_border
88
	mov	ecx,ci_edit_wnd_y_pos+ci_edit_wnd_border
99
	mov	edx,[Window_SizeY]
89
	mov	edx,[Window_SizeY]
100
	sub	edx,ci_edit_wnd_y_pos+2*ci_edit_wnd_border+ci_scroll_dim+5+ci_offs_skin_h
90
	sub	edx,ci_edit_wnd_y_pos+2*ci_edit_wnd_border+ci_scroll_dim+5+ci_offs_skin_h
101
	shl	ecx,16
91
	shl	ecx,16
102
	mov	cx,dx ;¢ëá®â  ¡®à¤îà 
92
	mov	cx,dx ;¢ëá®â  ¡®à¤îà 
103
 
93
 
104
	mcall SF_DRAW_RECT,,,dword[syscolors+20] ;¡®à¤îà á¯à ¢  ®â ®ª­  ¯¥à¥¤ áªà®««¨­£®¬
94
	mcall SF_DRAW_RECT,,,dword[syscolors+20] ;¡®à¤îà á¯à ¢  ®â ®ª­  ¯¥à¥¤ áªà®««¨­£®¬
105
;------------------------------------------------
95
;------------------------------------------------
106
	mcall , ;¡®à¤îà á«¥¢  ®â ®ª­ 
96
	mcall , ;¡®à¤îà á«¥¢  ®â ®ª­ 
107
;------------------------------------------------
97
;------------------------------------------------
108
	mov	ebx,ci_edit_wnd_x_pos
98
	mov	ebx,ci_edit_wnd_x_pos
109
	mov	edx,[Window_SizeX]
99
	mov	edx,[Window_SizeX]
110
	sub	edx,ci_scroll_dim+5+ci_edit_wnd_x_pos
100
	sub	edx,ci_scroll_dim+5+ci_edit_wnd_x_pos
111
	shl	ebx,16
101
	shl	ebx,16
112
	mov	bx,dx ;è¨à¨­  ¡®à¤îà 
102
	mov	bx,dx ;è¨à¨­  ¡®à¤îà 
113
 
103
 
114
	mov	ecx,[WorkScreen_SizeY]
104
	mov	ecx,[WorkScreen_SizeY]
115
	add	ecx,ci_edit_wnd_y_pos+ci_edit_wnd_border
105
	add	ecx,ci_edit_wnd_y_pos+ci_edit_wnd_border
116
	mov	edx,[Window_SizeY]
106
	mov	edx,[Window_SizeY]
117
	sub	edx,ecx
107
	sub	edx,ecx
118
	sub	edx,ci_scroll_dim+5+ci_offs_skin_h;ci_edit_wnd_border
108
	sub	edx,ci_scroll_dim+5+ci_offs_skin_h;ci_edit_wnd_border
119
	shl	ecx,16
109
	shl	ecx,16
120
	mov	cx,dx ;¢ëá®â  ¡®à¤îà 
110
	mov	cx,dx ;¢ëá®â  ¡®à¤îà 
121
 
111
 
122
	mcall SF_DRAW_RECT,,,dword[syscolors+20] ;¡®à¤îà ¯®¤ ®ª­®¬ ¨ ­ ¤ áªà®««¨­£®¬
112
	mcall SF_DRAW_RECT,,,dword[syscolors+20] ;¡®à¤îà ¯®¤ ®ª­®¬ ¨ ­ ¤ áªà®««¨­£®¬
123
;------------------------------------------------
113
;------------------------------------------------
124
	mcall ,, ;¡®à¤îà ¯®¤ ¯ ­¥«ìî ¨ ­ ¤ ®ª­®¬
114
	mcall ,, ;¡®à¤îà ¯®¤ ¯ ­¥«ìî ¨ ­ ¤ ®ª­®¬
125
;------------------------------------------------
115
;------------------------------------------------
126
	mov	eax,ci_edit_wnd_x_pos
116
	mov	eax,ci_edit_wnd_x_pos
127
	mov	ebx,[Window_SizeY]
117
	mov	ebx,[Window_SizeY]
128
	mov	ecx,[Window_SizeX]
118
	mov	ecx,[Window_SizeX]
129
	mov	edx,ci_scroll_dim
119
	mov	edx,ci_scroll_dim
130
	mov	esi,3
120
	mov	esi,3
131
	sub	ecx,ci_scroll_dim+5+ci_edit_wnd_x_pos+ci_offs_skin_w
121
	sub	ecx,ci_scroll_dim+5+ci_edit_wnd_x_pos+ci_offs_skin_w
132
	sub	ebx,ci_scroll_dim+5+ci_offs_skin_h
122
	sub	ebx,ci_scroll_dim+5+ci_offs_skin_h
133
	call draw_volume_rectangle ; horizontal scrollbar border
123
	call draw_volume_rectangle ; horizontal scrollbar border
134
;------------------------------------------------
124
;------------------------------------------------
135
	mov	eax,[Window_SizeX]
125
	mov	eax,[Window_SizeX]
136
	mov	ebx,ci_edit_wnd_y_pos
126
	mov	ebx,ci_edit_wnd_y_pos
137
	mov	ecx,ci_scroll_dim
127
	mov	ecx,ci_scroll_dim
138
	mov	edx,[Window_SizeY]
128
	mov	edx,[Window_SizeY]
139
	mov	esi,3
129
	mov	esi,3
140
	sub	eax,ci_scroll_dim+5+ci_offs_skin_w
130
	sub	eax,ci_scroll_dim+5+ci_offs_skin_w
141
	sub	edx,ci_scroll_dim+5+ci_edit_wnd_y_pos+ci_offs_skin_h
131
	sub	edx,ci_scroll_dim+5+ci_edit_wnd_y_pos+ci_offs_skin_h
142
	call draw_volume_rectangle ; vertical scrollbar border
132
	call draw_volume_rectangle ; vertical scrollbar border
143
	call draw_scrollers
133
	call draw_scrollers
144
;------------------------------------------------
134
;------------------------------------------------
145
	mov	eax,[Window_SizeX]
135
	mov	eax,[Window_SizeX]
146
	mov	ebx,[Window_SizeY]
136
	mov	ebx,[Window_SizeY]
147
	mov	ecx,ci_scroll_dim
137
	mov	ecx,ci_scroll_dim
148
	mov	edx,ci_scroll_dim
138
	mov	edx,ci_scroll_dim
149
	mov	esi,6
139
	mov	esi,6
150
	sub	eax,ci_scroll_dim+5+ci_offs_skin_w
140
	sub	eax,ci_scroll_dim+5+ci_offs_skin_w
151
	sub	ebx,ci_scroll_dim+5+ci_offs_skin_h
141
	sub	ebx,ci_scroll_dim+5+ci_offs_skin_h
152
	call draw_volume_rectangle ; down and right small area
142
	call draw_volume_rectangle ; down and right small area
153
;------------------------------------------------
143
;------------------------------------------------
154
.end:
144
.end:
155
	mcall SF_REDRAW,SSF_END_DRAW
145
	mcall SF_REDRAW,SSF_END_DRAW
156
	ret
146
	ret
157
;-----------------------------------------------------------------------------
147
;-----------------------------------------------------------------------------