Subversion Repositories Kolibri OS

Rev

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