Subversion Repositories Kolibri OS

Rev

Rev 2068 | Blame | Last modification | View Log | Download | RSS feed

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