Subversion Repositories Kolibri OS

Rev

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

  1. #ifndef KOLIBRI_TREELIST_H
  2. #define KOLIBRI_TREELIST_H
  3.  
  4. /*
  5. el_focus dd tedit0
  6. mouse_dd dd 0
  7. tree1 tree_list 264,count_of_dir_list_files+2, tl_key_no_edit+tl_draw_par_line+tl_list_box_mode,\
  8.     16,16, 0x8080ff,0x0000ff,0xffffff, 0,70,TED_PANEL_WIDTH-17,120, 0,0,0, el_focus,\
  9.     ws_dir_lbox,0
  10.  
  11. tree3 tree_list MAX_COLOR_WORD_LEN,3,tl_key_no_edit,\
  12.         16,16, 0x8080ff,0x0000ff,0xffffff, 5,30,300,160, 16, 0,0, el_focus, w_scr_t3,0
  13.  
  14. tree_file_struct:
  15.   dd 1
  16.   dd 0,0,count_of_dir_list_files
  17.   dd dir_mem
  18.   db 0
  19.   dd file_name ;sys_path
  20. */
  21. /*
  22. ;struct TreeList
  23. ;  type dw ? ;+ 0 òèï ýëåìåíòà, èëè èíäåêñ èêîíêè äëÿ óçëà
  24. ;  lev db ?  ;+ 2 óðîâåíü ýëåìåíòà
  25. ;  clo db ?  ;+ 3 ôëàã çàêðûòèÿ, èëè îòêðûòèÿ (èìååò ñìûñë äëÿ ðîäèòåëüñêîãî óçëà)
  26. ;  perv dd ? ;+ 4 èíäåêñ ïðåäûäóùåãî ýëåìåíòà
  27. ;  next dd ? ;+ 8 èíäåêñ ïîñëåäóþùåãî ýëåìåíòà
  28. ;  tc dd ?   ;+12 âðåì. ñîçäàíèÿ
  29. ;  td dd ?   ;+16 âðåì. óäàëåíèÿ
  30. ;ends
  31.  
  32. struc tree_list info_size,info_max_count,style, img_cx,img_cy,\
  33.     col_bkg,col_zag,col_txt, box_l,box_t,box_w,box_h, capt_cy,info_capt_offs,\
  34.     info_capt_len,el_focus, p_scroll,on_press {
  35. .box_left    dd box_l
  36. .box_top     dd box_t
  37. .box_width   dd box_w
  38. .box_height  dd box_h
  39. .data_info   dd 0
  40. .info_size   dw info_size
  41. .info_max_count dd info_max_count
  42. .style       dd style
  43. .data_nodes  dd 0
  44. .data_img    dd 0
  45. .img_cx      dw img_cx
  46. .img_cy      dw img_cy
  47. .data_img_sys dd 0
  48. .ch_tim      dd 0
  49. .tim_undo    dd 0
  50. .cur_pos     dd 0
  51. .col_bkg     dd col_bkg
  52. .col_zag     dd col_zag
  53. .col_txt     dd col_txt
  54. .capt_cy     dw capt_cy
  55. .info_capt_offs dw info_capt_offs
  56. .info_capt_len dw info_capt_len
  57. .el_focus    dd el_focus
  58. .p_scroll    dd p_scroll
  59. .on_press    dd on_press
  60. }
  61. */
  62. // êîíñòàíòû ñòèëÿ
  63. enum tl_style {
  64.     TL_KEY_NO_EDIT  = 1,    // ýëåìåíò íåëüçÿ ðåäàêòèðîâàòü íà êëàâèàòóðå (èçìåíÿòü óðîâíè, óäàëÿòü)
  65.     TL_DRAW_PAR_LINE = 2,   // ðèñîâàòü ëèíèè ê ðîäèòåëüñêîìó óçëó
  66.     TL_LISTBOX_MODE  = 4    //ñòèëü íå îòîáðàæàåò óðîâíè (êàê â ListBox âñå îäíîãî óðîâíÿ)
  67. };
  68.  
  69. typedef struct __attribute__ ((__packed__)) {
  70.     uint32_t    left;
  71.     uint32_t    top;
  72.     uint32_t    width;
  73.     uint32_t    height;
  74.     void       *data_info;  // óêàçàòåëü íà îñíîâíûå äàíûå
  75.     uint16_t    info_size;  // ðàçìåð äàííûõ âûäåëÿåìûõ äëÿ êàæäîãî óçëà (ïîëüçîâàòåëüñüêèå äàííûå + òåêñò äëÿ ïîäïèñè)
  76.     uint32_t    info_max_count; // ìàêñèìàëüíîå êîëè÷åñòâî óçëîâ, êîòîðûå ìîæíî äîáàâèòü â ýëåìåíò
  77.     uint32_t    style;      // ñòèëè ýëåìåíòà
  78.     void       *data_nodes; // óêàçàòåëü íà ñòðóêòóðû óçëîâ
  79.     void       *data_img;   // óêàçàòåëü íà èçîáðàæåíèÿ ñ èêîíêàìè óçëîâ
  80.     uint16_t    img_cx;     // øèðèíà èêîíîê
  81.     uint16_t    img_cy;     // âûñîòà èêîíîê
  82.     void       *data_img_sys;//óêàçàòåëü íà ñèñòåìíûå èçîáðàæåíèÿ (ñòðåëêè, ïëþñèêè)
  83.     uint32_t    ch_tim;     // êîëè÷åñòâî èçìåíåíèé â ôàéëå
  84.     uint32_t    tim_undo;   // êîëè÷åñòâî îòìåíåííûõ äåéñòâèé
  85.     uint32_t    cur_pos;    // ïîçèöèÿ êóðñîðà
  86.     color_t     col_bkg;    // öâåò ôîíà
  87.     color_t     tl_col_zag; // öâåò çàãîëîâêà
  88.     color_t     tl_col_txt; // öâåò òåêñòà
  89.     uint16_t    capt_cy;    // âûñîòà ïîäïèñè
  90.     uint16_t    info_capt_offs;//ñäâèã äëÿ íà÷àëà òåêñòà (ïîäïèñè óçëà)
  91.     uint16_t    info_capt_len;//äëèíà òåêñòà ïîäïèñè óçëà (åñëè = 0 òî äî êîíöà ñòðóêòóðû)
  92.     void       *el_focus;   // óêàçàòåëü íà ñòðóêòóðó ýëåìåíòà â ôîêóñå
  93.     void       *p_scroll;   // óêàçàòåëü íà ñòðóêòóðó ñêðîëëèíãà
  94.     void       *on_press;   // +84 óêàçàòåëü íà ôóíêöèþ, êîòîðàÿ âûçûâàåòñÿ ïðè íàæàòèè Enter
  95. } treelist;
  96.  
  97. /*
  98. ;êîíñòàíòû äëÿ ôóíêöèé
  99. tl_err_save_memory_size equ  10b ;íå õâàòàåò ïàìÿòè äëÿ ñîõðàíåíèÿ ýëåìåíòà
  100. tl_err_load_caption     equ   1b ;â ïàìÿòè íåò çàãîëîâêà 'tree'
  101. tl_err_load_info_size   equ 100b ;íå ñîâïàäàåò ðàçìåð èíôîðìàöèîííîé ñòðóêòóðû ïðè îòêðûòèè
  102. tl_load_mode_add        equ 0x20000 ;îïöèÿ ñ÷èòûâàíèÿ â ðåæèìå äîáàâëåíèÿ èíôîðìàöèè
  103. tl_save_load_heder_size equ 26 ;ðàçìåð çàãîëîâêà äëÿ çàïèñè/÷òåíèÿ ýëåìåíòîâ
  104. */
  105.  
  106. #endif //KOLIBRI_TREELIST_H
  107.