ContextMenu plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Andrey_A_A

Code: Select all

X = "200"
Y = "300"
Name = "MENUFOLDERS"

Call AkelPad.Call("ContextMenu::Show", 1, X, Y, , Name)

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

Post by Andrey_A_A »

Instructor
То, что описано выше работает, но не удаётся передать в скрипте

Code: Select all

' ShowMenuLRTB.vbs

With WScript
  Cnt = .Arguments.Count
  If Cnt > 0 Then
    Poz = .Arguments(0)
    If Cnt > 1 Then Name = .Arguments(1)
  End If
End With

lpRect = AkelPad.MemAlloc(16)
If lpRect > 0 Then
  If AkelPad.SystemFunction().Call("user32::GetWindowRect", AkelPad.GetEditWnd(), lpRect) Then
      pRect = CLng(lpRect)
      LRect = AkelPad.MemRead(pRect, 3)
      TRect = AkelPad.MemRead(pRect + 4, 3)
      RRect = AkelPad.MemRead(pRect + 8, 3)
      BRect = AkelPad.MemRead(pRect + 12, 3)
  End If
End If

Select Case Poz
  Case 1 X = LRect : Y = TRect
  ' Case 2
  ' Case 3
  ' Case 4
End Select

X = Chr(34) & X & Chr(34)
Y = Chr(34) & Y & Chr(34)

Call AkelPad.Call("ContextMenu::Show", 1, X, Y, , Name)



Кнопка вызова

Code: Select all

-"ShowMenuLRTB.vbs" Call("Scripts::Main", 1, "ShowMenuLRTB.vbs", `"1" "MENUSMALE"`)
Меню выскакивает в верхнем левом углу экрана...

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

Post by KDJ »

Andrey_A_A
Instead of:

Code: Select all

X = Chr(34) & X & Chr(34)
Y = Chr(34) & Y & Chr(34)
should be:

Code: Select all

X = "" & X
Y = "" & Y
or:

Code: Select all

X = CStr(X)
Y = CStr(Y)

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:ShowMenuLRTB.vbs:

Code: Select all

pRect = CLng(lpRect) 
Теперь в Scripts такого не требуется.

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

Post by Instructor »

Добавлено: возможность отображения меню ContextMenu::Show в:
- левом верхнем углу окна редактирования;
- правом верхнем угла окна редактирования;
- правом нижнем угла окна редактирования;
- левом нижнем угла окна редактирования;
- позиции под кареткой окна редактирования.

Added: possibility to display ContextMenu::Show menu in the:
- top-left corner of the edit window;
- top-right corner of the edit window;
- right-bottom corner of the edit window;
- left-bottom corner of the edit window;
- position under the caret of the editing window.


ContextMenu plugin v12.4

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

Post by Andrey_A_A »

возможность отображения меню ContextMenu::Show в:
- левом верхнем углу окна редактирования; ...
Instructor, Спасибо!

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »


"" Command(4101)
SEPARATOR
"" Command(4318)
"" Command(4319)
"" Command(4320)
SEPARATOR
"" Command(4105)
"" Command(4106)
"" Command(4110)
"" Command(4111)


Новый
--------
Закрыть
Закрыть все
Закрыть все, кроме активного
--------
Always on top
Сохранить как
Сохранить все
Сохранить все как...

Вопрос: каким образом строка "Сохранить" превратилась в "Always on top"?

P.S. Плагин Sessions должен быть в автозагрузке и открывать хотя бы два файла при старте AkelPad. Без него дефект пропадает.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

DV
У меня норм.(Условие с Sessions соблюдаю)

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

Post by Instructor »

DV
Не воспроизводится. Можете выслать/выложить папку с AkelPad'ом?

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

DV wrote:Вопрос: каким образом строка "Сохранить" превратилась в "Always on top"?
Однако, виновным оказался процесс RBTray.exe со своей длл-кой RBHook.dll (http://rbtray.sourceforge.net/).

Offline
Posts: 6
Joined: Thu Aug 28, 2008 2:10 pm

Post by morismoss »

Подскажите, как добавить команду показа активной строки "CO_CARETACTIVELINE" в главное меню?

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

Post by Instructor »


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

Post by Andrey_A_A »

Instructor
Спасибо Вам за грандиознейшую работу и отзывчивость к пользователям! Отличное отношение - так держать!

Есть ещё одно наблюдение...
Можно ли избежать дублирования групп команд, дабы ContextMenu.ini не распухало.
Так получается что одни и те же куски повторяются и в
- Главном меню
- Меню окна редактирования
- Меню вкладок
...
если хочешь на тулбаре, то приходится прописывать группу и в

"... MENU ..."
{
группа команд
}

Конечно кто-то стремиться, чтобы избегать повторений, но у меня активность работы и желание не терять время не позволяет этого

Более того, если в группу добавляешь ещё команды, то это надо делать и в других менюшках...

Может можно что-нибудь придумать присваивать группе команд какой-нибудь номер/спец.имя/.. , чтобы его можно было использовать везде
Last edited by Andrey_A_A on Sun Aug 26, 2012 12:20 pm, edited 1 time in total.

Offline
Posts: 366
Joined: Mon Jan 10, 2011 5:28 pm
Contact:

Post by Lenchik »

Andrey_A_A
Поддерживаю (если я правильно понял смысл).
У меня дублированы некоторые еоманды в главном меню и в контекстном (выбор синтаксических тем и тем подсветки). Хотелось бы их редактировать в одном мести и как дополнительный вариант чтобы и по кнопке в тулбаре то же выпадало (пусть даже и с ограничениями на наличие иконок перед текстом).
Post Reply