Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое 
Author Message
MVV



PostPosted: Thu Jun 03, 2010 22:31    Post subject: TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое Reply with quote

В общем, вот моя реализация аддона TCFS2 для управления режимами окон ТК, а также модуль TCFS2Tools (бывший Autorun_HideMenu) для сокрытия главного меню, который работает с Autorun.wdx (впрочем, последние версии могут запускаться и без него - подробности в Readme).


Информация о последней версии

Версия: 2.4.3
URL: TCFS2 на wincmd.ru / TCFS2 at totalcmd.net

Версия: 1.4.3 32/64
URL: TCFS2Tools на wincmd.ru / TCFS2Tools at totalcmd.net

Особенности TCFS2:
+ разворачивать/восстанавливать окно
+ перемещать и изменять размер
+ скрывать и отображать заголовок
+ ставить окно "поверх других окон"
+ отключать любые отключаемые элементы окна ТК
+ изменять текущий путь в панелях
+ перемещать сепаратор файловых панелей
+ эмулировать нажатия клавиш
+ отменять последнее действие запуском команды отката
+ и многое другое...

Особенности TCFS2Tools:
+ скрывать/отображать строку главного меню
+ временно отображать главное меню программы при вызове
+ отображать главное меню в виде всплывающего по команде пользователя
+ получать/устанавливать позицию разделителя файловых панелей
+ получать текущие режимы панелей
+ получать системные величины, возвращаемые функцией GetSystemMetrics
+ получать размеры рабочей области экрана



Идея TCFS2 - полная свобода действий. Настраиваете отдельные команды для включения/выключения чего-то (для каждой команды можно задать условие выполнения - например, скрывать панель инструментов не нужно, если в INI написано, что она и так скрыта). Далее, настраиваете действия, которые содержат последовательность команд. И те и другие можно выполнять с командной строки. В командную строку можно напихать сколько угодно команд, действий и параметров в любом порядке. Для переключения в режим выполнения действий добавьте параметр /ea, для переключения в режим выполнения команд - параметр /ei. Например, /ea undo /ei tb0 /ea fs и так далее. Во время выполнения команд формируется действие Undo, позволяющее в будущем легко отменить последнюю операцию.

Команда выполняется, только если условие ее выполнения истинно. После выполнения команды делается задержка (например, чтобы ТК успел обновить wincmd.ini), затем проверяется, выполнена ли команда. Если указано условие отката, проверяется его истинность, иначе проверяется, стало ли ложным условие выполнения команды. При успехе команда считается завершенной и в undo дописываются команды ее отмены. Если условие не задано, команда выполняется всегда.

В прилагаемом конфиге созданы команды для включения/выключения всех настоящих элементов интерфейса ТК (поправьте, если что-то забыл), разворачивания ТК на весь экран и восстановления (m1 и m0), а также для сокрытия и отображения заголовка окна (c0 и c1; после переключения заголовка нужно либо развернуть/свернуть окно, либо вызвать команду rr для перерисовки). Также настроено действие fs, которое отключает все что можно.

Можно использовать чисто команды, не создавая действий - задавая последовательность команд в командной строке, например: /ei tb0 db0 dc0 tt0 sb0 kb0 c0 rr m1. Ничто не мешает создать себе несколько кнопок для переключения между желаемыми режимами.

Последние версии допускают даже использование функций без создания команд при переключении в режим выполнения функций с помощью ключа /ef, например: /ef "set_separator(40)".


Руководство по использованию свободных битов стиля окна для хранения состояния тех или иных состояний находится в этом посте.


Last edited by MVV on Mon Nov 11, 2019 12:19; edited 40 times in total
View user's profile Send private message ICQ Number


Powered by phpBB © 2001, 2005 phpBB Group