Toolbar plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

Подскажите как сделать, чтобы кнопка была вдавленной при включенном Coder::CodeFold

Делаю так:

Code: Select all

SET(128, If(`Call("Scripts::Main", 4, "EvalCmd.vbs", "With AkelPad C = ''Coder::CodeFold'' : If .IsPluginRunning(C) = 0 Then : .ScriptExitCode(0) : Else : .ScriptExitCode(1) : End If : End With"), 0x0, 0x1`)
любая кнопка
UNSET(128)

Code: Select all

' EvalCmd.vbs
If WScript.Arguments.Count > 0 Then
  Text = WScript.Arguments(0) : Text = Replace(Text, "''", Chr(34)) : Execute Text
End If
При включении/отключении Coder::CodeFold ничего не происходит

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Andrey_A_A
Предполагаю, что в vbs'нике надо установить ScriptExitCode.

Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

VladSh
Он уже при вызове Execute , вот подобное для js

Code: Select all

SET(64, If(`Call("Scripts::Main", 4, "EvalCmd.js", 'if (AkelPad.GetEditFile(0)) AkelPad.ScriptExitCode(1);')`)
Для vbs как всегда примеров оч. мало (Scripts-Rus.txt)

Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

Помогите разобраться с флагами

Code: Select all

SET(128, If("выражение"[, ЕслиИстина, ЕслиЛожь]))
...
UNSET(128)
Хочу чтобы пункт всегда был серым (для заголовка...)
Делаю:

Code: Select all

SET(128, If(1=1,0x2,0x2))
-"Название" Call()
UNSET(128)
не работает.
Потом попробовал пример из справки:

Code: Select all

SET(128, If("SendMain(1223 /*AKD_GETFRAMEINFO*/, 69 /*FI_CARETOPTIONS*/, 0) & 0x2 /*CO_CARETVERTLINE*/", 0x1, 0x0))
-"&Активный столбец Вкл./Выкл.	Alt+'" +Call("Scripts::Main", 1, "ActiveColumnSwitch.js", `"%m" "%i"`) Icon("%a\AkelPadImage.dll",202)
UNSET(128)
тоже не работает.
С ToolBar подобный вопрос был тут viewtopic.php?p=27145#p27145

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Andrey_A_A

Code: Select all

SET(128, If("1",0x2,0x2))
"Название" Call()
UNSET(128)

Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

KDJ
Спасибо, работает.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Andrey_A_A wrote:Подскажите как сделать, чтобы кнопка была вдавленной при включенном Coder::CodeFold

SET(128, If(`Call("Scripts::Main", 4, "EvalCmd.vbs", "With AkelPad C = ''Coder::CodeFold'' : If .IsPluginRunning(C) = 0 Then : .ScriptExitCode(0) : Else : .ScriptExitCode(1) : End If : End With"), 0x0, 0x1`)
Не там кавычка закрывает.

В Toolbar плагине использование метода Call будет запрещено для SET(128), т.к. это сильно замедляет программу. Для вашего случая в 4.9.2 будет работать следующий код:

Code: Select all

SET(128, If(`SendMain(1329 /*AKD_DLLFIND*/, "Coder::CodeFold", 0)`, 0x1, 0x0)
...
UNSET(128)
Andrey_A_A wrote:Хочу чтобы пункт всегда был серым (для заголовка...)
Еще можно так:

Code: Select all

SET(128, If("0x2"))
...
UNSET(128)
Потом попробовал пример из справки:
ToolBar-Rus.txt wrote: -"Моя кнопка"
при наличии знака минуса, кнопка не будет каким-либо образом менять свой статус
(становиться неактивной, вдавливаться).

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Andrey_A_A wrote:Подскажите как сделать, чтобы кнопка была вдавленной при включенном Coder::CodeFold

Code: Select all

SET(128, If(`AkelPad.IsPluginRunning("Coder::CodeFold")`, 0x1, 0x0))
...
UNSET(128)

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Изменено: запрещён вызов скриптов в SET(128, If(...)).
Добавлено: возможность вызова метода Scripts плагина напрямую из If().
Добавлено: возможность использовать /*комментарий*/ в параметрах методов.

Changed: scripts execution in SET(128) is denied.
Added: possibility to call Scripts plugin method directly from If().
Added: possibility to use /*comment*/ in method parameters.


ToolBar plugin v10.7

Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

Code: Select all

SET(128, If(`AkelPad.IsPluginRunning("Coder::CodeFold")`, 0x1, 0x0))
-"Сворачивание блоков" Call("Scripts::Main", 1, "StartCodeFold.vbs", `3`) Icon("%a\AkelPadImage.dll",108)
UNSET(128)
Предложенный код у меня не срабатывает.
CodeFold - включается и выключается, но вдавливания кнопки на тулбаре не происходит.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Andrey_A_A
ToolBar-Rus.txt wrote: -"Моя кнопка"
при наличии знака минуса, кнопка не будет каким-либо образом менять свой статус
(становиться неактивной, вдавливаться).

Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

Instructor, спасибо за обновление!

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Исправлено: проверка синтаксиса пунктов не входящих в отображаемые ряды.

Fixed: syntax checking of items that are not included in the displayed rows.


ToolBar plugin v10.8

Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

Если открыто 2 тулбара снизу, то при изменении размеров окна AkelPad мышкой за правый нижний угол появляются траблы

Image

Win7x64

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Andrey_A_A
На Win7 пока нет возможности проверить, но должно сработать - см. 10.9.
Post Reply