Требуется GUID для диалога

Вам не хватает чего-то в Far? Вы считаете, что вашу идею стоит услышать? Пишите сюда.
User avatar
buniak_a_h
Posts: 4559
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

Требуется GUID для диалога

Post by buniak_a_h »

Latest post of the previous page:

Для второго диалога я, кажется, нашёл где GUID вставлять:
файл editcontrol.cpp
Заменить строки

Code: Select all

if (AnyAdded)
  ComplMenu->SetTitle(msg(lng::MCompletionHistoryTitle));
на

Code: Select all

if (AnyAdded) {
  ComplMenu->SetTitle(msg(lng::MCompletionHistoryTitle));
  ComplMenu->SetId(…); // (имя GUID-а)
}
Ну и в файл uuids.far.dialogs.hpp добавить под тем же именем сгенерированный GUID. Увы, проверить не могу: проект ФАР у меня не компилится.
User avatar
John Doe
Бюрократ
Posts: 14580
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Требуется GUID для диалога

Post by John Doe »

buniak_a_h wrote: Wed 01 May, 2024 16:38 как выйти на эти диалоги.
В каком смысле "выйти"?
https://t.me/FarManager — Telegram чат
User avatar
buniak_a_h
Posts: 4559
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

Требуется GUID для диалога

Post by buniak_a_h »

John Doe wrote: Wed 01 May, 2024 21:47 В каком смысле "выйти"?
Со вторым - ясно. Список автодополнения - это я понимаю. Надеюсь, даже правильно место вставки GUID-а нашёл. Как бы подобно той задаче, что я решил для МЕНЮ групп масок.
С первым я не понимаю. Что такое
John Doe wrote: Wed 01 May, 2024 12:30 меню конфликта плагинов
Как такое МЕНЮ получить? Я, вроде, ни разу не видел меню конфликта плагинов. Возможно, у меня такая конфигурация, что конфликтов не возникает.
User avatar
buniak_a_h
Posts: 4559
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

Требуется GUID для диалога

Post by buniak_a_h »

P/S. Я, вроде, даже нашёл место, где это МЕНЮ показывается (вызывается ShowDialog). Я думаю, это - файл config.cpp, функция Options::PluginsManagerSettings Возможно, там было бы достаточно вставить строку типа Dlg->SetId(…). Ну и определить соответствующий GUID в uuids.far.dialogs.hpp. Хотя, пожалуй, там всё по-другому. :-(
Last edited by buniak_a_h on Wed 01 May, 2024 22:42, edited 1 time in total.
User avatar
John Doe
Бюрократ
Posts: 14580
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Требуется GUID для диалога

Post by John Doe »

buniak_a_h wrote: Wed 01 May, 2024 22:25 Список автодополнения - это я понимаю. Надеюсь, даже правильно место вставки GUID-а нашёл.
А как лучше - отдельные гуиды для дополнения в комстроке и диалогах, или единый?
buniak_a_h wrote: Wed 01 May, 2024 22:25 Как такое МЕНЮ получить?
Options/Plugins manager settings
Там есть три варианта как получить меню выбора:

Code: Select all

[x] File processing
[x] Search results (SetFindList)
[x] Prefix processing
Соответственно тоже надо подумать, нужны ли отдельные гуиды.
https://t.me/FarManager — Telegram чат
User avatar
buniak_a_h
Posts: 4559
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

Требуется GUID для диалога

Post by buniak_a_h »

John Doe wrote: Wed 01 May, 2024 22:52
buniak_a_h wrote: Wed 01 May, 2024 22:25 Список автодополнения - это я понимаю. Надеюсь, даже правильно место вставки GUID-а нашёл.
А как лучше - отдельные гуиды для дополнения в комстроке и диалогах, или единый?
Извините. Скорее всего, для списков автодополнения ГУИДы вообще не нужны. Есть отдельные области: ShellAutoCompletion (автодополнение в комстроке) и DialogAutoCompletion (автодополнение в диалогах). Для идентификации диалога этого, по-моему, достаточно.
User avatar
John Doe
Бюрократ
Posts: 14580
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Требуется GUID для диалога

Post by John Doe »

buniak_a_h wrote: Wed 01 May, 2024 23:09 Для идентификации диалога этого, по-моему, достаточно.
Макрообласти хорошо, но иногда может быть желательно оперировать гуидами.
Скажем, некий обработчик должен работать в разных меню/списках единым образом.
(К сожалению я сходу не вспомню, для какой конкретно задачи это было нужно.)
https://t.me/FarManager — Telegram чат
User avatar
HaRT
Moderator
Posts: 11454
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Требуется GUID для диалога

Post by HaRT »

John Doe wrote: Wed 01 May, 2024 23:39 сходу не вспомню, для какой конкретно задачи это было нужно
MenuAutoFilter?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 14580
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Требуется GUID для диалога

Post by John Doe »

HaRT wrote: Thu 02 May, 2024 00:04MenuAutoFilter?
Скорее всего не этот. Когда-нибудь буду обновлять, и тогда уж выяснится.
https://t.me/FarManager — Telegram чат
User avatar
buniak_a_h
Posts: 4559
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

Требуется GUID для диалога

Post by buniak_a_h »

John Doe wrote: Thu 02 May, 2024 19:25 Скорее всего не этот
Я встретил пожелание увеличить вертикальный размер окна автодополнения. В скрипте Изменение размеров диалоговых окон окна идентифицируются только по GUIDам. Возможно, дело в этом. Хотя я бы переделал проверку именно в том скрипте: если в качестве ГУИДа указан не корректный GUID, а строка типа Area.ShellAutoCompletion, то проверять именно Area и если проходит - считать, что GUID совпал
User avatar
zg
zero-gravity
Posts: 6207
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 206 times
Contact:

Требуется GUID для диалога

Post by zg »

buniak_a_h wrote: Fri 03 May, 2024 01:27 Я встретил пожелание увеличить вертикальный размер окна автодополнения.
Dialog.CBoxMaxHeight
User avatar
buniak_a_h
Posts: 4559
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

Требуется GUID для диалога

Post by buniak_a_h »

John Doe wrote: Wed 01 May, 2024 12:30 Я тоже как-то просил гуиды
Решил я эту задачу. Проверил. Короче, менять надо 2 файла:
Файл uuids.far.dialogs.hpp:
Добавить ГУИД в список. У меня это строка:

Code: Select all

PluginsManagerSettingsId         = "9D897FF8-20E9-457A-95AB-3EFC8F4D773D"_uuid,
добавляется перед последней строкой списка (или раньше)
Файл config.cpp:
1. Найти функцию void Options::PluginsManagerSettings()
2. Внутри неё найти строку Builder.ShowDialog();
3. Перед ней добавить строку

Code: Select all

Builder.SetId(PluginsManagerSettingsId);
Предложите изменения авторам. Я не знаю, как это делается…
Last edited by buniak_a_h on Fri 03 May, 2024 22:07, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4559
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

Требуется GUID для диалога

Post by buniak_a_h »

zg wrote: Fri 03 May, 2024 09:22 Dialog.CBoxMaxHeight
Да, действительно, нет смысла. Тогда я не знаю.
User avatar
buniak_a_h
Posts: 4559
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

Требуется GUID для диалога

Post by buniak_a_h »

Странность обнаружилась: ГУИД присвоился, а в far.Guids этого ГУИДа нету … Я пока не знаю, как такое может быть.
User avatar
HaRT
Moderator
Posts: 11454
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Требуется GUID для диалога

Post by HaRT »

buniak_a_h wrote: Fri 03 May, 2024 22:35 не знаю, как такое может быть
Похоже, GUIDы генерируются при сборке плагина. Вы его у себя пересобрали?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4559
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 674 times
Contact:

Требуется GUID для диалога

Post by buniak_a_h »

Я собираю MinGW; в makefile_gcc я не нашёл такой зависимости. А VC у меня никак не собирает ФАР: видимо, мешают какие-то былые настройки. Сборка вылетает с диагностикой

Code: Select all

Testing C plugin API
"clipper" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Я когда-то давно работал на языке Clipper, но где остались хвосты - найти не могу.
Post Reply

Return to “Предложения и идеи”