Subversion Repositories Kolibri OS

Rev

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

  1. ;----------------------------------------------------------
  2. ;-------------draw window of program-----------------------
  3. ;----------------------------------------------------------
  4. drawwin:
  5.         or      ecx,-1
  6.         mcall SF_THREAD_INFO,procinfo
  7.         mov     esi,procinfo
  8.  
  9.         mov     eax,[esi+34]
  10.         mov     ebx,[esi+38]
  11.         mov     ecx,[esi+42]
  12.         mov     edx,[esi+46]
  13.         mov     [Window_CordinatX],eax
  14.         mov     [Window_CordinatY],ebx
  15.         mov     [Window_SizeX],ecx
  16.         mov     [Window_SizeY],edx
  17.  
  18.         cmp     [Window_SizeX],585
  19.         jae     no_minimum_size_x
  20.  
  21.         mov     [Window_SizeX],585
  22.         mov     ecx,[Window_SizeX]
  23.  
  24. no_minimum_size_x:
  25.         cmp     [Window_SizeY],400
  26.         jae     no_minimum_size_y
  27.  
  28.         mov     [Window_SizeY],400
  29.         mov     edx,[Window_SizeY]
  30.  
  31. no_minimum_size_y:
  32.         mov     [MaxWorkScreen_SizeX],ecx
  33.         mov     [MaxWorkScreen_SizeY],edx
  34.         sub     [MaxWorkScreen_SizeX],20+10+5+10
  35.         sub     [MaxWorkScreen_SizeY],20+10+15+1+49+20+10
  36.  
  37.         cmp     [MaxWorkScreen_SizeX],0
  38.         jns     no_znak1
  39.  
  40.         mov     [MaxWorkScreen_SizeX],ecx
  41.  
  42. no_znak1:
  43.         cmp     [MaxWorkScreen_SizeY],0
  44.         jns     no_znak2
  45.  
  46.         mov     [MaxWorkScreen_SizeY],edx
  47.  
  48. no_znak2:
  49.  
  50.         mcall SF_REDRAW,SSF_BEGIN_DRAW
  51. ;------------------------------------------------
  52.         mov     ebx,50 ;[Window_CordinatX]
  53.         mov     ecx,50 ;[Window_CordinatY]
  54.         shl     ebx,16
  55.         shl     ecx,16
  56.         add     ebx,[Window_SizeX]
  57.         add     ecx,[Window_SizeY]
  58.         mcall SF_CREATE_WINDOW,,,0x53aabbcc,,name_of_program
  59.        
  60.         mov     eax,[procinfo+70] ;staus of window
  61.         test    eax,100b
  62.         jne     .end
  63.        
  64. ;------------------------------------------------
  65.         mov     eax,5
  66.         mov     ebx,20
  67.         mov     ecx,[Window_SizeX]
  68.         mov     edx,15
  69.         mov     esi,6
  70.         sub     ecx,10
  71.         call    draw_volume_rectangle ; top menu - file and etc.
  72.  
  73.         mov     [counter],7
  74.         mov     edi,panel_text
  75.         call    print_panel_text
  76. ;------------------------------------------------
  77.         mov     eax,5
  78.         mov     ebx,20+15+1
  79.         mov     ecx,[Window_SizeX]
  80.         mov     edx,50
  81.         mov     esi,1
  82.         sub     ecx,10
  83.         call    draw_volume_rectangle ; tools panel
  84.         call    draw_icons
  85.         call    PrintMousePos
  86. ;------------------------------------------------
  87.         mov ecx,[k]
  88.         call MovePictureToWorkScreen
  89. ;------------------------------------------------
  90.         mov     ebx,[WorkScreen_SizeX]
  91.         add     ebx,5+3
  92.         mov     edx,[Window_SizeX]
  93.         sub     edx,ebx
  94.         sub     edx,25+10-3
  95.         shl     ebx,16
  96.         mov     bx,dx
  97.        
  98.         mov     ecx,20+15+1+49+2
  99.         mov     edx,[Window_SizeY]
  100.         mov     eax,[WorkScreen_SizeY]
  101.         shr     eax,16
  102.         sub     edx,eax
  103.         sub     edx,20+15+1+49+2+25+10
  104.         shl     ecx,16
  105.         mov     cx,dx
  106.  
  107.         mcall SF_DRAW_RECT,,,0xc7cbcf
  108. ;------------------------------------------------
  109.         mcall   ,<5,3>
  110. ;------------------------------------------------
  111.         mov     ebx,5
  112.         mov     edx,[Window_SizeX]
  113.         mov     eax,[WorkScreen_SizeX]
  114.         shr     eax,16
  115.         sub     edx,eax
  116.         sub     edx,25+10
  117.         shl     ebx,16
  118.         mov     bx,dx
  119.  
  120.         mov     ecx,[WorkScreen_SizeY]
  121.         add     ecx,20+15+1+49+2+3
  122.         mov     edx,[Window_SizeY]
  123.         sub     edx,ecx
  124.         sub     edx,25+10-3
  125.         shl     ecx,16
  126.         mov     cx,dx
  127.  
  128.         mcall SF_DRAW_RECT,,,0xc7cbcf
  129. ;------------------------------------------------
  130.         mcall   ,,<20+15+1+49+2,3>
  131. ;------------------------------------------------
  132. ;       draw_volume_rectangle
  133. ;       eax - start X
  134. ;       ebx - start Y
  135. ;       ecx - size X
  136. ;       edx - size Y
  137.  
  138.         mov     eax,5
  139.         mov     ebx,[Window_SizeY]
  140.         mov     ecx,[Window_SizeX]
  141.         mov     edx,20+10
  142.         mov     esi,3
  143.         sub     ecx,30
  144.         sub     ebx,25+10
  145.         call    draw_volume_rectangle   ; horizontal scrollbar
  146. ;------------------------------------------------
  147.         mov     eax,[Window_SizeX]
  148.         mov     ebx,20+15+1+49+2
  149.         mov     ecx,20+10
  150.         mov     edx,[Window_SizeY]
  151.         mov     esi,3
  152.         sub     eax,25+10
  153.         sub     edx,20+15+1+49+5+20
  154.         call    draw_volume_rectangle   ; vertical scrollbar
  155.         call    draw_scrollers
  156. ;------------------------------------------------
  157.         mov     eax,[Window_SizeX]
  158.         mov     ebx,[Window_SizeY]
  159.         mov     ecx,20+10
  160.         mov     edx,20+10
  161.         mov     esi,6
  162.         sub     eax,25+10
  163.         sub     ebx,25+10
  164.         call    draw_volume_rectangle   ; down and right small area
  165. ;------------------------------------------------
  166. .end:
  167.         mcall SF_REDRAW,SSF_END_DRAW
  168.         ret
  169. ;-----------------------------------------------------------------------------