Subversion Repositories Kolibri OS

Rev

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

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