ContextMenu plugin
- Author
- Message
-
Offline
- Posts: 330
- Joined: Mon Jun 03, 2019 2:33 am
Можно сделать как то так?
Пишет что метод не работает. Аналог %f но для типа файла нет.
Я понимаю что если оно создаётся на старте, то понятно работать не будет.
Code: Select all
SET(64, If(`AkelPad.GetFilePath("%f", 4) == "reg"`))
"Открыть раздел реестра" Exec('"C:\AutoIt3\AutoIt3.exe" "C:\AutoIt3\Tools\JumpRegCMD.au3" "%s"') Icon("C:\AutoIt3\AutoIt3.exe", 0)
UNSET(64)
Я понимаю что если оно создаётся на старте, то понятно работать не будет.
-
Offline
- Posts: 5
- Joined: Sat Feb 12, 2022 4:34 pm
Подскажите, пожалуйста, что нужно прописать, чтобы в меню определялись и отмечались галочкой выбранный шрифт, начертание и размер? И можно ли вообще без помощи скриптов?
Code: Select all
"Шрифт"
{
"Размер"
{
"8 pt" Font("", 0, 8)
"9 pt" Font("", 0, 9)
"10 pt" Font("", 0, 10)
"11 pt" Font("", 0, 11)
"12 pt" Font("", 0, 12)
"13 pt" Font("", 0, 13)
"14 pt" Font("", 0, 14)
SEPARATOR
"Увеличить Ctrl+Num +" Command(4204)
"Уменьшить Ctrl+Num -" Command(4205)
"Восстановить Ctrl+Num *" Command(4206)
}
"Изменить шрифт..." Command(4201)
SEPARATOR
"Обычный" Font("", 1, 0)
"Курсив" Font("", 3, 0)
"Жирный" Font("", 2, 0)
"Жирный курсив" Font("", 4, 0)
SEPARATOR
"Consolas" Font("Consolas", 0, 0)
"Courier Prime" Font("Courier Prime", 0, 0)
"Cascadia Code" Font("Cascadia Code", 0, 0)
"Fira Code" Font("Fira Code", 0, 0)
"IBM Plex Mono" Font("IBM Plex Mono", 0, 0)
"JetBrains Mono" Font("JetBrains Mono", 0, 0)
"Liberation Mono" Font("Liberation Mono", 0, 0)
"PT Mono" Font("PT Mono", 0, 0)
}
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Вы сами же себе и ответили:nothing wrote:Подскажите, пожалуйста, что нужно прописать, чтобы в меню определялись и отмечались галочкой выбранный шрифт, начертание и размер?
Code: Select all
"Шрифт"
{
"Размер"
{
"8 pt" Font("", 0, 8)
; ...
}
}
-
Offline
- Posts: 5
- Joined: Sat Feb 12, 2022 4:34 pm
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
nothing
Да. В ContextMenu-Rus.txt гляньте инфу по SET(128) - там скрипт передаётся для вычисления. В данном случае нужно каким-то образом определить размер шрифта, если он совпадает с тем, что в пункте меню, то передавать флаг, который отвечает за галку.
У плагина Fonts отсутствует такой метод, т.е. нужно поискать по форуму, может уже кто-то получал размер шрифта. Если скрипт небольшой, 1-2 строчки, то норм, можно делать, если больше, то возможно меню будет тупить, и я бы не делал эти галки, хоть это и удобно.
Да. В ContextMenu-Rus.txt гляньте инфу по SET(128) - там скрипт передаётся для вычисления. В данном случае нужно каким-то образом определить размер шрифта, если он совпадает с тем, что в пункте меню, то передавать флаг, который отвечает за галку.
У плагина Fonts отсутствует такой метод, т.е. нужно поискать по форуму, может уже кто-то получал размер шрифта. Если скрипт небольшой, 1-2 строчки, то норм, можно делать, если больше, то возможно меню будет тупить, и я бы не делал эти галки, хоть это и удобно.
-
Offline
- Posts: 5
- Joined: Sat Feb 12, 2022 4:34 pm
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
nothing
Примеры SET(128) можно посмотреть в сборках в настройках тулбаров, много кто использует.
Получение параметров шрифта есть здесь, но как я выше и говорил - тащить эту гору кода в каждый пункт меню нецелесообразно.
Можно было бы, если бы:
- плагин одной строкой мог возвращать определённый параметр шрифта;
- был бы метод, одной строкой возвращающий любой параметр из StatusUserFormat или другой подобной ручной установки;
- если бы все вычисления можно было делать единожды, перед загрузкой меню/тулбара, а в самом меню уже использовать вычисленные значения из переменных.
Ни одной из этих возможностей на данный момент нет.
Примеры SET(128) можно посмотреть в сборках в настройках тулбаров, много кто использует.
Получение параметров шрифта есть здесь, но как я выше и говорил - тащить эту гору кода в каждый пункт меню нецелесообразно.
Можно было бы, если бы:
- плагин одной строкой мог возвращать определённый параметр шрифта;
- был бы метод, одной строкой возвращающий любой параметр из StatusUserFormat или другой подобной ручной установки;
- если бы все вычисления можно было делать единожды, перед загрузкой меню/тулбара, а в самом меню уже использовать вычисленные значения из переменных.
Ни одной из этих возможностей на данный момент нет.
-
Offline
- Posts: 5
- Joined: Sat Feb 12, 2022 4:34 pm
VladSh
Благодарю! Оставлю эту затею, и правда не нецелесообразно, хоть и удобно было бы.
Единственное, промелькнула мысль, что в скрипте CaretOptionsSwitch.js при вызове из контекстного меню с параметрами Call("Scripts::Main", 1, "CaretOptionsSwitch.js", "2 %m %i") каким-то образом меняется статус меню (отмечается галочкой), несмотря на то что строка не упакована в SET(128). Возможно, что-то подобное можно реализовать и для шрифтов.
Благодарю! Оставлю эту затею, и правда не нецелесообразно, хоть и удобно было бы.
Единственное, промелькнула мысль, что в скрипте CaretOptionsSwitch.js при вызове из контекстного меню с параметрами Call("Scripts::Main", 1, "CaretOptionsSwitch.js", "2 %m %i") каким-то образом меняется статус меню (отмечается галочкой), несмотря на то что строка не упакована в SET(128). Возможно, что-то подобное можно реализовать и для шрифтов.
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
nothing
Параметры %m и %i - это передача в вызываемую функцию координат позиции курсора на экране, работает только для тулбаров.
Что-то у меня не получилось заставить CaretOptionsSwitch.js отмечать пункт меню или кнопку тулбара.
Тут сложность не в том, чтобы отметить (ещё и отметку надо будет сохранять в ini скрипта, SET(128) это делает само), а в том, чтобы определить текущий шрифт.
Параметры %m и %i - это передача в вызываемую функцию координат позиции курсора на экране, работает только для тулбаров.
Что-то у меня не получилось заставить CaretOptionsSwitch.js отмечать пункт меню или кнопку тулбара.
Тут сложность не в том, чтобы отметить (ещё и отметку надо будет сохранять в ini скрипта, SET(128) это делает само), а в том, чтобы определить текущий шрифт.
-
Offline
- Posts: 5
- Joined: Sat Feb 12, 2022 4:34 pm
Интересно, наверно "минус" в начале строки забыли У меня все работает в таком виде:VladSh wrote:nothing Что-то у меня не получилось заставить CaretOptionsSwitch.js отмечать пункт меню или кнопку тулбара.
Code: Select all
-"Отображать активную строку" Call("Scripts::Main", 1, "CaretOptionsSwitch.js", "2 %m %i")
-"Отображать активный столбец" Call("Scripts::Main", 1, "CaretOptionsSwitch.js", "1 %m %i")
-"Выход каретки за края строк" Call("Scripts::Main", 1, "CaretOptionsSwitch.js", "0 %m %i")
Понял. Как ранее говорил - это не жизненно важный вопрос, думал, что оно немного проще устроено и поэтому надеялся реализовать. А нет - и ладно, не меняю же я шрифты каждую минутуVladSh wrote: сложность не в том, чтобы отметить (ещё и отметку надо будет сохранять в ini скрипта, SET(128) это делает само), а в том, чтобы определить текущий шрифт.
И еще раз благодарю за ответы!