$Stickey_Ctx = 'currentCtx';    //    сокращенно от:    stickey_context

Считываем текущее выделение:

$Stickey_Sel = 'ls -sl';    //    сокращенно    от:    stickey_selecfcion

Считаем текущие подсвеченные для работы с компонентами (hilited) объекты:

$Stickey_Hl = 'ls -hl';    //    сокращенно от:    stickey_hilite

Все, что теперь осталось сделать для этой команды, - это создать три глобальных переменных и присвоить им соответствующие значения.

У меня получилось вот так:

global string $Stickey_Ctx;

$Stickey_Ctx = 'currentCtx';

global string $Stickey_Sel [] ; //массив с именами выделенных объектов/компонентов $Stickey_Sel = 'ls -sl';

global string $Stickey_Hl[] ;    // массив с именами подсвеченных объектов

$Stickey_Hl - 'ls -hl'; Примечание: глобальные переменные не любят, когда в них сразу при создании! декларации пытаются засунуть значение (а ля: global string $Var = ‘ currentCtx’;), поэтому создание/ присвоение делается в два этапа. Последняя строчка в этой команде - включение poly сплита: setToolTo polySplitContext; Команды для инструментов, как обычно, извлечены способами, писанными в первых главах. Займемся командой для отпускания клавиши. Я назвал ее StickeySplit_Release. Все, что эта команда должна сделать, - достать из глобальных переменных старое выделение, инструмент и хайлайт и присвоить их к сцене. Чтобы процедура увидела нац. глобальные переменные, достаточно добавить те же куски кода из предыдущей команды:

global string $Stickey_Ctx; global string $Stickey_Sel[]; global string $Stickey_Hl[]; Возвращаем выделение, инструмент и хайлайт на свои места:

setToolTo $HKCtx; select $HKSelection; hilite $HKHilite;

if ('size $HKHilite' > 0 ) //были ли при нажатии сплита были выделенны компоненты? changeSelectMode -component; //ставим режим выделения в компонентный Пару слов об изменении режима выделения: вместо создания еще одной глобальной переменной я просто узнаю, были ли выделены компоненты. Если да, то справедливо предположить, что режим выделения был компонентный - возвращаем его на место.

Вуаля! Вешаем свежеиспеченные команды на любимый хоткей и с удовольствием изрезаем пару моделек “новым” инструментом… Не забываем, что данный сетап можно комбинировать с ранее созданными. Скажем, можно изменить стандартные QWERT инструменты следующим образом: при быстром нажатии мы переключаемся в инструмент безвозвратно. При продолжительном нажатии мы используем stickey хоткей, а после отпускания уже вернемся в предыдущий инструмент. Техника тут очень похожа, нужна всего лишь одна глобальная переменная для имени инструмента. Если у вас много stickey хоткеев, то можно использовать одни и те же переменные - так экономнее. Для узнавания продолжительности нажатия используем аналогичный сетап из предыдущей главы.

Не забываем, что и stickey hotkey сетап можно соединить с остальными, возможности по совершенствованию ограничены лишь вашей фантазией и ленью.


⇐ вернуться назад | | далее ⇒