Subversion Repositories Kolibri OS

Rev

Rev 1457 | Rev 2125 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. align 4
  2. draw_but_toolbar: ;ЇєэъЎш  фы  Ёшёютрэш  ярэхыш шэёЄЁєьхэЄют
  3.   pushad
  4.   mov edi,tedit0
  5.  
  6.   mov ecx,0x40000000
  7. ;  mov edx,5*65536+25
  8.   mov edx,85*65536+2
  9.   call draw_but_icon
  10.  
  11.   inc cx
  12. ;  mov edx,30*65536+25
  13.   mov edx,110*65536+2
  14.   call draw_but_icon
  15.  
  16. stdcall [ted_can_save],edi
  17. cmp al,1
  18. je @f
  19. and ecx,0xffff
  20. @@:
  21.   inc cx
  22. ;  mov edx,55*65536+25
  23.   mov edx,135*65536+2
  24.   call draw_but_icon
  25. or ecx,0x40000000
  26.  
  27.   inc cx
  28.   mov edx,85*65536+25
  29.   call draw_but_icon
  30.  
  31. call [ted_is_select]
  32. cmp al,0
  33. jne @f
  34. and ecx,0xffff
  35. @@:
  36.   inc cx ; Cut
  37.   mov edx,110*65536+25
  38.   call draw_but_icon
  39.  
  40.   inc cx ; Copy
  41.   mov edx,135*65536+25
  42.   call draw_but_icon
  43.  
  44.   mov cx,10 ; Upper
  45.   mov edx,265*65536+25
  46.   call draw_but_icon
  47.  
  48.   inc cx ; Lower
  49.   mov edx,290*65536+25
  50.   call draw_but_icon
  51.  
  52.   inc cx ; reverse
  53.   mov edx,315*65536+25
  54.   call draw_but_icon
  55. or ecx,0x40000000
  56.  
  57. cmp byte[buf],0
  58. jne @f
  59. and ecx,0xffff
  60. @@:
  61.   mov cx,6 ; Paste
  62.   mov edx,160*65536+25
  63.   call draw_but_icon
  64. or ecx,0x40000000
  65.  
  66.   inc cx
  67.   mov edx,185*65536+25
  68.   call draw_but_icon
  69.  
  70.   inc cx
  71.   mov edx,210*65536+25
  72.   call draw_but_icon
  73.  
  74.   inc cx
  75.   mov edx,235*65536+25
  76.   call draw_but_icon
  77.  
  78. mov ebx,ted_tim_undo
  79. cmp ted_tim_ch,ebx
  80. jg @f
  81. and ecx,0xffff
  82. @@:
  83.   mov cx,13
  84.   mov edx,345*65536+25
  85.   call draw_but_icon
  86. or ecx,0x40000000
  87.  
  88. cmp ted_tim_undo,1
  89. jge @f
  90. and ecx,0xffff
  91. @@:
  92.   inc cx
  93.   mov edx,370*65536+25
  94.   call draw_but_icon
  95. or ecx,0x40000000
  96.  
  97.   inc cx
  98.   mov edx,400*65536+25
  99.   call draw_but_icon
  100.  
  101.   inc cx
  102.   mov edx,425*65536+25
  103.   call draw_but_icon
  104.  
  105.   mov cx,17
  106.   mov edx,450*65536+25
  107.   call draw_but_icon
  108.  
  109.   popad
  110.   ret
  111.  
  112. ;txtBUp db 24
  113. ;txtBDn db 25
  114. ;txtBRi db 26
  115. ;txtBLe db 27
  116.  
  117. ;input:
  118. ; edi = pointer to tedit struct
  119. align 4
  120. proc draw_panel_find
  121. ;push edi
  122. ;mov edi,dword[edit]
  123.   cmp ted_panel_id,TED_PANEL_FIND ;if not panel
  124.   jne @f
  125.   push eax ebx ecx edx
  126.  
  127.   mov eax,13 ;Ёшёютрэшх яЁ ьюєуюы№эшър
  128.   mov ebx,TED_PANEL_WIDTH
  129.   mov ecx,ted_wnd_t
  130.   shl ecx,16
  131.   mov cx,20
  132.   mov edx,[sc.work]
  133.   int 0x40
  134.  
  135.   mov eax,4 ;Ёшёютрэшх ЄхъёЄр
  136.   mov ebx,30*65536+5
  137.   add ebx,ted_wnd_t
  138.   mov ecx,[sc.work_text]
  139.   or ecx,0x80000000
  140.   mov edx,txtFindCapt
  141.   int 0x40
  142.  
  143.   stdcall [edit_box_draw], dword edit2
  144.  
  145.   mov eax,13 ;Ёшёютрэшх яЁ ьюєуюы№эшър
  146.   mov ebx,TED_PANEL_WIDTH
  147.   mov ecx,ted_wnd_t
  148.   add cx,20+15 ; 15 - height text box
  149.   shl ecx,16
  150.   add ecx,ted_wnd_h
  151.   mov edx,ted_scr_h
  152.   add cx,word[edx+sb_offs_size_y]
  153.   sub cx,20+15-1 ; 15 - height text box
  154.   mov edx,[sc.work]
  155.   int 0x40
  156.  
  157.   mov eax,8 ;ъэюяър
  158.   mov ebx,5*65536+85
  159.   mov ecx,ted_wnd_t
  160.   add cx,20+15+5
  161.   shl ecx,16
  162.   mov cx,20
  163.   mov edx,201 ;button id
  164.   mov esi,[sc.work_button]
  165.   int 0x40
  166.  
  167.   mov eax,4 ;Ёшёютрэшх ЄхъёЄр
  168.   mov ebx,15*65536+(20+15+10)
  169.   add ebx,ted_wnd_t
  170.   mov ecx,[sc.work_text]
  171.   or ecx,0x80000000
  172.   mov edx,txtFindNext
  173.   int 0x40
  174.  
  175.   pop edx ecx ebx eax
  176.   jmp .end_f
  177.   @@:
  178.   push eax edx
  179.     mov eax,8
  180.     mov edx,201
  181.     or edx,0x80000000
  182.     int 0x40
  183.   pop edx eax
  184.   .end_f:
  185. ;pop edi
  186.   ret
  187. endp
  188.  
  189. ;input:
  190. ; edi = pointer to tedit struct
  191. align 4
  192. proc draw_panel_syntax
  193. ;push edi
  194. ;mov edi,dword[edit]
  195.   cmp ted_panel_id,TED_PANEL_SYNTAX ;if not panel
  196.   jne @f
  197.   pushad
  198.  
  199.   mov eax,13 ;Ёшёютрэшх яЁ ьюєуюы№эшър
  200.   mov ebx,TED_PANEL_WIDTH
  201.   mov ecx,ted_wnd_t
  202.   shl ecx,16
  203.   mov cx,20
  204.   mov edx,[sc.work]
  205.   int 0x40 ;Ёшёютрэшх тхЁїэхую Їюэютюую яЁ ьюєуюы№эшър
  206.  
  207.   stdcall dword[tl_draw], tree1
  208.   mov [ws_dir_lbox.all_redraw],1 ;фы  яюыэющ яхЁхЁшёютъш фюўхЁэхую ёъЁюыышэур
  209.   stdcall dword[scrollbar_ver_draw], dword ws_dir_lbox
  210.  
  211.   ror ecx,16
  212.   add ecx,dword[tree1.box_height]
  213.   add ecx,20
  214.   and ecx,0xffff
  215.   ror ecx,16
  216.   add ecx,ted_wnd_h
  217.   mov esi,ted_scr_h
  218.   add cx,word[esi+sb_offs_size_y]
  219.   sub cx,20
  220.   sub ecx,dword[tree1.box_height]
  221.   inc cx
  222.   int 0x40 ;Ёшёютрэшх эшцэхую Їюэютюую яЁ ьюєуюы№эшър
  223.  
  224.   mov eax,8 ;ъэюяър
  225.   mov ebx,5*65536+65
  226.   mov ecx,ted_wnd_t
  227.   add ecx,25
  228.   add ecx,dword[tree1.box_height]
  229.   shl ecx,16
  230.   mov cx,20
  231.   mov edx,200 ;button id
  232.   mov esi,[sc.work_button]
  233.   int 0x40
  234.  
  235.   mov eax,4 ;Ёшёютрэшх ЄхъёЄр
  236.   mov ebx,30*65536+5
  237.   add ebx,ted_wnd_t
  238.   mov ecx,[sc.work_text]
  239.   or ecx,0x80000000
  240.   mov edx,txtFormatCapt
  241.   int 0x40
  242.  
  243.   mov ebx,10*65536+30
  244.   add ebx,dword[tree1.box_height]
  245.   add ebx,ted_wnd_t
  246.   mov edx,txtFormatApply
  247.   int 0x40
  248.  
  249.   popad
  250.   jmp .end_f
  251.   @@:
  252.     push eax edx
  253.       mov eax,8
  254.       mov edx,200
  255.       or edx,0x80000000
  256.       int 0x40 ;хёыш эхЄ ярэхыш Єю єфры хь ъэюяъє
  257.     pop edx eax
  258.   .end_f:
  259. ;pop edi
  260.   ret
  261. endp
  262.  
  263. MIN_M_WND_H equ 100
  264. align 4
  265. proc EvSize, edit:dword
  266.   pushad
  267.   mov edi,dword[edit]
  268.   mov ebx,ted_scr_h
  269.   mov esi,ted_scr_w
  270.  
  271.   m2m ted_wnd_w,[procinfo.client_box.width] ;ёЄртшь °шЁшэє юъэр ЁхфръЄюЁр Ёртэющ °шЁшэх тёхую юъэр
  272.   mov eax,ted_wnd_l
  273.   sub ted_wnd_w,eax ;юЄэшьрхь юЄёЄєя ёыхтр
  274.   mov eax,dword[esi+sb_offs_size_x]
  275.   and eax,0xffff
  276.   sub ted_wnd_w,eax ;юЄэшьрхь °шЁшэє тхЁЄ. ёъЁюыышэур
  277.  
  278.   m2m ted_wnd_h,[procinfo.client_box.height] ;ёЄртшь т√ёюЄє юъэр ЁхфръЄюЁр Ёртэющ т√ёюЄх тёхую юъэр
  279.   cmp ted_wnd_h,MIN_M_WND_H
  280.   jg @f
  281.     mov ted_wnd_h,MIN_M_WND_H
  282.   @@:
  283.  
  284.   mov ax,word[ebx+sb_offs_size_y]
  285.   and eax,0xffff
  286.   sub ted_wnd_h,eax           ;юЄэшьрхь т√ёюЄє уюЁшч. ёъЁюыышэур
  287.   mov eax,ted_wnd_t
  288.   sub ted_wnd_h,eax           ;юЄэшьрхь юЄёЄєя ётхЁїє
  289.  
  290.   stdcall [ted_init_scroll_bars], tedit0,2
  291.  
  292.   mov eax,ted_wnd_t
  293.   mov edi,dword tree1
  294.   mov tl_box_top,eax ;=ted_wnd_t
  295.   add tl_box_top,20
  296.  
  297.   mov dword[edit2.top],eax ;=ted_wnd_t
  298.   add dword[edit2.top],20
  299.  
  300.   popad
  301.   ret
  302. endp
  303.  
  304. ;input:
  305. ;  ecx = 0x4000____
  306. ;   cx = icon index
  307. ;  edx = x*2^16+y
  308. align 4
  309. draw_but_icon:
  310.         push eax ebx
  311.  
  312.         mov eax,8 ;ъэюяър
  313.         push ecx edx esi
  314.                 mov ebx,edx
  315.                 mov edx,ecx
  316.                 add edx,3
  317.                 mov cx,bx
  318.                 shl ecx,16
  319.                 mov cx,19 ;=20-1
  320.                 mov bx,19 ;=20-1
  321.                 mov esi,ebx
  322.                 shr esi,16
  323.                 add esi,20
  324.                 cmp esi,[procinfo.client_box.width]
  325.                 jge @f ;ъэюяър эх тыхчыр т ¤ъЁрэ
  326.                         mov esi,[sc.work_button]
  327.                         int 0x40 ;ёЄртшь ъэюяъє
  328.                         mov eax,7 ;bmp
  329.                 @@:
  330.         pop esi edx ecx
  331.  
  332.         cmp eax,7
  333.         jne @f ;ъэюяър эх тыхчыр т ¤ъЁрэ
  334.         mov ebx,ecx
  335.         ror ebx,16
  336.         cmp bx,0x4000
  337.         jne @f
  338.                 mov ebx,[bmp_icon]
  339.                 push ecx
  340.                 and ecx,0xffff
  341.                 imul ecx,1200
  342.                 add ebx,ecx
  343.                 mov ecx,20
  344.                 shl ecx,16
  345.                 add ecx,20
  346.                 int 0x40 ;ёЄртшь Ёшёєэюъ эр ъэюяъє
  347.                 pop ecx
  348.         @@:
  349.         pop ebx eax
  350.         ret
  351.  
  352.