From 639a979c3aa55ca0092a8ecf9ca308e3d1f2b874 Mon Sep 17 00:00:00 2001 From: IgorA Date: Wed, 23 Dec 2009 13:50:32 +0000 Subject: [PATCH] update TreeList: 1) add new function 'tl_get_mem_size' - get size memory block 2) fix functions: 'tl_save_mem', 'tl_load_mem' - calculate size memory block git-svn-id: svn://kolibrios.org@1328 a494cfbc-eb01-0410-851d-a64ba20cac60 --- .../libraries/box_lib/trunk/box_lib.asm | 2 + .../libraries/box_lib/trunk/tree_list.mac | 50 ++++++++++++++---- .../box_lib/trunk/tree_list_doc/info_size.png | Bin 0 -> 9682 bytes .../trunk/tree_list_doc/info_treelist.htm | 31 +++++++---- 4 files changed, 64 insertions(+), 19 deletions(-) create mode 100644 programs/develop/libraries/box_lib/trunk/tree_list_doc/info_size.png diff --git a/programs/develop/libraries/box_lib/trunk/box_lib.asm b/programs/develop/libraries/box_lib/trunk/box_lib.asm index b643fce7f5..d079c007d8 100644 --- a/programs/develop/libraries/box_lib/trunk/box_lib.asm +++ b/programs/develop/libraries/box_lib/trunk/box_lib.asm @@ -164,6 +164,7 @@ EXPORTS: dd sz_tl_node_poi_get_data, tl_node_poi_get_data dd sz_tl_save_mem, tl_save_mem dd sz_tl_load_mem, tl_load_mem + dd sz_tl_get_mem_size,tl_get_mem_size dd sz_tl_version_tree_list, 0x00000001 dd 0,0 @@ -230,4 +231,5 @@ szVersion_FileBrowser db 'version_FileBrowser',0 sz_tl_node_poi_get_data db 'tl_node_poi_get_data',0 sz_tl_save_mem db 'tl_save_mem',0 sz_tl_load_mem db 'tl_load_mem',0 + sz_tl_get_mem_size db 'tl_get_mem_size',0 sz_tl_version_tree_list db 'version_tree_list',0 \ No newline at end of file diff --git a/programs/develop/libraries/box_lib/trunk/tree_list.mac b/programs/develop/libraries/box_lib/trunk/tree_list.mac index 70623db96b..3aede04fd7 100644 --- a/programs/develop/libraries/box_lib/trunk/tree_list.mac +++ b/programs/develop/libraries/box_lib/trunk/tree_list.mac @@ -1,6 +1,6 @@ ; макрос для системной библиотеки box_lib.obj ; элемент TreeList для Kolibri OS -; файл последний раз изменялся 8.12.2009 IgorA +; файл последний раз изменялся 23.12.2009 IgorA ; на код применена GPL2 лицензия @@ -2215,15 +2215,11 @@ tl_save_mem: cmp dword[ebp+16],0 ;add mode je @f - .beg_cycle: - cmp dword[esi],0x65657274 ;0x65657274 = 'tree' - jne @f - xor ebx,ebx - mov bx,word[esi+4] - imul ebx,dword[esi+6] - add ebx,tl_save_load_heder_size + push dword edi + push dword esi + call tl_get_mem_size ;берем размер ранее сохранённых данных + pop ebx add esi,ebx - jmp .beg_cycle @@: xor ebx,ebx @@ -2328,11 +2324,17 @@ tl_load_mem: mov cx,word[ebp+16] cmp cx,0 ;load in array mode je @f +; push dword edi +; push dword esi +; call tl_get_mem_size ;берем размер ранее сохранённых данных +; pop ebx +; add esi,ebx .beg_cycle: cmp dword[esi],0x65657274 ;0x65657274 = 'tree' jne .no_tree xor ebx,ebx mov bx,word[esi+4] + add bx,8 imul ebx,dword[esi+6] add ebx,tl_save_load_heder_size add esi,ebx @@ -2395,6 +2397,36 @@ add esi,ebx pop ebp ret 12 +;input: +;dword[ebp+ 8] - pointer to memory +;dword[ebp+12] - pointer to 'TreeList' struct +;output: +;dword[ebp+ 8] - error code +align 4 +tl_get_mem_size: ;берет размер памяти занятой функцией tl_save_mem при сохранении элементов + push ebp + mov ebp,esp + push ebx edi esi + mov esi,dword[ebp+ 8] + mov edi,dword[ebp+12] + @@: + cmp dword[esi],0x65657274 ;0x65657274 = 'tree' + jne @f + xor ebx,ebx + mov bx,word[esi+4] + add bx,8 ;размер дополнительной информации об узле (индекс записи; индекс иконки, уровень, ...) + imul ebx,dword[esi+6] + add ebx,tl_save_load_heder_size + add esi,ebx + jmp @b + @@: + sub esi,dword[ebp+ 8] + mov dword[ebp+12],esi ;возвращаем размер блока памяти + pop esi edi edx + pop ebp + ret 4 + + ;ascii scan key ; 13 28 Enter ; 32 57 Space diff --git a/programs/develop/libraries/box_lib/trunk/tree_list_doc/info_size.png b/programs/develop/libraries/box_lib/trunk/tree_list_doc/info_size.png new file mode 100644 index 0000000000000000000000000000000000000000..5876da4a31e420fb1b97bb3ad1ccd1e21a5fd1ad GIT binary patch literal 9682 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 VBXijPfX`n+RF$8>${(7({(oVQ=*Iv6 literal 0 HcmV?d00001 diff --git a/programs/develop/libraries/box_lib/trunk/tree_list_doc/info_treelist.htm b/programs/develop/libraries/box_lib/trunk/tree_list_doc/info_treelist.htm index 83f754700f..537d68c763 100644 --- a/programs/develop/libraries/box_lib/trunk/tree_list_doc/info_treelist.htm +++ b/programs/develop/libraries/box_lib/trunk/tree_list_doc/info_treelist.htm @@ -57,9 +57,9 @@ table { font-size: 15px; }

  • tl_info_undo
  • tl_info_redo
  • tl_node_add
  • -
  • tl_node_set_data
  • -
  • tl_node_get_data
  • -
  • tl_node_delete
  • +
  • tl_node_set_data
  • +
  • tl_node_get_data
  • +
  • tl_node_delete
  • tl_cur_beg
  • tl_cur_next
  • tl_cur_perv
  • @@ -73,7 +73,8 @@ table { font-size: 15px; }
  • tl_node_poi_get_data
  • tl_save_mem
  • tl_load_mem
  • -
  • version_tree_list
  • +
  • tl_get_mem_size
  • +
  • version_tree_list
  • Структура tree_list

    Стили элемента

    @@ -81,6 +82,7 @@ table { font-size: 15px; }

    Введение

    Внешний вид элемента управления TreeList:

    +

    Рис. 1. Окно программы с элементом TreeList

    Функции

    @@ -119,12 +121,15 @@ table { font-size: 15px; }

    где: tree1 - структура tree_list; 0x10002 - параметры узла (старшие байты 0x0001 - индекс иконки, отображаемой возле узла; меньший байт 0x02 - уровень вложености узла); data_buffer - указатель на дынные, добавляемые в узел.

    -

    tl_node_set_data

    +

    tl_node_set_data

    Устанавливает новые данные (пользовательские и подпись) в узел под курсором.

    -

    tl_node_get_data

    + +

    tl_node_get_data

    Берет указатель на данные (пользовательские и подпись) из узла под курсором.

    -

    tl_node_delete

    + +

    tl_node_delete

    Удаляет узел, но не окончательно, при необходимости узел можно вернуть функцией tl_info_undo.

    +

    tl_cur_beg

    Ставит курсор в начало списка, перематывает скроллинг если нужно.

    tl_cur_next

    @@ -194,7 +199,10 @@ table { font-size: 15px; } MEM_SIZE - размер блока памяти для сохранения. В регистр eax пишется значение 0 или записываются коды ошибок считывания.

    -

    version_tree_list

    +

    tl_get_mem_size

    +

    Вычисляет размер блока памяти (в который были раньше сохранены элементы).

    + +

    version_tree_list

    Версия элемента

    Структура tree_list

    @@ -230,7 +238,7 @@ table { font-size: 15px; } .on_activate dd 0 .on_press dd on_press } -

    info_size - количество байт, которое будет выделено для каждого узла. Часть этой памяти пользователь может использовать для своих целей (регулируется через info_capt_offs и info_capt_len) а остальная часть будет использована как подпись узла.

    +

    info_size - количество байт, которое будет выделено для каждого узла. Часть этой памяти пользователь может использовать для своих целей (регулируется через info_capt_offs и info_capt_len см. рис. 2) а остальная часть будет использована как подпись узла.

    info_max_count - максимальное количество узлов, которые можно добавить в элемент.

    style - стили элемента.

    data_nodes - указатель на внутренние структуры узлов (TreeList).

    @@ -241,6 +249,9 @@ table { font-size: 15px; }

    p_scrol - указатель на структуру скроллинга, связанного с данным элементом.

    on_press - указатель на функцию, которая будет вызвана при нажитии [Enter]. Если указатель равен 0 то ничего не будет вызыватся.

    +

    +

    Рис. 2. Параметры info_size, info_capt_offs и info_capt_len в узле

    +

    Пример создания структуры:

    tree1 tree_list 24,500, tl_draw_par_line+tl_list_box_mode, 16,16,\
         0x8080ff,0x0000ff,0xffffff, 10,35,200-16,285, 14,4,0,\
    @@ -255,6 +266,6 @@ table { font-size: 15px; }
     

    Стиль не отображает уровни (как в ListBox все узлы одного уровня).


    -

    Документация обновлялась последний раз 5.12.09.

    +

    Документация обновлялась последний раз 23.12.09.

    \ No newline at end of file