Subversion Repositories Kolibri OS

Rev

Rev 6170 | 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
8992 leency 5
  .w  = 226
6
  .height = 220
3435 mario79 7
;--------------------------------------
6170 leency 8
wnd3:
8992 leency 9
  .x      = area.x+37
3435 mario79 10
  .y      = area.y+35
8992 leency 11
  .w  = 170
12
  .height = 105
3435 mario79 13
;--------------------------------------
14
wnd4:
8992 leency 15
  .x      = area.x+20
16
  .y      = area.y+75
17
  .w  = 170
18
  .height = 105
3435 mario79 19
;--------------------------------------
20
virtual at edi+SKIN_PARAMS.dtp.data
21
	dtp system_colors
22
end virtual
23
;----------------------------------------------------------------------
24
draw_skin:
8992 leency 25
	mcall	13,,,0x00FFFFFF
3435 mario79 26
	mov	ebp,not_packed_area
27
	mov	edi,[ebp+SKIN_HEADER.params]
28
	add	edi,ebp
8992 leency 29
	mpack	ebx,wnd3.x,wnd3.w
3435 mario79 30
	mpack	ecx,wnd3.y,wnd3.height
31
	mov	edx,[edi+SKIN_PARAMS.colors_1.outer]
32
	call	draw_framerect
8992 leency 33
	mpack	ebx,wnd3.x+4,wnd3.w-8
3435 mario79 34
	mpack	ecx,wnd3.y+4,wnd3.height-8
35
	mov	edx,[edi+SKIN_PARAMS.colors_1.inner]
36
	call	draw_framerect
8992 leency 37
	mcall	13,,,[edi+SKIN_PARAMS.colors_1.frame]
3435 mario79 38
	add	ecx,(wnd3.height-5)*65536
39
	mcall
40
	mcall	,,
8992 leency 41
	add	ebx,(wnd3.w-5)*65536
3435 mario79 42
	mcall
8992 leency 43
	mcall	,,,dword[dtp.work]
3435 mario79 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
8992 leency 53
	mov	esi,wnd3.x+wnd3.w-1
3435 mario79 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
8992 leency 76
	add	edx,(wnd3.x+wnd3.w)*65536+wnd3.y
3435 mario79 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
8992 leency 96
	mpack	ebx,wnd4.x,wnd4.w
3435 mario79 97
	mpack	ecx,wnd4.y,wnd4.height
98
	mov	edx,[edi+SKIN_PARAMS.colors.outer]
99
	call	draw_framerect
8992 leency 100
	mpack	ebx,wnd4.x+4,wnd4.w-8
3435 mario79 101
	mpack	ecx,wnd4.y+4,wnd4.height-8
102
	mov	edx,[edi+SKIN_PARAMS.colors.inner]
103
	call	draw_framerect
8992 leency 104
	mcall	13,,,[edi+SKIN_PARAMS.colors.frame]
3435 mario79 105
	add	ecx,(wnd4.height-5)*65536
106
	mcall
107
	mcall	,,
8992 leency 108
	add	ebx,(wnd4.w-5)*65536
3435 mario79 109
	mcall
8992 leency 110
	mcall	,,,dword[dtp.work]
111
	mov eax,[edi+SKIN_PARAMS.skin_height]
112
	shl eax,16
113
	sub eax,[edi+SKIN_PARAMS.skin_height]
114
	add ecx,eax
115
	mov edx,36+0x40000000
116
	mcall	8
117
 
3435 mario79 118
	mov	eax,0x00010001 ; left, inactive
119
	call	find_bitmap
120
	mcall	7,,,
121
 
122
	pushd	[ebx-8]
123
	mov	eax,0x00010003 ; base, inactive
124
	call	find_bitmap
125
	pop	edx
8992 leency 126
	mov	esi,wnd4.x+wnd4.w-1
3435 mario79 127
	sub	esi,edx
128
	shl	edx,16
129
	add	edx,wnd4.x*65536+wnd4.y
130
	mcall	7
131
;--------------------------------------
132
@@:
133
	rol	edx,16
134
	add	dx,[ebx-8]
135
	cmp	dx,si
136
	ja	@f
137
 
138
	rol	edx,16
139
	mcall	7
140
	jmp	@b
141
;--------------------------------------
142
@@:
143
	mov	eax,0x00010002 ; oper, inactive
144
	call	find_bitmap
145
	mov	edx,ecx
146
	shr	edx,16
147
	neg	edx
148
	shl	edx,16
8992 leency 149
	add	edx,(wnd4.x+wnd4.w)*65536+wnd4.y
3435 mario79 150
	mcall	7
151
 
152
	mov	ebp,not_packed_area
153
	mov	edi,[ebp+SKIN_HEADER.params]
154
	add	edi,ebp
155
	pop	eax
156
	lea	ebx,[eax+wnd4.x*65536+wnd4.y]
6170 leency 157
	mov ecx,dword[dtp.grab_text]
158
	add ecx,0x10000000
159
	mcall	4,,,caption_text,caption_text.size
8992 leency 160
	mcall	8, , ,35+0x40000000 ;button under caption
3435 mario79 161
;----------------------------------------------------------------------
162
	mov	edi,[ebp+SKIN_HEADER.buttons]
163
	add	edi,ebp
164
;--------------------------------------
165
.lp1:
166
	cmp	dword[edi],0
167
	je	.lp2
168
 
169
	mov	ebx,dword[edi+SKIN_BUTTONS.left-2]
8992 leency 170
	mov	bx,[edi+SKIN_BUTTONS.w]
3435 mario79 171
	mov	ecx,dword[edi+SKIN_BUTTONS.top-2]
172
	mov	cx,[edi+SKIN_BUTTONS.height]
8992 leency 173
	add	ebx,(wnd4.x+wnd4.w)*65536
3435 mario79 174
	add	ecx,wnd4.y*65536
175
	dec	ebx
176
	dec	ecx
177
	mcall	8,,,0x40000000
178
	add	edi,12
179
	jmp	.lp1
180
;--------------------------------------
181
.lp2:
182
	mov	edi,[ebp+SKIN_HEADER.params]
183
	add	edi,ebp
184
	mpack	ebx,wnd4.x+10,wnd4.y+10
185
	add	bx,word[edi+SKIN_PARAMS.skin_height]
8992 leency 186
	mov ecx,[dtp.work_text]
187
	add ecx,0x10000000
188
	mcall	4,,,window_text,window_text.size
3435 mario79 189
 
190
	mov	ecx,[edi+SKIN_PARAMS.skin_height]
191
	shl	ecx,16
8992 leency 192
	add	ecx,(wnd4.y+8)*65536+18
3435 mario79 193
 
8992 leency 194
	mcall	13,
195
			(wnd4.x+window_text.size*8+20)>,,[dtp.work_graph]
196
	mov edx, 40+0x40000000 ; graf button
197
	mcall	8
198
 
199
	dec edx ; window text button
200
	mcall	8, 
3435 mario79 201
 
8992 leency 202
	add	ecx,35*65536+5
203
	mcall	8,
204
			button_text.size*8+15>,,37,[dtp.work_button]
205
 
3435 mario79 206
	shr	ecx,16
207
	mov	bx,cx
8992 leency 208
	add	ebx,0x00060005
209
	mov ecx, [dtp.work_button_text]
210
	add ecx, 0x10000000
211
	mcall	4,,,button_text,button_text.size
3435 mario79 212
	ret
213
;---------------------------------------------------------------------
214
find_bitmap:
215
	mov	edi,[ebp+SKIN_HEADER.bitmaps]
216
	add	edi,ebp
217
	xor	ebx,ebx
218
;--------------------------------------
219
.lp1:
220
	cmp	dword[edi],0
221
	je	.lp2
222
 
223
	cmp	dword[edi+0],eax
224
	jne	@f
225
;--------------------------------------
226
	mov	ebx,[edi+SKIN_BITMAPS._data]
227
	add	ebx,ebp
228
	mov	ecx,[ebx-2]
229
	mov	cx,[ebx+4]
230
	add	ebx,8
231
;--------------------------------------
232
.lp2:
233
	ret
234
;--------------------------------------
235
@@:
236
	add	edi,8
237
	jmp	.lp1
238
;----------------------------------------------------------------------
239
dec_edx:
240
	sub	dl,4
241
	jnc	@f
242
 
243
	xor	dl,dl
244
;--------------------------------------
245
@@:
246
	sub	dh,4
247
	jnc	@f
248
 
249
	xor	dh,dh
250
;--------------------------------------
251
@@:
252
	rol	edx,16
253
	sub	dl,4
254
	jnc	@f
255
 
256
	xor	dl,dl
257
;--------------------------------------
258
@@:
259
	rol	edx,16
260
	ret
261
;---------------------------------------------------------------------
262
draw_framerect: ; ebx,ecx
263
	push	ebx ecx
264
	add	bx,[esp+6]
265
	mov	cx,[esp+2]
266
	dec	ebx
267
	mcall	38
268
	add	cx,[esp]
269
	rol	ecx,16
270
	add	cx,[esp]
271
	sub	ecx,0x00010001
272
	mcall
273
	mov	ebx,[esp+4]
274
	mov	ecx,[esp]
275
	mov	bx,[esp+6]
276
	add	cx,[esp+2]
277
	dec	ecx
278
	mcall
279
	add	bx,[esp+4]
280
	rol	ebx,16
281
	add	bx,[esp+4]
282
	sub	ebx,0x00010001
283
	mcall
284
	add	esp,8
285
	ret
286
;----------------------------------------------------------------------