На главную ↑

Оглавление

Введение

Функции

Структура FileBrowser

Введение

FileBrowser, используется при выборе файлов в программах: OpenDialog, Kfm.

Функции

FileBrowser_draw

Рисование FileBrowser, параметры перерисовки задаются в переменной fb_all_redraw.

FileBrowser_mouse

Эта функция должна вызыватся при движении мышей в FileBrowser.

FileBrowser_key

Выполнение действий по нажатию клавиш. Перед вызовом функции в переменной 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 - поиск по букве

version_FileBrowser

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

Структура FileBrowser

Макроса для создания структуры 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.