Subversion Repositories Kolibri OS

Rev

Rev 1637 | Rev 2037 | 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   9,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   12,1
  51. ;------------------------------------------------
  52.         mov     ebx,[Window_CordinatX]
  53.         mov     ecx,[Window_CordinatY]
  54.         shl     ebx,16
  55.         shl     ecx,16
  56.         add     ebx,[Window_SizeX]
  57.         add     ecx,[Window_SizeY]
  58.         xor     esi,esi ;0x805080d0
  59. ;       xor     edi,edi ;0x005080d0
  60.         mcall   0,,,0x53aabbcc,,name_of_program
  61. ;------------------------------------------------
  62.         mov     eax,5
  63.         mov     ebx,20
  64.         mov     ecx,[Window_SizeX]
  65.         mov     edx,15
  66.         mov     esi,6
  67.         sub     ecx,10
  68.         call    draw_volume_rectangle ; top menu - file and etc.
  69.  
  70.         mov     [counter],7
  71.         mov     edi,panel_text
  72.         call    print_panel_text
  73. ;------------------------------------------------
  74.         mov     eax,5
  75.         mov     ebx,20+15+1
  76.         mov     ecx,[Window_SizeX]
  77.         mov     edx,50
  78.         mov     esi,1
  79.         sub     ecx,10
  80.         call    draw_volume_rectangle ; tools panel
  81.         call    draw_icons
  82.         call    PrintMousePos
  83. ;------------------------------------------------
  84.         mov     ecx,[k]
  85.         and     [PosX],0
  86.         and     [PosY],0
  87.         call    MovePictureToWorkScreen
  88. ;------------------------------------------------
  89.         mov     ebx,[WorkScreen_SizeX]
  90.         add     ebx,5+3
  91.         mov     edx,[Window_SizeX]
  92.         sub     edx,ebx
  93.         sub     edx,25+10-3
  94.         shl     ebx,16
  95.         mov     bx,dx
  96.        
  97.         mov     ecx,20+15+1+49+2
  98.         mov     edx,[Window_SizeY]
  99.         mov     eax,[WorkScreen_SizeY]
  100.         shr     eax,16
  101.         sub     edx,eax
  102.         sub     edx,20+15+1+49+2+25+10
  103.         shl     ecx,16
  104.         mov     cx,dx
  105.  
  106.         mcall   13,,,0xc7cbcf
  107. ;------------------------------------------------
  108.         mcall   ,<5,3>
  109. ;------------------------------------------------
  110.         mov     ebx,5
  111.         mov     edx,[Window_SizeX]
  112.         mov     eax,[WorkScreen_SizeX]
  113.         shr     eax,16
  114.         sub     edx,eax
  115.         sub     edx,25+10
  116.         shl     ebx,16
  117.         mov     bx,dx
  118.  
  119.         mov     ecx,[WorkScreen_SizeY]
  120.         add     ecx,20+15+1+49+2+3
  121.         mov     edx,[Window_SizeY]
  122.         sub     edx,ecx
  123.         sub     edx,25+10-3
  124.         shl     ecx,16
  125.         mov     cx,dx
  126.  
  127.         mcall   13,,,0xc7cbcf
  128. ;------------------------------------------------
  129.         mcall   ,,<20+15+1+49+2,3>
  130. ;------------------------------------------------
  131. ;       draw_volume_rectangle
  132. ;       eax - start X
  133. ;       ebx - start Y
  134. ;       ecx - size X
  135. ;       edx - size Y
  136.  
  137.         mov     eax,5
  138.         mov     ebx,[Window_SizeY]
  139.         mov     ecx,[Window_SizeX]
  140.         mov     edx,20+10
  141.         mov     esi,3
  142.         sub     ecx,30
  143.         sub     ebx,25+10
  144.         call    draw_volume_rectangle   ; horizontal scrollbar
  145. ;------------------------------------------------
  146.         mov     eax,[Window_SizeX]
  147.         mov     ebx,20+15+1+49+2
  148.         mov     ecx,20+10
  149.         mov     edx,[Window_SizeY]
  150.         mov     esi,3
  151.         sub     eax,25+10
  152.         sub     edx,20+15+1+49+5+20
  153.         call    draw_volume_rectangle   ; vertical scrollbar
  154.         call    draw_scrollers
  155. ;------------------------------------------------
  156.         mov     eax,[Window_SizeX]
  157.         mov     ebx,[Window_SizeY]
  158.         mov     ecx,20+10
  159.         mov     edx,20+10
  160.         mov     esi,6
  161.         sub     eax,25+10
  162.         sub     ebx,25+10
  163.         call    draw_volume_rectangle   ; down and right small area
  164. ;------------------------------------------------
  165.         mcall   12,2
  166.         ret
  167. ;-----------------------------------------------------------------------------