GetPluginInfoW
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
GetPluginInfoW
Перечитывая описание GetPluginInfoW и PluginInfo пришёл к неутешительному выводу, что плагин не может иметь разное ненулевое число пунктов в меню плагинов панелей (например) с одной стороны и редактора (например) с другой, а только одинаковое, причём это будут одни и те же пункты. Это так, или я чего-то недопонимаю?
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Re: GetPluginInfoW
Думал об этом, но это вроде нигде не гарантируется в документации. Или есть?DrKnS wrote:Плагин может узнать, откуда именно его позвали, и заполнить PluginInfo как угодно.
Update: сейчас попробовал, это не работает. Перед выводом меню плагинов, когда вызывается GetPluginInfoW, плагин получает MACROAREA_DIALOG: и в панелях, и в редакторе, и во вьювере.
Или надо узнавать более изощрённым способом, чем MCTL_GETAREA? Тогда подскажите, как это сделать.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: GetPluginInfoW
В Фарнет проверяется тип текущего окна. Жаль, что АПИ не предоставляет эту информацию "легально", но это работает.
https://code.google.com/p/farnet/source ... n/Far0.cpp
Смотри там Far0::AsGetPluginInfo(). Это C++/CLI и многое обернуто в ф-ии, но принцип должен быть понятен.
https://code.google.com/p/farnet/source ... n/Far0.cpp
Смотри там Far0::AsGetPluginInfo(). Это C++/CLI и многое обернуто в ф-ии, но принцип должен быть понятен.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: GetPluginInfoW
Плагин должен быть всегда загружаемым, чтобы это работало, конечно. Но Фарнет таким и является. И он уже сам кеширует меню своих модулей по областям.
- Alexey Samlyukov
- Posts: 1765
- Joined: Tue 15 Mar, 2005 17:28
- Been thanked: 7 times
- Contact:
Re: GetPluginInfoW
мне тоже как-то надо было узнать, что находится под диалогом, я предлагал расширить ACTL_GETWINDOWTYPE - возвращать инфо не только о текущем элементе, но и что под ним, если это диалог.
для этого можно было бы разрешить применять param1, куда например передавать индекс 1 для запроса элемента 1. индекс 0 - для текущего.
для этого можно было бы разрешить применять param1, куда например передавать индекс 1 для запроса элемента 1. индекс 0 - для текущего.
- John Doe
- Бюрократ
- Posts: 13864
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: GetPluginInfoW
А правильно ли это? Есть ли в этом смысл, можно ли извлечь какую-то пользу из такого значения?Shmuel wrote:сейчас попробовал, это не работает. Перед выводом меню плагинов, когда вызывается GetPluginInfoW, плагин получает MACROAREA_DIALOG: и в панелях, и в редакторе, и во вьювере.
Может быть стоит как-то поправить MCTL_GETAREA (например опрашивать плагины до создания меню)?
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Re: GetPluginInfoW
Большое спасибо!NightRoman wrote:В Фарнет проверяется тип текущего окна. Жаль, что АПИ не предоставляет эту информацию "легально", но это работает.
https://code.google.com/p/farnet/source ... n/Far0.cpp
Правильно ли, не знаю, но пользы от этого мало.John Doe wrote:А правильно ли это?