Subversion Repositories Kolibri OS

Rev

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

Rev 2068 Rev 3271
1
;
1
;
2
;    UNIFORM WINDOW COLOURS & SKIN
2
;    UNIFORM WINDOW COLOURS & SKIN
3
;
3
;
4
;    Compile with FASM for Menuet
4
;    Compile with FASM for Menuet
5
;
5
;
6
;    < russian edition by Ivan Poddubny >
6
;    < russian edition by Ivan Poddubny >
7
;    < skin selection by Mike Semenyako >
7
;    < skin selection by Mike Semenyako >
8
;
8
;
9
; last update:  10/09/2010
9
; last update:  10/09/2010
10
; written by:   Marat Zakiyanov aka Mario79, aka Mario
10
; written by:   Marat Zakiyanov aka Mario79, aka Mario
11
; changes:      select path with OpenDialog
11
; changes:      select path with OpenDialog
12
;******************************************************************************
12
;******************************************************************************
13
   use32
13
	use32
14
   org     0
14
	org 0
15
   db      'MENUET01'  ; identifier
15
	db 'MENUET01'	; identifier
16
   dd      1           ; header version
16
	dd 1		; header version
17
   dd      START       ; start address
17
	dd START	; start address
18
   dd      I_END       ; file size
18
	dd I_END	; file size
19
   dd      i_end ;28000h      ; memory
19
	dd i_end	; memory
20
   dd      stacktop    ; stack pointer
20
	dd stacktop	; stack pointer
21
   dd      skin_info       ; parameters
21
	dd skin_info	; parameters
22
   dd      cur_dir_path ; path to file
22
	dd cur_dir_path	; path to file
23
   
23
 
24
include 'lang.inc'
24
include 'lang.inc'
25
include '../../../config.inc'		;for nightbuild
25
include '../../../config.inc'		;for nightbuild
26
include '../../../macros.inc'
26
include '../../../macros.inc'
27
include 'kglobals.inc'
27
include 'kglobals.inc'
28
include 'unpacker.inc'
28
include 'unpacker.inc'
29
include '../../../develop/libraries/box_lib/load_lib.mac'
29
include '../../../develop/libraries/box_lib/load_lib.mac'
30
	@use_library
30
	@use_library
31
;******************************************************************************
31
;******************************************************************************
32
 
32
 
33
 
33
 
34
struct SKIN_HEADER
34
struct SKIN_HEADER
35
  ident   dd ?
35
  ident   dd ?
36
  version dd ?
36
  version dd ?
37
  params  dd ?
37
  params  dd ?
38
  buttons dd ?
38
  buttons dd ?
39
  bitmaps dd ?
39
  bitmaps dd ?
40
ends
40
ends
41
 
41
 
42
struct SKIN_PARAMS
42
struct SKIN_PARAMS
43
  skin_height    dd ?
43
  skin_height    dd ?
44
  margin.right   dw ?
44
  margin.right   dw ?
45
  margin.left    dw ?
45
  margin.left    dw ?
46
  margin.bottom  dw ?
46
  margin.bottom  dw ?
47
  margin.top     dw ?
47
  margin.top     dw ?
48
  colors.inner   dd ?
48
  colors.inner   dd ?
49
  colors.outer   dd ?
49
  colors.outer   dd ?
50
  colors.frame   dd ?
50
  colors.frame   dd ?
51
  colors_1.inner dd ?
51
  colors_1.inner dd ?
52
  colors_1.outer dd ?
52
  colors_1.outer dd ?
53
  colors_1.frame dd ?
53
  colors_1.frame dd ?
54
  dtp.size       dd ?
54
  dtp.size       dd ?
55
  dtp.data       db 40 dup (?)
55
  dtp.data       db 40 dup (?)
56
ends
56
ends
57
 
57
 
58
struct SKIN_BUTTONS
58
struct SKIN_BUTTONS
59
  type     dd ?
59
  type     dd ?
60
  pos:
60
  pos:
61
    left   dw ?
61
    left   dw ?
62
    top    dw ?
62
    top    dw ?
63
  size:
63
  size:
64
    width  dw ?
64
    width  dw ?
65
    height dw ?
65
    height dw ?
66
ends
66
ends
67
 
67
 
68
struct SKIN_BITMAPS
68
struct SKIN_BITMAPS
69
  kind  dw ?
69
  kind  dw ?
70
  type  dw ?
70
  type  dw ?
71
  _data  dd ?
71
  _data  dd ?
72
ends
72
ends
73
 
-
 
-
 
73
 
74
 
74
;---------------------------------------------------------------------
75
START:                          ; start of execution
75
START:		; start of execution
76
;---------------------------------------------------------------------
76
;---------------------------------------------------------------------
77
	mcall	68,11
77
	mcall	68,11
78
	
78
	
79
	test	eax,eax
79
	test	eax,eax
80
	jz	close	
80
	jz	close	
81
 
81
 
82
load_libraries l_libs_start,end_l_libs
82
load_libraries l_libs_start,end_l_libs
83
 
83
 
84
;if return code =-1 then exit, else nornary work
84
;if return code =-1 then exit, else nornary work
85
;        cmp     eax,-1
-
 
86
	inc	eax
85
	inc	eax
87
	test	eax,eax
86
	test	eax,eax
88
	jz	close
87
	jz	close
89
 
-
 
90
;---------------------------------------------------------------------
88
;---------------------------------------------------------------------
91
	mov	edi,filename_area
89
	mov	edi,filename_area
92
	mov	esi,start_temp_file_name
90
	mov	esi,start_temp_file_name
93
	xor	eax,eax
91
	xor	eax,eax
94
	cld
92
	cld
95
@@:
93
@@:
96
	lodsb
94
	lodsb
97
	stosb
95
	stosb
98
	test	eax,eax
96
	test	eax,eax
99
	jnz	@b
97
	jnz	@b
100
 
98
 
101
 
99
 
102
	mov	edi,fname
100
	mov	edi,fname
103
	mov	esi,default_dtp
101
	mov	esi,default_dtp
104
	xor	eax,eax
102
	xor	eax,eax
105
	cld
103
	cld
106
@@:
104
@@:
107
	lodsb
105
	lodsb
108
	stosb
106
	stosb
109
	test	eax,eax
107
	test	eax,eax
110
	jnz	@b
108
	jnz	@b
111
 
109
 
112
;---------------------------------------------------------------------
110
;---------------------------------------------------------------------
113
;        mov     esi, param
-
 
114
;        cmp     byte [esi], 0
-
 
115
;		je	@f
-
 
116
;        jnz     has_param
-
 
117
;    mov  esi,default_skn
-
 
118
;    mov  edi,fname
-
 
119
;    mov  ecx,default_skn.size
-
 
120
;    rep  movsb
-
 
121
;    jmp  skin_path_ready
-
 
122
;has_param:
-
 
123
;        mov     ecx, 256/4
-
 
124
;        mov     edi, fname
-
 
125
;        rep     movsd
-
 
126
;		skin_path_ready
-
 
127
;---------------------------------------------------------------------
-
 
128
	mov	edi,skin_info
111
	mov	edi,skin_info
129
	cmp     byte [edi], 0
112
	cmp	byte [edi], 0
130
	jne	skin_path_ready
113
	jne	skin_path_ready
131
	mov	esi,default_skin
114
	mov	esi,default_skin
132
	xor	eax,eax
115
	xor	eax,eax
133
	cld
116
	cld
134
@@:
117
@@:
135
	lodsb
118
	lodsb
136
	stosb
119
	stosb
137
	test	eax,eax
120
	test	eax,eax
138
	jnz	@b
121
	jnz	@b
139
skin_path_ready:	
122
skin_path_ready:	
140
;---------------------------------------------------------------------
123
;---------------------------------------------------------------------
141
;OpenDialog	initialisation
124
;OpenDialog	initialisation
142
	push    dword OpenDialog_data
125
	push	dword OpenDialog_data
143
	call    [OpenDialog_Init]
126
	call	[OpenDialog_Init]
144
 
127
 
145
	push    dword OpenDialog_data2
128
	push	dword OpenDialog_data2
146
	call    [OpenDialog_Init]
129
	call	[OpenDialog_Init]
147
	
130
	
148
; prepare for PathShow
131
; prepare for PathShow
149
	push	dword PathShow_data_1
132
	push	dword PathShow_data_1
150
	call	[PathShow_prepare]
133
	call	[PathShow_prepare]
151
	
134
	
152
	push	dword PathShow_data_2
135
	push	dword PathShow_data_2
153
	call	[PathShow_prepare]
136
	call	[PathShow_prepare]
154
;---------------------------------------------------------------------	
137
;---------------------------------------------------------------------	
155
    mov  eax,48                 ; get current colors
138
	mcall	48,3,color_table,4*10	; get current colors
156
    mov  ebx,3
-
 
157
    mov  ecx,color_table
-
 
158
    mov  edx,4*10
-
 
159
    mcall
-
 
160
 
-
 
161
    call load_skin_file.2
139
	call	load_skin_file.2
162
 
-
 
163
;    mov  esi, default_dtp
-
 
164
;    mov  edi, fname
-
 
165
;    mov  ecx, default_dtp.size
140
;---------------------------------------------------------------------	
166
;    rep  movsb
-
 
167
 
-
 
168
red:
141
red:
169
    call draw_window            ; at first, draw the window
142
	call	draw_window		; at first, draw the window
170
 
-
 
-
 
143
;---------------------------------------------------------------------	
171
still:
144
still:
172
 
-
 
173
    mov  eax,23                 ; wait here for event
145
	mcall	23,5	; wait here for event
174
    mov  ebx,5
-
 
175
    mcall
-
 
176
 
146
 
177
    dec  eax                    ; redraw request ?
147
	dec	eax	; redraw request ?
178
    jz   red
148
	jz	red
179
    dec  eax                    ; key in buffer ?
149
	dec	eax	; key in buffer ?
180
    jz   key
150
	jz	key
181
    dec  eax                    ; button in buffer ?
151
	dec	eax	; button in buffer ?
182
    jz   button
152
	jz	button
183
 
153
 
184
    call draw_cursor
154
	call	draw_cursor
185
 
155
 
186
    jmp  still
156
	jmp	still
187
 
-
 
188
 
-
 
-
 
157
;---------------------------------------------------------------------
189
  key:                          ; key
158
key:		; key
190
    mov  al,2                   ; just read it and ignore
159
	mcall	2	; just read it and ignore
191
    mcall
-
 
192
    jmp  still
160
	jmp	still
193
 
-
 
-
 
161
;---------------------------------------------------------------------
194
  button:                       ; button
162
button:		; button
195
    mov  al,17                  ; get id
-
 
196
    mcall
-
 
197
 
-
 
198
;    cmp  ah,11                  ; read string
-
 
199
;    jne  no_string
-
 
200
;    call read_string
163
	mcall	17	; get id
201
;    jmp  still
-
 
202
;  no_string:
-
 
203
 
164
 
204
    cmp  ah,12                  ; load file
165
 	cmp	ah,12	; load file
205
    jne  no_load
166
 	jne	no_load
-
 
167
 
206
    call load_file
168
	call	load_file
207
    call draw_window
169
	call	draw_window
208
    jmp  still
170
 	jmp	still
-
 
171
;--------------------------------------
209
  no_load:
172
no_load:
210
 
-
 
211
    cmp  ah,13                  ; save file
173
 	cmp	ah,13	; save file
212
    jne  no_save
174
 	jne	no_save
-
 
175
 
213
    call save_file
176
	call	save_file
214
    jmp  still
177
 	jmp	still
-
 
178
;--------------------------------------
215
  no_save:
179
no_save:
216
 
-
 
217
    cmp  ah,14                  ; set 3d buttons
180
 	cmp	ah,14	; set 3d buttons
218
    jne  no_3d
181
 	jne	no_3d
219
    mov  eax,48
-
 
220
    mov  ebx,1
182
 
221
    mov  ecx,1
183
	mcall	48,1,1
222
    mcall
-
 
223
    jmp  doapply
184
 	jmp	doapply
-
 
185
;--------------------------------------
224
   no_3d:
186
no_3d:
225
 
-
 
226
    cmp  ah,15                  ; set flat buttons
187
 	cmp	ah,15	; set flat buttons
227
    jne  no_flat
188
 	jne	no_flat
-
 
189
 
228
    mcall 48, 1, 0
190
	mcall	48, 1, 0
-
 
191
;--------------------------------------
229
doapply:
192
doapply:
230
    mcall 48, 0, 0
193
	mcall	48, 0, 0
231
    jmp  still
194
 	jmp	still
-
 
195
;--------------------------------------
232
  no_flat:
196
no_flat:
233
 
-
 
234
    cmp  ah,16                  ; apply
197
 	cmp	ah,16	; apply
235
    jne  no_apply
198
 	jne	no_apply
-
 
199
;--------------------------------------
236
  apply_direct:
200
apply_direct:
237
    mov  eax,48
-
 
238
    mov  ebx,2
-
 
239
    mov  ecx,color_table
201
	mcall	48,2,color_table,10*4
240
    mov  edx,10*4
-
 
241
    mcall
-
 
242
    jmp  doapply
202
 	jmp	doapply
-
 
203
;--------------------------------------
243
  no_apply:
204
 no_apply:
244
 
-
 
245
    cmp  ah,17                  ; load skin file
205
 	cmp	ah,17	; load skin file
246
    jne  no_load_skin
206
 	jne	no_load_skin
-
 
207
 
247
    call load_skin_file
208
	call	load_skin_file
248
    call draw_window
209
	call	draw_window
249
    jmp  still
210
 	jmp	still
-
 
211
;--------------------------------------
250
  no_load_skin:
212
no_load_skin:
251
 
-
 
252
    cmp   ah,18                 ; apply skin
213
 	cmp	ah,18	; apply skin
253
    jne   no_apply_skin
214
 	jne	no_apply_skin
-
 
215
 
254
    cmp   [skin_info],0
216
 	cmp	[skin_info],0
255
    je    no_apply_skin
217
 	je	no_apply_skin
-
 
218
 
256
    mcall 48,8,skin_info
219
	mcall	48,8,skin_info
257
    call  draw_window
220
	call	draw_window
258
    jmp   still
221
 	jmp	still
-
 
222
;--------------------------------------
259
  no_apply_skin:
223
no_apply_skin:
260
 
-
 
261
    cmp  ah,31
224
	cmp	ah,31
262
    jb   no_new_colour
225
	jb	no_new_colour
-
 
226
 
263
    cmp  ah,41
227
	cmp	ah,41
264
    jg   no_new_colour
228
	jg	no_new_colour
-
 
229
	
265
    shr  eax,8
230
	shr	eax,8
266
    sub  eax,31
231
	sub	eax,31
267
    shl  eax,2
232
	shl	eax,2
268
    mov  ebx,[color]
233
	mov	ebx,[color]
269
    mov  [eax+color_table],ebx
234
	mov	[eax+color_table],ebx
270
    cmp  dword[not_packed_area+SKIN_HEADER.ident],'SKIN'
235
 	cmp	dword[not_packed_area+SKIN_HEADER.ident],'SKIN'
271
    jne  @f
236
 	jne	@f
-
 
237
 
272
    mov  edi,[not_packed_area+SKIN_HEADER.params]
238
	mov	edi,[not_packed_area+SKIN_HEADER.params]
273
    mov  dword[edi+not_packed_area+SKIN_PARAMS.dtp.data+eax],ebx
239
	mov	dword[edi+not_packed_area+SKIN_PARAMS.dtp.data+eax],ebx
274
    call draw_skin
240
	call	draw_skin
-
 
241
;--------------------------------------
-
 
242
@@:
275
@@: call draw_colours
243
	call	draw_colours
276
    jmp  still
244
 	jmp	still
-
 
245
;--------------------------------------
277
  no_new_colour:
246
no_new_colour:
278
 
-
 
279
    cmp  ah,1                   ; terminate
247
	cmp	ah,1	; terminate
280
    jnz  noid1
248
	jnz	noid1
-
 
249
;--------------------------------------
281
close:
250
close:
282
    or   eax,-1
251
	or	eax,-1
283
    mcall
252
	mcall
-
 
253
;--------------------------------------
284
  noid1:
254
noid1:
285
 
-
 
286
    jmp  still
255
 	jmp	still
287
 
-
 
288
 
-
 
-
 
256
;---------------------------------------------------------------------
289
draw_cursor:
257
draw_cursor:
290
 
-
 
291
    pusha
258
	pusha
292
    mov  eax,37
-
 
293
    mov  ebx,2
-
 
294
    mcall
259
	mcall	37,2
295
 
-
 
296
    cmp  eax,0
260
	cmp	eax,0
297
    jne  dc1
261
	jne	dc1
298
    popa
262
	popa
299
    ret
263
	ret
300
 
-
 
-
 
264
;--------------------------------------
301
 dc1:
265
dc1:
302
 
-
 
303
    mov  eax,37
-
 
304
    mov  ebx,1
-
 
305
    mcall
266
	mcall	37,1
306
 
-
 
307
    mov  ebx,eax
267
	mov	ebx,eax
308
    shr  ebx,16
268
	shr	ebx,16
309
    mov  ecx,eax
269
	mov	ecx,eax
310
    and  ecx,0xffff
270
	and	ecx,0xffff
311
 
-
 
312
    cmp  ecx,32
271
	cmp	ecx,29
313
    jbe  no_color
272
	jbe	no_color
-
 
273
 
314
    cmp  ebx,32
274
 	cmp	ebx,32
315
    jbe  no_color
275
	jbe	no_color
316
 
276
 
317
    cmp  ebx,266           ; CHANGE COLOR
277
	cmp	ebx,266	; CHANGE COLOR
318
    jb   no_color
278
	jb	no_color
-
 
279
 
319
    cmp  ebx,266+20*3
280
	cmp	ebx,266+20*3
320
    jg   no_color
281
	jg	no_color
321
 
282
 
322
    cmp  ecx,30+128
283
 	cmp	ecx,30+128
323
    jge  no_color
284
	jge	no_color
-
 
285
 
324
    cmp  ecx,30
286
	cmp	ecx,29
325
    jb   no_color
287
	jb	no_color
326
 
288
 
327
    sub  ebx,266
289
	sub	ebx,266
328
    mov  eax,ebx
290
	mov	eax,ebx
329
    cdq
291
	cdq
330
    mov  ebx,20
292
	mov	ebx,20
331
    div  ebx
293
	div	ebx
332
    mov  ebx,2
294
	mov	ebx,2
333
    sub  ebx,eax
295
	sub	ebx,eax
334
 
-
 
335
    add  ecx,-30
296
	add	ecx,-30
336
    not  ecx
297
	not	ecx
337
    shl  ecx,1
298
	shl	ecx,1
338
 
299
 
339
    mov  byte [ebx+color],cl
300
	mov	byte [ebx+color],cl
340
    call draw_color
301
	call	draw_color
341
 
-
 
342
    popa
-
 
343
    ret
-
 
344
 
-
 
345
  no_color:
302
no_color:
346
 
-
 
347
    popa
303
	popa
348
    ret
304
	ret
349
 
-
 
350
;---------------------------------------------------------------------
305
;---------------------------------------------------------------------
351
load_file:
306
load_file:
352
;---------------------------------------------------------------------
307
;---------------------------------------------------------------------
353
; invoke OpenDialog
308
; invoke OpenDialog
354
	mov	[OpenDialog_data.type],dword 0
309
	mov	[OpenDialog_data.type],dword 0
355
	push    dword OpenDialog_data
310
	push	dword OpenDialog_data
356
	call    [OpenDialog_Start]
311
	call	[OpenDialog_Start]
357
	cmp	[OpenDialog_data.status],1
312
	cmp	[OpenDialog_data.status],1
358
	je	.1
313
	je	.1
359
	ret
314
	ret
360
.1:
315
.1:
361
; prepare for PathShow
316
; prepare for PathShow
362
	push	dword PathShow_data_1
317
	push	dword PathShow_data_1
363
	call	[PathShow_prepare]
318
	call	[PathShow_prepare]
364
 
319
 
365
	call	draw_PathShow
320
	call	draw_PathShow
366
;---------------------------------------------------------------------
321
;---------------------------------------------------------------------
367
        xor     eax, eax
322
	xor	eax, eax
368
        mov     ebx, read_info
323
	mov	ebx, read_info
369
        mov     dword [ebx], eax       ; subfunction: read
324
	mov	dword [ebx], eax	; subfunction: read
370
        mov     dword [ebx+4], eax     ; offset (low dword)
325
	mov	dword [ebx+4], eax	; offset (low dword)
371
        mov     dword [ebx+8], eax     ; offset (high dword)
326
	mov	dword [ebx+8], eax	; offset (high dword)
372
        mov     dword [ebx+12], 40     ; read colors file: 4*10 bytes
327
	mov	dword [ebx+12], 40     ; read colors file: 4*10 bytes
373
        mov     dword [ebx+16], color_table ; address
328
	mov	dword [ebx+16], color_table ; address
374
        mcall   70
329
	mcall	70
375
        ret
330
	ret
376
;---------------------------------------------------------------------
331
;---------------------------------------------------------------------
377
load_skin_file:
332
load_skin_file:
378
;---------------------------------------------------------------------
333
;---------------------------------------------------------------------
379
; invoke OpenDialog
334
; invoke OpenDialog
380
	push    dword OpenDialog_data2
335
	push	dword OpenDialog_data2
381
	call    [OpenDialog_Start]
336
	call	[OpenDialog_Start]
382
	cmp	[OpenDialog_data2.status],1
337
	cmp	[OpenDialog_data2.status],1
383
	je	.1
338
	je	.1
384
	ret
339
	ret
385
.1:
340
.1:
386
; prepare for PathShow
341
; prepare for PathShow
387
	push	dword PathShow_data_2
342
	push	dword PathShow_data_2
388
	call	[PathShow_prepare]
343
	call	[PathShow_prepare]
389
 
344
 
390
	call	draw_PathShow
345
	call	draw_PathShow
391
;---------------------------------------------------------------------
346
;---------------------------------------------------------------------
392
.2:
347
.2:
393
        xor     eax, eax
348
	xor	eax,eax
394
        mov     ebx, read_info2
349
	mov	ebx,read_info2
395
        mov     dword [ebx], eax       ; subfunction: read
350
	mov	dword [ebx], eax	; subfunction: read
396
        mov     dword [ebx+4], eax     ; offset (low dword)
351
	mov	dword [ebx+4], eax	; offset (low dword)
397
        mov     dword [ebx+8], eax     ; offset (high dword)
352
	mov	dword [ebx+8], eax	; offset (high dword)
398
        mov     dword [ebx+12], 32*1024 ; read: max 32 KBytes
353
	mov	dword [ebx+12], 32*1024 ; read: max 32 KBytes
399
        mov     dword [ebx+16], file_load_area ; address
354
	mov	dword [ebx+16], file_load_area ; address
400
        mcall   70
355
	mcall	70
401
 
356
 
402
        mov     esi, file_load_area
357
	mov	esi, file_load_area
403
 
358
 
404
        cmp     dword [esi], 'KPCK'
359
	cmp	dword [esi], 'KPCK'
405
        jnz     notpacked
360
	jnz	notpacked
-
 
361
 
406
        cmp     dword [esi+4], 32*1024 ; max 32 KBytes
362
	cmp	dword [esi+4], 32*1024 ; max 32 KBytes
407
        ja      doret
363
	ja	doret
-
 
364
 
408
        push    unpack_area
365
	push	unpack_area
409
        push    esi
366
	push	esi
410
        call    unpack
367
	call	unpack
411
        mov     esi, unpack_area
368
	mov	esi,unpack_area
-
 
369
;--------------------------------------
412
notpacked:
370
notpacked:
413
 
-
 
414
    cmp   dword[esi+SKIN_HEADER.ident],'SKIN'
371
 	cmp	[esi+SKIN_HEADER.ident],dword 'SKIN'
415
    jne   doret
372
 	jne	doret
416
 
373
 
417
    mov   edi,not_packed_area
374
	mov	edi,not_packed_area
418
    mov   ecx,0x8000/4
375
	mov	ecx,0x8000/4
419
    rep   movsd
376
	rep	movsd
420
 
-
 
421
;    mov   esi,fname
-
 
422
;    mov   edi,skin_info.fname
-
 
423
;    mov   ecx,257
-
 
424
;    rep   movsb
-
 
425
 
377
 
426
    mov   ebp,not_packed_area
378
	mov	ebp,not_packed_area
427
    mov   esi,[ebp+SKIN_HEADER.params]
379
	mov	esi,[ebp+SKIN_HEADER.params]
428
    add   esi,ebp
380
	add	esi,ebp
429
    lea   esi,[esi+SKIN_PARAMS.dtp.data]
381
	lea	esi,[esi+SKIN_PARAMS.dtp.data]
430
    mov   edi,color_table
382
	mov	edi,color_table
431
    mov   ecx,10
383
	mov	ecx,10
432
    rep   movsd
384
	rep	movsd
-
 
385
;--------------------------------------
433
  doret:
386
doret:
434
 
-
 
435
ret
387
	ret
436
 
-
 
437
;---------------------------------------------------------------------
388
;---------------------------------------------------------------------
438
save_file:
389
save_file:
439
;---------------------------------------------------------------------
390
;---------------------------------------------------------------------
440
; invoke OpenDialog
391
; invoke OpenDialog
441
	mov	[OpenDialog_data.type],dword 1
392
	mov	[OpenDialog_data.type],dword 1
442
	push    dword OpenDialog_data
393
	push	dword OpenDialog_data
443
	call    [OpenDialog_Start]
394
	call	[OpenDialog_Start]
444
	cmp	[OpenDialog_data.status],1
395
	cmp	[OpenDialog_data.status],1
445
	je	.1
396
	je	.1
446
	ret
397
	ret
447
.1:
398
.1:
448
; prepare for PathShow
399
; prepare for PathShow
449
	push	dword PathShow_data_1
400
	push	dword PathShow_data_1
450
	call	[PathShow_prepare]
401
	call	[PathShow_prepare]
451
 
402
 
452
	call	draw_PathShow
403
	call	draw_PathShow
453
;---------------------------------------------------------------------
404
;---------------------------------------------------------------------
-
 
405
	xor	eax,eax
454
        mov     ebx, write_info
406
	mov	ebx,write_info
455
        mov     dword [ebx], 2         ; subfunction: write
407
	mov	[ebx],dword 2			; subfunction: write
456
        and     dword [ebx+4], 0       ; (reserved)
408
	and	[ebx+4],eax			; (reserved)
457
        and     dword [ebx+8], 0       ; (reserved)
409
	and	[ebx+8],eax			; (reserved)
458
        mov     dword [ebx+12], 10*4   ; bytes to write
410
	mov	[ebx+12],dword 10*4		; bytes to write
459
        mov     dword [ebx+16], color_table ; address
411
	mov	[ebx+16],dword color_table	; address
460
        mcall   70
412
	mcall	70
461
        ret
413
	ret
462
;---------------------------------------------------------------------
414
;---------------------------------------------------------------------
463
draw_color:
415
draw_color:
464
 
-
 
465
    pusha
416
	pusha
466
 
-
 
467
    mov  eax,13
-
 
468
    mov  ebx,266*65536+60
-
 
469
    mov  ecx,170*65536+30
-
 
470
    mov  edx,[color]
417
	mcall	13,<266,60>,<170,30>,[color]
471
    mcall
-
 
472
 
-
 
473
;   mov  eax,13
-
 
474
    mov  ebx,266*65536+60
-
 
475
    mov  ecx,200*65536+10
-
 
476
    mov  edx,[w_work]
418
	mcall	,,<200,10>,[w_work]
477
    mcall
-
 
478
 
-
 
479
    mov  eax,47
-
 
480
    mov  ebx,0+1*256+8*65536
-
 
481
    mov  ecx,[color]
-
 
482
    mov  edx,272*65536+201
-
 
483
    mov  esi,[w_work_text]
419
	mcall	47,<8,0+1*256>,[color],<272,201>,[w_work_text]
484
    mcall
-
 
485
 
-
 
486
    popa
420
	popa
487
    ret
421
	ret
488
;----------------------------------------------------------------------
422
;----------------------------------------------------------------------
489
draw_colours:
423
draw_colours:
490
 
-
 
491
    pusha
424
	pusha
492
 
-
 
493
    mov  esi,color_table
425
	mov	esi,color_table
494
 
-
 
495
    mov  ebx,225*65536+32
426
	mov	ebx,225*65536+32
496
    mov  ecx,32*65536+12
427
	mov	ecx,32*65536+12
-
 
428
;--------------------------------------
497
  newcol:
429
newcol:
498
    mov  eax,13
-
 
499
    mov  edx,[esi]
430
	mov	edx,[esi]
500
    mcall
431
	mcall	13
501
    add  ecx,18*65536
432
	add	ecx,18*65536
502
    add  esi,4
433
	add	esi,4
503
    cmp  esi,color_table+4*9
434
 	cmp	esi,color_table+4*9
504
    jbe  newcol
435
	jbe	newcol
505
 
436
 
506
    popa
437
	popa
507
    ret
438
	ret
508
;----------------------------------------------------------------------
439
;----------------------------------------------------------------------
509
draw_framerect: ; ebx,ecx
440
draw_framerect: ; ebx,ecx
510
        push    ebx ecx
441
	push	ebx ecx
511
        add     bx,[esp+6]
442
	add	bx,[esp+6]
512
        mov     cx,[esp+2]
443
	mov	cx,[esp+2]
513
        dec     ebx
444
	dec	ebx
514
        mcall   38
445
	mcall	38
515
        add     cx,[esp]
446
	add	cx,[esp]
516
        rol     ecx,16
447
	rol	ecx,16
517
        add     cx,[esp]
448
	add	cx,[esp]
518
        sub     ecx,0x00010001
449
	sub	ecx,0x00010001
519
        mcall
450
	mcall
520
        mov     ebx,[esp+4]
451
	mov	ebx,[esp+4]
521
        mov     ecx,[esp]
452
	mov	ecx,[esp]
522
        mov     bx,[esp+6]
453
	mov	bx,[esp+6]
523
        add     cx,[esp+2]
454
	add	cx,[esp+2]
524
        dec     ecx
455
	dec	ecx
525
        mcall
456
	mcall
526
        add     bx,[esp+4]
457
	add	bx,[esp+4]
527
        rol     ebx,16
458
	rol	ebx,16
528
        add     bx,[esp+4]
459
	add	bx,[esp+4]
529
        sub     ebx,0x00010001
460
	sub	ebx,0x00010001
530
        mcall
461
	mcall
531
        add     esp,8
462
	add	esp,8
532
        ret
463
	ret
533
;----------------------------------------------------------------------
464
;----------------------------------------------------------------------
534
find_bitmap:
465
find_bitmap:
535
        mov     edi,[ebp+SKIN_HEADER.bitmaps]
466
	mov	edi,[ebp+SKIN_HEADER.bitmaps]
536
        add     edi,ebp
467
	add	edi,ebp
537
        xor     ebx,ebx
468
	xor	ebx,ebx
-
 
469
;--------------------------------------
-
 
470
.lp1:
538
  .lp1: cmp     dword[edi],0
471
	cmp	dword[edi],0
539
        je      .lp2
472
	je	.lp2
-
 
473
 
540
        cmp     dword[edi+0],eax
474
	cmp	dword[edi+0],eax
541
        jne     @f
475
	jne	@f
-
 
476
;--------------------------------------
542
        mov     ebx,[edi+SKIN_BITMAPS._data]
477
	mov	ebx,[edi+SKIN_BITMAPS._data]
543
        add     ebx,ebp
478
	add	ebx,ebp
544
        mov     ecx,[ebx-2]
479
	mov	ecx,[ebx-2]
545
        mov     cx,[ebx+4]
480
	mov	cx,[ebx+4]
546
        add     ebx,8
481
	add	ebx,8
-
 
482
;--------------------------------------
547
  .lp2: ret
483
.lp2:
-
 
484
	ret
-
 
485
;--------------------------------------
-
 
486
@@:
548
    @@: add     edi,8
487
	add	edi,8
549
        jmp     .lp1
488
	jmp	.lp1
550
;----------------------------------------------------------------------
489
;----------------------------------------------------------------------
551
dec_edx:
490
dec_edx:
552
        sub     dl,4
491
	sub	dl,4
553
        jnc     @f
492
	jnc	@f
-
 
493
 
554
        xor     dl,dl
494
	xor	dl,dl
-
 
495
;--------------------------------------
-
 
496
@@:
555
    @@: sub     dh,4
497
	sub	dh,4
556
        jnc     @f
498
	jnc	@f
-
 
499
 
557
        xor     dh,dh
500
	xor	dh,dh
-
 
501
;--------------------------------------
-
 
502
@@:
558
    @@: rol     edx,16
503
	rol	edx,16
559
        sub     dl,4
504
	sub	dl,4
560
        jnc     @f
505
	jnc	@f
-
 
506
 
561
        xor     dl,dl
507
	xor	dl,dl
-
 
508
;--------------------------------------
-
 
509
@@:
562
    @@: rol     edx,16
510
	rol	edx,16
563
        ret
511
	ret
564
;----------------------------------------------------------------------
512
;----------------------------------------------------------------------
565
area:
513
area:
566
  .x      = 345
514
  .x      = 345
567
  .y      = 20
515
  .y      = 20
568
  .width  = 206
516
  .width  = 206
569
  .height = 191
517
  .height = 191
570
 
-
 
-
 
518
;--------------------------------------
571
wnd1:
519
wnd1:
572
  .x      = area.x+49
520
  .x      = area.x+49
573
  .y      = area.y+5
521
  .y      = area.y+5
574
  .width  = 150
522
  .width  = 150
575
  .height = 90
523
  .height = 90
-
 
524
;--------------------------------------
576
wnd2:
525
wnd2:
577
  .x      = area.x+35
526
  .x      = area.x+35
578
  .y      = area.y+35
527
  .y      = area.y+35
579
  .width  = 150
528
  .width  = 150
580
  .height = 90
529
  .height = 90
-
 
530
;--------------------------------------
581
wnd3:
531
wnd3:
582
  .x      = area.x+21
532
  .x      = area.x+21
583
  .y      = area.y+65
533
  .y      = area.y+65
584
  .width  = 150
534
  .width  = 150
585
  .height = 90
535
  .height = 90
-
 
536
;--------------------------------------
586
wnd4:
537
wnd4:
587
  .x      = area.x+7
538
  .x      = area.x+7
588
  .y      = area.y+95
539
  .y      = area.y+95
589
  .width  = 150
540
  .width  = 150
590
  .height = 90
541
  .height = 90
591
 
-
 
-
 
542
;--------------------------------------
592
virtual at edi+SKIN_PARAMS.dtp.data
543
virtual at edi+SKIN_PARAMS.dtp.data
593
  dtp system_colors
544
	dtp system_colors
594
end virtual
545
end virtual
595
;----------------------------------------------------------------------
546
;----------------------------------------------------------------------
596
draw_skin:
547
draw_skin:
597
        mcall   13,,,0x00FFFFFF
548
	mcall	13,,,0x00FFFFFF
598
 
-
 
599
        mov     ebp,not_packed_area
549
	mov	ebp,not_packed_area
600
        mov     edi,[ebp+SKIN_HEADER.params]
550
	mov	edi,[ebp+SKIN_HEADER.params]
601
        add     edi,ebp
551
	add	edi,ebp
602
        mpack   ebx,wnd1.x,wnd1.width
552
	mpack	ebx,wnd1.x,wnd1.width
603
        mpack   ecx,wnd1.y,wnd1.height
553
	mpack	ecx,wnd1.y,wnd1.height
604
        mov     edx,[dtp.frame]
554
	mov	edx,[dtp.frame]
605
        call    draw_framerect
555
	call	draw_framerect
606
        mcall   13,,,dword[dtp.work]
556
	mcall	13,,,dword[dtp.work]
607
 
-
 
608
        mov     eax,38
557
	mov	eax,38
609
        mpack   ebx,wnd1.x+1,wnd1.x+wnd1.width-2
558
	mpack	ebx,wnd1.x+1,wnd1.x+wnd1.width-2
610
        mpack   ecx,wnd1.y+1,wnd1.y+1
559
	mpack	ecx,wnd1.y+1,wnd1.y+1
611
        mov     edx,[dtp.grab]
560
	mov	edx,[dtp.grab]
612
        mov     esi,20
561
	mov	esi,20
-
 
562
;--------------------------------------
-
 
563
@@:
613
    @@: mcall
564
	mcall
614
        call    dec_edx
565
	call	dec_edx
615
        add     ecx,0x00010001
566
	add	ecx,0x00010001
616
        dec     esi
567
	dec	esi
617
        jnz     @b
568
	jnz	@b
618
 
569
 
619
        mov     edi,[ebp+SKIN_HEADER.params]
570
	mov	edi,[ebp+SKIN_HEADER.params]
620
        add     edi,ebp
571
	add	edi,ebp
621
        mcall   4,,dword[dtp.grab_text],caption_text,caption_text.size
572
	mcall	4,,dword[dtp.grab_text],caption_text,caption_text.size
622
 
-
 
623
        mcall   8,,,0,[dtp.grab_button]
573
	mcall	8,,,0,[dtp.grab_button]
624
        mcall   4,,dword[dtp.grab_button_text],close_text,close_text.size
574
	mcall	4,,dword[dtp.grab_button_text],close_text,close_text.size
625
 
-
 
626
;----------------------------------------------------------------------
575
;----------------------------------------------------------------------
627
 
-
 
628
        mov     edi,[ebp+SKIN_HEADER.params]
576
	mov	edi,[ebp+SKIN_HEADER.params]
629
        add     edi,ebp
577
	add	edi,ebp
630
        mpack   ebx,wnd2.x,wnd2.width
578
	mpack	ebx,wnd2.x,wnd2.width
631
        mpack   ecx,wnd2.y,wnd2.height
579
	mpack	ecx,wnd2.y,wnd2.height
632
        mov     edx,[dtp.frame]
580
	mov	edx,[dtp.frame]
633
        shr     edx,1
581
	shr	edx,1
634
        and     edx,0x007F7F7F
582
	and	edx,0x007F7F7F
635
        call    draw_framerect
583
	call	draw_framerect
636
        mpack   ebx,wnd2.x+4,wnd2.width-8
584
	mpack	ebx,wnd2.x+4,wnd2.width-8
637
        mpack   ecx,wnd2.y+4,wnd2.height-8
585
	mpack	ecx,wnd2.y+4,wnd2.height-8
638
        call    draw_framerect
586
	call	draw_framerect
639
        mcall   13,,,[dtp.frame]
587
	mcall	13,,,[dtp.frame]
640
        add     ecx,(wnd2.height-5)*65536
588
	add	ecx,(wnd2.height-5)*65536
641
        mcall
589
	mcall
642
        mcall   ,,
590
	mcall	,,
643
        add     ebx,(wnd2.width-5)*65536
591
	add	ebx,(wnd2.width-5)*65536
644
        mcall
592
	mcall
645
        mcall   ,,,dword[dtp.work]
593
	mcall	,,,dword[dtp.work]
646
 
594
 
647
        mov     eax,38
595
	mov	eax,38
648
        mpack   ebx,wnd2.x+4,wnd2.x+wnd2.width-5
596
	mpack	ebx,wnd2.x+4,wnd2.x+wnd2.width-5
649
        mpack   ecx,wnd2.y+4,wnd2.y+4
597
	mpack	ecx,wnd2.y+4,wnd2.y+4
650
        mov     edx,[dtp.grab]
598
	mov	edx,[dtp.grab]
651
        mov     esi,16
599
	mov	esi,16
-
 
600
;--------------------------------------
-
 
601
@@:
652
    @@: mcall
602
	mcall
653
        call    dec_edx
603
	call	dec_edx
654
        add     ecx,0x00010001
604
	add	ecx,0x00010001
655
        dec     esi
605
	dec	esi
656
        jnz     @b
606
	jnz	@b
657
 
607
 
658
        mov     edi,[ebp+SKIN_HEADER.params]
608
	mov	edi,[ebp+SKIN_HEADER.params]
659
        add     edi,ebp
609
	add	edi,ebp
660
        mcall   4,,dword[dtp.grab_text],caption_text,caption_text.size
610
	mcall	4,,dword[dtp.grab_text],caption_text,caption_text.size
661
 
-
 
662
        mcall   8,,,0,[dtp.grab_button]
611
	mcall	8,,,0,[dtp.grab_button]
663
        mcall   4,,dword[dtp.grab_button_text],close_text,close_text.size
612
	mcall	4,,dword[dtp.grab_button_text],close_text,close_text.size
664
 
-
 
665
;----------------------------------------------------------------------
613
;----------------------------------------------------------------------
666
 
-
 
667
        mov     edi,[ebp+SKIN_HEADER.params]
614
	mov	edi,[ebp+SKIN_HEADER.params]
668
        add     edi,ebp
615
	add	edi,ebp
669
        mpack   ebx,wnd3.x,wnd3.width
616
	mpack	ebx,wnd3.x,wnd3.width
670
        mpack   ecx,wnd3.y,wnd3.height
617
	mpack	ecx,wnd3.y,wnd3.height
671
        mov     edx,[edi+SKIN_PARAMS.colors_1.outer]
618
	mov	edx,[edi+SKIN_PARAMS.colors_1.outer]
672
        call    draw_framerect
619
	call	draw_framerect
673
        mpack   ebx,wnd3.x+4,wnd3.width-8
620
	mpack	ebx,wnd3.x+4,wnd3.width-8
674
        mpack   ecx,wnd3.y+4,wnd3.height-8
621
	mpack	ecx,wnd3.y+4,wnd3.height-8
675
        mov     edx,[edi+SKIN_PARAMS.colors_1.inner]
622
	mov	edx,[edi+SKIN_PARAMS.colors_1.inner]
676
        call    draw_framerect
623
	call	draw_framerect
677
        mcall   13,,,[edi+SKIN_PARAMS.colors_1.frame]
624
	mcall	13,,,[edi+SKIN_PARAMS.colors_1.frame]
678
        add     ecx,(wnd3.height-5)*65536
625
	add	ecx,(wnd3.height-5)*65536
679
        mcall
626
	mcall
680
        mcall   ,,
627
	mcall	,,
681
        add     ebx,(wnd3.width-5)*65536
628
	add	ebx,(wnd3.width-5)*65536
682
        mcall
629
	mcall
683
        mcall   ,,,dword[dtp.work]
630
	mcall	,,,dword[dtp.work]
684
 
631
 
685
        mov     eax,0x00000001 ; left, inactive
632
	mov	eax,0x00000001 ; left, inactive
686
        call    find_bitmap
633
	call	find_bitmap
687
        mcall   7,,,
634
	mcall	7,,,
688
 
635
 
689
        pushd   [ebx-8]
636
	pushd	[ebx-8]
690
        mov     eax,0x00000003 ; base, inactive
637
	mov	eax,0x00000003 ; base, inactive
691
        call    find_bitmap
638
	call	find_bitmap
692
        pop     edx
639
	pop	edx
693
        mov     esi,wnd3.x+wnd3.width-1
640
	mov	esi,wnd3.x+wnd3.width-1
694
        sub     esi,edx
641
	sub	esi,edx
695
        shl     edx,16
642
	shl	edx,16
696
        add     edx,wnd3.x*65536+wnd3.y
643
	add	edx,wnd3.x*65536+wnd3.y
697
        mcall   7
644
	mcall	7
-
 
645
;--------------------------------------
-
 
646
@@:
698
    @@: rol     edx,16
647
	rol	edx,16
699
        add     dx,[ebx-8]
648
	add	dx,[ebx-8]
700
        cmp     dx,si
649
	cmp	dx,si
701
        ja      @f
650
	ja	@f
-
 
651
 
702
        rol     edx,16
652
	rol	edx,16
703
        mcall   7
653
	mcall	7
704
        jmp     @b
654
	jmp	@b
-
 
655
;--------------------------------------
705
    @@:
656
@@:
706
 
-
 
707
        mov     eax,0x00000002 ; oper, inactive
657
	mov	eax,0x00000002 ; oper, inactive
708
        call    find_bitmap
658
	call	find_bitmap
709
        mov     edx,ecx
659
	mov	edx,ecx
710
        shr     edx,16
660
	shr	edx,16
711
        neg     edx
661
	neg	edx
712
        shl     edx,16
662
	shl	edx,16
713
        add     edx,(wnd3.x+wnd3.width)*65536+wnd3.y
663
	add	edx,(wnd3.x+wnd3.width)*65536+wnd3.y
714
        mcall   7
664
	mcall	7
715
 
665
 
716
        mov     ebp,not_packed_area
666
	mov	ebp,not_packed_area
717
        mov     edi,[ebp+SKIN_HEADER.params]
667
	mov	edi,[ebp+SKIN_HEADER.params]
718
        add     edi,ebp
668
	add	edi,ebp
719
        mov     eax,dword[edi+SKIN_PARAMS.margin.left-2]
669
	mov	eax,dword[edi+SKIN_PARAMS.margin.left-2]
720
        mov     ax,word[edi+SKIN_PARAMS.skin_height]
670
	mov	ax,word[edi+SKIN_PARAMS.skin_height]
721
        sub     ax,[edi+SKIN_PARAMS.margin.bottom]
671
	sub	ax,[edi+SKIN_PARAMS.margin.bottom]
722
        shr     ax,1
672
	shr	ax,1
723
        add     ax,[edi+SKIN_PARAMS.margin.top]
673
	add	ax,[edi+SKIN_PARAMS.margin.top]
724
        add     ax,-4
674
	add	ax,-4
725
        push    eax
675
	push	eax
726
        lea     ebx,[eax+wnd3.x*65536+wnd3.y]
676
	lea	ebx,[eax+wnd3.x*65536+wnd3.y]
727
        mcall   4,,dword[dtp.grab_text],caption_text,caption_text.size
677
	mcall	4,,dword[dtp.grab_text],caption_text,caption_text.size
728
 
-
 
729
;---------------------------------------------------------
678
;---------------------------------------------------------
730
 
-
 
731
        mov     edi,[ebp+SKIN_HEADER.params]
679
	mov	edi,[ebp+SKIN_HEADER.params]
732
        add     edi,ebp
680
	add	edi,ebp
733
        mpack   ebx,wnd4.x,wnd4.width
681
	mpack	ebx,wnd4.x,wnd4.width
734
        mpack   ecx,wnd4.y,wnd4.height
682
	mpack	ecx,wnd4.y,wnd4.height
735
        mov     edx,[edi+SKIN_PARAMS.colors.outer]
683
	mov	edx,[edi+SKIN_PARAMS.colors.outer]
736
        call    draw_framerect
684
	call	draw_framerect
737
        mpack   ebx,wnd4.x+4,wnd4.width-8
685
	mpack	ebx,wnd4.x+4,wnd4.width-8
738
        mpack   ecx,wnd4.y+4,wnd4.height-8
686
	mpack	ecx,wnd4.y+4,wnd4.height-8
739
        mov     edx,[edi+SKIN_PARAMS.colors.inner]
687
	mov	edx,[edi+SKIN_PARAMS.colors.inner]
740
        call    draw_framerect
688
	call	draw_framerect
741
        mcall   13,,,[edi+SKIN_PARAMS.colors.frame]
689
	mcall	13,,,[edi+SKIN_PARAMS.colors.frame]
742
        add     ecx,(wnd4.height-5)*65536
690
	add	ecx,(wnd4.height-5)*65536
743
        mcall
691
	mcall
744
        mcall   ,,
692
	mcall	,,
745
        add     ebx,(wnd4.width-5)*65536
693
	add	ebx,(wnd4.width-5)*65536
746
        mcall
694
	mcall
747
        mcall   ,,,dword[dtp.work]
695
	mcall	,,,dword[dtp.work]
748
 
696
 
749
        mov     eax,0x00010001 ; left, inactive
697
	mov	eax,0x00010001 ; left, inactive
750
        call    find_bitmap
698
	call	find_bitmap
751
        mcall   7,,,
699
	mcall	7,,,
752
 
700
 
753
        pushd   [ebx-8]
701
	pushd	[ebx-8]
754
        mov     eax,0x00010003 ; base, inactive
702
	mov	eax,0x00010003 ; base, inactive
755
        call    find_bitmap
703
	call	find_bitmap
756
        pop     edx
704
	pop	edx
757
        mov     esi,wnd4.x+wnd4.width-1
705
	mov	esi,wnd4.x+wnd4.width-1
758
        sub     esi,edx
706
	sub	esi,edx
759
        shl     edx,16
707
	shl	edx,16
760
        add     edx,wnd4.x*65536+wnd4.y
708
	add	edx,wnd4.x*65536+wnd4.y
761
        mcall   7
709
	mcall	7
-
 
710
;--------------------------------------
-
 
711
@@:
762
    @@: rol     edx,16
712
	rol	edx,16
763
        add     dx,[ebx-8]
713
	add	dx,[ebx-8]
764
        cmp     dx,si
714
	cmp	dx,si
765
        ja      @f
715
	ja	@f
-
 
716
 
766
        rol     edx,16
717
	rol	edx,16
767
        mcall   7
718
	mcall	7
768
        jmp     @b
719
	jmp	@b
-
 
720
;--------------------------------------
769
    @@:
721
@@:
770
 
-
 
771
        mov     eax,0x00010002 ; oper, inactive
722
	mov	eax,0x00010002 ; oper, inactive
772
        call    find_bitmap
723
	call	find_bitmap
773
        mov     edx,ecx
724
	mov	edx,ecx
774
        shr     edx,16
725
	shr	edx,16
775
        neg     edx
726
	neg	edx
776
        shl     edx,16
727
	shl	edx,16
777
        add     edx,(wnd4.x+wnd4.width)*65536+wnd4.y
728
	add	edx,(wnd4.x+wnd4.width)*65536+wnd4.y
778
        mcall   7
729
	mcall	7
779
 
730
 
780
        mov     ebp,not_packed_area
731
	mov	ebp,not_packed_area
781
        mov     edi,[ebp+SKIN_HEADER.params]
732
	mov	edi,[ebp+SKIN_HEADER.params]
782
        add     edi,ebp
733
	add	edi,ebp
783
        pop     eax
734
	pop	eax
784
        lea     ebx,[eax+wnd4.x*65536+wnd4.y]
735
	lea	ebx,[eax+wnd4.x*65536+wnd4.y]
785
        mcall   4,,dword[dtp.grab_text],caption_text,caption_text.size
736
	mcall	4,,dword[dtp.grab_text],caption_text,caption_text.size
786
 
-
 
787
;----------------------------------------------------------------------
737
;----------------------------------------------------------------------
788
 
-
 
789
        mov     edi,[ebp+SKIN_HEADER.buttons]
738
	mov	edi,[ebp+SKIN_HEADER.buttons]
790
        add     edi,ebp
739
	add	edi,ebp
-
 
740
;--------------------------------------
-
 
741
.lp1:
791
  .lp1: cmp     dword[edi],0
742
	cmp	dword[edi],0
792
        je      .lp2
743
	je	.lp2
-
 
744
 
793
        mov     ebx,dword[edi+SKIN_BUTTONS.left-2]
745
	mov	ebx,dword[edi+SKIN_BUTTONS.left-2]
794
        mov     bx,[edi+SKIN_BUTTONS.width]
746
	mov	bx,[edi+SKIN_BUTTONS.width]
795
        mov     ecx,dword[edi+SKIN_BUTTONS.top-2]
747
	mov	ecx,dword[edi+SKIN_BUTTONS.top-2]
796
        mov     cx,[edi+SKIN_BUTTONS.height]
748
	mov	cx,[edi+SKIN_BUTTONS.height]
797
        add     ebx,(wnd4.x+wnd4.width)*65536
749
	add	ebx,(wnd4.x+wnd4.width)*65536
798
        add     ecx,wnd4.y*65536
750
	add	ecx,wnd4.y*65536
799
        dec     ebx
751
	dec	ebx
800
        dec     ecx
752
	dec	ecx
801
        mcall   8,,,0x40000000
753
	mcall	8,,,0x40000000
802
        add     edi,12
754
	add	edi,12
803
        jmp     .lp1
755
	jmp	.lp1
-
 
756
;--------------------------------------
804
  .lp2:
757
.lp2:
805
 
-
 
806
        mov     edi,[ebp+SKIN_HEADER.params]
758
	mov	edi,[ebp+SKIN_HEADER.params]
807
        add     edi,ebp
759
	add	edi,ebp
808
        mpack   ebx,wnd4.x+10,wnd4.y+10
760
	mpack	ebx,wnd4.x+10,wnd4.y+10
809
        add     bx,word[edi+SKIN_PARAMS.skin_height]
761
	add	bx,word[edi+SKIN_PARAMS.skin_height]
810
        mcall   4,,[dtp.work_text],window_text,window_text.size
762
	mcall	4,,[dtp.work_text],window_text,window_text.size
811
 
763
 
812
        mov     ecx,[edi+SKIN_PARAMS.skin_height]
764
	mov	ecx,[edi+SKIN_PARAMS.skin_height]
813
        shl     ecx,16
765
	shl	ecx,16
814
        add     ecx,(wnd4.y+8)*65536+10
766
	add	ecx,(wnd4.y+8)*65536+10
815
        mcall   13,
767
	mcall	13,
816
                   (wnd4.x+window_text.size*6+20)>,,[dtp.work_graph]
768
			(wnd4.x+window_text.size*6+20)>,,[dtp.work_graph]
817
 
769
 
818
        add     ecx,25*65536+8
770
	add	ecx,25*65536+8
819
        mcall   8,
771
	mcall	8,
820
                  button_text.size*6+11>,,0,[dtp.work_button]
772
			button_text.size*6+11>,,0,[dtp.work_button]
821
 
773
 
822
        shr     ecx,16
774
	shr	ecx,16
823
        mov     bx,cx
775
	mov	bx,cx
824
        add     ebx,0x00060006
776
	add	ebx,0x00060006
825
        mcall   4,,[dtp.work_button_text],button_text,button_text.size
777
	mcall	4,,[dtp.work_button_text],button_text,button_text.size
826
 
-
 
827
        ret
778
	ret
828
;---------------------------------------------------------------------
779
;---------------------------------------------------------------------
829
draw_PathShow:
780
draw_PathShow:
830
	pusha
781
	pusha
831
	mcall	13,<10,534>,<214,15>,0xffffff
782
	mcall	13,<10,534>,<214,15>,0xffffff
832
	mcall	13,<10,534>,<232,15>,0xffffff
783
	mcall	13,<10,534>,<232,15>,0xffffff
833
; draw for PathShow
784
; draw for PathShow
834
	push	dword PathShow_data_1
785
	push	dword PathShow_data_1
835
	call	[PathShow_draw]
786
	call	[PathShow_draw]
836
	
787
	
837
	push	dword PathShow_data_2
788
	push	dword PathShow_data_2
838
	call	[PathShow_draw]
789
	call	[PathShow_draw]
839
	popa
790
	popa
840
	ret
791
	ret
841
;---------------------------------------------------------------------
792
;---------------------------------------------------------------------
842
;   *********************************************
793
;   *********************************************
843
;   *******  WINDOW DEFINITIONS AND DRAW ********
794
;   *******  WINDOW DEFINITIONS AND DRAW ********
844
;   *********************************************
795
;   *********************************************
845
draw_window:
796
draw_window:
846
	mcall	12,1
797
	mcall	12,1
847
	mcall	48,3,app_colours,10*4
798
	mcall	48,3,app_colours,10*4
848
	mcall	14
799
	mcall	14
849
; DRAW WINDOW
800
; DRAW WINDOW
850
	xor	eax,eax		; function 0 : define and draw window
801
	xor	eax,eax		; function 0 : define and draw window
851
	xor	esi,esi
802
	xor	esi,esi
852
	mov	edx,[w_work]	; color of work area RRGGBB,8->color
803
	mov	edx,[w_work]	; color of work area RRGGBB,8->color
853
	or	edx,0x14000000
804
	or	edx,0x14000000
854
	mcall	,<110,555>,<50,275>,,,title
805
	mcall	,<110,555>,<50,275>,,,title
855
 
806
 
856
	mcall	9,procinfo,-1
807
	mcall	9,procinfo,-1
857
	
808
	
858
	mov	eax,[procinfo+70] ;status of window
809
	mov	eax,[procinfo+70] ;status of window
859
	test	eax,100b
810
	test	eax,100b
860
	jne	.end
811
	jne	.end
861
    
812
 
862
if lang eq ru
813
if lang eq ru
863
  load_w  = (5*2+6*9)
814
  load_w  = (5*2+6*9)
864
  save_w  = (5*2+6*9)
815
  save_w  = (5*2+6*9)
865
  flat_w  = (5*2+6*7)
816
  flat_w  = (5*2+6*7)
866
  apply_w = (5*2+6*9)
817
  apply_w = (5*2+6*9)
867
else
818
else
868
  load_w  = (5*2+6*6)
819
  load_w  = (5*2+6*6)
869
  save_w  = (5*2+6*8)
820
  save_w  = (5*2+6*8)
870
  flat_w  = (5*2+6*4)
821
  flat_w  = (5*2+6*4)
871
  apply_w = (5*2+6*7)
822
  apply_w = (5*2+6*7)
872
end if
823
end if
873
 
824
 
874
; LOAD BUTTON
825
; LOAD BUTTON
875
;	mov  ebx,15*65536+load_w
-
 
876
;	mov  ecx,(35+18*12)*65536+14
-
 
877
	mcall	8,<15,load_w>,<35+18*12,14>,12,[w_work_button]
826
	mcall	8,<15,load_w>,<35+18*12,14>,12,[w_work_button]
878
; SAVE BUTTON
827
; SAVE BUTTON
879
	add	ebx,(load_w+2)*65536-load_w+save_w
828
	add	ebx,(load_w+2)*65536-load_w+save_w
880
	inc	edx
829
	inc	edx
881
	mcall
830
	mcall
882
; 3D
831
; 3D
883
	mov	ebx,(340-t1.size*6-13)*65536+(5*2+6*4)
832
	mov	ebx,(340-t1.size*6-13)*65536+(5*2+6*4)
884
	inc	edx
833
	inc	edx
885
	mcall
834
	mcall
886
; FLAT
835
; FLAT
887
	add	ebx,(5*2+6*4+2)*65536-(5*2+6*4)+flat_w
836
	add	ebx,(5*2+6*4+2)*65536-(5*2+6*4)+flat_w
888
	inc	edx
837
	inc	edx
889
	mcall
838
	mcall
890
; APPLY BUTTON
839
; APPLY BUTTON
891
	add	ebx,(flat_w+6+2)*65536-flat_w+apply_w
840
	add	ebx,(flat_w+6+2)*65536-flat_w+apply_w
892
	inc	edx
841
	inc	edx
893
	mcall
842
	mcall
894
; LOAD SKIN BUTTON
843
; LOAD SKIN BUTTON
895
	mov	ebx,(336+(555-335)/2-t2.size*6/2)*65536+load_w
844
	mov	ebx,(336+(555-335)/2-t2.size*6/2)*65536+load_w
896
	inc	edx
845
	inc	edx
897
	mcall
846
	mcall
898
; APPLY SKIN BUTTON
847
; APPLY SKIN BUTTON
899
	add	ebx,(load_w+6+2)*65536-load_w+apply_w
848
	add	ebx,(load_w+6+2)*65536-load_w+apply_w
900
	inc	edx
849
	inc	edx
901
	mcall
850
	mcall
902
	
851
	
903
	mov	ebx,(339-t1.size*6-12)*65536+(35+18*12+4)
852
	mov	ebx,(339-t1.size*6-12)*65536+(35+18*12+4)
904
	mcall	4,,[w_work_button_text],t1,t1.size
853
	mcall	4,,[w_work_button_text],t1,t1.size
905
	
854
	
906
	mov	ebx,(336+(555-335)/2-t2.size*6/2)*65536+(35+18*12+4)
855
	mov	ebx,(336+(555-335)/2-t2.size*6/2)*65536+(35+18*12+4)
907
	mcall	,,,t2,t2.size
856
	mcall	,,,t2,t2.size
908
	
857
	
909
	mov	ebx,(15+(load_w+save_w+2-t3.size*6)/2)*65536+(35+18*12+4)
858
	mov	ebx,(15+(load_w+save_w+2-t3.size*6)/2)*65536+(35+18*12+4)
910
	mcall	,,,t3,t3.size
859
	mcall	,,,t3,t3.size
911
	
860
	
912
	mov	eax,38                    ; R G B COLOR GLIDES
861
	mov	eax,38		; R G B COLOR GLIDES
913
	mov	ebx,266*65536+285
862
	mov	ebx,266*65536+285
914
	mov	ecx,30*65536+30
863
	mov	ecx,30*65536+30
915
	mov	edx,0xff0000
864
	mov	edx,0xff0000
916
;----------------------------------- 
865
;----------------------------------- 
917
.newl:
866
.newl:
918
	mcall
867
	mcall
919
	pusha
868
	pusha
920
	add	ebx,20*65536+20
869
	add	ebx,20*65536+20
921
	shr	edx,8
870
	shr	edx,8
922
	mcall
871
	mcall
923
	add	ebx,20*65536+20
872
	add	ebx,20*65536+20
924
	shr	edx,8
873
	shr	edx,8
925
	mcall
874
	mcall
926
	popa
875
	popa
927
	sub	edx,0x020000
876
	sub	edx,0x020000
928
	add	ecx,0x00010001
877
	add	ecx,0x00010001
929
	cmp	ecx,158*65536+158
878
	cmp	ecx,158*65536+158
930
	jnz	.newl
879
	jnz	.newl
931
;-----------------------------------	
880
;-----------------------------------	
932
	call	draw_color
881
	call	draw_color
933
	
882
	
934
	mov	edx,31                    ; BUTTON ROW
883
	mov	edx,31		; BUTTON ROW
935
	mov	ebx,15*65536+200
884
	mov	ebx,15*65536+200
936
	mov	ecx,30*65536+14
885
	mov	ecx,30*65536+14
937
	mov	esi,[w_work_button]
886
	mov	esi,[w_work_button]
938
 
887
 
939
	mov	eax,8
888
	mov	eax,8
940
;-----------------------------------
889
;-----------------------------------
941
.newb:
890
.newb:
942
	mcall
891
	mcall
943
	add	ecx,18*65536
892
	add	ecx,18*65536
944
	inc	edx
893
	inc	edx
945
	cmp	edx,40
894
	cmp	edx,40
946
	jbe	.newb
895
	jbe	.newb
947
;-----------------------------------	
896
;-----------------------------------	
948
	mov	ebx,15*65536+34           ; ROW OF TEXTS
897
	mov	ebx,15*65536+34		; ROW OF TEXTS
949
	mov	ecx,[w_work_button_text]
898
	mov	ecx,[w_work_button_text]
950
	mov	edx,text
899
	mov	edx,text
951
	mov	esi,32
900
	mov	esi,32
952
 
901
 
953
	mov	eax,4
902
	mov	eax,4
954
;-----------------------------------
903
;-----------------------------------
955
.newline:
904
.newline:
956
	mcall
905
	mcall
957
	add	ebx,18
906
	add	ebx,18
958
	add	edx,32
907
	add	edx,32
959
	cmp	[edx],byte 'x'
908
	cmp	[edx],byte 'x'
960
	jne	.newline
909
	jne	.newline
961
;-----------------------------------
910
;-----------------------------------
962
	call	draw_colours
911
	call	draw_colours
963
	call	draw_PathShow	
912
	call	draw_PathShow	
964
	cmp	dword[not_packed_area+SKIN_HEADER.ident],'SKIN'
913
	cmp	dword[not_packed_area+SKIN_HEADER.ident],'SKIN'
965
	jne	@f
914
	jne	@f
966
	call	draw_skin
915
	call	draw_skin
967
@@:
916
@@:
968
.end:
917
.end:
969
	mcall	12,2
918
	mcall	12,2
970
	ret
919
	ret
971
;---------------------------------------------------------------------
920
;---------------------------------------------------------------------
972
; DATA AREA
921
; DATA AREA
973
;---------------------------------------------------------------------
922
;---------------------------------------------------------------------
974
lsz text,\
923
lsz text,\
975
    ru,  ' €ŒŠ€ ŽŠ€                     ',\
924
    ru,  ' €ŒŠ€ ŽŠ€                     ',\
976
    ru,  ' Ž‹Ž‘€ ‡€ƒŽ‹Ž‚Š€               ',\
925
    ru,  ' Ž‹Ž‘€ ‡€ƒŽ‹Ž‚Š€               ',\
977
    ru,  ' ŠŽŠ€ € Ž‹Ž‘… ‡€ƒŽ‹Ž‚Š€     ',\
926
    ru,  ' ŠŽŠ€ € Ž‹Ž‘… ‡€ƒŽ‹Ž‚Š€     ',\
978
    ru,  ' ’…Š‘’ € ŠŽŠ… € ‡€ƒŽ‹Ž‚Š…   ',\
927
    ru,  ' ’…Š‘’ € ŠŽŠ… € ‡€ƒŽ‹Ž‚Š…   ',\
979
    ru,  ' ’…Š‘’ ‡€ƒŽ‹Ž‚ŽŠ€               ',\
928
    ru,  ' ’…Š‘’ ‡€ƒŽ‹Ž‚ŽŠ€               ',\
980
    ru,  ' €Ž—€Ÿ Ž‹€‘’œ                ',\
929
    ru,  ' €Ž—€Ÿ Ž‹€‘’œ                ',\
981
    ru,  ' ŠŽŠ€ ‚ €Ž—…‰ Ž‹€‘’ˆ       ',\
930
    ru,  ' ŠŽŠ€ ‚ €Ž—…‰ Ž‹€‘’ˆ       ',\
982
    ru,  ' ’…Š‘’ € ŠŽŠ…                ',\
931
    ru,  ' ’…Š‘’ € ŠŽŠ…                ',\
983
    ru,  ' ’…Š‘’ ‚ €Ž—…‰ Ž‹€‘’ˆ        ',\
932
    ru,  ' ’…Š‘’ ‚ €Ž—…‰ Ž‹€‘’ˆ        ',\
984
    ru,  ' ƒ€”ˆŠ€ ‚ €Ž—…‰ Ž‹€‘’ˆ      ',\
933
    ru,  ' ƒ€”ˆŠ€ ‚ €Ž—…‰ Ž‹€‘’ˆ      ',\
985
    ru,  'x',\
934
    ru,  'x',\
986
    en,  ' WINDOW FRAME                   ',\
935
    en,  ' WINDOW FRAME                   ',\
987
    en,  ' WINDOW GRAB BAR                ',\
936
    en,  ' WINDOW GRAB BAR                ',\
988
    en,  ' WINDOW GRAB BUTTON             ',\
937
    en,  ' WINDOW GRAB BUTTON             ',\
989
    en,  ' WINDOW GRAB BUTTON TEXT        ',\
938
    en,  ' WINDOW GRAB BUTTON TEXT        ',\
990
    en,  ' WINDOW GRAB TITLE              ',\
939
    en,  ' WINDOW GRAB TITLE              ',\
991
    en,  ' WINDOW WORK AREA               ',\
940
    en,  ' WINDOW WORK AREA               ',\
992
    en,  ' WINDOW WORK AREA BUTTON        ',\
941
    en,  ' WINDOW WORK AREA BUTTON        ',\
993
    en,  ' WINDOW WORK AREA BUTTON TEXT   ',\
942
    en,  ' WINDOW WORK AREA BUTTON TEXT   ',\
994
    en,  ' WINDOW WORK AREA TEXT          ',\
943
    en,  ' WINDOW WORK AREA TEXT          ',\
995
    en,  ' WINDOW WORK AREA GRAPH         ',\
944
    en,  ' WINDOW WORK AREA GRAPH         ',\
996
    en,  'x',\
945
    en,  'x',\
997
    et,  ' AKNA RAAM                      ',\
946
    et,  ' AKNA RAAM                      ',\
998
    et,  ' AKNA HAARAMISE RIBA            ',\
947
    et,  ' AKNA HAARAMISE RIBA            ',\
999
    et,  ' AKNA HAARAMISE NUPP            ',\
948
    et,  ' AKNA HAARAMISE NUPP            ',\
1000
    et,  ' AKNA HAARAMISE NUPU TEKST      ',\
949
    et,  ' AKNA HAARAMISE NUPU TEKST      ',\
1001
    et,  ' AKNA HAARAMISE PEALKIRI        ',\
950
    et,  ' AKNA HAARAMISE PEALKIRI        ',\
1002
    et,  ' AKNA TÖÖPIIRKOND               ',\
951
    et,  ' AKNA TÖÖPIIRKOND               ',\
1003
    et,  ' AKNA TÖÖPIIRKONNA NUPP         ',\
952
    et,  ' AKNA TÖÖPIIRKONNA NUPP         ',\
1004
    et,  ' AKNA TÖÖPIIRKONNA NUPPU TEKST  ',\
953
    et,  ' AKNA TÖÖPIIRKONNA NUPPU TEKST  ',\
1005
    et,  ' AKNA TÖÖPIIRKONNA TEKST        ',\
954
    et,  ' AKNA TÖÖPIIRKONNA TEKST        ',\
1006
    et,  ' AKNA TÖÖPIIRKONNA GRAAFIKA     ',\
955
    et,  ' AKNA TÖÖPIIRKONNA GRAAFIKA     ',\
1007
    et,  'x'
956
    et,  'x'
1008
 
957
 
1009
lsz t1,\
958
lsz t1,\
1010
    ru, '  3D   ‹Ž‘Šˆ…   ˆŒ…ˆ’œ ',\
959
    ru, '  3D   ‹Ž‘Šˆ…   ˆŒ…ˆ’œ ',\
1011
    en, '  3D   FLAT    APPLY  ',\
960
    en, '  3D   FLAT    APPLY  ',\
1012
    et, '  3D   LAME   KINNITA '
961
    et, '  3D   LAME   KINNITA '
1013
 
962
 
1014
lsz t2,\
963
lsz t2,\
1015
    ru,  ' ‡€ƒ“‡ˆ’œ   ˆŒ…ˆ’œ ',\
964
    ru,  ' ‡€ƒ“‡ˆ’œ   ˆŒ…ˆ’œ ',\
1016
    en,  '  LOAD     APPLY  ',\
965
    en,  '  LOAD     APPLY  ',\
1017
    et,  '  LAADI   KINNITA '
966
    et,  '  LAADI   KINNITA '
1018
 
967
 
1019
lsz t3,\
968
lsz t3,\
1020
    ru,  ' ‡€ƒ“‡ˆ’œ  ‘Ž•€ˆ’œ ',\
969
    ru,  ' ‡€ƒ“‡ˆ’œ  ‘Ž•€ˆ’œ ',\
1021
    en,  '  LOAD     SAVE  ',\
970
    en,  '  LOAD     SAVE  ',\
1022
    et,  ' LAADI  SALVESTA',\
971
    et,  ' LAADI  SALVESTA',\
1023
 
972
 
1024
lsz caption_text,\
973
lsz caption_text,\
1025
    ru, '‡ £®«®¢®ª',\
974
    ru, '‡ £®«®¢®ª',\
1026
    en, 'Caption',\
975
    en, 'Caption',\
1027
    et, 'Pealkiri'
976
    et, 'Pealkiri'
1028
 
977
 
1029
sz  close_text,'x'
978
sz  close_text,'x'
1030
 
979
 
1031
lsz window_text,\
980
lsz window_text,\
1032
    ru, '’¥ªáâ ¢ ®ª­¥',\
981
    ru, '’¥ªáâ ¢ ®ª­¥',\
1033
    en, 'Window text',\
982
    en, 'Window text',\
1034
    et, 'Akna tekst'
983
    et, 'Akna tekst'
1035
 
984
 
1036
lsz button_text,\
985
lsz button_text,\
1037
    ru, '’¥ªáâ ­  ª­®¯ª¥',\
986
    ru, '’¥ªáâ ­  ª­®¯ª¥',\
1038
    en, 'Button text',\
987
    en, 'Button text',\
1039
    et, 'Nupu tekst'
988
    et, 'Nupu tekst'
1040
 
989
 
1041
;sz  default_skn, '/sys/DEFAULT.SKN',0
990
;sz  default_skn, '/sys/DEFAULT.SKN',0
1042
 
991
 
1043
if lang eq ru
992
if lang eq ru
1044
  title db '€‘’Ž‰Š€ ŽŠŽ',0
993
  title db '€‘’Ž‰Š€ ŽŠŽ',0
1045
else if lang eq et
994
else if lang eq et
1046
  title db 'AKNA SEADED - VALI VÄRV JA VAJUTA OBJEKTILE',0
995
  title db 'AKNA SEADED - VALI VÄRV JA VAJUTA OBJEKTILE',0
1047
else
996
else
1048
  title db 'WINDOWS SETTINGS - DEFINE COLOR AND CLICK ON TARGET',0
997
  title db 'WINDOWS SETTINGS - DEFINE COLOR AND CLICK ON TARGET',0
1049
end if
998
end if
1050
 
999
 
1051
 
1000
 
1052
color dd  0
1001
color dd  0
1053
 
1002
 
1054
;---------------------------------------------------------------------
1003
;---------------------------------------------------------------------
1055
l_libs_start:
1004
l_libs_start:
1056
 
1005
 
1057
library01  l_libs system_dir_Boxlib+9, cur_dir_path, library_path, system_dir_Boxlib, \
1006
library01  l_libs system_dir_Boxlib+9, cur_dir_path, library_path, system_dir_Boxlib, \
1058
err_message_found_lib1, head_f_l, Box_lib_import, err_message_import1, head_f_i
1007
err_message_found_lib1, head_f_l, Box_lib_import, err_message_import1, head_f_i
1059
 
1008
 
1060
library02  l_libs system_dir_ProcLib+9, cur_dir_path, library_path, system_dir_ProcLib, \
1009
library02  l_libs system_dir_ProcLib+9, cur_dir_path, library_path, system_dir_ProcLib, \
1061
err_message_found_lib2, head_f_l, ProcLib_import, err_message_import2, head_f_i
1010
err_message_found_lib2, head_f_l, ProcLib_import, err_message_import2, head_f_i
1062
 
1011
 
1063
end_l_libs:
1012
end_l_libs:
1064
;---------------------------------------------------------------------
1013
;---------------------------------------------------------------------
1065
system_dir_Boxlib	db '/sys/lib/box_lib.obj',0
1014
system_dir_Boxlib	db '/sys/lib/box_lib.obj',0
1066
system_dir_ProcLib	db '/sys/lib/proc_lib.obj',0
1015
system_dir_ProcLib	db '/sys/lib/proc_lib.obj',0
1067
 
1016
 
1068
head_f_i:
1017
head_f_i:
1069
head_f_l	db 'System error',0
1018
head_f_l	db 'System error',0
1070
 
1019
 
1071
err_message_found_lib1	db 'box_lib.obj - Not found!',0
1020
err_message_found_lib1	db 'box_lib.obj - Not found!',0
1072
err_message_found_lib2	db 'proc_lib.obj - Not found!',0
1021
err_message_found_lib2	db 'proc_lib.obj - Not found!',0
1073
 
1022
 
1074
err_message_import1	db 'box_lib.obj - Wrong import!',0
1023
err_message_import1	db 'box_lib.obj - Wrong import!',0
1075
err_message_import2	db 'proc_lib.obj - Wrong import!',0
1024
err_message_import2	db 'proc_lib.obj - Wrong import!',0
1076
 
1025
 
1077
;---------------------------------------------------------------------
1026
;---------------------------------------------------------------------
1078
align 4
1027
align 4
1079
ProcLib_import:
1028
ProcLib_import:
1080
OpenDialog_Init		dd aOpenDialog_Init
1029
OpenDialog_Init		dd aOpenDialog_Init
1081
OpenDialog_Start	dd aOpenDialog_Start
1030
OpenDialog_Start	dd aOpenDialog_Start
1082
;OpenDialog__Version	dd aOpenDialog_Version
1031
;OpenDialog__Version	dd aOpenDialog_Version
1083
        dd      0
1032
        dd      0
1084
        dd      0
1033
        dd      0
1085
aOpenDialog_Init	db 'OpenDialog_init',0
1034
aOpenDialog_Init	db 'OpenDialog_init',0
1086
aOpenDialog_Start	db 'OpenDialog_start',0
1035
aOpenDialog_Start	db 'OpenDialog_start',0
1087
;aOpenDialog_Version	db 'Version_OpenDialog',0
1036
;aOpenDialog_Version	db 'Version_OpenDialog',0
1088
;---------------------------------------------------------------------
1037
;---------------------------------------------------------------------
1089
align 4
1038
align 4
1090
Box_lib_import:	
1039
Box_lib_import:	
1091
;init_lib		dd a_init
1040
;init_lib		dd a_init
1092
;version_lib		dd a_version
1041
;version_lib		dd a_version
1093
 
1042
 
1094
 
1043
 
1095
;edit_box_draw		dd aEdit_box_draw
1044
;edit_box_draw		dd aEdit_box_draw
1096
;edit_box_key		dd aEdit_box_key
1045
;edit_box_key		dd aEdit_box_key
1097
;edit_box_mouse		dd aEdit_box_mouse
1046
;edit_box_mouse		dd aEdit_box_mouse
1098
;version_ed		dd aVersion_ed
1047
;version_ed		dd aVersion_ed
1099
 
1048
 
1100
;check_box_draw		dd aCheck_box_draw
1049
;check_box_draw		dd aCheck_box_draw
1101
;check_box_mouse	dd aCheck_box_mouse
1050
;check_box_mouse	dd aCheck_box_mouse
1102
;version_ch		dd aVersion_ch
1051
;version_ch		dd aVersion_ch
1103
 
1052
 
1104
;option_box_draw	dd aOption_box_draw
1053
;option_box_draw	dd aOption_box_draw
1105
;option_box_mouse	dd aOption_box_mouse
1054
;option_box_mouse	dd aOption_box_mouse
1106
;version_op		dd aVersion_op
1055
;version_op		dd aVersion_op
1107
 
1056
 
1108
;scrollbar_ver_draw	dd aScrollbar_ver_draw
1057
;scrollbar_ver_draw	dd aScrollbar_ver_draw
1109
;scrollbar_ver_mouse	dd aScrollbar_ver_mouse
1058
;scrollbar_ver_mouse	dd aScrollbar_ver_mouse
1110
;scrollbar_hor_draw	dd aScrollbar_hor_draw
1059
;scrollbar_hor_draw	dd aScrollbar_hor_draw
1111
;scrollbar_hor_mouse	dd aScrollbar_hor_mouse
1060
;scrollbar_hor_mouse	dd aScrollbar_hor_mouse
1112
;version_scrollbar	dd aVersion_scrollbar
1061
;version_scrollbar	dd aVersion_scrollbar
1113
 
1062
 
1114
;dinamic_button_draw	dd aDbutton_draw
1063
;dinamic_button_draw	dd aDbutton_draw
1115
;dinamic_button_mouse	dd aDbutton_mouse
1064
;dinamic_button_mouse	dd aDbutton_mouse
1116
;version_dbutton	dd aVersion_dbutton
1065
;version_dbutton	dd aVersion_dbutton
1117
 
1066
 
1118
;menu_bar_draw		dd aMenu_bar_draw
1067
;menu_bar_draw		dd aMenu_bar_draw
1119
;menu_bar_mouse		dd aMenu_bar_mouse
1068
;menu_bar_mouse		dd aMenu_bar_mouse
1120
;menu_bar_activate	dd aMenu_bar_activate
1069
;menu_bar_activate	dd aMenu_bar_activate
1121
;version_menu_bar	dd aVersion_menu_bar
1070
;version_menu_bar	dd aVersion_menu_bar
1122
 
1071
 
1123
;FileBrowser_draw	dd aFileBrowser_draw
1072
;FileBrowser_draw	dd aFileBrowser_draw
1124
;FileBrowser_mouse	dd aFileBrowser_mouse
1073
;FileBrowser_mouse	dd aFileBrowser_mouse
1125
;FileBrowser_key	dd aFileBrowser_key
1074
;FileBrowser_key	dd aFileBrowser_key
1126
;Version_FileBrowser	dd aVersion_FileBrowser
1075
;Version_FileBrowser	dd aVersion_FileBrowser
1127
 
1076
 
1128
PathShow_prepare	dd sz_PathShow_prepare
1077
PathShow_prepare	dd sz_PathShow_prepare
1129
PathShow_draw		dd sz_PathShow_draw
1078
PathShow_draw		dd sz_PathShow_draw
1130
;Version_path_show	dd szVersion_path_show
1079
;Version_path_show	dd szVersion_path_show
1131
			dd 0
1080
			dd 0
1132
			dd 0
1081
			dd 0
1133
 
1082
 
1134
;a_init			db 'lib_init',0
1083
;a_init			db 'lib_init',0
1135
;a_version		db 'version',0
1084
;a_version		db 'version',0
1136
 
1085
 
1137
;aEdit_box_draw		db 'edit_box',0
1086
;aEdit_box_draw		db 'edit_box',0
1138
;aEdit_box_key		db 'edit_box_key',0
1087
;aEdit_box_key		db 'edit_box_key',0
1139
;aEdit_box_mouse	db 'edit_box_mouse',0
1088
;aEdit_box_mouse	db 'edit_box_mouse',0
1140
;aVersion_ed		db 'version_ed',0
1089
;aVersion_ed		db 'version_ed',0
1141
 
1090
 
1142
;aCheck_box_draw	db 'check_box_draw',0
1091
;aCheck_box_draw	db 'check_box_draw',0
1143
;aCheck_box_mouse	db 'check_box_mouse',0
1092
;aCheck_box_mouse	db 'check_box_mouse',0
1144
;aVersion_ch		db 'version_ch',0
1093
;aVersion_ch		db 'version_ch',0
1145
 
1094
 
1146
;aOption_box_draw	db 'option_box_draw',0
1095
;aOption_box_draw	db 'option_box_draw',0
1147
;aOption_box_mouse	db 'option_box_mouse',0
1096
;aOption_box_mouse	db 'option_box_mouse',0
1148
;aVersion_op		db 'version_op',0
1097
;aVersion_op		db 'version_op',0
1149
 
1098
 
1150
;aScrollbar_ver_draw	db 'scrollbar_v_draw',0
1099
;aScrollbar_ver_draw	db 'scrollbar_v_draw',0
1151
;aScrollbar_ver_mouse	db 'scrollbar_v_mouse',0
1100
;aScrollbar_ver_mouse	db 'scrollbar_v_mouse',0
1152
;aScrollbar_hor_draw	db 'scrollbar_h_draw',0
1101
;aScrollbar_hor_draw	db 'scrollbar_h_draw',0
1153
;aScrollbar_hor_mouse	db 'scrollbar_h_mouse',0
1102
;aScrollbar_hor_mouse	db 'scrollbar_h_mouse',0
1154
;aVersion_scrollbar	db 'version_scrollbar',0
1103
;aVersion_scrollbar	db 'version_scrollbar',0
1155
 
1104
 
1156
;aDbutton_draw		db 'dbutton_draw',0
1105
;aDbutton_draw		db 'dbutton_draw',0
1157
;aDbutton_mouse		db 'dbutton_mouse',0
1106
;aDbutton_mouse		db 'dbutton_mouse',0
1158
;aVersion_dbutton	db 'version_dbutton',0
1107
;aVersion_dbutton	db 'version_dbutton',0
1159
 
1108
 
1160
;aMenu_bar_draw		db 'menu_bar_draw',0
1109
;aMenu_bar_draw		db 'menu_bar_draw',0
1161
;aMenu_bar_mouse		db 'menu_bar_mouse',0
1110
;aMenu_bar_mouse		db 'menu_bar_mouse',0
1162
;aMenu_bar_activate	db 'menu_bar_activate',0
1111
;aMenu_bar_activate	db 'menu_bar_activate',0
1163
;aVersion_menu_bar	db 'version_menu_bar',0
1112
;aVersion_menu_bar	db 'version_menu_bar',0
1164
 
1113
 
1165
;aFileBrowser_draw	db 'FileBrowser_draw',0
1114
;aFileBrowser_draw	db 'FileBrowser_draw',0
1166
;aFileBrowser_mouse	db 'FileBrowser_mouse',0
1115
;aFileBrowser_mouse	db 'FileBrowser_mouse',0
1167
;aFileBrowser_key	db 'FileBrowser_key',0
1116
;aFileBrowser_key	db 'FileBrowser_key',0
1168
;aVersion_FileBrowser	db 'version_FileBrowser',0
1117
;aVersion_FileBrowser	db 'version_FileBrowser',0
1169
 
1118
 
1170
sz_PathShow_prepare	db 'PathShow_prepare',0
1119
sz_PathShow_prepare	db 'PathShow_prepare',0
1171
sz_PathShow_draw	db 'PathShow_draw',0
1120
sz_PathShow_draw	db 'PathShow_draw',0
1172
;szVersion_path_show	db 'version_PathShow',0
1121
;szVersion_path_show	db 'version_PathShow',0
1173
;---------------------------------------------------------------------
1122
;---------------------------------------------------------------------
1174
PathShow_data_1:
1123
PathShow_data_1:
1175
.type			dd 0	;+0
1124
.type			dd 0	;+0
1176
.start_y		dw 217	;+4
1125
.start_y		dw 217	;+4
1177
.start_x		dw 12	;+6
1126
.start_x		dw 12	;+6
1178
.font_size_x		dw 6	;+8	; 6 - for font 0, 8 - for font 1
1127
.font_size_x		dw 6	;+8	; 6 - for font 0, 8 - for font 1
1179
.area_size_x		dw 530	;+10
1128
.area_size_x		dw 530	;+10
1180
.font_number		dd 0	;+12	; 0 - monospace, 1 - variable
1129
.font_number		dd 0	;+12	; 0 - monospace, 1 - variable
1181
.background_flag	dd 0	;+16
1130
.background_flag	dd 0	;+16
1182
.font_color		dd 0x0	;+20
1131
.font_color		dd 0x0	;+20
1183
.background_color	dd 0x0	;+24
1132
.background_color	dd 0x0	;+24
1184
.text_pointer		dd fname	;+28
1133
.text_pointer		dd fname	;+28
1185
.work_area_pointer	dd text_work_area	;+32
1134
.work_area_pointer	dd text_work_area	;+32
1186
.temp_text_length	dd 0	;+36
1135
.temp_text_length	dd 0	;+36
1187
;---------------------------------------------------------------------
1136
;---------------------------------------------------------------------
1188
PathShow_data_2:
1137
PathShow_data_2:
1189
.type			dd 0	;+0
1138
.type			dd 0	;+0
1190
.start_y		dw 235	;+4
1139
.start_y		dw 235	;+4
1191
.start_x		dw 12	;+6
1140
.start_x		dw 12	;+6
1192
.font_size_x		dw 6	;+8	; 6 - for font 0, 8 - for font 1
1141
.font_size_x		dw 6	;+8	; 6 - for font 0, 8 - for font 1
1193
.area_size_x		dw 530	;+10
1142
.area_size_x		dw 530	;+10
1194
.font_number		dd 0	;+12	; 0 - monospace, 1 - variable
1143
.font_number		dd 0	;+12	; 0 - monospace, 1 - variable
1195
.background_flag	dd 0	;+16
1144
.background_flag	dd 0	;+16
1196
.font_color		dd 0x0	;+20
1145
.font_color		dd 0x0	;+20
1197
.background_color	dd 0x0	;+24
1146
.background_color	dd 0x0	;+24
1198
.text_pointer		dd skin_info	;+28
1147
.text_pointer		dd skin_info	;+28
1199
.work_area_pointer	dd text_work_area2	;+32
1148
.work_area_pointer	dd text_work_area2	;+32
1200
.temp_text_length	dd 0	;+36
1149
.temp_text_length	dd 0	;+36
1201
;---------------------------------------------------------------------
1150
;---------------------------------------------------------------------
1202
OpenDialog_data:
1151
OpenDialog_data:
1203
.type			dd 0
1152
.type			dd 0
1204
.procinfo		dd procinfo	;+4
1153
.procinfo		dd procinfo	;+4
1205
.com_area_name		dd communication_area_name	;+8
1154
.com_area_name		dd communication_area_name	;+8
1206
.com_area		dd 0	;+12
1155
.com_area		dd 0	;+12
1207
.opendir_pach		dd temp_dir_pach	;+16
1156
.opendir_pach		dd temp_dir_pach	;+16
1208
.dir_default_pach	dd communication_area_default_pach	;+20
1157
.dir_default_pach	dd communication_area_default_pach	;+20
1209
.start_path		dd open_dialog_path	;+24
1158
.start_path		dd open_dialog_path	;+24
1210
.draw_window		dd draw_window	;+28
1159
.draw_window		dd draw_window	;+28
1211
.status			dd 0	;+32
1160
.status			dd 0	;+32
1212
.openfile_pach 		dd fname	;+36
1161
.openfile_pach 		dd fname	;+36
1213
.filename_area		dd filename_area	;+40
1162
.filename_area		dd filename_area	;+40
1214
.filter_area		dd Filter
1163
.filter_area		dd Filter
1215
.x:
1164
.x:
1216
.x_size			dw 420 ;+48 ; Window X size
1165
.x_size			dw 420 ;+48 ; Window X size
1217
.x_start		dw 10 ;+50 ; Window X position
1166
.x_start		dw 10 ;+50 ; Window X position
1218
.y:
1167
.y:
1219
.y_size			dw 320 ;+52 ; Window y size
1168
.y_size			dw 320 ;+52 ; Window y size
1220
.y_start		dw 10 ;+54 ; Window Y position
1169
.y_start		dw 10 ;+54 ; Window Y position
1221
 
1170
 
1222
OpenDialog_data2:
1171
OpenDialog_data2:
1223
.type			dd 0
1172
.type			dd 0
1224
.procinfo		dd procinfo	;+4
1173
.procinfo		dd procinfo	;+4
1225
.com_area_name		dd communication_area_name2	;+8
1174
.com_area_name		dd communication_area_name2	;+8
1226
.com_area		dd 0	;+12
1175
.com_area		dd 0	;+12
1227
.opendir_pach		dd temp_dir_pach2	;+16
1176
.opendir_pach		dd temp_dir_pach2	;+16
1228
.dir_default_pach	dd communication_area_default_pach	;+20
1177
.dir_default_pach	dd communication_area_default_pach	;+20
1229
.start_path		dd open_dialog_path	;+24
1178
.start_path		dd open_dialog_path	;+24
1230
.draw_window		dd draw_window	;+28
1179
.draw_window		dd draw_window	;+28
1231
.status			dd 0	;+32
1180
.status			dd 0	;+32
1232
.openfile_pach 		dd skin_info	;+36
1181
.openfile_pach 		dd skin_info	;+36
1233
.filename_area		dd filename_area2	;+40
1182
.filename_area		dd filename_area2	;+40
1234
.filter_area		dd Filter2
1183
.filter_area		dd Filter2
1235
.x:
1184
.x:
1236
.x_size			dw 420 ;+48 ; Window X size
1185
.x_size			dw 420 ;+48 ; Window X size
1237
.x_start		dw 10 ;+50 ; Window X position
1186
.x_start		dw 10 ;+50 ; Window X position
1238
.y:
1187
.y:
1239
.y_size			dw 320 ;+52 ; Window y size
1188
.y_size			dw 320 ;+52 ; Window y size
1240
.y_start		dw 10 ;+54 ; Window Y position
1189
.y_start		dw 10 ;+54 ; Window Y position
1241
 
1190
 
1242
communication_area_name2:
1191
communication_area_name2:
1243
	db 'FFFFFFFF_open_dialog',0
1192
	db 'FFFFFFFF_open_dialog',0
1244
 
1193
 
1245
communication_area_name:
1194
communication_area_name:
1246
	db 'FFFFFFFF_open_dialog2',0
1195
	db 'FFFFFFFF_open_dialog2',0
1247
open_dialog_path:
1196
open_dialog_path:
1248
if __nightbuild eq yes
1197
if __nightbuild eq yes
1249
    db '/sys/MANAGERS/opendial',0
1198
	db '/sys/MANAGERS/opendial',0
1250
else
1199
else
1251
    db '/sys/File Managers/opendial',0
1200
	db '/sys/File Managers/opendial',0
1252
end if
1201
end if
1253
communication_area_default_pach:
1202
communication_area_default_pach:
1254
	db '/sys',0
1203
	db '/sys',0
1255
 
1204
 
1256
Filter:
1205
Filter:
1257
dd	Filter.end - Filter
1206
	dd Filter.end - Filter
1258
.1:
1207
.1:
1259
db	'DTP',0
1208
	db 'DTP',0
1260
.end:
1209
.end:
1261
db	0
1210
	db 0
1262
 
1211
 
1263
Filter2:
1212
Filter2:
1264
dd	Filter.end - Filter
1213
	dd Filter.end - Filter
1265
.1:
1214
.1:
1266
db	'SKN',0
1215
	db 'SKN',0
1267
.end:
1216
.end:
1268
db	0
1217
	db 0
1269
 
1218
 
-
 
1219
start_temp_file_name:
1270
start_temp_file_name:	db 'default.dtp',0
1220
	db 'default.dtp',0
1271
 
1221
 
1272
default_skin:
1222
default_skin:
1273
	db '/sys/default.skn',0
1223
	db '/sys/default.skn',0
1274
default_dtp:
1224
default_dtp:
1275
	db '/sys/default.dtp',0
1225
	db '/sys/default.dtp',0
1276
;---------------------------------------------------------------------
1226
;---------------------------------------------------------------------
1277
IncludeIGlobals
1227
IncludeIGlobals
1278
 
1228
 
1279
I_END:
1229
I_END:
1280
 
1230
 
1281
IncludeUGlobals
1231
IncludeUGlobals
1282
 
1232
 
1283
read_info:
1233
read_info:
1284
  .mode         dd ?            ; read
1234
  .mode         dd ?            ; read
1285
  .start_block  dd ?            ; first block
1235
  .start_block  dd ?            ; first block
1286
  .blocks       dd ?            ; 512 bytes
1236
  .blocks       dd ?            ; 512 bytes
1287
  .address      dd ?
1237
  .address      dd ?
1288
  .workarea     dd ?
1238
  .workarea     dd ?
1289
fname rb 4096            ; filename
1239
fname rb 4096            ; filename
1290
 
1240
 
1291
virtual at read_info
1241
virtual at read_info
1292
 write_info:
1242
 write_info:
1293
  .mode         dd ?
1243
  .mode         dd ?
1294
  rd 1
1244
  rd 1
1295
  .bytes2write  dd ?
1245
  .bytes2write  dd ?
1296
  .address      dd ?
1246
  .address      dd ?
1297
  .workarea     dd ?
1247
  .workarea     dd ?
1298
end virtual
1248
end virtual
1299
 
1249
 
1300
read_info2:
1250
read_info2:
1301
  .mode         dd ?            ; read
1251
  .mode         dd ?            ; read
1302
  .start_block  dd ?            ; first block
1252
  .start_block  dd ?            ; first block
1303
  .blocks       dd ?            ; 512 bytes
1253
  .blocks       dd ?            ; 512 bytes
1304
  .address      dd ?
1254
  .address      dd ?
1305
  .workarea     dd ?
1255
  .workarea     dd ?
1306
skin_info rb 4096
1256
skin_info rb 4096
1307
 
1257
 
1308
;param   rb      257
1258
;param   rb      257
1309
 
1259
 
1310
align 4
1260
align 4
1311
app_colours:
1261
app_colours:
1312
 
1262
 
1313
w_frame              dd ?
1263
w_frame              dd ?
1314
w_grab               dd ?
1264
w_grab               dd ?
1315
w_grab_button        dd ?
1265
w_grab_button        dd ?
1316
w_grab_button_text   dd ?
1266
w_grab_button_text   dd ?
1317
w_grab_text          dd ?
1267
w_grab_text          dd ?
1318
w_work               dd ?
1268
w_work               dd ?
1319
w_work_button        dd ?
1269
w_work_button        dd ?
1320
w_work_button_text   dd ?
1270
w_work_button_text   dd ?
1321
w_work_text          dd ?
1271
w_work_text          dd ?
1322
w_work_graph         dd ?
1272
w_work_graph         dd ?
1323
 
1273
 
1324
color_table:
1274
color_table:
1325
  times 10 dd ?
1275
	times 10 dd ?
1326
;---------------------------------------------------------------------
1276
;---------------------------------------------------------------------
1327
align 4
1277
align 4
1328
cur_dir_path:
1278
cur_dir_path:
1329
	rb 4096
1279
	rb 4096
1330
;---------------------------------------------------------------------
1280
;---------------------------------------------------------------------
1331
library_path:
1281
library_path:
1332
	rb 4096
1282
	rb 4096
1333
;---------------------------------------------------------------------
1283
;---------------------------------------------------------------------
1334
;fname_buf:
-
 
1335
;	rb 4096
-
 
1336
;---------------------------------------------------------------------
-
 
1337
temp_dir_pach:
1284
temp_dir_pach:
1338
	rb 4096
1285
	rb 4096
1339
;---------------------------------------------------------------------
1286
;---------------------------------------------------------------------
1340
temp_dir_pach2:
1287
temp_dir_pach2:
1341
	rb 4096
1288
	rb 4096
1342
;---------------------------------------------------------------------
1289
;---------------------------------------------------------------------
1343
text_work_area:
1290
text_work_area:
1344
	rb 1024
1291
	rb 1024
1345
;---------------------------------------------------------------------
1292
;---------------------------------------------------------------------
1346
text_work_area2:
1293
text_work_area2:
1347
	rb 1024
1294
	rb 1024
1348
;---------------------------------------------------------------------
1295
;---------------------------------------------------------------------
1349
procinfo:
1296
procinfo:
1350
	rb 1024
1297
	rb 1024
1351
;---------------------------------------------------------------------
1298
;---------------------------------------------------------------------
1352
filename_area:
1299
filename_area:
1353
	rb 256
1300
	rb 256
1354
;---------------------------------------------------------------------
1301
;---------------------------------------------------------------------
1355
filename_area2:
1302
filename_area2:
1356
	rb 256
1303
	rb 256
1357
;---------------------------------------------------------------------
1304
;---------------------------------------------------------------------
1358
	rb 4096
1305
	rb 4096
1359
stacktop:
1306
stacktop:
1360
;---------------------------------------------------------------------
1307
;---------------------------------------------------------------------
1361
file_load_area:	; old 0x10000
1308
file_load_area:	; old 0x10000
1362
	rb 32*1024
1309
	rb 32*1024
1363
;---------------------------------------------------------------------
1310
;---------------------------------------------------------------------
1364
not_packed_area:	; old 0x18000
1311
not_packed_area:	; old 0x18000
1365
	rb 32*1024
1312
	rb 32*1024
1366
;---------------------------------------------------------------------
1313
;---------------------------------------------------------------------
1367
unpack_area:	; old 0x20000
1314
unpack_area:	; old 0x20000
1368
	rb 32*1024
1315
	rb 32*1024
1369
;---------------------------------------------------------------------
1316
;---------------------------------------------------------------------
1370
i_end:
1317
i_end:
1371
>
1318
>
1372
>
1319
>