Subversion Repositories Kolibri OS

Rev

Rev 6367 | 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.         ; draw toolbard background
  68.         mov ebx, ci_panel_x_pos
  69.         shl ebx, 16
  70.         add ebx, [Window_SizeX]
  71.         sub     ebx, 9
  72.         mov ecx, ci_panel_y_pos
  73.         shl ecx, 16
  74.         add ecx, 51
  75.         mov edx, 0xD5CDCB
  76.         mcall 13
  77.  
  78.         ;mov    eax,ci_panel_x_pos
  79.         ;mov    ebx,ci_panel_y_pos
  80.         ;mov    ecx,[Window_SizeX]
  81.         ;mov    edx,50
  82.         ;mov    esi,1
  83.         ;sub    ecx,5+ci_panel_x_pos+ci_offs_skin_w
  84.         call    draw_icons
  85.         call    PrintMousePos
  86. ;------------------------------------------------
  87.         mov ecx,[k]
  88.         call MovePictureToWorkScreen
  89. ;------------------------------------------------
  90.         mov     ebx,[WorkScreen_SizeX]
  91.         add     ebx,ci_edit_wnd_x_pos+ci_edit_wnd_border
  92.         mov     edx,[Window_SizeX]
  93.         sub     edx,ebx
  94.         sub     edx,ci_scroll_dim+5-ci_edit_wnd_border
  95.         shl     ebx,16
  96.         mov     bx,dx ;è¨à¨­  ¡®à¤îà 
  97.        
  98.         mov     ecx,ci_edit_wnd_y_pos+ci_edit_wnd_border
  99.         mov     edx,[Window_SizeY]
  100.         sub     edx,ci_edit_wnd_y_pos+2*ci_edit_wnd_border+ci_scroll_dim+5+ci_offs_skin_h
  101.         shl     ecx,16
  102.         mov     cx,dx ;¢ëá®â  ¡®à¤îà 
  103.  
  104.         mcall SF_DRAW_RECT,,,dword[syscolors+20] ;¡®à¤îà á¯à ¢  ®â ®ª­  ¯¥à¥¤ áªà®««¨­£®¬
  105. ;------------------------------------------------
  106.         mcall ,<ci_edit_wnd_x_pos,ci_edit_wnd_border> ;¡®à¤îà á«¥¢  ®â ®ª­ 
  107. ;------------------------------------------------
  108.         mov     ebx,ci_edit_wnd_x_pos
  109.         mov     edx,[Window_SizeX]
  110.         sub     edx,ci_scroll_dim+5+ci_edit_wnd_x_pos
  111.         shl     ebx,16
  112.         mov     bx,dx ;è¨à¨­  ¡®à¤îà 
  113.  
  114.         mov     ecx,[WorkScreen_SizeY]
  115.         add     ecx,ci_edit_wnd_y_pos+ci_edit_wnd_border
  116.         mov     edx,[Window_SizeY]
  117.         sub     edx,ecx
  118.         sub     edx,ci_scroll_dim+5+ci_offs_skin_h;ci_edit_wnd_border
  119.         shl     ecx,16
  120.         mov     cx,dx ;¢ëá®â  ¡®à¤îà 
  121.  
  122.         mcall SF_DRAW_RECT,,,dword[syscolors+20] ;¡®à¤îà ¯®¤ ®ª­®¬ ¨ ­ ¤ áªà®««¨­£®¬
  123. ;------------------------------------------------
  124.         mcall ,,<ci_edit_wnd_y_pos,ci_edit_wnd_border> ;¡®à¤îà ¯®¤ ¯ ­¥«ìî ¨ ­ ¤ ®ª­®¬
  125. ;------------------------------------------------
  126.         mov     eax,ci_edit_wnd_x_pos
  127.         mov     ebx,[Window_SizeY]
  128.         mov     ecx,[Window_SizeX]
  129.         mov     edx,ci_scroll_dim
  130.         mov     esi,3
  131.         sub     ecx,ci_scroll_dim+5+ci_edit_wnd_x_pos+ci_offs_skin_w
  132.         sub     ebx,ci_scroll_dim+5+ci_offs_skin_h
  133.         call draw_volume_rectangle ; horizontal scrollbar border
  134. ;------------------------------------------------
  135.         mov     eax,[Window_SizeX]
  136.         mov     ebx,ci_edit_wnd_y_pos
  137.         mov     ecx,ci_scroll_dim
  138.         mov     edx,[Window_SizeY]
  139.         mov     esi,3
  140.         sub     eax,ci_scroll_dim+5+ci_offs_skin_w
  141.         sub     edx,ci_scroll_dim+5+ci_edit_wnd_y_pos+ci_offs_skin_h
  142.         call draw_volume_rectangle ; vertical scrollbar border
  143.         call draw_scrollers
  144. ;------------------------------------------------
  145.         mov     eax,[Window_SizeX]
  146.         mov     ebx,[Window_SizeY]
  147.         mov     ecx,ci_scroll_dim
  148.         mov     edx,ci_scroll_dim
  149.         mov     esi,6
  150.         sub     eax,ci_scroll_dim+5+ci_offs_skin_w
  151.         sub     ebx,ci_scroll_dim+5+ci_offs_skin_h
  152.         call draw_volume_rectangle ; down and right small area
  153. ;------------------------------------------------
  154. .end:
  155.         mcall SF_REDRAW,SSF_END_DRAW
  156.         ret
  157. ;-----------------------------------------------------------------------------