MacroAddMacro
Структура
MacroAddMacro
используется в функции MacroControl для загрузки макропоследовательности в Far Manager.
struct MacroAddMacro { size_t StructSize; void *Id; const wchar_t *SequenceText; const wchar_t *Description; FARKEYMACROFLAGS Flags; INPUT_RECORD AKey; enum FARMACROAREA Area; FARMACROCALLBACK Callback; intptr_t Priority; };
Элементы
StructSize
Это поле должно содержать размер структуры
MacroAddMacro
. Перед использованием структуры плагин должен заполнить поле.Id
Уникальный, в рамках плагина, идентификатор макропоследовательности.
SequenceText
Строка, содержащая макрос в текстовом виде.
Если строка начинается с символа
Если строка начинается с символа
@
, то используется следующий формат:
@<имя файла-скрипта> [<параметры скрипта>]
- В имени файла допустимо использование переменных окружения.
- Опциональные параметры скрипта представляют список выражений, разделённых запятыми. Выражения должны использовать тот же язык программирования, что и скрипт.
- Пример:
@%MyFarScripts%\calc.lua 'factorial', 3+5
Description
Строка, содержащая описание макроса.
Flags
Комбинация флагов (тип
FARKEYMACROFLAGS
):
Флаг | Описание |
---|---|
KMFLAGS_ENABLEOUTPUT | Отображать на экране результат работы каждой клавиши. |
KMFLAGS_NOSENDKEYSTOPLUGINS | Не передавать клавиши редакторным плагинам (плагинам, экспортирующим функцию ProcessEditorInputW). |
KMFLAGS_SILENTCHECK | Не отображать на экране результат проверки макропоследовательности. |
KMFLAGS_LANGMASK | Трёхбитовая область, в которой задаётся язык макропоследовательности. |
KMFLAGS_LUA | Язык макропоследовательности - Lua (значение по умолчанию). |
KMFLAGS_MOONSCRIPT | Язык макропоследовательности - MoonScript. |
KMFLAGS_NONE | Нулевой флаг. |
AKey
Клавиша вызова макроса, структура INPUT_RECORD.
Area
Макрообласть типа FARMACROAREA, куда поместить макропоследовательность.
Callback
Функция, выполняемая Far Manager перед непосредственным выполнением макропоследовательности
Функция может что-то проверить и вернуть
SequenceText
.
Синтаксис функции: intptr_t (WINAPI *FARMACROCALLBACK)(void *Id,FARADDKEYMACROFLAGS Flags);Где:
Id
- идентификатор (MacroAddMacro.Id
). Flags
- сейчас не используются.Функция может что-то проверить и вернуть
TRUE
- запустить макрос, или FALSE
- не запускать.
Priority
Приоритет макроса.
Замечания
Смотрите также: