Страница 27 из 130
Добавлено: Вс май 08, 2011 21:38
Flasher
MVV писал(а):Кстати, сейчас обратил внимание - командам с параметрами псевдонимы назначать нельзя.
Это да. Зато можно им назначить пользовательскую команду, в которой, в свою очередь, эти команды задействовать можно. Я это имел в виду. И не придётся писать em_блаблабла <параметр>, а сразу Псевдоним <параметр>. А псевдонимы, как ты понимаешь, можно вообще коротенькие использовать, в пару символов, например: ap - AkelPad, np - notePad и т.п.
MVV писал(а):Примечание со ссылкой на почти пустую статью забавно смотрится.
Это ты только сейчас заметил?

Я всё жду, может, ты сам возмёшься написать, а то я ещё чего-нить не то понапишу.

Добавлено: Пн май 09, 2011 05:37
MVV
Но всё равно это будет вызов пользовательской команды с параметром, пусть и через псевдоним.
Итак, прикрутил определение текущего режима. Вроде бы метод 100% рабочий (вызываю команду
cm_LeftCustomViewMenu или
cm_RightCustomViewMenu, получаю идентификатор пункта с галочкой и удаляю все пункты из меню, чтобы оно не показывалось пользователю). Оставил те же индексы команд (
tt_LeftGetViewMode=65553,
tt_RightGetViewMode=65554), изменились возвращаемые значения. Теперь это номера внутренних команд тотала, которые нужны для установки текущего режима. Т.е. для левой панели это будут
cm_LeftShort,
cm_LeftLong,
cm_LeftCustomView1 и т.п., для правой - соответственно
cm_RightShort,
cm_RightLong,
cm_RightCustomView1 и т.п. Вот макрос, возвращающий режим активной панели:
Код: Выделить всё
S_viewMode=L_isActive ? L_viewMode+200 : R_viewMode+100
Соответственно, значения будут соответствовать
cm_SrcShort,
cm_SrcLong,
cm_SrcCustomView1 и т.д.
Значение можно проверять в условии, а можно скинуть в какой-нибудь ключ
wincmd.ini с помощью функции
set_tcini.
TCFS2Tools 1.4.1.100 на rghost.ru
Пошёл я наконец-то спать, а вы тут тестируйте.

Добавлено: Пн май 09, 2011 11:55
ask-rus
TCFS2
TCFS2Tools
TCFS2Buttons (TCFS2Buttons.dll)

Добавлено: Вт май 10, 2011 11:14
MVV
ask-rus писал(а):
Не, эт не ко мне.
Немного обновил документацию (Readme, INI) к TCFS2, также выложил новую TCFS2Tools на wincmd.ru.
TCFS2 2.0.2.240 на wincmd.ru
TCFS2Tools 1.4.1.102 на wincmd.ru
TCFS2Tools 1.4.1.102
+ команды для получения точных текущих режимов панелей
Добавлено: Вт май 10, 2011 11:55
ask-rus
Две панели инструментов. Будем одной кнопкой переключаться между этими панелями.
em_1 - открывает панель инструментов №1;
em_2 - открывает панель инструментов №2.
P.s. Если стоит создать новую тему по этому поводу, создам - в ЛС до ответа.
Добавлено спустя 15 минут 13 секунд:
Панель инструментов №1 является главной и загружается при запуске TC.
Добавлено: Вт май 10, 2011 12:00
MVV
Вообще не вижу смысла использовать TCFS2 для такой задачи, т.к. ничто не мешает в этих двух панелях в одном месте разместить кнопки вызова
em_1 и
em_2, или для прямого перехода на другую панель.
Но если очень хочется (или кнопка не на панели), можно и из TCFS2 вызывать по очереди команды
em_1 и
em_2. Только здесь не получится вызывать нужную в зависимости от того, какая из панелей в данный момент на экране. Варианты на выбор - хранение в
wincmd.ini флажка для хранения прошлого состояния, или же использование свободного бита стиля окна. Второй вариант более специализированный, но с ним при перезапуске тотала бит будет сбрасываться, в отличие от первого варианта.
Для первого варианта придумываем имя раздела и параметра и пишем что-то вроде:
Код: Выделить всё
switch_toolbar=set_tcini(mysection, lastbarno, 1) tem(em_1), tcini(mysection, lastbarno, # != 1) | set_tcini(mysection, lastbarno, 2) tem(em_2)
Для второго варианта открываем
этот пост по ссылке в первом посте темы и модифицируем команду под себя (запись в откат я убрал, можно вернуть при необходимости):
Код: Выделить всё
s00008000_switch_toolbar=set_style(# & ~$00008000) tem(em_1), style(# & $00008000) | set_style(# | $00008000) tem(em_2)
Разумеется, можно поменять местами команды
em_1 и
em_2. Также можно выбрать другой свободный бит, если этот уже задействован в другой команде.
Любую из команд можно запускать прямо из командной строки, нужно лишь заключить в кавычки и убрать в начале строки имя и знак равенства. Заодно указать параметр
/u-, если не нужно обновлять строку отката - он тут всё равно не используется.
Добавлено: Вт май 10, 2011 12:42
ask-rus
MVV писал(а):Вообще не вижу смысла использовать TCFS2 для такой задачи, т.к. ничто не мешает в этих двух панелях в одном месте разместить кнопки вызова em_1 и em_2, или для прямого перехода на другую панель.
Поясню, зачем мне это нужно. Панель №1 главная (1 ряд кнопок), а панель №2 (2 ряда кнопок) - это есть панель №1 но с новыми кнопками во втором ряду. По сути два разных бара, но создают впечатление расширения панели. Переход возникло желание осуществлять одной кнопкой именно с клавиатуры (заветная клавиша), а те, что были ранее на панели заменить более полезными, дефицит понимаешь.
Добавлено спустя 25 минут 8 секунд:
По первому варианту. Если я закрываю TC с панелью №2, то при его запуске (№1 - главная), чтобы раскрыть (переключиться на №2) мне придется нажать на клавишу дважды. Т. е. мне нужен вариант, при котором всегда первое нажатие на клавишу после запуска TC будет вызывать панель №2. Кнопок на панели по переключению не будет, и это задачу упрощает.
Добавлено спустя 5 минут 23 секунды:
Всё сводится к выполнить em_2 > em_1 > em_2 > em_1 и т. д.
Добавлено: Вт май 10, 2011 14:06
MVV
Ну я писал, что в отличие от первого варианта второй будет сбрасывать состояние при запуске тотала, т.е. будет всегда в первый раз открывать вторую панель. В принципе, с первым вариантом тоже можно выкрутиться - добавить в Autorun команду сброса флага в wincmd.ini:
Код: Выделить всё
TCFS2 /u- /ef "set_tcini(mysection, lastbarno, 1)"
Тогда первое срабатывание всегда будет открывать вторую панель.
Добавлено: Вт май 10, 2011 14:16
ask-rus
MVV писал(а):Ну я писал, что в отличие от первого варианта второй будет сбрасывать состояние при запуске тотала, т.е. будет всегда в первый раз открывать вторую панель. В принципе, с первым вариантом тоже можно выкрутиться - добавить в Autorun команду сброса флага в wincmd.ini.
Всё понял, "бит будет сбрасываться"

. Второй вариант - то, что нужно, на нем и остановимся. Спасибо.
Добавлено: Ср май 11, 2011 15:29
ask-rus
Есть следующая кнопка:
Код: Выделить всё
TOTALCMD#BAR#DATA
cd \\\Phonebook
D:\1.ico
Phonebook
0
-1
вызывающая системный плагин tcPhonebook. Необходимо, чтобы повторное нажатие на кнопку вызывало команду cm_GoToRoot, т. е. что-то вроде "Выхода" из файл.систем.плагина.
Добавлено: Ср май 11, 2011 15:48
MVV
Такое уже с помощью TCFS2 не реализовать. Со строками TCFS2 не работает, а тут надо смотреть на текущий путь в панели. Разве что сделать реверсивную команду, которая будет запускать по очереди одну юзер-команду входа и внутреннюю команду выхода. Но будет не айс.
Добавлено: Ср май 11, 2011 15:53
Flasher
ask-rus
ИМХО, уже столько примеров приведено в разных топиках, что пора бы уже самому реверсивные команды писать. Поддержка em уже есть, так что в путь. Только я бы предпочёл
cm_GotoPreviousDir вместо
cm_GoToRoot.
MVV писал(а):Но будет не айс.
Почему?
Добавлено: Ср май 11, 2011 16:03
ask-rus
Flasher писал(а):Только я бы предпочёл cm_GotoPreviousDir вместо cm_GoToRoot.
"Назад" не подойдет уже, привыкли идти вперед: не "выйдем" из плагина, если будем находиться в каком-либо каталоге внутри плагина.
Добавлено: Ср май 11, 2011 16:11
Flasher
Тогда лучше где-то запоминать путь, потом по инверсии выполнять вход к этому пути из сист. плагина. Жаль TCFS2 сохраняет и читает только числа, тут скрипт нужен.
Добавлено: Ср май 11, 2011 16:14
MVV
Если уж на то пошло, то
cm_GoToRoot тоже не выводит из файлсистемного плагина, а переходит в его корень. Так что нужны
cm_GoToRoot cm_GoToParent.
Но задача эта уже никак к основной теме TCFS2 не относится.
