Как получить handle панели в LUA-скрипте?
Как получить handle панели в LUA-скрипте?
День добрый!
Проштудировал всю энциклопедию, но так и не нашел ответа на свой вопрос.
Т.е. получить активную / пассивную панель я могу, могу запросить по ней инфо и по-идее там должен быть хэндл данной панели, однако ничего такого там нет. Как получить хэндл панели, чтобы в дальнейшем использовать его, а не признак активности/пассивности?
Проштудировал всю энциклопедию, но так и не нашел ответа на свой вопрос.
Т.е. получить активную / пассивную панель я могу, могу запросить по ней инфо и по-идее там должен быть хэндл данной панели, однако ничего такого там нет. Как получить хэндл панели, чтобы в дальнейшем использовать его, а не признак активности/пассивности?
Как получить handle панели в LUA-скрипте?
Это не работает, было проверено, выводит nil nil
Запускаю так: lua:@полныйпутьдоскриптаю
Запускаю так: lua:@полныйпутьдоскриптаю
Code: Select all
local api = panel.GetPanelInfo( nil, 1 )
local ppi = panel.GetPanelInfo( nil, 0 )
far.Show( api.PluginHandle )
far.Show( ppi.PluginHandle )
Как получить handle панели в LUA-скрипте?
Такое я пробовал сразу после прочтения энциклопедии.
При этом я могу получить например текущее имя файла с панели через выбор ее как пассивной/активной - т.е. сами панели живы и доступны.
FAR стоит последний но не nightly, запускал и из командной строки, так и из UserMenu.
При этом я могу получить например текущее имя файла с панели через выбор ее как пассивной/активной - т.е. сами панели живы и доступны.
FAR стоит последний но не nightly, запускал и из командной строки, так и из UserMenu.
Как получить handle панели в LUA-скрипте?
Code: Select all
Вот дамп GetPanelInfo:
{
["ViewMode"] = 2,
["SortMode"] = 2,
["PanelType"] = 0,
["PanelRect"] = {
["right"] = 119,
["left] = 60,
["bottom"] = 38,
["top"] = 0,
} ,
["TopPanelItem"] = 1,
["ItemsNumber"] = 3,
["Flags"] = 12579,
["CurrentItem"] = 3,
["SelectedItemsNumber"] = 1,
["OwnerGuid"] =
}
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Как получить handle панели в LUA-скрипте?
PluginHandle имеется в случае, когда получают информацию о панели плагина (что, в общем-то и следует из имени).
Для панели Фара будет nil.
Откройте какой-нибудь архив арклайтом и повторите вашу проверку для панели арклайта.
Для панели Фара будет nil.
Откройте какой-нибудь архив арклайтом и повторите вашу проверку для панели арклайта.
Как получить handle панели в LUA-скрипте?
Хм, очень интересно.
А что делать, если я хочу работать с обычными панелями FAR-а?
Почему так сделано? Ведь панель самого FAR-а - это по-сути точно такой-же плагин и у него тоже должен быть handle (и наверняка он и есть где-то внутри).
Я понимаю, что продукт бесплатный и что-то требовать от него я просто не имею права - но ведь такой подход - это источник вечных косяков и костылей.
Если плагин поменял местами панели, придется как-то это отслеживать, чтобы понимать первоначальное их расположение и так далее?
Я правильно понимаю, что это никак по другому не решить?
А что делать, если я хочу работать с обычными панелями FAR-а?
Почему так сделано? Ведь панель самого FAR-а - это по-сути точно такой-же плагин и у него тоже должен быть handle (и наверняка он и есть где-то внутри).
Я понимаю, что продукт бесплатный и что-то требовать от него я просто не имею права - но ведь такой подход - это источник вечных косяков и костылей.
Если плагин поменял местами панели, придется как-то это отслеживать, чтобы понимать первоначальное их расположение и так далее?
Я правильно понимаю, что это никак по другому не решить?
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Как получить handle панели в LUA-скрипте?
Я не знаю, что вы собираетесь решать. Плагинописатель играет по правилам API плагинов, нравятся они ему или нет.
Как получить handle панели в LUA-скрипте?
Я собирался решать как обратится к нужной родной панели FAR-а без признака ее активности/пассивности, чтобы быть независимым от этого.
Вроде-бы я четко тему обозначал.
Last edited by ionic on Tue 05 Mar, 2019 07:55, edited 2 times in total.
- zg
- zero-gravity
- Posts: 6035
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Как получить handle панели в LUA-скрипте?
"Наверное" != "уверен", нет?
Но сам FAR как-то же обращается к нужной панели? - хотя да, исходники я не смотрел.
Для меня просто странно, что для одного и того-же интерфейса сделано поведение, различающиеся способами доступа.
Я так понимаю, обратится к панелям самого FAR-а жестко, минуя active/passive нельзя - так что я написал уже через них, просто не думал что нет такого тривиального и нужного поведения - думал что не разобрался с доками.
В любом случае спасибо, задачу я решил, хоть и считаю, что такой способ работы с панелями в корне не верен и чреват проблемами.
Код макроса выложу сюда потом.
Last edited by ionic on Tue 05 Mar, 2019 11:23, edited 3 times in total.