Subversion Repositories Kolibri OS

Rev

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

  1. ;
  2. ; ¢ í⮬ ä ©«¥ ᮡ࠭ë ä㭪樨 à¨áãî騥 ®ª­® ª®­áâàãªâ®à 
  3. ;
  4.  
  5. macro move_to_skin coord_x,coord_y
  6. {
  7.         add coord_x,SKIN_W1
  8.         add coord_y,SKIN_H
  9. }
  10.  
  11. ;¯¥à¥à¨á®¢ª  ®ª­  ª®­áâàãªâ®à 
  12. align 4
  13. draw_constructor:
  14.         stdcall [buf2d_clear], buf_fon,0xffffff
  15.  
  16. pushad
  17.         cmp [err_ini1],1
  18.         jne @f
  19.                 stdcall [buf2d_draw_text], buf_fon, buf_font,txtErrIni1,10,10,\
  20.                         0xff0000 ;à¨á㥬 áâபã á ⥪á⮬
  21.                 stdcall [buf2d_draw_text], buf_fon, buf_font,fp_obj_opt,10,20,\
  22.                         0xff0000 ;à¨á㥬 áâபã á ⥪á⮬
  23.                 jmp .end_draw
  24.         @@:
  25.  
  26.         xor edx,edx
  27.         mov dl,C_WI
  28.         stdcall find_obj_in_file,edx ;eax - 㪠§ â¥«ì ­  áâàãªâãàã ®ª­ 
  29.         cmp eax,0
  30.         je .end_draw
  31.         mov dword[obj_m_win],eax
  32.  
  33.         ;4-width
  34.         stdcall get_obj_text_col,[obj_m_win],4 ;edx = offset
  35.         stdcall conv_str_to_int,edx
  36.         mov ecx,eax ;ecx=width
  37.  
  38.         ;5-height
  39.         stdcall get_obj_text_col,[obj_m_win],5 ;edx = offset
  40.         stdcall conv_str_to_int,edx
  41.         ;eax=height
  42.  
  43.         stdcall [buf2d_rect_by_size], buf_fon, 0,0,ecx,eax, dword[sc.frame] ;à¨á㥬 ¢­¥è­îî à ¬ªã ®ª­ 
  44.         sub eax,2
  45.         sub ecx,2
  46.         stdcall [buf2d_filled_rect_by_size], buf_fon, 1,1,ecx,eax, dword[sc.grab] ;à¨á㥬 ä®­ à ¬ª¨ ®ª­ 
  47.  
  48.         sub eax,6
  49.         sub ecx,6
  50.         stdcall [buf2d_rect_by_size], buf_fon, 4,4,ecx,eax, dword[sc.frame] ;à¨á㥬 ¢­ãâ७­îî à ¬ªã ®ª­ 
  51.         sub eax,2
  52.         sub ecx,2
  53.         stdcall [buf2d_filled_rect_by_size], buf_fon, 5,5,ecx,eax, dword[sc.work] ;à¨á㥬 ä®­ ®ª­ 
  54.  
  55. ;---;---;---
  56. ;jmp .end_skin
  57. ;---;---;---
  58.  
  59.         stdcall get_obj_text_col,[obj_m_win],1
  60.         stdcall conv_str_to_int,edx ;eax = window style
  61.         cmp eax,3
  62.         jl .end_skin
  63.                 stdcall [buf2d_bit_blt], buf_fon, 0,0, buf_skin1 ;«¥¢ë© ᪨­
  64.                 mov edi,buf_skin1
  65.                 mov eax,buf2d_w ;eax - ¯®§¨æ¨ï ¤«ï à¨á®¢ ­¨ï á।­¥£® ᪨­ 
  66.                 mov edi,buf_skin2
  67.                 mov ebx,buf2d_w ;ebx - è¨à¨­  «¥¢®£® ᪨­ 
  68.                 sub ecx,ebx ;®â­¨¬ ¥¬ ®â è¨à¨­ë ®ª­  è¨à¨­ã á।­¥£® ᪨­ 
  69.                 @@:
  70.                         stdcall [buf2d_bit_blt], buf_fon, eax,0, buf_skin2 ;¯à®à¨á®¢ª  á।­¥£® ᪨­ 
  71.                         add eax,ebx
  72.                         cmp eax,ecx ;áà ¢­¨¢ ¥¬ ¯®§¨æ¨î á।­¥£® ᪨­  á è¨à¨­®© ®ª­ 
  73.                         jl @b
  74.  
  75.                 ;4-width
  76.                 stdcall get_obj_text_col,[obj_m_win],4 ;edx = offset
  77.                 stdcall conv_str_to_int,edx
  78.                 mov edi,buf_skin3
  79.                 sub eax,buf2d_w ;®â­¨¬ ¥¬ è¨à¨­ã ¯à ¢®£® ᪨­ 
  80.                 stdcall [buf2d_bit_blt], buf_fon, eax,0, buf_skin3 ;¯à®à¨á®¢ª  ¯à ¢®£® ᪨­ 
  81.         .end_skin:
  82.  
  83.         xor edx,edx ;à¨á㥬 £à ä¨ç¥áª¨¥ í«¥¬¥­âë
  84.         mov dl,C_BU
  85.         stdcall draw_arr_objects, edx,draw_obj_but
  86.         mov dl,C_ED
  87.         stdcall draw_arr_objects, edx,draw_obj_edit
  88.         mov dl,C_CB
  89.         stdcall draw_arr_objects, edx,draw_obj_check
  90.         mov dl,C_DT
  91.         stdcall draw_arr_objects, edx,draw_obj_text
  92.         mov dl,C_RE
  93.         stdcall draw_arr_objects, edx,draw_obj_rect_f13
  94.  
  95.         .end_draw:
  96. popad
  97.         ret
  98.  
  99. ;äã­ªæ¨ï à¨áã¥â ¬ áá¨¢ë ®¯à¥¤¥«¥­­ëå í«¥¬¥­â®¢
  100. align 4
  101. proc draw_arr_objects, obj_t:dword,p_fun_draw:dword
  102. push eax ebx
  103.         stdcall find_obj_in_file,[obj_t] ;eax - 㪠§ â¥«ì ­  áâàãªâãàã ®¡ê¥ªâ 
  104.         cmp eax,0
  105.         je .end_draw_o
  106.                 mov ebx,[p_fun_draw]
  107.                 stdcall ebx,eax
  108.                 @@:
  109.                         stdcall find_obj_in_file_next,[obj_t] ;eax - 㪠§ â¥«ì ­  áâàãªâãàã ®¡ê¥ªâ 
  110.                         cmp eax,0
  111.                         je .end_draw_o
  112.                                 stdcall ebx,eax
  113.                 jmp @b
  114.         .end_draw_o:
  115. pop ebx eax
  116.         ret
  117. endp
  118.  
  119. ;äã­ªæ¨ï à¨áã¥â ®¡ê¥ªâ ª­®¯ª¨, ¢ ®ª­¥ ª®­áâàãªâ®à 
  120. align 4
  121. proc draw_obj_but, p_obj:dword
  122. locals
  123.         coor_x dd ?
  124.         coor_y dd ?
  125. endl
  126.         pushad
  127.                 mov ebx,dword[p_obj]
  128.                 ;1,2,3,4,5 - x,y,w,h,color
  129.  
  130.                 stdcall get_obj_text_col,ebx,1
  131.                 stdcall conv_str_to_int,edx
  132.                 mov [coor_x],eax
  133.                 stdcall get_obj_text_col,ebx,2
  134.                 stdcall conv_str_to_int,edx
  135.                 mov [coor_y],eax
  136.                 move_to_skin [coor_x],[coor_y]
  137.                 stdcall get_obj_text_col,ebx,3
  138.                 stdcall conv_str_to_int,edx
  139.                 mov edi,eax
  140.                 stdcall get_obj_text_col,ebx,4
  141.                 stdcall conv_str_to_int,edx
  142.                 mov ecx,eax
  143.                 stdcall get_obj_text_col,ebx,5
  144.                 stdcall conv_str_to_int,edx
  145.                 stdcall [buf2d_rect_by_size], buf_fon, dword[coor_x],dword[coor_y],edi,ecx,eax
  146.         popad
  147.         ret
  148. endp
  149.  
  150. ;äã­ªæ¨ï à¨áã¥â ®¡ê¥ªâ ⥪á⮢®£® ¯®«ï, ¢ ®ª­¥ ª®­áâàãªâ®à 
  151. align 4
  152. proc draw_obj_edit, p_obj:dword
  153. locals
  154.         coor_x dd ?
  155.         coor_y dd ?
  156.         col_txt dd ? ;梥â ⥪âá 
  157. endl
  158.         pushad
  159.                 mov ebx,dword[p_obj]
  160.                 ;1,2,3,4,...,6,...8,...,10 - w,x,y,col_fon,...,col_frame,...,col_txt,...,txt
  161.  
  162.                 stdcall get_obj_text_col,ebx,2
  163.                 stdcall conv_str_to_int,edx
  164.                 mov [coor_x],eax
  165.                 stdcall get_obj_text_col,ebx,3
  166.                 stdcall conv_str_to_int,edx
  167.                 mov [coor_y],eax
  168.                 move_to_skin [coor_x],[coor_y]
  169.                 stdcall get_obj_text_col,ebx,1
  170.                 stdcall conv_str_to_int,edx
  171.                 mov ecx,eax
  172.                 stdcall get_obj_text_col,ebx,6
  173.                 stdcall conv_str_to_int,edx
  174.                 stdcall [buf2d_rect_by_size], buf_fon, dword[coor_x],dword[coor_y],\
  175.                         ecx,15, eax
  176.  
  177.                 inc dword[coor_x]
  178.                 inc dword[coor_y]
  179.                 sub ecx,2
  180.                 stdcall get_obj_text_col,ebx,4
  181.                 stdcall conv_str_to_int,edx
  182.                 stdcall [buf2d_filled_rect_by_size], buf_fon, dword[coor_x],dword[coor_y],\
  183.                         ecx,13, eax
  184.  
  185.                 stdcall get_obj_text_col,ebx,8
  186.                 stdcall conv_str_to_int,edx
  187.                 mov [col_txt],eax
  188.                 add [coor_x],2-1 ;ᬥ頥¬ ª®®à¤¨­ âã, çâ®-¡ë
  189.                 add [coor_y],4-1 ;⥪áâ ¡ë« ¢ ¯®«¥ ¢ë஢­¥­
  190.                 stdcall get_obj_text_col,ebx,10
  191.                 stdcall [buf2d_draw_text], buf_fon, buf_font,edx,dword[coor_x],dword[coor_y],\
  192.                         dword[col_txt] ;à¨á㥬 áâபã á ⥪á⮬
  193.  
  194.         popad
  195.         ret
  196. endp
  197.  
  198. ;äã­ªæ¨ï à¨áã¥â ®¡ê¥ªâ ä« ¦ª , ¢ ®ª­¥ ª®­áâàãªâ®à 
  199. align 4
  200. proc draw_obj_check, p_obj:dword
  201. locals
  202.         coor_x dd ?
  203.         coor_y dd ?
  204.         ot_txt dd ? ;®âáâ㯠¤«ï ⥪áâ 
  205.         size_wh dd ? ;à §¬¥à ª¢ ¤à â¨ª 
  206.         col_txt dd ? ;梥â ⥪âá 
  207. endl
  208.         pushad
  209.                 mov ebx,dword[p_obj]
  210.                 ;1,2,3, 4,5,6, 7,8 - x,y,txt, col_fon,col_frame,col_txt, w_txt,w_h
  211.  
  212.                 stdcall get_obj_text_col,ebx,1
  213.                 stdcall conv_str_to_int,edx
  214.                 mov [coor_x],eax
  215.                 stdcall get_obj_text_col,ebx,2
  216.                 stdcall conv_str_to_int,edx
  217.                 mov [coor_y],eax
  218.                 move_to_skin [coor_x],[coor_y]
  219.                 stdcall get_obj_text_col,ebx,7
  220.                 stdcall conv_str_to_int,edx
  221.                 mov [ot_txt],eax
  222.                 stdcall get_obj_text_col,ebx,8
  223.                 stdcall conv_str_to_int,edx
  224.                 dec eax ;à §¬¥à ¬¥­ìè¥ ­  1 ¯¨ªá¥«ì
  225.                 mov [size_wh],eax
  226.                 stdcall get_obj_text_col,ebx,5
  227.                 stdcall conv_str_to_int,edx
  228.                 stdcall [buf2d_rect_by_size], buf_fon, dword[coor_x],dword[coor_y],\
  229.                         dword[size_wh],dword[size_wh], eax
  230.  
  231.                 inc dword[coor_x]
  232.                 inc dword[coor_y]
  233.                 sub dword[size_wh],2
  234.                 stdcall get_obj_text_col,ebx,4
  235.                 stdcall conv_str_to_int,edx
  236.                 stdcall [buf2d_filled_rect_by_size], buf_fon, dword[coor_x],dword[coor_y],\
  237.                         dword[size_wh],dword[size_wh], eax
  238.  
  239.                 stdcall get_obj_text_col,ebx,6
  240.                 stdcall conv_str_to_int,edx
  241.                 mov [col_txt],eax
  242.                 mov eax,[ot_txt]
  243.                 add eax,[size_wh]
  244.                 add eax,2-1 ;sub dword[size_wh],2 ;inc dword[coor_x]
  245.                 add [coor_x],eax ;¢ëç¨á«ï¥¬ ª®®à¤¨­ âë ¤«ï ⥪á⮢®© ¯®¤¯¨á¨
  246.                 add [coor_y],5-1 ;inc dword[coor_y]
  247.                 stdcall get_obj_text_col,ebx,3
  248.                 stdcall [buf2d_draw_text], buf_fon, buf_font,edx,dword[coor_x],dword[coor_y],\
  249.                         dword[col_txt] ;à¨á㥬 áâபã á ⥪á⮬
  250.         popad
  251.         ret
  252. endp
  253.  
  254. ;äã­ªæ¨ï à¨áã¥â ®¡ê¥ªâ ⥪á⮢®© ¯®¤¯¨á¨, ¢ ®ª­¥ ª®­áâàãªâ®à 
  255. align 4
  256. proc draw_obj_text, p_obj:dword
  257. locals
  258.         coor_x dd ?
  259.         coor_y dd ?
  260.         col_txt dd ? ;梥â ⥪âá 
  261. endl
  262.         pushad
  263.                 mov ebx,dword[p_obj]
  264.                 ;0,1,2,3,... - txt,x,y,col_txt,...
  265.  
  266.                 stdcall get_obj_text_col,ebx,1
  267.                 stdcall conv_str_to_int,edx
  268.                 mov [coor_x],eax
  269.                 stdcall get_obj_text_col,ebx,2
  270.                 stdcall conv_str_to_int,edx
  271.                 mov [coor_y],eax
  272.                 move_to_skin [coor_x],[coor_y]
  273.  
  274.                 stdcall get_obj_text_col,ebx,3
  275.                 stdcall conv_str_to_int,edx
  276.                 mov [col_txt],eax
  277.  
  278.                 stdcall get_obj_text_col,ebx,0
  279.                 stdcall [buf2d_draw_text], buf_fon, buf_font,edx,dword[coor_x],dword[coor_y],\
  280.                         dword[col_txt] ;à¨á㥬 áâபã á ⥪á⮬
  281.         popad
  282.         ret
  283. endp
  284.  
  285. ;äã­ªæ¨ï à¨áã¥â ®¡ê¥ªâ ¯àאַ㣮«ì­¨ª  (á¨á¨â. ä. 13)
  286. align 4
  287. proc draw_obj_rect_f13, p_obj:dword
  288. locals
  289.         coor_x dd ?
  290.         coor_y dd ?
  291.         color dd ? ;梥â ⥪âá 
  292. endl
  293.         pushad
  294.                 mov ebx,dword[p_obj]
  295.                 ;0,1,2,3,4 - color,x,y,w,h
  296.  
  297.                 stdcall get_obj_text_col,ebx,1
  298.                 stdcall conv_str_to_int,edx
  299.                 mov [coor_x],eax
  300.                 stdcall get_obj_text_col,ebx,2
  301.                 stdcall conv_str_to_int,edx
  302.                 mov [coor_y],eax
  303.                 move_to_skin [coor_x],[coor_y]
  304.  
  305.                 stdcall get_obj_text_col,ebx,0
  306.                 stdcall conv_str_to_int,edx
  307.                 mov [color],eax
  308.  
  309.                 stdcall get_obj_text_col,ebx,3
  310.                 stdcall conv_str_to_int,edx
  311.                 mov ecx,eax
  312.  
  313.                 stdcall get_obj_text_col,ebx,4
  314.                 stdcall conv_str_to_int,edx
  315.                 mov esi,eax
  316.  
  317.                 stdcall [buf2d_filled_rect_by_size], buf_fon,\
  318.                         dword[coor_x],dword[coor_y],ecx,esi,dword[color]
  319.         popad
  320.         ret
  321. endp
  322.