Subversion Repositories Kolibri OS

Rev

Rev 6352 | 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.        
  16.         cmp     ecx,585
  17.         jae     @f
  18.                 mov     ecx,585 ;minimum size x
  19.         @@:
  20.         cmp     [Window_SizeY],400
  21.         jae     @f
  22.                 mov     edx,400 ;minimum size y
  23.         @@:
  24.         mov     [Window_SizeX],ecx
  25.         mov [Window_SizeY],edx
  26.  
  27.         mov     [MaxWorkScreen_SizeX],ecx
  28.         mov     [MaxWorkScreen_SizeY],edx
  29.         sub     [MaxWorkScreen_SizeX],ci_edit_wnd_x_pos+2*ci_edit_wnd_border+34
  30.         sub     [MaxWorkScreen_SizeY],ci_edit_wnd_y_pos+2*ci_edit_wnd_border+34
  31.  
  32.         cmp     [MaxWorkScreen_SizeX],0
  33.         jns     no_znak1
  34.  
  35.         mov     [MaxWorkScreen_SizeX],ecx
  36.  
  37. no_znak1:
  38.         cmp     [MaxWorkScreen_SizeY],0
  39.         jns     no_znak2
  40.  
  41.         mov     [MaxWorkScreen_SizeY],edx
  42.  
  43. no_znak2:
  44.  
  45.         mcall SF_REDRAW,SSF_BEGIN_DRAW
  46. ;------------------------------------------------
  47.         mov     ebx,50 ;[Window_CordinatX]
  48.         mov     ecx,50 ;[Window_CordinatY]
  49.         shl     ebx,16
  50.         shl     ecx,16
  51.         add     ebx,[Window_SizeX]
  52.         add     ecx,[Window_SizeY]
  53.         mcall SF_CREATE_WINDOW,,,0x53aabbcc,,name_of_program
  54.        
  55.         mov     eax,[procinfo+70] ;staus of window
  56.         test    eax,100b
  57.         jne     .end
  58.        
  59. ;------------------------------------------------
  60.         mov     eax,5
  61.         mov     ebx,20
  62.         mov     ecx,[Window_SizeX]
  63.         mov     edx,15
  64.         mov     esi,6
  65.         sub     ecx,10
  66.         call    draw_volume_rectangle ; top menu - file and etc.
  67.  
  68.         mov     [counter],7
  69.         mov     edi,panel_text
  70.         call    print_panel_text
  71. ;------------------------------------------------
  72.         mov     eax,5
  73.         mov     ebx,20+15+1
  74.         mov     ecx,[Window_SizeX]
  75.         mov     edx,50
  76.         mov     esi,1
  77.         sub     ecx,10
  78.         call    draw_volume_rectangle ; tools panel
  79.         call    draw_icons
  80.         call    PrintMousePos
  81. ;------------------------------------------------
  82.         mov ecx,[k]
  83.         call MovePictureToWorkScreen
  84. ;------------------------------------------------
  85.         mov     ebx,[WorkScreen_SizeX]
  86.         add     ebx,ci_edit_wnd_x_pos+ci_edit_wnd_border
  87.         shl     ebx,16
  88.         mov     bx,ci_edit_wnd_border ;è¨à¨­  ¡®à¤îà 
  89.        
  90.         mov     ecx,ci_edit_wnd_y_pos+ci_edit_wnd_border
  91.         mov     edx,[Window_SizeY]
  92.         sub     edx,ci_edit_wnd_y_pos+2*ci_edit_wnd_border+34
  93.         shl     ecx,16
  94.         mov     cx,dx ;¢ëá®â  ¡®à¤îà 
  95.  
  96.         mcall SF_DRAW_RECT,,,0xc7cbcf ;¡®à¤îà á¯à ¢  ®â ®ª­  ¯¥à¥¤ áªà®««¨­£®¬
  97. ;------------------------------------------------
  98.         mcall ,<ci_edit_wnd_x_pos,ci_edit_wnd_border> ;¡®à¤îà á«¥¢  ®â ®ª­ 
  99. ;------------------------------------------------
  100.         mov     ebx,ci_edit_wnd_x_pos
  101.         mov     edx,[Window_SizeX]
  102.         sub     edx,25+10+ci_edit_wnd_x_pos
  103.         shl     ebx,16
  104.         mov     bx,dx ;è¨à¨­  ¡®à¤îà 
  105.  
  106.         mov     ecx,[WorkScreen_SizeY]
  107.         add     ecx,ci_edit_wnd_y_pos+ci_edit_wnd_border
  108.         shl     ecx,16
  109.         mov     cx,ci_edit_wnd_border ;¢ëá®â  ¡®à¤îà 
  110.  
  111.         mcall SF_DRAW_RECT,,,0xc7cbcf ;¡®à¤îà ¯®¤ ®ª­®¬ ¨ ­ ¤ áªà®««¨­£®¬
  112. ;------------------------------------------------
  113.         mcall ,,<ci_edit_wnd_y_pos,ci_edit_wnd_border> ;¡®à¤îà ¯®¤ ¯ ­¥«ìî ¨ ­ ¤ ®ª­®¬
  114. ;------------------------------------------------
  115.         mov     eax,ci_edit_wnd_x_pos
  116.         mov     ebx,[Window_SizeY]
  117.         mov     ecx,[Window_SizeX]
  118.         mov     edx,20+10
  119.         mov     esi,3
  120.         sub     ecx,35+ci_edit_wnd_x_pos
  121.         sub     ebx,25+10
  122.         call draw_volume_rectangle ; horizontal scrollbar border
  123. ;------------------------------------------------
  124.         mov     eax,[Window_SizeX]
  125.         mov     ebx,ci_edit_wnd_y_pos
  126.         mov     ecx,20+10
  127.         mov     edx,[Window_SizeY]
  128.         mov     esi,3
  129.         sub     eax,25+10
  130.         sub     edx,35+ci_edit_wnd_y_pos
  131.         call draw_volume_rectangle ; vertical scrollbar border
  132.         call draw_scrollers
  133. ;------------------------------------------------
  134.         mov     eax,[Window_SizeX]
  135.         mov     ebx,[Window_SizeY]
  136.         mov     ecx,20+10
  137.         mov     edx,20+10
  138.         mov     esi,6
  139.         sub     eax,25+10
  140.         sub     ebx,25+10
  141.         call draw_volume_rectangle ; down and right small area
  142. ;------------------------------------------------
  143. .end:
  144.         mcall SF_REDRAW,SSF_END_DRAW
  145.         ret
  146. ;-----------------------------------------------------------------------------