Subversion Repositories Kolibri OS

Rev

Rev 9568 | 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-2020. 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 'box_lib.mac' ;macro which should make life easier :)
  23. ;include '../../../../debug.inc'
  24. include 'keys.inc'
  25. include '../../../../system/skincfg/trunk/kglobals.inc'
  26. include '../../../../system/skincfg/trunk/unpacker.inc'
  27.  
  28. ;-----------------------------------------------------------------------------
  29. mem.alloc   dd ? ;ôóíêöèÿ äëÿ âûäåëåíèÿ ïàìÿòè
  30. mem.free    dd ? ;ôóíêöèÿ äëÿ îñâîáîæäåíèÿ ïàìÿòè
  31. mem.realloc dd ? ;ôóíêöèÿ äëÿ ïåðåðàñïðåäåëåíèÿ ïàìÿòè
  32. dll.load    dd ?
  33.  
  34. ;----------------------------------------------------
  35. include 'editbox.asm'     ;editbox
  36. include 'checkbox.asm'    ;checkbox
  37. include 'optionbox.asm'   ;optionbox
  38. include 'scrollbar.asm'   ;scrollbar
  39. include 'd_button.asm'    ;dinamic_button
  40. include 'menubar.asm'     ;menubar
  41. include 'filebrowser.asm' ;filebrowser
  42. include 'tree_list.asm'   ;tree_list, list_box
  43. include 'pathshow.asm'    ;pathshow
  44. include 't_edit.asm'      ;text_editor
  45. include 'frame.asm'       ;frame
  46. include 'progressbar.asm' ;progressbar
  47. include 'tooltip.asm'     ;tooltip
  48. ;--------------------------------------------------
  49.  
  50. ;input:
  51. ; eax = óêàçàòåëü íà ôóíêöèþ âûäåëåíèÿ ïàìÿòè
  52. ; ebx = ... îñâîáîæäåíèÿ ïàìÿòè
  53. ; ecx = ... ïåðåðàñïðåäåëåíèÿ ïàìÿòè
  54. ; edx = ... çàãðóçêè áèáëèîòåêè (ïîêà íå èñïîëüçóåòñÿ)
  55. align 16
  56. lib_init:
  57.         mov     [mem.alloc], eax
  58.         mov     [mem.free], ebx
  59.         mov     [mem.realloc], ecx
  60.         mov     [dll.load], edx
  61. ret
  62.  
  63.  
  64. align 4
  65. proc draw_edge uses eax ebx ecx edx edi esi, box_l:dword, box_t:dword, box_w:dword, box_h:dword,\
  66.         col_0:dword, col_1:dword, col_2:dword
  67.  
  68.         mov esi,[col_1]
  69.         and esi,111111101111111011111110b
  70.  
  71.         mov eax,SF_DRAW_RECT
  72.         ;bottom line
  73.         mov edx,[col_2]
  74.         mov ebx,[box_l]
  75.         shl ebx,16
  76.         add ebx,[box_w]
  77.         inc ebx ;äëÿ çàëèâêè äèàãîíàëüíûõ ïèêñåëåé
  78.         mov ecx,[box_t]
  79.         add ecx,[box_h]
  80.         shl ecx,16
  81.         inc ecx
  82.  
  83.         mov edi,3 ;for cycle
  84.         @@:
  85.                 ;calculate colors
  86.                 and edx,111111101111111011111110b
  87.                 add edx,esi
  88.                 shr edx,1
  89.                 ;line move up and ->...<-
  90.                 sub ecx,1 shl 16 ;move up
  91.                 add ebx,1 shl 16 ;->...
  92.                 sub ebx,2 ;...<-
  93.                 ;draw line
  94.                 int 0x40
  95.                 dec edi
  96.         jnz @b
  97.  
  98.         ;right line
  99.         mov edx,[col_2]
  100.         mov ebx,[box_l]
  101.         add ebx,[box_w]
  102.         shl ebx,16
  103.         inc ebx
  104.         mov ecx,[box_t]
  105.         shl ecx,16
  106.         add ecx,[box_h]
  107.  
  108.         mov edi,3 ;for cycle
  109.         @@:
  110.                 ;calculate colors
  111.                 and edx,111111101111111011111110b
  112.                 add edx,esi
  113.                 shr edx,1
  114.                 ;line move left and ...
  115.                 sub ebx,1 shl 16 ;move left
  116.                 add ecx,1 shl 16
  117.                 sub ecx,2
  118.                 ;draw line
  119.                 int 0x40
  120.                 dec edi
  121.         jnz @b
  122.  
  123.         ;top line
  124.         mov edx,[col_0]
  125.         mov ebx,[box_l]
  126.         shl ebx,16
  127.         add ebx,[box_w]
  128.         mov ecx,[box_t]
  129.         shl ecx,16
  130.         inc ecx
  131.  
  132.         mov edi,3 ;for cycle
  133.         @@:
  134.                 ;calculate colors
  135.                 and edx,111111101111111011111110b
  136.                 add edx,esi
  137.                 shr edx,1
  138.                 ;line move down and ->...<-
  139.                 add ecx,1 shl 16 ;move down
  140.                 add ebx,1 shl 16 ;->...
  141.                 sub ebx,2 ;...<-
  142.                 ;draw line
  143.                 int 0x40
  144.                 dec edi
  145.         jnz @b
  146.  
  147.         ;left line
  148.         mov edx,[col_0]
  149.         mov ebx,[box_l]
  150.         shl ebx,16
  151.         inc ebx
  152.         mov ecx,[box_t]
  153.         shl ecx,16
  154.         add ecx,[box_h]
  155.  
  156.         mov edi,3 ;for cycle
  157.         @@:
  158.                 ;calculate colors
  159.                 and edx,111111101111111011111110b
  160.                 add edx,esi
  161.                 shr edx,1
  162.                 ;line move left and ...
  163.                 add ebx,1 shl 16 ;move left
  164.                 add ecx,1 shl 16
  165.                 sub ecx,2
  166.                 ;draw line
  167.                 int 0x40
  168.                 dec edi
  169.         jnz @b
  170.  
  171.         ret
  172. endp
  173.  
  174.  
  175. ;äëÿ ðàáîòû ñ KPCK
  176. IncludeIGlobals
  177. IncludeUGlobals
  178.  
  179. align 16
  180. EXPORTS:
  181.  
  182.  
  183. dd      sz_init,                        lib_init
  184. dd      sz_version,                     0x00000001
  185.  
  186. dd      sz_edit_box,                    edit_box_draw ;old function name
  187. dd      sz_edit_box_draw,               edit_box_draw
  188. dd      sz_edit_box_key,                edit_box_key
  189. dd      sz_edit_box_key_safe,   edit_box_key_safe
  190. dd      sz_edit_box_mouse,              edit_box_mouse
  191. dd      sz_edit_box_set_text,           edit_box_set_text
  192. dd      szVersion_ed,                   0x00000001
  193.  
  194. dd      sz_init_checkbox,               init_checkbox
  195. dd      sz_check_box_draw,              check_box_draw
  196. dd      sz_check_box_mouse,             check_box_mouse
  197. dd      szVersion_ch2,                  0x00000002
  198.  
  199. dd      sz_option_box_draw,             option_box_draw
  200. dd      sz_option_box_mouse,            option_box_mouse
  201. dd      szVersion_op,                   0x00000001
  202.  
  203. dd      sz_Scrollbar_ver_draw,          scroll_bar_vertical.draw
  204. dd      sz_Scrollbar_ver_mouse,         scroll_bar_vertical.mouse
  205. dd      sz_Scrollbar_hor_draw,          scroll_bar_horizontal.draw
  206. dd      sz_Scrollbar_hor_mouse,         scroll_bar_horizontal.mouse
  207. dd      szVersion_scrollbar,            0x00010001
  208.  
  209. dd      sz_Dbutton_draw,                dinamic_button.draw
  210. dd      sz_Dbutton_mouse,               dinamic_button.mouse
  211. dd      szVersion_dbutton,              0x00010001
  212.  
  213. dd      sz_Menu_bar_draw,               menu_bar.draw
  214. dd      sz_Menu_bar_mouse,              menu_bar.mouse
  215. dd      sz_Menu_bar_activate,           menu_bar.activate
  216. dd      szVersion_menu_bar,             0x00010002
  217.  
  218. dd      sz_FileBrowser_draw,            fb_draw_panel
  219. dd      sz_FileBrowser_mouse,           fb_mouse
  220. dd      sz_FileBrowser_key,             fb_key
  221. dd      szVersion_FileBrowser,          0x00010001
  222.  
  223. dd      sz_tl_data_init,                tl_data_init
  224. dd      sz_tl_data_clear,               tl_data_clear
  225. dd      sz_tl_info_clear,               tl_info_clear
  226. dd      sz_tl_key,                      tl_key
  227. dd      sz_tl_mouse,                    tl_mouse
  228. dd      sz_tl_draw,                     tl_draw
  229. dd      sz_tl_info_undo,                tl_info_undo
  230. dd      sz_tl_info_redo,                tl_info_redo
  231. dd      sz_tl_node_add,                 tl_node_add
  232. dd      sz_tl_node_set_data,            tl_node_set_data
  233. dd      sz_tl_node_get_data,            tl_node_get_data
  234. dd      sz_tl_node_delete,              tl_node_delete
  235. dd      sz_tl_cur_beg,                  tl_cur_beg
  236. dd      sz_tl_cur_next,                 tl_cur_next
  237. dd      sz_tl_cur_perv,                 tl_cur_perv
  238. dd      sz_tl_node_close_open,          tl_node_close_open
  239. dd      sz_tl_node_lev_inc,             tl_node_lev_inc
  240. dd      sz_tl_node_lev_dec,             tl_node_lev_dec
  241. dd      sz_tl_node_move_up,             tl_node_move_up
  242. dd      sz_tl_node_move_down,           tl_node_move_down
  243. dd      sz_tl_node_poi_get_info,        tl_node_poi_get_info
  244. dd      sz_tl_node_poi_get_next_info,   tl_node_poi_get_next_info
  245. dd      sz_tl_node_poi_get_data,        tl_node_poi_get_data
  246. dd      sz_tl_save_mem,                 tl_save_mem
  247. dd      sz_tl_load_mem,                 tl_load_mem
  248. dd      sz_tl_get_mem_size,             tl_get_mem_size
  249. dd      sz_tl_version_tree_list,        0x00000001
  250.  
  251. dd      sz_PathShow_prepare,            path_show.prepare
  252. dd      sz_PathShow_draw,               path_show.draw
  253. dd      szVersion_path_show,            0x00010001
  254.  
  255. dd      sz_ted_but_sumb_upper,          ted_but_sumb_upper
  256. dd      sz_ted_but_sumb_lover,          ted_but_sumb_lover
  257. dd      sz_ted_but_convert_by_table,    ted_but_convert_by_table
  258. dd      sz_ted_can_save,                ted_can_save
  259. dd      sz_ted_clear,                   ted_clear
  260. dd      sz_ted_delete,                  ted_delete
  261. dd      sz_ted_draw,                    ted_draw
  262. dd      sz_ted_init,                    ted_init
  263. dd      sz_ted_init_scroll_bars,        ted_init_scroll_bars
  264. dd      sz_ted_init_syntax_file,        ted_init_syntax_file
  265. dd      sz_ted_is_select,               ted_is_select
  266. dd      sz_ted_key,                     ted_key
  267. dd      sz_ted_mouse,                   ted_mouse
  268. dd      sz_ted_open_file,               ted_open_file
  269. dd      sz_ted_save_file,               ted_save_file
  270. dd      sz_ted_text_add,                ted_text_add
  271. dd      sz_ted_but_select_word,         ted_but_select_word
  272. dd      sz_ted_but_cut,                 ted_but_cut
  273. dd      sz_ted_but_copy,                ted_but_copy
  274. dd      sz_ted_but_paste,               ted_but_paste
  275. dd      sz_ted_but_undo,                ted_but_undo
  276. dd      sz_ted_but_redo,                ted_but_redo
  277. dd      sz_ted_but_reverse,             ted_but_reverse
  278. dd      sz_ted_but_find,                ted_but_find
  279. dd      sz_ted_but_replace,             ted_but_replace
  280. dd      sz_ted_text_colored,    ted_text_colored
  281. dd      sz_ted_go_to_position,  ted_go_to_position
  282. dd      sz_ted_version,                 6
  283.  
  284. dd      sz_Frame_draw,                  frame.draw
  285. dd      szVersion_frame,                0x00010001
  286.  
  287. dd sz_progressbar_draw,     progressbar_draw   
  288. dd sz_progressbar_progress, progressbar_progress
  289.  
  290. dd sz_tooltip_init, tooltip_init
  291. dd sz_tooltip_delete, tooltip_delete
  292. dd sz_tooltip_test_show, tooltip_test_show
  293. dd sz_tooltip_mouse, tooltip_mouse
  294. dd sz_get_font_size, get_font_size
  295.  
  296. dd      0,0
  297.  
  298.  
  299. sz_init                         db 'lib_init',0
  300. sz_version                      db 'version',0
  301.  
  302. sz_edit_box                     db 'edit_box',0
  303. sz_edit_box_draw                db 'edit_box_draw',0
  304. sz_edit_box_key                 db 'edit_box_key',0
  305. sz_edit_box_key_safe    db 'edit_box_key_safe',0
  306. sz_edit_box_mouse               db 'edit_box_mouse',0
  307. sz_edit_box_set_text            db 'edit_box_set_text',0
  308. szVersion_ed                    db 'version_ed',0
  309.  
  310. sz_init_checkbox                db 'init_checkbox2',0
  311. sz_check_box_draw               db 'check_box_draw2',0
  312. sz_check_box_mouse              db 'check_box_mouse2',0
  313. szVersion_ch2                   db 'version_ch2',0
  314.  
  315. sz_option_box_draw              db 'option_box_draw',0
  316. sz_option_box_mouse             db 'option_box_mouse',0
  317. szVersion_op                    db 'version_op',0
  318.  
  319. sz_Scrollbar_ver_draw           db 'scrollbar_v_draw',0
  320. sz_Scrollbar_ver_mouse          db 'scrollbar_v_mouse',0
  321. sz_Scrollbar_hor_draw           db 'scrollbar_h_draw',0
  322. sz_Scrollbar_hor_mouse          db 'scrollbar_h_mouse',0
  323. szVersion_scrollbar             db 'version_scrollbar',0
  324.  
  325. sz_Dbutton_draw                 db 'dbutton_draw',0
  326. sz_Dbutton_mouse                db 'dbutton_mouse',0
  327. szVersion_dbutton               db 'version_dbutton',0
  328.  
  329. sz_Menu_bar_draw                db 'menu_bar_draw',0
  330. sz_Menu_bar_mouse               db 'menu_bar_mouse',0
  331. sz_Menu_bar_activate            db 'menu_bar_activate',0
  332. szVersion_menu_bar              db 'version_menu_bar',0
  333.  
  334. sz_FileBrowser_draw             db 'FileBrowser_draw',0
  335. sz_FileBrowser_mouse            db 'FileBrowser_mouse',0
  336. sz_FileBrowser_key              db 'FileBrowser_key',0
  337. szVersion_FileBrowser           db 'version_FileBrowser',0
  338.  
  339. sz_tl_data_init                 db 'tl_data_init',0
  340. sz_tl_data_clear                db 'tl_data_clear',0
  341. sz_tl_info_clear                db 'tl_info_clear',0
  342. sz_tl_key                       db 'tl_key',0
  343. sz_tl_mouse                     db 'tl_mouse',0
  344. sz_tl_draw                      db 'tl_draw',0
  345. sz_tl_info_undo                 db 'tl_info_undo',0
  346. sz_tl_info_redo                 db 'tl_info_redo',0
  347. sz_tl_node_add                  db 'tl_node_add',0
  348. sz_tl_node_set_data             db 'tl_node_set_data',0
  349. sz_tl_node_get_data             db 'tl_node_get_data',0
  350. sz_tl_node_delete               db 'tl_node_delete',0
  351. sz_tl_cur_beg                   db 'tl_cur_beg',0
  352. sz_tl_cur_next                  db 'tl_cur_next',0
  353. sz_tl_cur_perv                  db 'tl_cur_perv',0
  354. sz_tl_node_close_open           db 'tl_node_close_open',0
  355. sz_tl_node_lev_inc              db 'tl_node_lev_inc',0
  356. sz_tl_node_lev_dec              db 'tl_node_lev_dec',0
  357. sz_tl_node_move_up              db 'tl_node_move_up',0
  358. sz_tl_node_move_down            db 'tl_node_move_down',0
  359. sz_tl_node_poi_get_info         db 'tl_node_poi_get_info',0
  360. sz_tl_node_poi_get_next_info    db 'tl_node_poi_get_next_info',0
  361. sz_tl_node_poi_get_data         db 'tl_node_poi_get_data',0
  362. sz_tl_save_mem                  db 'tl_save_mem',0
  363. sz_tl_load_mem                  db 'tl_load_mem',0
  364. sz_tl_get_mem_size              db 'tl_get_mem_size',0
  365. sz_tl_version_tree_list         db 'version_tree_list',0
  366.  
  367. sz_PathShow_prepare             db 'PathShow_prepare',0
  368. sz_PathShow_draw                db 'PathShow_draw',0
  369. szVersion_path_show             db 'version_PathShow',0
  370.  
  371. sz_ted_but_sumb_upper           db 'ted_but_sumb_upper',0
  372. sz_ted_but_sumb_lover           db 'ted_but_sumb_lover',0
  373. sz_ted_but_convert_by_table     db 'ted_but_convert_by_table',0
  374. sz_ted_can_save                 db 'ted_can_save',0
  375. sz_ted_clear                    db 'ted_clear',0
  376. sz_ted_delete                   db 'ted_delete',0
  377. sz_ted_draw                     db 'ted_draw',0
  378. sz_ted_init                     db 'ted_init',0
  379. sz_ted_init_scroll_bars         db 'ted_init_scroll_bars',0
  380. sz_ted_init_syntax_file         db 'ted_init_syntax_file',0
  381. sz_ted_is_select                db 'ted_is_select',0
  382. sz_ted_key                      db 'ted_key',0
  383. sz_ted_mouse                    db 'ted_mouse',0
  384. sz_ted_open_file                db 'ted_open_file',0
  385. sz_ted_save_file                db 'ted_save_file',0
  386. sz_ted_text_add                 db 'ted_text_add',0
  387. sz_ted_but_select_word          db 'ted_but_select_word',0
  388. sz_ted_but_cut                  db 'ted_but_cut',0
  389. sz_ted_but_copy                 db 'ted_but_copy',0
  390. sz_ted_but_paste                db 'ted_but_paste',0
  391. sz_ted_but_undo                 db 'ted_but_undo',0
  392. sz_ted_but_redo                 db 'ted_but_redo',0
  393. sz_ted_but_reverse              db 'ted_but_reverse',0
  394. sz_ted_but_find                 db 'ted_but_find',0
  395. sz_ted_but_replace              db 'ted_but_replace',0
  396. sz_ted_text_colored             db 'ted_text_colored',0
  397. sz_ted_go_to_position   db 'ted_go_to_position',0
  398. sz_ted_version                  db 'version_text_edit',0
  399.  
  400. sz_Frame_draw                   db 'frame_draw',0
  401. szVersion_frame                 db 'version_frame',0
  402.  
  403. sz_progressbar_draw     db 'progressbar_draw', 0
  404. sz_progressbar_progress db 'progressbar_progress', 0
  405.  
  406. sz_tooltip_init                 db 'tooltip_init', 0
  407. sz_tooltip_delete               db 'tooltip_delete', 0
  408. sz_tooltip_test_show    db 'tooltip_test_show', 0
  409. sz_tooltip_mouse                db 'tooltip_mouse', 0
  410. sz_get_font_size                db 'get_font_size', 0
  411.