FileBrowser, используется при выборе файлов в программах: OpenDialog, Kfm.
Рисование FileBrowser, параметры перерисовки задаются в переменной fb_all_redraw.
Эта функция должна вызыватся при движении мышей в FileBrowser.
Выполнение действий по нажатию клавиш. Перед вызовом функции в переменной fb_key_action должно передаваться одно из следующих значений:
; 1 - arrow down ; 2 - arrow up ; 3 - PageDown ; 4 - PageUp ; 5 - Home ; 6 - End ; 7 - Enter ; 8 - Insert (выделение файла) ; 9 - Ctrl+A выделить все файлы ; 10 - отменить выделение файлов ; 11 - обратить выделение файлов ; 12 - поиск по букве
Версия элемента
Макроса для создания структуры FileBrowser нет. Потому данные для нее задаются вручную. Данные для структуры FileBrowser:
fb_type equ dword [edi] fb_size_x equ [edi+4] ;word fb_start_x equ [edi+6] ;word fb_size_y equ [edi+8] ;word fb_start_y equ [edi+10] ;word fb_icon_size_y equ word [edi+12] fb_icon_size_x equ word [edi+14] fb_line_size_x equ word [edi+16] fb_line_size_y equ word [edi+18] fb_type_size_x equ word [edi+20] fb_size_size_x equ word [edi+22] fb_date_size_x equ word [edi+24] fb_attributes_size_x equ word [edi+26] fb_icon_assoc_area equ dword [edi+28] fb_icon_raw_area equ dword [edi+32] fb_resolution_raw equ dword [edi+36] fb_palette_raw equ dword [edi+40] fb_directory_path_area equ dword [edi+44] fb_file_name_area equ dword [edi+48] fb_select_flag equ dword [edi+52] fb_background_color equ dword [edi+56] fb_select_color equ dword [edi+60] fb_seclect_text_color equ dword [edi+64] fb_text_color equ dword [edi+68] fb_reduct_text_color equ dword [edi+72] fb_marked_text_color equ dword [edi+76] fb_max_panel_line equ dword [edi+80] fb_select_panel_counter equ dword [edi+84] fb_folder_block equ dword [edi+88] fb_start_draw_line equ dword [edi+92] fb_start_draw_cursor_line equ word [edi+96] fb_folder_data equ dword [edi+98] fb_temp_counter equ dword [edi+102] fb_file_name_length equ dword [edi+106] fb_marked_file equ dword [edi+110] fb_extension_size equ dword [edi+114] fb_extension_start equ dword [edi+118] fb_type_table equ dword [edi+122] fb_ini_file_start equ dword [edi+126] fb_ini_file_end equ dword [edi+130] fb_draw_scroll_bar equ dword [edi+134] fb_font_size_y equ word [edi+138] fb_font_size_x equ word [edi+140] fb_mouse_keys equ dword [edi+142] fb_mouse_keys_old equ dword [edi+146] fb_mouse_pos equ dword [edi+150] fb_mouse_keys_delta equ dword [edi+154] fb_mouse_key_delay equ dword [edi+158] fb_mouse_keys_tick equ dword [edi+162] fb_start_draw_cursor_line_2 equ word [edi+166] fb_all_redraw equ dword [edi+168] fb_selected_BDVK_adress equ dword [edi+172] fb_key_action equ word [edi+176] fb_key_action_num equ word [edi+178] fb_name_temp_area equ dword [edi+180] fb_max_name_temp_size equ dword [edi+184] fb_display_name_max_length equ dword [edi+188] fb_draw_panel_selection_flag equ dword [edi+192] fb_mouse_pos_old equ dword [edi+196] fb_marked_counter equ dword [edi+200] fb_keymap_pointer equ dword [edi+204]
fb_type - тип элемента, если:
fb_size_x - ширина элемента (без скроллинга).
fb_start_x - отступ слева (положение по x).
fb_size_y - высота элемента.
fb_start_y - отступ сверху (положение по y).
fb_icon_size_y - высота иконки.
fb_icon_size_x - ширина иконки.
fb_line_size_y - высота линии.
fb_type_size_x - ширина колонки с типом файлов (зарезервировано, пока не используется).
fb_size_size_x - ширина колонки с размером файлов (зарезервировано, пока не используется).
fb_date_size_x - ширина колонки с датой файлов (зарезервировано, пока не используется).
fb_attributes_size_x - ширина колонки с атрибутами файлов (зарезервировано, пока не используется).
fb_icon_raw_area - данные для отображения иконок.
fb_resolution_raw - колличество бит на пиксель в данных для отображения иконок.
fb_background_color - цвет фона.
fb_select_color - цвет курсора.
fb_select_flag - 0,1.
fb_max_panel_line - максимальное число строк в окне.
fb_select_panel_counter:
fb_folder_block - количество блоков данных входа каталога (БДВК).
fb_start_draw_line - номер первого отображаемого в окне файла или папки (номерация начинается с 0).
fb_start_draw_cursor_line - позиция курсора для выбора файла или папки (координата y в пикселях относительно fb_start_y).
fb_folder_data - буфер с информацией о файлах.
fb_temp_counter - внутренняя переменная, используется в функциях перерисовки панели.
fb_extension_size - внутренняя переменная, размер расширения файла (включая символы '.' и '\0').
fb_extension_start - внутренняя переменная, указатель на расширение файла, используется в функции fb_get_icon_number для определения номера иконки.
fb_type_table - указатель на память для заполнения строки с типом, размером и датой файла.
fb_ini_file_start - начало данных с расширениями и номерами иконок, получаемых из *.ini файла. Пример формата данных:
<dir>=0\n <up>=1\n <dic>=3\n <doc>=3\n ... src=61\n vox=74\0
fb_ini_file_end - начало данных с расширениями и номерами иконок, получаемых из *.ini файла.
fb_draw_scroll_bar - параметр необходимости обновления дочернего скроллинга:
fb_mouse_keys_delta - 0,1,2,3.
fb_all_redraw - параметр для функции FileBrowser_draw, задает параметры перерисовки:
fb_key_action - код клавиатурного события для функции FileBrowser_key, возможные значения 0...12.
fb_draw_panel_selection_flag - внутренняя переменная, определяет с каким фоном будет рисоваться текст (fb_background_color или fb_select_color).
fb_marked_counter - число выделенных файлов.
fb_keymap_pointer - указатель на буфер 128 байт, для функции 26.2 (SF_SYSTEM_GET, SSF_KEYBOARD_LAYOUT).
Документация обновлялась последний раз 10.10.26.