Subversion Repositories Kolibri OS

Rev

Rev 6358 | Rev 6369 | 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,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 ;[Window_CordinatX]
  49.         mov     ecx,50 ;[Window_CordinatY]
  50.         shl     ebx,16
  51.         shl     ecx,16
  52.         add     ebx, [Window_SizeX]
  53.         add     ecx, [Window_SizeY]
  54.         mcall SF_CREATE_WINDOW,,,0x73aabbcc,,name_of_program
  55.        
  56.         mov     eax,[procinfo+70] ;staus of window
  57.         test eax,100b
  58.         jne     .end
  59.        
  60. ;------------------------------------------------
  61.         mov     ebx,[Window_SizeX]
  62.         sub     ebx,5+ci_panel_x_pos+ci_offs_skin_w-1
  63.         mcall SF_DRAW_RECT,,ci_panel_y_pos,dword[syscolors+20] ; ç¨á⪠ ¯®«®áë ¤«ï ¬¥­î
  64.  
  65.         call put_main_menu
  66. ;------------------------------------------------
  67.         mov     eax,ci_panel_x_pos
  68.         mov     ebx,ci_panel_y_pos
  69.         mov     ecx,[Window_SizeX]
  70.         mov     edx,50
  71.         mov     esi,1
  72.         sub     ecx,5+ci_panel_x_pos+ci_offs_skin_w
  73.         call    draw_volume_rectangle ; tools panel
  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. ;-----------------------------------------------------------------------------