AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

ContextMenu plugin
Goto page Previous  1, 2, 3 ... 34, 35, 36 ... 41, 42, 43  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins
View previous topic :: View next topic  
Author Message
private_joker



Joined: 28 May 2010
Posts: 78

PostPosted: Wed Apr 11, 2012 2:06 pm    Post subject: Reply with quote

VladSh wrote:

Вы всё ещё пользуете меню "по умолчанию"?

Нет, скорее мне уже давно надоело редактировать меню каждый раз после обновлений, поэтому я использую то, что есть и http://akelpad.sourceforge.net/files/plugs/ContextMenu/
Кстати, последнее неплохо бы смотрелось в AkelUpdater, т.к. не завсегдатаю форума об этом не узнать (а среди пользователей AkelPad'a думаю всяко таких меньше).
Ну и то, что очевидно дюжине человек (т.е. нам) не обязательно очевидно основной массе.
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2610
Location: Киев, Русь

PostPosted: Wed Apr 11, 2012 2:34 pm    Post subject: Reply with quote

private_joker
У меня обновления проги/плагов в основном никак не связано с редактированием меню. Может просто хранить настройки не в реестре, а в ini?
Back to top
View user's profile Send private message Visit poster's website
private_joker



Joined: 28 May 2010
Posts: 78

PostPosted: Wed Apr 11, 2012 3:18 pm    Post subject: Reply with quote

VladSh wrote:

У меня обновления проги/плагов в основном никак не связано с редактированием меню.

Если изменяли меню, либо тулбары (получаются кастомные ContextMenu.ini и ToolBar.ini) новые пункты после обновления могут не появится, пока вручную не добавите, либо удалите старые *.ini. По крайней мере я сам наблюдал такое.
Quote:
Может просто хранить настройки не в реестре, а в ini?

А разве я где-то писал что храню настройки AkelPada в реестре?
Back to top
View user's profile Send private message
se7h



Joined: 28 Sep 2009
Posts: 767
Location: Minsk, Belarus

PostPosted: Wed Apr 11, 2012 8:25 pm    Post subject: Reply with quote

Infocatcher wrote:
Кстати, неплохо бы иметь возможность добавить к меню ссылок обычное контекстное меню без копипаста (а то править неудобно).

сорвал с языка
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2610
Location: Киев, Русь

PostPosted: Thu Apr 12, 2012 9:12 am    Post subject: Reply with quote

private_joker
Естественно, новые пункты сами не появятся (с слава небесам!). Зато с каждым изменением версий всё остаётся в целости и сохранности (ничего каждый раз редактировать не нужно), а это важнее; пару новых пунктов (тем более, что они не так часто появляются) можно добавить и самому.
Back to top
View user's profile Send private message Visit poster's website
Andrey_A_A



Joined: 03 Jun 2010
Posts: 552
Location: Сочи, Хоста

PostPosted: Fri Apr 27, 2012 12:24 pm    Post subject: Reply with quote

Есть Внешний вызов
Call("ContextMenu::Show", 1, "X", "Y", INDEX, "SUBMENU")

где при X=-1 и Y=-1 - это позиция верхнего левого угла окна редактирования
хотелось бы иметь координаты и для других позиций
- позицию нижнего левого угла окна редактирования
- позицию нижнего правого угла окна редактирования
- позицию верхнего правого угла окна редактирования

потому что угадывать позицию где вылетит окно при разных размерах экрана компьютеров невозможно
Лучше если координаты были бы относительны окна редактирования, а не монитора.
0 и 0 - были были позициями верхнего левого угла окна редактирования
-1 и -1 - были бы позициями нижнего правого угла окна редактирования
Back to top
View user's profile Send private message Send e-mail Visit poster's website
VladSh



Joined: 29 Nov 2006
Posts: 2610
Location: Киев, Русь

PostPosted: Sat Apr 28, 2012 8:21 am    Post subject: Reply with quote

Andrey_A_A wrote:
Лучше если координаты были бы относительны окна редактирования, а не монитора.
Предлагал, до сих пор это достаёт...
Back to top
View user's profile Send private message Visit poster's website
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5359

PostPosted: Mon Apr 30, 2012 11:54 am    Post subject: Reply with quote

Andrey_A_A
С помощью Scripts плагина вычисляем координаты, где необходимо отобразить меню, и передаем во внешний вызов.
Back to top
View user's profile Send private message Send e-mail
Andrey_A_A



Joined: 03 Jun 2010
Posts: 552
Location: Сочи, Хоста

PostPosted: Mon Apr 30, 2012 12:31 pm    Post subject: Reply with quote

Quote:
С помощью Scripts плагина вычисляем координаты

Instructor
Это как? Чё-то не видел или пропустил, подскажите плиз

С праздником Мира! Внсны! И Труда ... на AkelPad'oм!
Back to top
View user's profile Send private message Send e-mail Visit poster's website
F. Phoenix



Joined: 24 Dec 2011
Posts: 124

PostPosted: Tue May 01, 2012 8:47 pm    Post subject: Reply with quote

Предлагаю расширить дириктивы SET-UNSET, чтобы можно было отображать некоторые пункты только для определенных типов файлов (через связь с кодером, например, и его текущей синтаксической темой). Либо, как вариант, вообще добавить возможность указывать этим пунктам скрипты, определяющие их отображаемость для каждого отдельного вызова - тогда уж точно контекстное меню в полном смысле будет оправдывать свое название Smile
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5359

PostPosted: Mon May 07, 2012 9:25 am    Post subject: Reply with quote

Andrey_A_A
Отобразить меню снизу слева
Code:
var hWndEdit=AkelPad.GetEditWnd();
var rcEditRect=[];
var oSys=AkelPad.SystemFunction();

GetWindowPos(hWndEdit, 0, rcEditRect);
AkelPad.Call("ContextMenu::Show", 1, "" + rcEditRect.left, "" + (rcEditRect.top + rcEditRect.bottom));

function GetWindowPos(hWnd, hWndOwner, rcRect)
{
  var lpRect;
  var bResult=false;

  //Get rect
  if (lpRect=AkelPad.MemAlloc(16 /*sizeof(RECT)*/))
  {
    if (oSys.Call("user32::GetWindowRect", hWnd, lpRect))
    {
      RectToArray(lpRect, rcRect);
      rcRect.right-=rcRect.left;
      rcRect.bottom-=rcRect.top;

      if (hWndOwner)
        bResult=oSys.Call("user32::ScreenToClient", hWndOwner, lpRect);
      else
        bResult=true;
      rcRect.left=AkelPad.MemRead(lpRect, 3 /*DT_DWORD*/);
      rcRect.top=AkelPad.MemRead(lpRect + 4, 3 /*DT_DWORD*/);
    }
    AkelPad.MemFree(lpRect);
  }
  return bResult;
}

function RectToArray(lpRect, rcRect)
{
  rcRect.left=AkelPad.MemRead(lpRect, 3 /*DT_DWORD*/);
  rcRect.top=AkelPad.MemRead(lpRect + 4, 3 /*DT_DWORD*/);
  rcRect.right=AkelPad.MemRead(lpRect + 8, 3 /*DT_DWORD*/);
  rcRect.bottom=AkelPad.MemRead(lpRect + 12, 3 /*DT_DWORD*/);
  return rcRect;
}
Back to top
View user's profile Send private message Send e-mail
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5359

PostPosted: Mon May 07, 2012 9:29 am    Post subject: Reply with quote

Добавлено: поддержка отображения пометок с идентификатором -1. Требуется Coder плагин v9.4 или выше.

Added: support for displaying marks with -1 identifier. Coder plugin v9.4 or higher required.


ContextMenu plugin v12.3
Back to top
View user's profile Send private message Send e-mail
Andrey_A_A



Joined: 03 Jun 2010
Posts: 552
Location: Сочи, Хоста

PostPosted: Thu May 17, 2012 3:31 am    Post subject: Reply with quote

Quote:
Отобразить меню снизу слева

Instructor, спасибо, разобрался!

---------------------------------------
Скрипт я модифицировал в vbs - мне так удобнее - считает нормально все позиции, но в vbs я не могу передать параметры плагину - это пример:

Code:

X = 200
Y = 300
Name = "MENUFOLDERS"

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


Это не срабатывает - меню появляется всё, а нужно лишь нужное, и не по координатам, а рядом с курсором.
Обрамлял и в кавычки , к примеру X = Chr(34) & X & Chr(34)
но не срабатывает....
Y и Х - то, что высчитывается в скрипте, "MENUFOLDERS" - передаётся параметром в скрипт.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
[Yustas.NeO]



Joined: 12 Mar 2007
Posts: 258

PostPosted: Mon May 21, 2012 11:53 am    Post subject: Reply with quote

Полностью поддерживаю!

VladSh wrote:
Instructor
В ContextMenu (Show) настроен "MARK" {...}, он вызывается с тулбара, но в самом контекстном меню он вызывается по старому, т.е. фактически там дублирующийся с "MARK" код. Скопировал его из тулбара в ContextMenu, но он говорит, что неизвестный метод..
Огромная просьба! Реализуйте пожалуйста метод Menu в этом плаге, по аналогии с ToolBar-плагином.


Добавлено:
В Opera кроме SUBMENU (у нас это метод Menu в тулбаре) есть ещё метод INCLUDE, который вставляет кусок меню не в виде подменюшки, а просто включает пункты, как "простыню".

Пример (как можно было бы сделать с Menu):
Code:
- "Старый пункт меню 1" ...
#<Вставляемое меню как подменю>
{
   - "Вставляемый пункт меню 1" ...
   - "Вставляемый пункт меню 2" ...
}
#</Вставляемое меню как подменю>
- "Старый пункт меню 2" ...

Пример (как можно было бы сделать с Include):
Code:
- "Старый пункт меню 1" ...
#<Вставляемое меню как "простыня">
- "Вставляемый пункт меню 1" ...
- "Вставляемый пункт меню 2" ...
#</Вставляемое меню как "простыня">
- "Старый пункт меню 2" ...

Было бы мегаудобно!
Back to top
View user's profile Send private message
Andrey_A_A



Joined: 03 Jun 2010
Posts: 552
Location: Сочи, Хоста

PostPosted: Tue May 29, 2012 7:25 am    Post subject: Reply with quote

Instructor, подскажите как быть
http://akelpad.sourceforge.net/forum/viewtopic.php?p=18076#18076
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins All times are GMT
Goto page Previous  1, 2, 3 ... 34, 35, 36 ... 41, 42, 43  Next
Page 35 of 43

 
Jump to:  
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


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group