| View previous topic :: View next topic |
| Author |
Message |
VladSh
Joined: 29 Nov 2006 Posts: 2523 Location: Киев, Русь
|
Posted: Wed Jul 18, 2007 2:01 pm Post subject: |
|
|
| DV wrote: | | А где описание всех его функций и параметров? |
Всё начиналось отсюда.
О командах можно почитать в AkelDLL.h и вызывать с помощью Command(номер).
Кроме ст. команд можно вызывать скрипты (перечень скриптов) и плагины.
Гляньте тему сначала, на первой странице я выкладывал свои контекстные менюхи, по ним почти всё понятно. |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2523 Location: Киев, Русь
|
Posted: Wed Jul 18, 2007 2:21 pm Post subject: ОГРОМНАЯ ПРОСЬБА |
|
|
Всвязи с появлением нового функционала (плагина ContextMenu) с тем, что многие одинаковые действия приходится делать по 2 раза (пример: OpenFileDirectory.js и OpenFileDirectoryArg.js) прошу в ActiveX AkelPad'а добавить:
1. Возможность определять где я сейчас нахожусь, т.е. на вкладке или в окне редактирования или в менюшке последних файлов. Тогда можно было бы делать общие скриптовые файлы, а внутри select case, где в зависимости от места, - свой скрипт получения имени файла с которым дальше работать.
2. У Akel'а есть метод GetEditFile, который возвращает имя редактируемого файла, было бы просто здорово если бы был метод (GetSelectFile), который возвращал бы имя файла, с которым нужно работать с учётом того, что в п.1! Тогда бы в скриптах не нужно было бы постоянно ставить одни и те же обработчики! Т.е. было бы гораздо легче!!! 
Last edited by VladSh on Wed Jul 18, 2007 6:38 pm; edited 1 time in total |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4684
|
Posted: Wed Jul 18, 2007 2:41 pm Post subject: |
|
|
Если речь о ContextMenu, то:
ShowFileArg.js:
| Quote: | var WshShell=new ActiveXObject("WScript.Shell");
var szFile=WScript.Arguments(0);
WScript.Echo(szFile); |
Пункт меню (любого меню):
| Code: | | "ShowFileArg" Exec(`WScript "%a\AkelFiles\Plugs\Scripts\ShowFileArg.js" "%f"`) |
|
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2523 Location: Киев, Русь
|
Posted: Wed Jul 18, 2007 3:24 pm Post subject: Да, это понятно, этот кусок был в OpenFileDirectoryArg.js |
|
|
Я имел ввиду, что как нам пришлось для разных меню писать разные скрипты OpenFileDirectory.js и OpenFileDirectoryArg.js, так то же самое приходится делать каждый раз - количество файлов растёт, становится труднее их поддерживать.
Хочется писать один файл скрипта, чтобы его использовать в разных менюхах. Поэтому и хотелось такую функцейку, которая бы возвращала - если я в меню вкладок или окна редактирования - GetEditFile, а если я в меню последних файлов, то имя файла, на котором вызвал контекстное меню. |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4684
|
Posted: Wed Jul 18, 2007 3:30 pm Post subject: |
|
|
| Quote: | | Я имел ввиду, что как нам пришлось для разных меню писать разные скрипты OpenFileDirectory.js и OpenFileDirectoryArg.js... | Для ContextMenu достаточно только OpenFileDirectoryArg.js. Имя файла содержится в %f переменной. |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2523 Location: Киев, Русь
|
Posted: Wed Jul 18, 2007 3:41 pm Post subject: ДЕЙСТВИТЕЛЬНО РАБОТАЕТ!!!!!!!! |
|
|
А зачем в OpenFileDirectoryArg.js нужен цикл по аргументам?
Last edited by VladSh on Fri Jul 27, 2007 1:44 pm; edited 1 time in total |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4684
|
Posted: Wed Jul 18, 2007 3:50 pm Post subject: |
|
|
| VladSh wrote: | | А зечем в OpenFileDirectoryArg.js нужен цикл по аргументам? | Для полноты. Количество файлов передаваемых через аргументы может быть более одного. |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2523 Location: Киев, Русь
|
Posted: Wed Jul 18, 2007 4:02 pm Post subject: ещё вопрос |
|
|
Ясно, т.е. "на будущее", т.к. в контекстном меню вряд ли сейчас можно выделить несколько позиций сразу
Я вообще думал, что это перебор аргументов, т.е. %f - это 1-й аргумент, ну и т.д... вот что значит незнание.
Гляньте пожалуйста одним глазком, а то мы здесь ТА-А-АКОЕ сочиняем, может можно как-то проще? |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4684
|
Posted: Wed Jul 18, 2007 4:11 pm Post subject: |
|
|
| Quote: | | Гляньте пожалуйста одним глазком.. | Глядел уже (не думал, что есть сиюминутное решение, но wisgest предложил оригинальный путь). |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2523 Location: Киев, Русь
|
Posted: Wed Jul 18, 2007 6:49 pm Post subject: ИДЕЯ |
|
|
Instructor
Я пожалуй поддержу эту идею, но в немного изменённом виде:
| wisgest wrote: | Было бы удобно иметь возможность, не переопределять меню объекта целиком, а дополнять имеющееся, добавив в синтаксис описания ключевое слово "DEFAULT" (или другое).
Чтобы можно было сделать, например для окна редактирования так: | Code: | DEFAULT
SEPARATOR
"Lines" {
...
} |
|
Можно было бы где-то в ContextMenu-плагине сделать хранилище "кусков" своих менюх с опред. названиями, а потом вызывать их по названиям, по аналогии как вызывается SEPARATOR.
Пример: если глянуть мои менюхи:
| Code: | "CopyToClipboard"
{
"FileName" Exec(`WScript "%a\AkelFiles\Plugs\Scripts\CopyToCBFileName.js" "%f"`)
"FileNameFull" Exec(`WScript "%a\AkelFiles\Plugs\Scripts\CopyEditFile.js" "%f"`)
"DateTurn" Exec(`WScript "%a\AkelFiles\Plugs\Scripts\CopyToCBDateTurn.js"`)
} |
, то видно, что одно и то же используется в разных меню, и как раз здесь было бы очень удобно вызвать этот "кусок" по имени из общего "хранилища"! |
|
| Back to top |
|
 |
wisgest
Joined: 24 Jun 2007 Posts: 63 Location: Belorussia
|
|
| Back to top |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 856
|
Posted: Tue Jul 24, 2007 10:25 am Post subject: |
|
|
Классный плагин! Только вот немного бы доработать интерфейс:
1) При открытии окна со списком скриптов ставить фокус на первый элемент листбокса
2) При повторном открытии окна запоминать последний вызванный скрипт и выделять его
3) Нажатие Enter в то время как фокус у листбокса подразумевает запуск скрипта, а не закрытие окна... вообще, полезность двух кнопок для закрытия именно этого окна представляется мне сомнительной.
Как наглядный пример:
если плагину назначен хоткей, то сейчас для вызова первого в списке скрипта надо нажать:
Хоткей - Вниз - Таб - Энтер
а вот как хотелось бы:
Хоткей - Энтер
И ещё по функционалу. В структуре меню жестко указываются названия пунктов, что означает либо использование в локализованной версии английских меню, либо самопальный перевод - свой для каждого языка, плюс ошибки, расхождения и т.п. Может, лучше реализовать подгрузку строковых ресурсов из самой программы? Например, возможность указывать не название пункта, а идентификатор, по которому плагин загрузит нужную локализованную строку.
| Code: |
...
UndoCmd Command(4151)
...
|
или
| Code: |
...
4151 Command(4151)
...
|
Либо же просто привязать все стандартные команды к стандартным меткам, т.е.
| Code: |
...
Command(4151)
...
| . |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2523 Location: Киев, Русь
|
Posted: Tue Jul 24, 2007 10:45 am Post subject: +1 |
|
|
Fr0sT
Похоже, что кнопки "ОК" и "Отмена" выполняют одно и то же действие - "Закрыть" (окно скриптов). Или я чего недопонял.
Действительно было бы удобно вместо 2-х сделать 1 кнопку "Закрыть", подсвечивать последний запущеный скрипт + фокус по умолчанию устанавливать на кнопку "Запустить".
+1!
UPDATED по меню и т.п.
По контекстным меню, да и по меню вообще я как-то предлагал использовать принцип построения/настройки из AutoCAD.
Как-то давненько пришлось заниматься локализацией его файлов меню (притом тоже бесплатно ), здесь выкладывал готовые менюхи для ACAD'а (51kb). В архиве можно посмотреть как организованы элементы интерфейса: все меню (в т.ч. контекстные), пиктограмы тулбаров, горячие клавиши (раздел "ACCELERATORS") и т.д. и т.п. - по моему этот вариант был бы очень удобен для обычных пользователей (не программистов). Ещё в ACAD'е есть спец. редактор меню для визуального формирования/редактирования перечисленных элементов интерфейса. Итого я не встречал системы, в которой настройка интерфейса была бы удобнее и прозрачнее.
Вопрос только один - как тогда поддерживать всю гибкость, которую нам даёт ContextMenu-плагин? Т.е. вызовы с параметрами/без параметров; вызовы с помощью Call, Exec или Command?
В ACAD'е это решается внутренним простеньким макро-языком.
В общем тема адаптации настройки интерфейса для обычных пользователей совместно с локализацией на самом деле очень интересна...
Fr0sT, Ваша идея тоже клас!
Но главное оставить возможность нескольких этих вариантов, т.к. я столкнулся с тем, что, к примеру, для меню последних файлов то же действие нужно называть немного иначе... |
|
| Back to top |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 856
|
Posted: Tue Jul 24, 2007 3:54 pm Post subject: Re: +1 |
|
|
| VladSh wrote: |
Вопрос только один - как тогда поддерживать всю гибкость, которую нам даёт ContextMenu-плагин? Т.е. вызовы с параметрами/без параметров; вызовы с помощью Call, Exec или Command?
|
Ну, визуальная правка меню - это уже следующий этап, думаю, сейчас надо решить с названиями. |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4684
|
Posted: Wed Jul 25, 2007 9:37 am Post subject: |
|
|
Fr0sT
| Quote: | | 3) Нажатие Enter в то время как фокус у листбокса подразумевает запуск скрипта, а не закрытие окна... вообще, полезность двух кнопок для закрытия именно этого окна представляется мне сомнительной. | В последней версии уже было исправлено (будет доступна после релиза 3.3.5).
P.S. эти замечание лучше было написать в теме про Scripts плагин.
VladSh
| Quote: | | Похоже, что кнопки "ОК" и "Отмена" выполняют одно и то же действие - "Закрыть" (окно скриптов). Или я чего недопонял. | "ОК" - сохранить и закрыть, "Отмена" - выйти без сохранения.
Last edited by Instructor on Wed Jul 25, 2007 9:53 am; edited 1 time in total |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|