Subversion Repositories Kolibri OS

Rev

Rev 6367 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6367 Rev 6369
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+34]
10
	mov	ebx,[esi+38]
10
	mov	ebx,[esi+38]
11
	mov	ecx,[esi+42]
11
	mov	ecx,[esi+42]
12
	mov	edx,[esi+46]
12
	mov	edx,[esi+46]
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 ;[Window_CordinatX]
49
	mov	ecx,50 ;[Window_CordinatY]
49
	mov	ecx,50 ;[Window_CordinatY]
50
	shl	ebx,16
50
	shl	ebx,16
51
	shl	ecx,16
51
	shl	ecx,16
52
	add	ebx, [Window_SizeX]
52
	add	ebx, [Window_SizeX]
53
	add	ecx, [Window_SizeY]
53
	add	ecx, [Window_SizeY]
54
	mcall SF_CREATE_WINDOW,,,0x73aabbcc,,name_of_program
54
	mcall SF_CREATE_WINDOW,,,0x73aabbcc,,name_of_program
55
	
55
	
56
	mov	eax,[procinfo+70] ;staus of window
56
	mov	eax,[procinfo+70] ;staus of window
57
	test eax,100b
57
	test eax,100b
58
	jne	.end
58
	jne	.end
59
	
59
	
60
;------------------------------------------------
60
;------------------------------------------------
61
	mov	ebx,[Window_SizeX]
61
	mov	ebx,[Window_SizeX]
62
	sub	ebx,5+ci_panel_x_pos+ci_offs_skin_w-1
62
	sub	ebx,5+ci_panel_x_pos+ci_offs_skin_w-1
63
	mcall SF_DRAW_RECT,,ci_panel_y_pos,dword[syscolors+20] ; ç¨á⪠ ¯®«®áë ¤«ï ¬¥­î
63
	mcall SF_DRAW_RECT,,ci_panel_y_pos,dword[syscolors+20] ; ç¨á⪠ ¯®«®áë ¤«ï ¬¥­î
64
 
64
 
65
	call put_main_menu
65
	call put_main_menu
66
;------------------------------------------------
66
;------------------------------------------------
67
	; draw toolbard background
67
	; draw toolbard background
68
	mov ebx, ci_panel_x_pos
68
	mov ebx, ci_panel_x_pos
69
	shl ebx, 16
69
	shl ebx, 16
70
	add ebx, [Window_SizeX]
70
	add ebx, [Window_SizeX]
71
	sub	ebx, 9
71
	sub	ebx, 9
72
	mov ecx, ci_panel_y_pos
72
	mov ecx, ci_panel_y_pos
73
	shl ecx, 16
73
	shl ecx, 16
74
	add ecx, 51
74
	add ecx, 51
75
	mov edx, 0xD5CDCB
75
	mov edx, 0xD5CDCB
76
	mcall 13
76
	mcall 13
77
 
77
 
78
	mov	eax,ci_panel_x_pos
78
	;mov	eax,ci_panel_x_pos
79
	mov	ebx,ci_panel_y_pos
79
	;mov	ebx,ci_panel_y_pos
80
	mov	ecx,[Window_SizeX]
80
	;mov	ecx,[Window_SizeX]
81
	mov	edx,50
81
	;mov	edx,50
82
	mov	esi,1
82
	;mov	esi,1
83
	sub	ecx,5+ci_panel_x_pos+ci_offs_skin_w
83
	;sub	ecx,5+ci_panel_x_pos+ci_offs_skin_w
84
	call	draw_icons
84
	call	draw_icons
85
	call	PrintMousePos
85
	call	PrintMousePos
86
;------------------------------------------------
86
;------------------------------------------------
87
	mov ecx,[k]
87
	mov ecx,[k]
88
	call MovePictureToWorkScreen
88
	call MovePictureToWorkScreen
89
;------------------------------------------------
89
;------------------------------------------------
90
	mov	ebx,[WorkScreen_SizeX]
90
	mov	ebx,[WorkScreen_SizeX]
91
	add	ebx,ci_edit_wnd_x_pos+ci_edit_wnd_border
91
	add	ebx,ci_edit_wnd_x_pos+ci_edit_wnd_border
92
	mov	edx,[Window_SizeX]
92
	mov	edx,[Window_SizeX]
93
	sub	edx,ebx
93
	sub	edx,ebx
94
	sub	edx,ci_scroll_dim+5-ci_edit_wnd_border
94
	sub	edx,ci_scroll_dim+5-ci_edit_wnd_border
95
	shl	ebx,16
95
	shl	ebx,16
96
	mov	bx,dx ;è¨à¨­  ¡®à¤îà 
96
	mov	bx,dx ;è¨à¨­  ¡®à¤îà 
97
	
97
	
98
	mov	ecx,ci_edit_wnd_y_pos+ci_edit_wnd_border
98
	mov	ecx,ci_edit_wnd_y_pos+ci_edit_wnd_border
99
	mov	edx,[Window_SizeY]
99
	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
100
	sub	edx,ci_edit_wnd_y_pos+2*ci_edit_wnd_border+ci_scroll_dim+5+ci_offs_skin_h
101
	shl	ecx,16
101
	shl	ecx,16
102
	mov	cx,dx ;¢ëá®â  ¡®à¤îà 
102
	mov	cx,dx ;¢ëá®â  ¡®à¤îà 
103
 
103
 
104
	mcall SF_DRAW_RECT,,,dword[syscolors+20] ;¡®à¤îà á¯à ¢  ®â ®ª­  ¯¥à¥¤ áªà®««¨­£®¬
104
	mcall SF_DRAW_RECT,,,dword[syscolors+20] ;¡®à¤îà á¯à ¢  ®â ®ª­  ¯¥à¥¤ áªà®««¨­£®¬
105
;------------------------------------------------
105
;------------------------------------------------
106
	mcall , ;¡®à¤îà á«¥¢  ®â ®ª­ 
106
	mcall , ;¡®à¤îà á«¥¢  ®â ®ª­ 
107
;------------------------------------------------
107
;------------------------------------------------
108
	mov	ebx,ci_edit_wnd_x_pos
108
	mov	ebx,ci_edit_wnd_x_pos
109
	mov	edx,[Window_SizeX]
109
	mov	edx,[Window_SizeX]
110
	sub	edx,ci_scroll_dim+5+ci_edit_wnd_x_pos
110
	sub	edx,ci_scroll_dim+5+ci_edit_wnd_x_pos
111
	shl	ebx,16
111
	shl	ebx,16
112
	mov	bx,dx ;è¨à¨­  ¡®à¤îà 
112
	mov	bx,dx ;è¨à¨­  ¡®à¤îà 
113
 
113
 
114
	mov	ecx,[WorkScreen_SizeY]
114
	mov	ecx,[WorkScreen_SizeY]
115
	add	ecx,ci_edit_wnd_y_pos+ci_edit_wnd_border
115
	add	ecx,ci_edit_wnd_y_pos+ci_edit_wnd_border
116
	mov	edx,[Window_SizeY]
116
	mov	edx,[Window_SizeY]
117
	sub	edx,ecx
117
	sub	edx,ecx
118
	sub	edx,ci_scroll_dim+5+ci_offs_skin_h;ci_edit_wnd_border
118
	sub	edx,ci_scroll_dim+5+ci_offs_skin_h;ci_edit_wnd_border
119
	shl	ecx,16
119
	shl	ecx,16
120
	mov	cx,dx ;¢ëá®â  ¡®à¤îà 
120
	mov	cx,dx ;¢ëá®â  ¡®à¤îà 
121
 
121
 
122
	mcall SF_DRAW_RECT,,,dword[syscolors+20] ;¡®à¤îà ¯®¤ ®ª­®¬ ¨ ­ ¤ áªà®««¨­£®¬
122
	mcall SF_DRAW_RECT,,,dword[syscolors+20] ;¡®à¤îà ¯®¤ ®ª­®¬ ¨ ­ ¤ áªà®««¨­£®¬
123
;------------------------------------------------
123
;------------------------------------------------
124
	mcall ,, ;¡®à¤îà ¯®¤ ¯ ­¥«ìî ¨ ­ ¤ ®ª­®¬
124
	mcall ,, ;¡®à¤îà ¯®¤ ¯ ­¥«ìî ¨ ­ ¤ ®ª­®¬
125
;------------------------------------------------
125
;------------------------------------------------
126
	mov	eax,ci_edit_wnd_x_pos
126
	mov	eax,ci_edit_wnd_x_pos
127
	mov	ebx,[Window_SizeY]
127
	mov	ebx,[Window_SizeY]
128
	mov	ecx,[Window_SizeX]
128
	mov	ecx,[Window_SizeX]
129
	mov	edx,ci_scroll_dim
129
	mov	edx,ci_scroll_dim
130
	mov	esi,3
130
	mov	esi,3
131
	sub	ecx,ci_scroll_dim+5+ci_edit_wnd_x_pos+ci_offs_skin_w
131
	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
132
	sub	ebx,ci_scroll_dim+5+ci_offs_skin_h
133
	call draw_volume_rectangle ; horizontal scrollbar border
133
	call draw_volume_rectangle ; horizontal scrollbar border
134
;------------------------------------------------
134
;------------------------------------------------
135
	mov	eax,[Window_SizeX]
135
	mov	eax,[Window_SizeX]
136
	mov	ebx,ci_edit_wnd_y_pos
136
	mov	ebx,ci_edit_wnd_y_pos
137
	mov	ecx,ci_scroll_dim
137
	mov	ecx,ci_scroll_dim
138
	mov	edx,[Window_SizeY]
138
	mov	edx,[Window_SizeY]
139
	mov	esi,3
139
	mov	esi,3
140
	sub	eax,ci_scroll_dim+5+ci_offs_skin_w
140
	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
141
	sub	edx,ci_scroll_dim+5+ci_edit_wnd_y_pos+ci_offs_skin_h
142
	call draw_volume_rectangle ; vertical scrollbar border
142
	call draw_volume_rectangle ; vertical scrollbar border
143
	call draw_scrollers
143
	call draw_scrollers
144
;------------------------------------------------
144
;------------------------------------------------
145
	mov	eax,[Window_SizeX]
145
	mov	eax,[Window_SizeX]
146
	mov	ebx,[Window_SizeY]
146
	mov	ebx,[Window_SizeY]
147
	mov	ecx,ci_scroll_dim
147
	mov	ecx,ci_scroll_dim
148
	mov	edx,ci_scroll_dim
148
	mov	edx,ci_scroll_dim
149
	mov	esi,6
149
	mov	esi,6
150
	sub	eax,ci_scroll_dim+5+ci_offs_skin_w
150
	sub	eax,ci_scroll_dim+5+ci_offs_skin_w
151
	sub	ebx,ci_scroll_dim+5+ci_offs_skin_h
151
	sub	ebx,ci_scroll_dim+5+ci_offs_skin_h
152
	call draw_volume_rectangle ; down and right small area
152
	call draw_volume_rectangle ; down and right small area
153
;------------------------------------------------
153
;------------------------------------------------
154
.end:
154
.end:
155
	mcall SF_REDRAW,SSF_END_DRAW
155
	mcall SF_REDRAW,SSF_END_DRAW
156
	ret
156
	ret
157
;-----------------------------------------------------------------------------
157
;-----------------------------------------------------------------------------