Subversion Repositories Kolibri OS

Rev

Rev 6169 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3435 mario79 1
;----------------------------------------------------------------------
2
area:
3
  .x      = 5	;345
4
  .y      = 5	;20
5
  .width  = 206
6
  .height = 191
7
;--------------------------------------
6170 leency 8
wnd3:
9
  .x      = area.x+32
3435 mario79 10
  .y      = area.y+35
6170 leency 11
  .width  = 160
12
  .height = 100
3435 mario79 13
;--------------------------------------
14
wnd4:
6170 leency 15
  .x      = area.x+15
16
  .y      = area.y+70
17
  .width  = 160
18
  .height = 100
3435 mario79 19
;--------------------------------------
20
virtual at edi+SKIN_PARAMS.dtp.data
21
	dtp system_colors
22
end virtual
23
;----------------------------------------------------------------------
24
draw_skin:
25
	mcall	13,,,0x00FFFFFF
26
	mov	ebp,not_packed_area
27
	mov	edi,[ebp+SKIN_HEADER.params]
28
	add	edi,ebp
29
	mpack	ebx,wnd3.x,wnd3.width
30
	mpack	ecx,wnd3.y,wnd3.height
31
	mov	edx,[edi+SKIN_PARAMS.colors_1.outer]
32
	call	draw_framerect
33
	mpack	ebx,wnd3.x+4,wnd3.width-8
34
	mpack	ecx,wnd3.y+4,wnd3.height-8
35
	mov	edx,[edi+SKIN_PARAMS.colors_1.inner]
36
	call	draw_framerect
37
	mcall	13,,,[edi+SKIN_PARAMS.colors_1.frame]
38
	add	ecx,(wnd3.height-5)*65536
39
	mcall
40
	mcall	,,
41
	add	ebx,(wnd3.width-5)*65536
42
	mcall
43
	mcall	,,,dword[dtp.work]
44
 
45
	mov	eax,0x00000001 ; left, inactive
46
	call	find_bitmap
47
	mcall	7,,,
48
 
49
	pushd	[ebx-8]
50
	mov	eax,0x00000003 ; base, inactive
51
	call	find_bitmap
52
	pop	edx
53
	mov	esi,wnd3.x+wnd3.width-1
54
	sub	esi,edx
55
	shl	edx,16
56
	add	edx,wnd3.x*65536+wnd3.y
57
	mcall	7
58
;--------------------------------------
59
@@:
60
	rol	edx,16
61
	add	dx,[ebx-8]
62
	cmp	dx,si
63
	ja	@f
64
 
65
	rol	edx,16
66
	mcall	7
67
	jmp	@b
68
;--------------------------------------
69
@@:
70
	mov	eax,0x00000002 ; oper, inactive
71
	call	find_bitmap
72
	mov	edx,ecx
73
	shr	edx,16
74
	neg	edx
75
	shl	edx,16
76
	add	edx,(wnd3.x+wnd3.width)*65536+wnd3.y
77
	mcall	7
78
 
79
	mov	ebp,not_packed_area
80
	mov	edi,[ebp+SKIN_HEADER.params]
81
	add	edi,ebp
82
	mov	eax,dword[edi+SKIN_PARAMS.margin.left-2]
83
	mov	ax,word[edi+SKIN_PARAMS.skin_height]
84
	sub	ax,[edi+SKIN_PARAMS.margin.bottom]
85
	shr	ax,1
86
	add	ax,[edi+SKIN_PARAMS.margin.top]
6170 leency 87
	add	ax,-9
3435 mario79 88
	push	eax
89
	lea	ebx,[eax+wnd3.x*65536+wnd3.y]
6170 leency 90
	mov ecx,dword[dtp.grab_text]
91
	add ecx,0x10000000
92
	mcall	4,,,caption_text,caption_text.size
3435 mario79 93
;---------------------------------------------------------
94
	mov	edi,[ebp+SKIN_HEADER.params]
95
	add	edi,ebp
96
	mpack	ebx,wnd4.x,wnd4.width
97
	mpack	ecx,wnd4.y,wnd4.height
98
	mov	edx,[edi+SKIN_PARAMS.colors.outer]
99
	call	draw_framerect
100
	mpack	ebx,wnd4.x+4,wnd4.width-8
101
	mpack	ecx,wnd4.y+4,wnd4.height-8
102
	mov	edx,[edi+SKIN_PARAMS.colors.inner]
103
	call	draw_framerect
104
	mcall	13,,,[edi+SKIN_PARAMS.colors.frame]
105
	add	ecx,(wnd4.height-5)*65536
106
	mcall
107
	mcall	,,
108
	add	ebx,(wnd4.width-5)*65536
109
	mcall
110
	mcall	,,,dword[dtp.work]
111
 
112
	mov	eax,0x00010001 ; left, inactive
113
	call	find_bitmap
114
	mcall	7,,,
115
 
116
	pushd	[ebx-8]
117
	mov	eax,0x00010003 ; base, inactive
118
	call	find_bitmap
119
	pop	edx
120
	mov	esi,wnd4.x+wnd4.width-1
121
	sub	esi,edx
122
	shl	edx,16
123
	add	edx,wnd4.x*65536+wnd4.y
124
	mcall	7
125
;--------------------------------------
126
@@:
127
	rol	edx,16
128
	add	dx,[ebx-8]
129
	cmp	dx,si
130
	ja	@f
131
 
132
	rol	edx,16
133
	mcall	7
134
	jmp	@b
135
;--------------------------------------
136
@@:
137
	mov	eax,0x00010002 ; oper, inactive
138
	call	find_bitmap
139
	mov	edx,ecx
140
	shr	edx,16
141
	neg	edx
142
	shl	edx,16
143
	add	edx,(wnd4.x+wnd4.width)*65536+wnd4.y
144
	mcall	7
145
 
146
	mov	ebp,not_packed_area
147
	mov	edi,[ebp+SKIN_HEADER.params]
148
	add	edi,ebp
149
	pop	eax
150
	lea	ebx,[eax+wnd4.x*65536+wnd4.y]
6170 leency 151
	mov ecx,dword[dtp.grab_text]
152
	add ecx,0x10000000
153
	mcall	4,,,caption_text,caption_text.size
3435 mario79 154
;----------------------------------------------------------------------
155
	mov	edi,[ebp+SKIN_HEADER.buttons]
156
	add	edi,ebp
157
;--------------------------------------
158
.lp1:
159
	cmp	dword[edi],0
160
	je	.lp2
161
 
162
	mov	ebx,dword[edi+SKIN_BUTTONS.left-2]
163
	mov	bx,[edi+SKIN_BUTTONS.width]
164
	mov	ecx,dword[edi+SKIN_BUTTONS.top-2]
165
	mov	cx,[edi+SKIN_BUTTONS.height]
166
	add	ebx,(wnd4.x+wnd4.width)*65536
167
	add	ecx,wnd4.y*65536
168
	dec	ebx
169
	dec	ecx
170
	mcall	8,,,0x40000000
171
	add	edi,12
172
	jmp	.lp1
173
;--------------------------------------
174
.lp2:
175
	mov	edi,[ebp+SKIN_HEADER.params]
176
	add	edi,ebp
177
	mpack	ebx,wnd4.x+10,wnd4.y+10
178
	add	bx,word[edi+SKIN_PARAMS.skin_height]
179
	mcall	4,,[dtp.work_text],window_text,window_text.size
180
 
181
	mov	ecx,[edi+SKIN_PARAMS.skin_height]
182
	shl	ecx,16
183
	add	ecx,(wnd4.y+8)*65536+10
184
	mcall	13,
185
			(wnd4.x+window_text.size*6+20)>,,[dtp.work_graph]
186
 
6170 leency 187
	add	ecx,25*65536+10
3435 mario79 188
	mcall	8,
189
			button_text.size*6+11>,,0,[dtp.work_button]
190
 
191
	shr	ecx,16
192
	mov	bx,cx
6170 leency 193
	add	ebx,0x00060007
3435 mario79 194
	mcall	4,,[dtp.work_button_text],button_text,button_text.size
195
	ret
196
;---------------------------------------------------------------------
197
find_bitmap:
198
	mov	edi,[ebp+SKIN_HEADER.bitmaps]
199
	add	edi,ebp
200
	xor	ebx,ebx
201
;--------------------------------------
202
.lp1:
203
	cmp	dword[edi],0
204
	je	.lp2
205
 
206
	cmp	dword[edi+0],eax
207
	jne	@f
208
;--------------------------------------
209
	mov	ebx,[edi+SKIN_BITMAPS._data]
210
	add	ebx,ebp
211
	mov	ecx,[ebx-2]
212
	mov	cx,[ebx+4]
213
	add	ebx,8
214
;--------------------------------------
215
.lp2:
216
	ret
217
;--------------------------------------
218
@@:
219
	add	edi,8
220
	jmp	.lp1
221
;----------------------------------------------------------------------
222
dec_edx:
223
	sub	dl,4
224
	jnc	@f
225
 
226
	xor	dl,dl
227
;--------------------------------------
228
@@:
229
	sub	dh,4
230
	jnc	@f
231
 
232
	xor	dh,dh
233
;--------------------------------------
234
@@:
235
	rol	edx,16
236
	sub	dl,4
237
	jnc	@f
238
 
239
	xor	dl,dl
240
;--------------------------------------
241
@@:
242
	rol	edx,16
243
	ret
244
;---------------------------------------------------------------------
245
draw_framerect: ; ebx,ecx
246
	push	ebx ecx
247
	add	bx,[esp+6]
248
	mov	cx,[esp+2]
249
	dec	ebx
250
	mcall	38
251
	add	cx,[esp]
252
	rol	ecx,16
253
	add	cx,[esp]
254
	sub	ecx,0x00010001
255
	mcall
256
	mov	ebx,[esp+4]
257
	mov	ecx,[esp]
258
	mov	bx,[esp+6]
259
	add	cx,[esp+2]
260
	dec	ecx
261
	mcall
262
	add	bx,[esp+4]
263
	rol	ebx,16
264
	add	bx,[esp+4]
265
	sub	ebx,0x00010001
266
	mcall
267
	add	esp,8
268
	ret
269
;----------------------------------------------------------------------