Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.  
  2. ;   *********************************************
  3. ;   *******  WINDOW DEFINITIONS AND DRAW ********
  4. ;   *********************************************
  5.  
  6.  
  7. draw_window:
  8.        
  9.     or   [bWasDraw],1
  10.  
  11.     mcall 12,1
  12.  
  13.                                    ; DRAW WINDOW
  14.     xor  eax,eax                   ; function 0 : define and draw window
  15. ;    mov  ebx,350                   ; [x start] *65536 + [x size]
  16. ;    mov  ecx,400                   ; [y start] *65536 + [y size]
  17.     mov  ebx,0*65536+0
  18.     mov  ecx,0*65536+0
  19.     add  ebx,[wnd_width]
  20.     add  ecx,[wnd_height]
  21.     cmp  cx,55
  22.     ja   @f
  23.     mov  cx,55
  24. @@:
  25.     mov  edx,0x63ffffff            ; color of work area RRGGBB,8->color gl
  26. ;       pusha
  27.         xor     esi,esi
  28.     mcall
  29. ;       popa
  30. ;       imul  ecx,[load_file_number],304
  31. ;       add   ecx,32+40
  32. ;       add   ecx,[load_directory_pointer]
  33.         mov   ecx,Authors_text.1  ; communication_area_name
  34. ;       mov     ecx,[communication_area]
  35. ;       add     ecx,4
  36. ;       mov     ecx,string
  37.     mcall 71,1,  ;labelt ; plugin_pach ;file_name ;plugin_pach ;plugin_pach
  38.        
  39.     call get_window_param
  40.        
  41.     call  draw_other
  42.  
  43.        
  44.         push    dword menu_data_1
  45.         call    [menu_bar_draw]
  46.         push    dword menu_data_2
  47.         call    [menu_bar_draw]
  48.         push    dword menu_data_3
  49.         call    [menu_bar_draw]
  50.         push    dword menu_data_4
  51.         call    [menu_bar_draw]
  52.         push    dword menu_data_5
  53.         call    [menu_bar_draw]
  54.         push    dword menu_data_6
  55.         call    [menu_bar_draw]
  56.  
  57. ;       draw_menu_bar menu_data_1
  58. ;       draw_menu_bar menu_data_2
  59. ;       draw_menu_bar menu_data_3
  60. ;       draw_menu_bar menu_data_4
  61. ;       draw_menu_bar menu_data_5
  62. ;       draw_menu_bar menu_data_6
  63.  
  64.         push    dword dinamic_button_data_1
  65.         call    [dinamic_button_draw]
  66.         push    dword dinamic_button_data_2
  67.         call    [dinamic_button_draw]
  68.         push    dword dinamic_button_data_3
  69.         call    [dinamic_button_draw]
  70.         push    dword dinamic_button_data_4
  71.         call    [dinamic_button_draw]
  72.         push    dword dinamic_button_data_5
  73.         call    [dinamic_button_draw]
  74.         push    dword dinamic_button_data_6
  75.         call    [dinamic_button_draw]
  76.         push    dword dinamic_button_data_7
  77.         call    [dinamic_button_draw]
  78.         push    dword dinamic_button_data_8
  79.         call    [dinamic_button_draw]
  80.         push    dword dinamic_button_data_9
  81.         call    [dinamic_button_draw]
  82.         push    dword dinamic_button_data_10
  83.         call    [dinamic_button_draw]
  84.         push    dword dinamic_button_data_11
  85.         call    [dinamic_button_draw]
  86.         push    dword dinamic_button_data_12
  87.         call    [dinamic_button_draw]
  88.         push    dword dinamic_button_data_13
  89.         call    [dinamic_button_draw]
  90.         push    dword dinamic_button_data_14
  91.         call    [dinamic_button_draw]
  92.         push    dword dinamic_button_data_15
  93.         call    [dinamic_button_draw]
  94.        
  95. ;       draw_dinamic_button dinamic_button_data_1 ; open file
  96. ;       draw_dinamic_button dinamic_button_data_2 ; reload file
  97. ;       draw_dinamic_button dinamic_button_data_3 ; left limit
  98. ;       draw_dinamic_button dinamic_button_data_4 ; left arrow
  99. ;       draw_dinamic_button dinamic_button_data_5 ; slide show
  100. ;       draw_dinamic_button dinamic_button_data_6 ; right arrow
  101. ;       draw_dinamic_button dinamic_button_data_7 ; right limit
  102. ;       draw_dinamic_button dinamic_button_data_8 ; zoom +
  103. ;       draw_dinamic_button dinamic_button_data_9 ; zoom -
  104. ;       draw_dinamic_button dinamic_button_data_10 ; zoom 100%
  105. ;       draw_dinamic_button dinamic_button_data_11 ; rotate clockwise
  106. ;       draw_dinamic_button dinamic_button_data_12 ; rotate counter-clockwise
  107. ;       draw_dinamic_button dinamic_button_data_13 ; file information
  108. ;       draw_dinamic_button dinamic_button_data_14 ; wallpaper
  109. ;       draw_dinamic_button dinamic_button_data_15 ; settings
  110.  
  111.         mcall 13,<225,2>,<3,22>,0
  112.         mcall ,<280,2>
  113.         mcall ,<410,2>
  114.         mcall ,<490,2>
  115.         mcall ,<545,2>
  116.         mcall ,<625,2>
  117.         mcall ,<720,2>
  118.                                    ; WINDOW LABEL
  119.  
  120. ;       mov   esi, file_mount - file_mount_end
  121.     mcall 4,<630,3>,0x80000000, file_mount  ;, file_mount - file_mount.end
  122. ;    cmp  [soi],0
  123. ;    je   @f
  124.  
  125.         mcall 13,<677,40>,<13,11>,0xe5e5e5
  126.        
  127.         mov   ecx,[load_directory_pointer]
  128.         mov   ecx,[ecx+4]
  129.     mcall 47,0x80060000, ,<679, 15>,0
  130.        
  131.         mcall 8,[dinamic_button_data_5.x],[dinamic_button_data_5.y],0x40000002
  132. ;@@:
  133.     mcall 12,2
  134.  
  135.     ret
  136. ;---------------------------------------------------------------------
  137. set_draw_scrollbar_all:
  138.         xor   eax,eax
  139.         inc   eax
  140.         mov   [scroll_bar_data_vertical.all_redraw],eax
  141.         mov   [scroll_bar_data_horizontal.all_redraw],eax
  142.         ret
  143. ;---------------------------------------------------------------------
  144. set_nodraw_scrollbar_all:
  145.         xor   eax,eax
  146.         mov   [scroll_bar_data_vertical.all_redraw],eax
  147.         mov   [scroll_bar_data_horizontal.all_redraw],eax
  148.         ret
  149. ;---------------------------------------------------------------------
  150. draw_other:
  151.     call drawimage
  152. @@:
  153.     mov   ebx,0 ;5
  154.     shl   ebx,16
  155.     add   ebx,[window_width]
  156. ;    sub   ebx,9
  157. ;    push  ebx
  158.         xor   ecx,ecx
  159. ;    mov   ecx,[skin_high]
  160.     shl   ecx,16
  161.     add   ecx,50-22
  162. ;    sub   ecx,[skin_high]
  163.         mov   edx,0xffffff
  164.         cmp   [no_draw_window],0
  165.         jne   @f
  166.     mcall 13   ; fill top area
  167. @@:
  168.     mov  eax,[soi]
  169.     test eax,eax
  170.     jnz   @f
  171.         mov  ecx,[window_high]
  172.         sub  ecx,28   ;50+4
  173.         add  ecx,(50-22) shl 16
  174.     mcall 13
  175. @@:
  176.  
  177.         call  draw_number_of_file
  178.        
  179.         call  draw_zoom_factors
  180.        
  181.         cmp [scaling_mode],dword 0
  182.         jne  @f
  183. ;       pop  ebx
  184.         ret
  185. @@:
  186. ;    mov  ecx,[scroll_bar_data_vertical.cur_area]
  187. ;    mov  ebx,[scroll_bar_data_horizontal.cur_area]
  188. ;    push ecx
  189. ;    add  ebx,5
  190. ;    mov  ax,bx
  191. ;    shl  ebx,16
  192. ;    add  ebx,[window_width]
  193. ;    sub  ebx,4
  194. ;    sub  bx,ax
  195. ;    cmp  bx,0
  196. ;    jbe  @f
  197. ;    add  ecx,50 shl 16
  198. ;    mcall 13, , ,0xffffff
  199. ;
  200. ;@@:
  201. ;    pop  ecx
  202. ;    pop  ebx
  203.  
  204. ;    add  ecx,50
  205. ;    mov  ax,cx
  206. ;    shl  ecx,16
  207. ;    add  ecx,[window_high]
  208. ;    sub  cx,ax
  209. ;    sub  ecx,4
  210. ;    cmp  cx,0
  211. ;    jbe  @f
  212. ;    mcall 13, , ,0xffffff
  213.  
  214. ;@@:
  215.         call  set_draw_scrollbar_all
  216.     call  draw_scrollbars
  217.         call  set_nodraw_scrollbar_all
  218.  
  219.         ret
  220. ;--------------------------------------------------------------------- 
  221. draw_number_of_file:
  222.  
  223.         mcall 13,<630,42>,<13,11>,0xe5e5e5
  224.        
  225.         xor   ecx,ecx
  226.         mov   eax,[load_directory_pointer]
  227.         cmp   [eax+4],dword 0
  228.         je    @f
  229.         mov   ecx,[load_file_number]
  230.         inc   ecx
  231. @@:
  232.     mcall 47,0x80060000, ,<632, 15>,0
  233.         ret
  234. ;---------------------------------------------------------------------
  235. draw_zoom_factors:
  236.         mcall 13,<725,30>,<13,11>,0xe5e5e5
  237.        
  238.         mov   ecx,[zoom_factors]
  239.         mov   ecx,[ecx]
  240.         mov  [scaling_mode],ecx
  241.         test  ecx,ecx
  242.         jnz  @f
  243.         mcall 4,<727,14>,0x80000000, zoom_auto_text
  244.         ret
  245. @@:
  246.     mcall 47,0x80060000, ,<727, 15>,0
  247.         ret
  248. ;---------------------------------------------------------------------