Subversion Repositories Kolibri OS

Rev

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

  1. ;*****************************************************************************
  2. ; Box_Lib - library of graphical components
  3. ; Copyright (C) KolibriOS team 2008-2016. All rights reserved.
  4. ;
  5. ; Authors:
  6. ; Alexey Teplov aka <Lrz>
  7. ; Marat Zakiyanov aka Mario79, aka Mario
  8. ; Evtikhov Maxim aka Maxxxx32
  9. ; Eugene Grechnikov aka Diamond
  10. ; hidnplayr
  11. ; Igor Afanasiev aka IgorA
  12. ;*****************************************************************************
  13.  
  14. format MS COFF
  15.  
  16. public EXPORTS
  17.  
  18. section '.flat' code readable align 16
  19. include '../../../../macros.inc'
  20. include '../../../../proc32.inc'
  21. include '../../../../KOSfuncs.inc'
  22. include 'bl_sys.mac'
  23. include 'box_lib.mac' ;macro which should make life easier :)
  24. ;include '../../../../debug.inc'
  25.  
  26. ;-----------------------------------------------------------------------------
  27. mem.alloc   dd ? ;ôóíêöèÿ äëÿ âûäåëåíèÿ ïàìÿòè
  28. mem.free    dd ? ;ôóíêöèÿ äëÿ îñâîáîæäåíèÿ ïàìÿòè
  29. mem.realloc dd ? ;ôóíêöèÿ äëÿ ïåðåðàñïðåäåëåíèÿ ïàìÿòè
  30. dll.load    dd ?
  31.  
  32. ;----------------------------------------------------
  33. ;EditBox
  34. ;----------------------------------------------------
  35. align 16
  36. use_editbox_draw        ;macro reveals the function of the display.
  37. align 16
  38. use_editbox_key         ;macro reveals processing function of the keypad.
  39. align 16
  40. use_editbox_mouse       ;macro reveals processing function of the mouse.
  41.  
  42. ;----------------------------------------------------
  43. ;CheckBox2
  44. ;----------------------------------------------------
  45. align 16
  46. _init_checkbox2         ;macro for init checkbox
  47. align 16
  48. use_checkbox_draw2      ;macro reveals the function of the display.
  49. align 16
  50. use_checkbox_mouse2     ;macro reveals processing function of the mouse.
  51.  
  52. ;--------------------------------------------------
  53. ;radiobutton Group
  54. ;--------------------------------------------------
  55. align 16
  56. use_optionbox_driver    ;macro that control the operating modes
  57. align 16
  58. use_optionbox_draw      ;macro reveals the function of the display.
  59. align 16
  60. use_optionbox_mouse     ;macro reveals processing function of the mouse.
  61.  
  62. ;--------------------------------------------------
  63. ;scrollbar Group
  64. ;--------------------------------------------------
  65. align 16
  66. use_scroll_bar
  67. align 16
  68. use_scroll_bar_vertical
  69. align 16
  70. use_scroll_bar_horizontal
  71.  
  72. ;--------------------------------------------------
  73. ;dinamic button Group
  74. ;--------------------------------------------------
  75. align 16
  76. use_dinamic_button
  77.  
  78. ;--------------------------------------------------
  79. ;menubar Group
  80. ;--------------------------------------------------
  81. align 16
  82. use_menu_bar
  83.  
  84. ;--------------------------------------------------
  85. ;filebrowser Group
  86. ;--------------------------------------------------
  87. align 16
  88. use_file_browser
  89.  
  90. ;--------------------------------------------------
  91. ;tree list
  92. ;--------------------------------------------------
  93. align 16
  94. use_tree_list
  95.  
  96. ;--------------------------------------------------
  97. ;PathShow Group
  98. ;--------------------------------------------------
  99. align 16
  100. use_path_show
  101.  
  102. ;--------------------------------------------------
  103. ;text editor
  104. ;--------------------------------------------------
  105. align 16
  106. use_text_edit
  107. ;--------------------------------------------------
  108. ;Frame Group
  109. ;--------------------------------------------------
  110. align 16
  111. use_frame
  112. ;--------------------------------------------------
  113. ;ProgressBar
  114. ;--------------------------------------------------
  115. use_progressbar
  116.  
  117. ;--------------------------------------------------
  118. include 'tooltip.asm' ;tooltip
  119.  
  120. ;input:
  121. ; eax = óêàçàòåëü íà ôóíêöèþ âûäåëåíèÿ ïàìÿòè
  122. ; ebx = ... îñâîáîæäåíèÿ ïàìÿòè
  123. ; ecx = ... ïåðåðàñïðåäåëåíèÿ ïàìÿòè
  124. ; edx = ... çàãðóçêè áèáëèîòåêè (ïîêà íå èñïîëüçóåòñÿ)
  125. align 16
  126. lib_init:
  127.         mov     [mem.alloc], eax
  128.         mov     [mem.free], ebx
  129.         mov     [mem.realloc], ecx
  130.         mov     [dll.load], edx
  131. ret
  132.  
  133.  
  134. align 4
  135. proc draw_edge uses eax ebx ecx edx edi esi, box_l:dword, box_t:dword, box_w:dword, box_h:dword,\
  136.         col_0:dword, col_1:dword, col_2:dword
  137.  
  138.         mov esi,dword[col_1]
  139.         and esi,111111101111111011111110b
  140.  
  141.         mov eax,13
  142.         ;bottom line
  143.         mov edx,dword[col_2]
  144.         mov ebx,dword[box_l]
  145.         shl ebx,16
  146.         add ebx,dword[box_w]
  147.         inc ebx ;äëÿ çàëèâêè äèàãîíàëüíûõ ïèêñåëåé
  148.         mov ecx,dword[box_t]
  149.         add ecx,dword[box_h]
  150.         shl ecx,16
  151.         inc ecx
  152.  
  153.         mov edi,3 ;for cycle
  154.         @@:
  155.                 ;calculate colors
  156.                 and edx,111111101111111011111110b
  157.                 add edx,esi
  158.                 shr edx,1
  159.                 ;line move up and ->...<-
  160.                 sub ecx,1 shl 16 ;move up
  161.                 add ebx,1 shl 16 ;->...
  162.                 sub ebx,2 ;...<-
  163.                 ;draw line
  164.                 int 0x40
  165.                 dec edi
  166.         jnz @b
  167.  
  168.         ;right line
  169.         mov edx,dword[col_2]
  170.         mov ebx,dword[box_l]
  171.         add ebx,dword[box_w]
  172.         shl ebx,16
  173.         inc ebx
  174.         mov ecx,dword[box_t]
  175.         shl ecx,16
  176.         add ecx,dword[box_h]
  177.  
  178.         mov edi,3 ;for cycle
  179.         @@:
  180.                 ;calculate colors
  181.                 and edx,111111101111111011111110b
  182.                 add edx,esi
  183.                 shr edx,1
  184.                 ;line move left and ...
  185.                 sub ebx,1 shl 16 ;move left
  186.                 add ecx,1 shl 16
  187.                 sub ecx,2
  188.                 ;draw line
  189.                 int 0x40
  190.                 dec edi
  191.         jnz @b
  192.  
  193.         ;top line
  194.         mov edx,dword[col_0]
  195.         mov ebx,dword[box_l]
  196.         shl ebx,16
  197.         add ebx,dword[box_w]
  198.         mov ecx,dword[box_t]
  199.         shl ecx,16
  200.         inc ecx
  201.  
  202.         mov edi,3 ;for cycle
  203.         @@:
  204.                 ;calculate colors
  205.                 and edx,111111101111111011111110b
  206.                 add edx,esi
  207.                 shr edx,1
  208.                 ;line move down and ->...<-
  209.                 add ecx,1 shl 16 ;move down
  210.                 add ebx,1 shl 16 ;->...
  211.                 sub ebx,2 ;...<-
  212.                 ;draw line
  213.                 int 0x40
  214.                 dec edi
  215.         jnz @b
  216.  
  217.         ;left line
  218.         mov edx,dword[col_0]
  219.         mov ebx,dword[box_l]
  220.         shl ebx,16
  221.         inc ebx
  222.         mov ecx,dword[box_t]
  223.         shl ecx,16
  224.         add ecx,dword[box_h]
  225.  
  226.         mov edi,3 ;for cycle
  227.         @@:
  228.                 ;calculate colors
  229.                 and edx,111111101111111011111110b
  230.                 add edx,esi
  231.                 shr edx,1
  232.                 ;line move left and ...
  233.                 add ebx,1 shl 16 ;move left
  234.                 add ecx,1 shl 16
  235.                 sub ecx,2
  236.                 ;draw line
  237.                 int 0x40
  238.                 dec edi
  239.         jnz @b
  240.  
  241.         ret
  242. endp
  243.  
  244.  
  245. align 16
  246. EXPORTS:
  247.  
  248.  
  249. dd      sz_init,                        lib_init
  250. dd      sz_version,                     0x00000001
  251.  
  252. dd      sz_edit_box,                    edit_box
  253. dd      sz_edit_box_key,                edit_box_key
  254. dd      sz_edit_box_mouse,              edit_box_mouse
  255. dd      sz_edit_box_set_text,           edit_box_set_text
  256. dd      szVersion_ed,                   0x00000001
  257.  
  258. dd      sz_init_checkbox2,              init_checkbox2
  259. dd      sz_check_box_draw2,             check_box_draw2
  260. dd      sz_check_box_mouse2,            check_box_mouse2
  261. dd      szVersion_ch2,                  0x00000002
  262.  
  263. dd      sz_option_box_draw,             option_box_draw
  264. dd      sz_option_box_mouse,            option_box_mouse
  265. dd      szVersion_op,                   0x00000001
  266.  
  267. dd      sz_Scrollbar_ver_draw,          scroll_bar_vertical.draw
  268. dd      sz_Scrollbar_ver_mouse,         scroll_bar_vertical.mouse
  269. dd      sz_Scrollbar_hor_draw,          scroll_bar_horizontal.draw
  270. dd      sz_Scrollbar_hor_mouse,         scroll_bar_horizontal.mouse
  271. dd      szVersion_scrollbar,            0x00010001
  272.  
  273. dd      sz_Dbutton_draw,                dinamic_button.draw
  274. dd      sz_Dbutton_mouse,               dinamic_button.mouse
  275. dd      szVersion_dbutton,              0x00010001
  276.  
  277. dd      sz_Menu_bar_draw,               menu_bar.draw
  278. dd      sz_Menu_bar_mouse,              menu_bar.mouse
  279. dd      sz_Menu_bar_activate,           menu_bar.activate
  280. dd      szVersion_menu_bar,             0x00010002
  281.  
  282. dd      sz_FileBrowser_draw,            fb_draw_panel
  283. dd      sz_FileBrowser_mouse,           fb_mouse
  284. dd      sz_FileBrowser_key,             fb_key
  285. dd      szVersion_FileBrowser,          0x00010001
  286.  
  287. dd      sz_tl_data_init,                tl_data_init
  288. dd      sz_tl_data_clear,               tl_data_clear
  289. dd      sz_tl_info_clear,               tl_info_clear
  290. dd      sz_tl_key,                      tl_key
  291. dd      sz_tl_mouse,                    tl_mouse
  292. dd      sz_tl_draw,                     tl_draw
  293. dd      sz_tl_info_undo,                tl_info_undo
  294. dd      sz_tl_info_redo,                tl_info_redo
  295. dd      sz_tl_node_add,                 tl_node_add
  296. dd      sz_tl_node_set_data,            tl_node_set_data
  297. dd      sz_tl_node_get_data,            tl_node_get_data
  298. dd      sz_tl_node_delete,              tl_node_delete
  299. dd      sz_tl_cur_beg,                  tl_cur_beg
  300. dd      sz_tl_cur_next,                 tl_cur_next
  301. dd      sz_tl_cur_perv,                 tl_cur_perv
  302. dd      sz_tl_node_close_open,          tl_node_close_open
  303. dd      sz_tl_node_lev_inc,             tl_node_lev_inc
  304. dd      sz_tl_node_lev_dec,             tl_node_lev_dec
  305. dd      sz_tl_node_move_up,             tl_node_move_up
  306. dd      sz_tl_node_move_down,           tl_node_move_down
  307. dd      sz_tl_node_poi_get_info,        tl_node_poi_get_info
  308. dd      sz_tl_node_poi_get_next_info,   tl_node_poi_get_next_info
  309. dd      sz_tl_node_poi_get_data,        tl_node_poi_get_data
  310. dd      sz_tl_save_mem,                 tl_save_mem
  311. dd      sz_tl_load_mem,                 tl_load_mem
  312. dd      sz_tl_get_mem_size,             tl_get_mem_size
  313. dd      sz_tl_version_tree_list,        0x00000001
  314.  
  315. dd      sz_PathShow_prepare,            path_show.prepare
  316. dd      sz_PathShow_draw,               path_show.draw
  317. dd      szVersion_path_show,            0x00010001
  318.  
  319. dd      sz_ted_but_sumb_upper,          ted_but_sumb_upper
  320. dd      sz_ted_but_sumb_lover,          ted_but_sumb_lover
  321. dd      sz_ted_but_convert_by_table,    ted_but_convert_by_table
  322. dd      sz_ted_can_save,                ted_can_save
  323. dd      sz_ted_clear,                   ted_clear
  324. dd      sz_ted_delete,                  ted_delete
  325. dd      sz_ted_draw,                    ted_draw
  326. dd      sz_ted_init,                    ted_init
  327. dd      sz_ted_init_scroll_bars,        ted_init_scroll_bars
  328. dd      sz_ted_init_syntax_file,        ted_init_syntax_file
  329. dd      sz_ted_is_select,               ted_is_select
  330. dd      sz_ted_key,                     ted_key
  331. dd      sz_ted_mouse,                   ted_mouse
  332. dd      sz_ted_open_file,               ted_open_file
  333. dd      sz_ted_save_file,               ted_save_file
  334. dd      sz_ted_text_add,                ted_text_add
  335. dd      sz_ted_but_select_word,         ted_but_select_word
  336. dd      sz_ted_but_cut,                 ted_but_cut
  337. dd      sz_ted_but_copy,                ted_but_copy
  338. dd      sz_ted_but_paste,               ted_but_paste
  339. dd      sz_ted_but_undo,                ted_but_undo
  340. dd      sz_ted_but_redo,                ted_but_redo
  341. dd      sz_ted_but_reverse,             ted_but_reverse
  342. dd      sz_ted_but_find_next,           ted_but_find_next
  343. dd      sz_ted_text_colored,            ted_text_colored
  344. dd      sz_ted_version,                 0x00000005
  345.  
  346. dd      sz_Frame_draw,                  frame.draw
  347. dd      szVersion_frame,                0x00010001
  348.  
  349. dd sz_progressbar_draw,     progressbar_draw   
  350. dd sz_progressbar_progress, progressbar_progress
  351.  
  352. dd sz_tooltip_init, tooltip_init
  353. dd sz_tooltip_delete, tooltip_delete
  354. dd sz_tooltip_test_show, tooltip_test_show
  355. dd sz_tooltip_mouse, tooltip_mouse
  356. dd sz_get_font_size, get_font_size
  357.  
  358. dd      0,0
  359.  
  360.  
  361. sz_init                         db 'lib_init',0
  362. sz_version                      db 'version',0
  363.  
  364. sz_edit_box                     db 'edit_box',0
  365. sz_edit_box_key                 db 'edit_box_key',0
  366. sz_edit_box_mouse               db 'edit_box_mouse',0
  367. sz_edit_box_set_text            db 'edit_box_set_text',0
  368. szVersion_ed                    db 'version_ed',0
  369.  
  370. sz_init_checkbox2               db 'init_checkbox2',0
  371. sz_check_box_draw2              db 'check_box_draw2',0
  372. sz_check_box_mouse2             db 'check_box_mouse2',0
  373. szVersion_ch2                   db 'version_ch2',0
  374.  
  375. sz_option_box_draw              db 'option_box_draw',0
  376. sz_option_box_mouse             db 'option_box_mouse',0
  377. szVersion_op                    db 'version_op',0
  378.  
  379. sz_Scrollbar_ver_draw           db 'scrollbar_v_draw',0
  380. sz_Scrollbar_ver_mouse          db 'scrollbar_v_mouse',0
  381. sz_Scrollbar_hor_draw           db 'scrollbar_h_draw',0
  382. sz_Scrollbar_hor_mouse          db 'scrollbar_h_mouse',0
  383. szVersion_scrollbar             db 'version_scrollbar',0
  384.  
  385. sz_Dbutton_draw                 db 'dbutton_draw',0
  386. sz_Dbutton_mouse                db 'dbutton_mouse',0
  387. szVersion_dbutton               db 'version_dbutton',0
  388.  
  389. sz_Menu_bar_draw                db 'menu_bar_draw',0
  390. sz_Menu_bar_mouse               db 'menu_bar_mouse',0
  391. sz_Menu_bar_activate            db 'menu_bar_activate',0
  392. szVersion_menu_bar              db 'version_menu_bar',0
  393.  
  394. sz_FileBrowser_draw             db 'FileBrowser_draw',0
  395. sz_FileBrowser_mouse            db 'FileBrowser_mouse',0
  396. sz_FileBrowser_key              db 'FileBrowser_key',0
  397. szVersion_FileBrowser           db 'version_FileBrowser',0
  398.  
  399. sz_tl_data_init                 db 'tl_data_init',0
  400. sz_tl_data_clear                db 'tl_data_clear',0
  401. sz_tl_info_clear                db 'tl_info_clear',0
  402. sz_tl_key                       db 'tl_key',0
  403. sz_tl_mouse                     db 'tl_mouse',0
  404. sz_tl_draw                      db 'tl_draw',0
  405. sz_tl_info_undo                 db 'tl_info_undo',0
  406. sz_tl_info_redo                 db 'tl_info_redo',0
  407. sz_tl_node_add                  db 'tl_node_add',0
  408. sz_tl_node_set_data             db 'tl_node_set_data',0
  409. sz_tl_node_get_data             db 'tl_node_get_data',0
  410. sz_tl_node_delete               db 'tl_node_delete',0
  411. sz_tl_cur_beg                   db 'tl_cur_beg',0
  412. sz_tl_cur_next                  db 'tl_cur_next',0
  413. sz_tl_cur_perv                  db 'tl_cur_perv',0
  414. sz_tl_node_close_open           db 'tl_node_close_open',0
  415. sz_tl_node_lev_inc              db 'tl_node_lev_inc',0
  416. sz_tl_node_lev_dec              db 'tl_node_lev_dec',0
  417. sz_tl_node_move_up              db 'tl_node_move_up',0
  418. sz_tl_node_move_down            db 'tl_node_move_down',0
  419. sz_tl_node_poi_get_info         db 'tl_node_poi_get_info',0
  420. sz_tl_node_poi_get_next_info    db 'tl_node_poi_get_next_info',0
  421. sz_tl_node_poi_get_data         db 'tl_node_poi_get_data',0
  422. sz_tl_save_mem                  db 'tl_save_mem',0
  423. sz_tl_load_mem                  db 'tl_load_mem',0
  424. sz_tl_get_mem_size              db 'tl_get_mem_size',0
  425. sz_tl_version_tree_list         db 'version_tree_list',0
  426.  
  427. sz_PathShow_prepare             db 'PathShow_prepare',0
  428. sz_PathShow_draw                db 'PathShow_draw',0
  429. szVersion_path_show             db 'version_PathShow',0
  430.  
  431. sz_ted_but_sumb_upper           db 'ted_but_sumb_upper',0
  432. sz_ted_but_sumb_lover           db 'ted_but_sumb_lover',0
  433. sz_ted_but_convert_by_table     db 'ted_but_convert_by_table',0
  434. sz_ted_can_save                 db 'ted_can_save',0
  435. sz_ted_clear                    db 'ted_clear',0
  436. sz_ted_delete                   db 'ted_delete',0
  437. sz_ted_draw                     db 'ted_draw',0
  438. sz_ted_init                     db 'ted_init',0
  439. sz_ted_init_scroll_bars         db 'ted_init_scroll_bars',0
  440. sz_ted_init_syntax_file         db 'ted_init_syntax_file',0
  441. sz_ted_is_select                db 'ted_is_select',0
  442. sz_ted_key                      db 'ted_key',0
  443. sz_ted_mouse                    db 'ted_mouse',0
  444. sz_ted_open_file                db 'ted_open_file',0
  445. sz_ted_save_file                db 'ted_save_file',0
  446. sz_ted_text_add                 db 'ted_text_add',0
  447. sz_ted_but_select_word          db 'ted_but_select_word',0
  448. sz_ted_but_cut                  db 'ted_but_cut',0
  449. sz_ted_but_copy                 db 'ted_but_copy',0
  450. sz_ted_but_paste                db 'ted_but_paste',0
  451. sz_ted_but_undo                 db 'ted_but_undo',0
  452. sz_ted_but_redo                 db 'ted_but_redo',0
  453. sz_ted_but_reverse              db 'ted_but_reverse',0
  454. sz_ted_but_find_next            db 'ted_but_find_next',0
  455. sz_ted_text_colored             db 'ted_text_colored',0
  456. sz_ted_version                  db 'version_text_edit',0
  457.  
  458. sz_Frame_draw                   db 'frame_draw',0
  459. szVersion_frame                 db 'version_frame',0
  460.  
  461. sz_progressbar_draw     db 'progressbar_draw', 0
  462. sz_progressbar_progress db 'progressbar_progress', 0
  463.  
  464. sz_tooltip_init                 db 'tooltip_init', 0
  465. sz_tooltip_delete               db 'tooltip_delete', 0
  466. sz_tooltip_test_show    db 'tooltip_test_show', 0
  467. sz_tooltip_mouse                db 'tooltip_mouse', 0
  468. sz_get_font_size                db 'get_font_size', 0
  469.