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
Приоритет макроса.
Замечания
Смотрите также: