Страница 34 из 130
Добавлено: Вт авг 02, 2011 23:28
HEXFIX
Flasher
У меня не работает такая схема: "Alt автоматически по умолчанию должен вызывать главное меню при его скрытии."
Добавлено: Вт авг 02, 2011 23:30
HA3APET
Flasher
Не помогло
Добавлено: Вт авг 02, 2011 23:41
Flasher
HEXFIX
А какая работает? Поставь MenuMode=0 в ini для библиотеки.
HA3APET
Хм. Странно. А так:
/ef "show(3) run_action(fs3_0), test(hasCaption) | show(3) run_action(fs3_1)"
Код: Выделить всё
[Actions]
fs3_0=c0 cl0 db0 tb0 sb0 kb0 th0 t1
fs3_1=c1 cl1 db1 tb1 sb1 kb1 th1 t0
Добавлено: Вт авг 02, 2011 23:47
HA3APET
Flasher
Нет. Дождёмся ответа автора, вполне вероятно, что это не возможно.
Добавлено: Ср авг 03, 2011 00:01
Flasher
HA3APET
Это возможно. Возможно даже большее. См. мою статью на WIKI.
И, кстати, проверил только что на чистом ТС с копипастом привёдённых мной строк - всё работает чётко.
Добавлено: Ср авг 03, 2011 00:02
HA3APET
Flasher
Сделай пожалуйста видео того, что у тебя получилось.
Добавлено: Ср авг 03, 2011 00:07
Flasher
HA3APET
Тут автор объявился, пусть он что-то своё добавит. Делать видео - лень, кое-чем другим занят, но я бы посоветовал пользоваться некогда обсуждаемым подходом, где используется режим "восстановить", но с растянутым по абсолюту окном (без съедания). В моей статье есть команды, кот. это реализуют.
Добавлено: Ср авг 03, 2011 00:17
MVV
HEXFIX писал(а):Flasher
У меня не работает такая схема: "Alt автоматически по умолчанию должен вызывать главное меню при его скрытии."
Команду сокрытия меню нужно вызвать ЕДИНОЖДЫ. Например, из
Autorun.cfg (выполнить внутреннюю команду тотала с индексом, соответствующим
HideMainMenu, по умолчанию равным
65538). Всё. Далее при стандартных настройках меню само будет временно появляться при нажатии клавиши Alt, и исчезать снова при выходе из меню, команд по включению/выключению меню уже вызывать не нужно. При каждом изменении языка интерфейса нужно снова вызывать команду сокрытия.
HA3APET
По логике, полноэкранный режим отличается от развернутого отсутствием заголовка окна (остальные элементы в полноэкранном режиме - кому как удобно). Чтобы скрыть заголовок, нужно вызвать команду
c0. После неё необходимо что-то изменить в расположении окна, чтобы тотал перерисовал окно без заголовка (включить или выключить какую-нибудь панель, изменить размер окна и т.п.). По идее, в твоей команде должно быть достаточно модификаторов, чтобы это работало. В любом случае, можно принудительно перерисовать окно, нажав F2 (Ctrl+R). Также можно вызывать команду
rm1pm после вызова
c0 или
c1, чтобы заставлять тотал перерисовать окно.
Далее, если ты хочешь при возврате из полноэкранного режима попадать в тот, который был до перехода в полный экран, тебе необходимо использовать команды отката. Посмотри, как реализована команда
fs2 в
TCFS2.ini - она всегда возвращает всё на свои места при повторном запуске, т.к. запускает действие возврата изменений, сделанных при предыдущем запуске. Ты можешь подправить действие
fs под свои нужды, а можешь подправить команду
fs2 (или скопировать с новым именем и отредактировать), вставив вместо
run_action(fs) вызов нужных действий или команд для перехода в полноэкранный режим (ну и поменять имя команды отката
fs_undo, чтобы откаты не пересекались). Остальное будет работать автоматически.
Если же надо, чтобы и панель задач сама скрывалась, тут придется принудительно восстанавливать и разворачивать окно повторно после отключения заголовка - похоже, система отказывается считать полноэкранными окна, заголовок которых был скрыт после разворачивания. Т.е., используем команды
m0 c0 m1.
Добавлено: Ср авг 03, 2011 01:08
Flasher
MVV писал(а):Если же надо, чтобы и панель задач сама скрывалась, тут придется принудительно восстанавливать и разворачивать окно повторно после отключения заголовка - похоже, система отказывается считать полноэкранными окна, заголовок которых был скрыт после разворачивания. Т.е., используем команды m0 c0 m1.
Да, тут действительно какая-то фигня получается (мелкософт, БОН):
Код: Выделить всё
[Actions]
fs3_0=c0 cl0 db0 tb0 sb0 kb0 m0 th0 m1
fs3_1=c1 cl1 db1 tb1 sb1 kb1 th1 t0
При автоскрытии таскбара (как у меня) это не грозит.
Добавлено: Ср авг 03, 2011 01:47
HA3APET
Сделал пока так
Код: Выделить всё
/ef "run_action(fs3_0), test(hasCaption && !isMaximized) | run_action(fs3_1)"
Вроде красиво и логично.
Добавлено: Ср авг 03, 2011 02:40
Flasher
Ничего логичного. ! - это оператор логического отрицания. Т.е. fs3_0 сработает только в случае, если окно восстановлено. Если оператор убрать, то действие сработает, только если окно развёрнуто. Красотой это никак не назовёшь. Дополнительное условие тут только мешает.
Мои примеры должны срабатывать без проблем. Ищи ошибку.
Да и панель задач в любом случае кроме как приведённым выше методом не скроешь.
Добавлено: Ср авг 03, 2011 03:35
HA3APET
Flasher
По твоему примеру:
Да, из развёрнутого режима, по нажатию мы получаем полноэкранный, по повторному нажатию возвращаемся обратно в развёрнутый - всё как надо. Но если у нас восстановленный режим и мы нажимаем на кнопку, то получаем полноэкранный, опять же всё отлично, но при повторном нажатии мы не возвращаемся в восстановленный режим.
Добавлено: Ср авг 03, 2011 09:10
MVV
Чтобы восстанавливаться в правильный режим, надо использовать историю отката - я выше уже писал об этом. Когда TCFS2 выполняет команду m1, она запоминает, что при откате надо будет выполнить команду m0, и так везде, где откат прописан - а он прописан для всех стандартных команд в TCFS2.ini. Поэтому, чтобы восстанавливать именно в тот режим, который был, надо запускать действие отката - тогда TCFS2 при откате выполнит m0 только в случае, если она разворачивала окно при переходе в полноэкранный режим (если окно было развернуто, действие m0 в откат не попадёт).
Не используя откат, вернуть окно в состояние, предшествующее переключению, невозможно (разве что самому извращаться с условиями и записывать в wincmd.ini флаги).
Добавлено: Ср авг 03, 2011 11:43
Flasher
HA3APET писал(а):но при повторном нажатии мы не возвращаемся в восстановленный режим
А где об этом было написано? >>>
HA3APET писал(а):А при повторном нажатии возвращался в прежний вид, то есть в развёрнутый.
Я лично не вижу смысла использовать несколько переключалок (стандартную и TCFS2), лучше ограничиться одной, тогда смысла прыгать туда сюда не будет.
MVV писал(а):Чтобы восстанавливаться в правильный режим, надо использовать историю отката
Там всё утыкается в использование стандартных кнопок управления окном, нажатия которых никак в undo не запишутся.
Добавлено: Ср авг 03, 2011 15:21
HA3APET
Можно закончить обсуждение на эту тему, спасибо за советы.
Меня вполне устраивает:
Код: Выделить всё
/d=5 /ef "run_action(fs3_0), test(hasCaption && !isMaximized) | run_action(fs3_1)"
fs3_0=c0 cl0 db0 tb0 sb0 kb0 th0 t1 m1
fs3_1=c1 cl1 db1 tb1 sb1 kb1 th1 t0 m0