Subversion Repositories Kolibri OS

Rev

Rev 6357 | Rev 6359 | 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,,,0x53aabbcc,,name_of_program
  55.        
  56.         mov     eax,[procinfo+70] ;staus of window
  57.         test eax,100b
  58.         jne     .end
  59.        
  60. ;------------------------------------------------
  61.         mov     eax,5
  62.         mov     ebx,20
  63.         mov     ecx,[Window_SizeX]
  64.         mov     edx,15
  65.         mov     esi,6
  66.         sub     ecx,10
  67.         call    draw_volume_rectangle ; top menu - file and etc.
  68.  
  69.         mov     [counter],7
  70.         mov     edi,panel_text
  71.         call    print_panel_text
  72. ;------------------------------------------------
  73.         mov     eax,5
  74.         mov     ebx,20+15+1
  75.         mov     ecx,[Window_SizeX]
  76.         mov     edx,50
  77.         mov     esi,1
  78.         sub     ecx,10
  79.         call    draw_volume_rectangle ; tools panel
  80.         call    draw_icons
  81.         call    PrintMousePos
  82. ;------------------------------------------------
  83.         mov ecx,[k]
  84.         call MovePictureToWorkScreen
  85. ;------------------------------------------------
  86.         mov     ebx,[WorkScreen_SizeX]
  87.         add     ebx,ci_edit_wnd_x_pos+ci_edit_wnd_border
  88.         mov     edx,[Window_SizeX]
  89.         sub     edx,ebx
  90.         sub     edx,ci_scroll_dim+5-ci_edit_wnd_border
  91.         shl     ebx,16
  92.         mov     bx,dx ;è¨à¨­  ¡®à¤îà 
  93.        
  94.         mov     ecx,ci_edit_wnd_y_pos+ci_edit_wnd_border
  95.         mov     edx,[Window_SizeY]
  96.         sub     edx,ci_edit_wnd_y_pos+2*ci_edit_wnd_border+ci_scroll_dim+5+ci_offs_skin_h
  97.         shl     ecx,16
  98.         mov     cx,dx ;¢ëá®â  ¡®à¤îà 
  99.  
  100.         mcall SF_DRAW_RECT,,,0xc7cbcf ;¡®à¤îà á¯à ¢  ®â ®ª­  ¯¥à¥¤ áªà®««¨­£®¬
  101. ;------------------------------------------------
  102.         mcall ,<ci_edit_wnd_x_pos,ci_edit_wnd_border> ;¡®à¤îà á«¥¢  ®â ®ª­ 
  103. ;------------------------------------------------
  104.         mov     ebx,ci_edit_wnd_x_pos
  105.         mov     edx,[Window_SizeX]
  106.         sub     edx,ci_scroll_dim+5+ci_edit_wnd_x_pos
  107.         shl     ebx,16
  108.         mov     bx,dx ;è¨à¨­  ¡®à¤îà 
  109.  
  110.         mov     ecx,[WorkScreen_SizeY]
  111.         add     ecx,ci_edit_wnd_y_pos+ci_edit_wnd_border
  112.         mov     edx,[Window_SizeY]
  113.         sub     edx,ecx
  114.         sub     edx,ci_scroll_dim+5+ci_offs_skin_h;ci_edit_wnd_border
  115.         shl     ecx,16
  116.         mov     cx,dx ;¢ëá®â  ¡®à¤îà 
  117.  
  118.         mcall SF_DRAW_RECT,,,0xc7cbcf ;¡®à¤îà ¯®¤ ®ª­®¬ ¨ ­ ¤ áªà®««¨­£®¬
  119. ;------------------------------------------------
  120.         mcall ,,<ci_edit_wnd_y_pos,ci_edit_wnd_border> ;¡®à¤îà ¯®¤ ¯ ­¥«ìî ¨ ­ ¤ ®ª­®¬
  121. ;------------------------------------------------
  122.         mov     eax,ci_edit_wnd_x_pos
  123.         mov     ebx,[Window_SizeY]
  124.         mov     ecx,[Window_SizeX]
  125.         mov     edx,ci_scroll_dim
  126.         mov     esi,3
  127.         sub     ecx,ci_scroll_dim+5+ci_edit_wnd_x_pos+ci_offs_skin_w
  128.         sub     ebx,ci_scroll_dim+5+ci_offs_skin_h
  129.         call draw_volume_rectangle ; horizontal scrollbar border
  130. ;------------------------------------------------
  131.         mov     eax,[Window_SizeX]
  132.         mov     ebx,ci_edit_wnd_y_pos
  133.         mov     ecx,ci_scroll_dim
  134.         mov     edx,[Window_SizeY]
  135.         mov     esi,3
  136.         sub     eax,ci_scroll_dim+5+ci_offs_skin_w
  137.         sub     edx,ci_scroll_dim+5+ci_edit_wnd_y_pos+ci_offs_skin_h
  138.         call draw_volume_rectangle ; vertical scrollbar border
  139.         call draw_scrollers
  140. ;------------------------------------------------
  141.         mov     eax,[Window_SizeX]
  142.         mov     ebx,[Window_SizeY]
  143.         mov     ecx,ci_scroll_dim
  144.         mov     edx,ci_scroll_dim
  145.         mov     esi,6
  146.         sub     eax,ci_scroll_dim+5+ci_offs_skin_w
  147.         sub     ebx,ci_scroll_dim+5+ci_offs_skin_h
  148.         call draw_volume_rectangle ; down and right small area
  149. ;------------------------------------------------
  150. .end:
  151.         mcall SF_REDRAW,SSF_END_DRAW
  152.         ret
  153. ;-----------------------------------------------------------------------------