Как скрыть панель (и наоборот, сделать видимой)
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Как скрыть панель (и наоборот, сделать видимой)
Возможно, я не вижу чего-то очень простого прямо под носом, но не могу найти в Far API, как скрыть панель, и наоборот, сделать скрытую видимой. Подскажите, пожалуйста.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Хм, вообще говоря, то, что мне нужно, таким способом не выходит, так как нужно погасить панель немедленно, а не когда Far получит управление, чтобы сыграть макрос...
Иными словами, перед запуском внешнего консольного приложения из PowerShellFar надо бы панели прикрыть, как это и принято в Far. А когда оно отработало, панели восстановить, как были. Есть предложения?
Иными словами, перед запуском внешнего консольного приложения из PowerShellFar надо бы панели прикрыть, как это и принято в Far. А когда оно отработало, панели восстановить, как были. Есть предложения?
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Я ничего в PowerShellFar сам не запускаю. Запускает юзер в своих PowerShell скриптах. Например простейшая команда: cmd. Ядро PowerShell перед запуском cmd сообщает мне об этом (но я даже не знаю, что именно запускается). Мне предлагается приготовиться к тому, что будет вызвано внешнее приложение. Я и готовлюсь - хочу погасить панели. Когда приложение отработает, движок мне опять скажет об этом, чтоб я мог восстановить экран, ну то есть панели.
Пока мне приходится делать полную очистку экрана перед запуском внешнего приложения. А это не то, как ведет себя сам Фар. А хотелось бы так же. Запустите просто cmd из Фара - панели гаснут, но без очистки экрана. Вот чего я и хочу воспроизвести.
Пока мне приходится делать полную очистку экрана перед запуском внешнего приложения. А это не то, как ведет себя сам Фар. А хотелось бы так же. Запустите просто cmd из Фара - панели гаснут, но без очистки экрана. Вот чего я и хочу воспроизвести.
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Хм, кстати, тоже сталкивался с подобным: надо что-то вывести в буфер под панели из плагина, но апи позволяет только скопировать туда текущее содержимое консоли, т.е. чтобы туда дописать, надо как-то погасить панели, прочитать консоль, отфильтровать, если есть, кейбар и часы, дописать свое, вывести всё это барахло обратно и сделать FCTL_SETUSERSCREEN, но панели можно погасить только макросом, а фар его выполнит, только когда получит управление...
Смотрел, как делает плагин Autocomplete, если сказать ему вывести список, так он тоже затирает консоль...
Смотрел, как делает плагин Autocomplete, если сказать ему вывести список, так он тоже затирает консоль...
- t-rex
- Страшный и ужасный
- Posts: 4910
- Joined: Tue 15 Mar, 2005 16:17
- Location: Tel-Aviv
- Has thanked: 1 time
- Been thanked: 8 times
- Contact:
Значит так, пробуйте вот тут
http://farmanager.com/farbugs/Far.FlushUserScreen.rar
FCTL_GETUSERSCREEN=FCTL_SETANOTHERNUMERICSORT+1
FCTL_GETUSERSCREEN
выводит на экран userbuffer (то что под панелями)
если в плагине сделать
1. FCTL_GETUSERSCREEN
2. Запустить прогу
3. FCTL_SETUSERSCREEN
то всё будет выглядеть как будто прога запускалась из фара.
Пока знаю один баг - сразу после запуска фара тока в первый раз вывод идёт не там где ожидалось, пока не знаю как решить.
Баги с отрисовкой после выхода из плагина вполне могут быть но пока не знамечал.
http://farmanager.com/farbugs/Far.FlushUserScreen.rar
FCTL_GETUSERSCREEN=FCTL_SETANOTHERNUMERICSORT+1
FCTL_GETUSERSCREEN
выводит на экран userbuffer (то что под панелями)
если в плагине сделать
1. FCTL_GETUSERSCREEN
2. Запустить прогу
3. FCTL_SETUSERSCREEN
то всё будет выглядеть как будто прога запускалась из фара.
Пока знаю один баг - сразу после запуска фара тока в первый раз вывод идёт не там где ожидалось, пока не знаю как решить.
Баги с отрисовкой после выхода из плагина вполне могут быть но пока не знамечал.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
С этим справился уже у себя в плагине (заодно может кто подвох в таком подходе увидит): перед вызовом FCTL_GETUSERSCREEN запоминаю строку курсора и сразу после вызова устанавиливаю курсор туда. Все вроде получается адекватно. По идее, этот workaround и в самом Фаре должен получится (если это не бага, которая возможно и так будет пофиксена).Пока знаю один баг - сразу после запуска фара тока в первый раз вывод идёт не там где ожидалось, пока не знаю как решить.