Определить из какого именно диалога вызван

Здесь обсуждается всё, что касается макросов.
User avatar
WARP ItSelf
Самый умный
Posts: 1011
Joined: Tue 15 Mar, 2005 23:19
Contact:

Post by WARP ItSelf »

Latest post of the previous page:

Извини, не пользуюсь DM, поэтому доку (Readme.Rus.txt) до этого не видел. Но из этого следует только один вывод - это хорошая идея.
User avatar
HaRT
Moderator
Posts: 11164
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 243 times
Been thanked: 385 times

Post by HaRT »

Skirda wrote:Окно помощи (которое F1)... заголовок у него пустой. NULL. Zero.
Любопытно. А мне как пользователю всегда казалось, что там написано Help - FAR.
Skirda wrote:Хрен с ним? (или, если заголовок пуст, то могу возвращать "Тип", тот, что в lng прописан, 3 строки, начиная с 1952-й)
По мне, если уж где действительно пустой, то и возвращать надо пустую строку.
User avatar
Andrey Budko
Posts: 1203
Joined: Fri 01 Apr, 2005 14:03
Contact:

Post by Andrey Budko »

WARP ItSelf wrote:Извини, не пользуюсь DM
Зря. Очень удобно смотреть свои же пассворды на фтп :)
User avatar
HaRT
Moderator
Posts: 11164
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 243 times
Been thanked: 385 times

Post by HaRT »

skirda
Спасибо большое за Far.Height, Far.Title и Title!

Одно предложеньице: пусть в панелях Title означает ровно то, что можно предположить по названию: заголовок активной панели (т.е. то, что у неё наверху написано). Иначе в панелях польза от этой константы сомнительная, особенно в плагинных (кстати, сейчас это там реализовано архи-странно: последний реальный путь в этой панели плюс имя текущего элемента панели).
User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Post by Skirda »

HaRT, на мантис по поводу Title
User avatar
HaRT
Moderator
Posts: 11164
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 243 times
Been thanked: 385 times

Post by HaRT »

User avatar
John Doe
Бюрократ
Posts: 14174
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 80 times
Been thanked: 454 times
Contact:

Re:

Post by John Doe »

WARP ItSelf wrote:По хорошему бы надо завести для каждого диалога уникальный GUID. И его и возвращать. Сие нетрудно сделать внутри Far'а. А плагины вот пока пролетают.
Итак, в юникодном фаре для ряда диалогов уже задан GUID, и в макросе его можно получить с помощью (пока не документированного) свойства Dlg.Info.Id.

Хотелось бы уточнить по поводу диалогов копирования/перемещения/переименования: у них один и тот же GUID.
Имеет смысл разделить копирование и переименование.
Это будет, или же есть какой-то скрытый смысл в совпадающих гуидах?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 428 times

Re: Определить из какого именно диалога вызван

Post by DrKnS »

Это один и тот же диалог.
User avatar
zg
zero-gravity
Posts: 6119
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 191 times
Contact:

Re: Re:

Post by zg »

John Doe wrote:Это будет, или же есть какой-то скрытый смысл в совпадающих гуидах?
смысла нет, это реально один и тот же диалог.
John Doe wrote:Имеет смысл разделить копирование и переименование.
ээээ, есть четыре сущности:
1. копирование;
2. копирование файла под курсором;
3. перемещение;
4. перемещение файла под курсором (оно же переименование).
выделять отдельно именно переименование выглядит странным. более логичным выглядят два варианта:
1. два гуида: на копирование и на перемещение;
2. четыре гуида, по одному на все сущности.
User avatar
John Doe
Бюрократ
Posts: 14174
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 80 times
Been thanked: 454 times
Contact:

Re: Re:

Post by John Doe »

zg wrote:это реально один и тот же диалог.
Спору нет: конструктивно один, но не функционально.
zg wrote:выделять отдельно именно переименование выглядит странным.
Я имел ввиду отделить Копирование от Перемещения/Переименования (Rename/Move).
zg wrote:1. два гуида: на копирование и на перемещение;
2. четыре гуида, по одному на все сущности.
Первое. Второе под сомнением, и в макросах в крайнем случае можно обойтись, различив диалоги по AKey.
User avatar
HaRT
Moderator
Posts: 11164
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 243 times
Been thanked: 385 times

Re: Re:

Post by HaRT »

John Doe wrote:обойтись, различив диалоги по AKey.
Плохая идея — мало ли какой кнопкой что вызывается.
А вообще да, было бы неплохо присваивать экземпляру диалога идентификатор в соответствии с его фактическим назначением (т.е. вместо 1 использовать 4 гуида).
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 14174
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 80 times
Been thanked: 454 times
Contact:

Re: Определить из какого именно диалога вызван

Post by John Doe »

2 уже есть, остальные можно будет просить по мере надобности, если таковая возникнет.
User avatar
John Doe
Бюрократ
Posts: 14174
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 80 times
Been thanked: 454 times
Contact:

Re: Определить из какого именно диалога вызван

Post by John Doe »

Ладно, допустим уже есть все гуиды. Давайте обсудим как ими пользоваться.
Допустим, одну и ту же комбинацию клавиш надо использовать в разных диалогах и с разным назначением.
Сейчас есть только один вариант: создать ОДИН мегамакрос, в котором наворотить ветвления по разным диалогам.
И так для каждой такой комбинации.

Мне больше нравился путь DialogManager: там это всё делалось удобно, т.е. отдельными макросами.
Просто у каждого был параметр, определяющий (по ряду условий) в каком диалоге макрос будет вызван, а в каком нет.
Может сделать именно так?

Пусть у каждого диалоговаго макроса будет параметр - GUID диалога. Или несколько, неважно.
Сложно ли воплотить это в фаре? Или есть более идеологически правильное решение?
User avatar
zg
zero-gravity
Posts: 6119
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 191 times
Contact:

Re: Определить из какого именно диалога вызван

Post by zg »

John Doe wrote:Пусть у каждого диалоговаго макроса будет параметр - GUID диалога. Или несколько, неважно.
Сложно ли воплотить это в фаре?
посмотри как хранятся макросы. уже с имеющимися опциями можно бы как бы делать разные макросы на одну кнопку. но нельзя. потому что кнопка — ключ в реестре и должна быть уникальной.
User avatar
HaRT
Moderator
Posts: 11164
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 243 times
Been thanked: 385 times

Re: Определить из какого именно диалога вызван

Post by HaRT »

zg wrote: но нельзя. потому что кнопка — ключ в реестре и должна быть уникальной.
Так где-то ж тут на форуме обсуждались идеи по расширению этой конвенции… Сейчас поищу.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 11164
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 243 times
Been thanked: 385 times

Re: Определить из какого именно диалога вызван

Post by HaRT »

Нашёл: оказалось, там обсуждалось не совсем оно, а именно возможность назначить одному макросу несколько кнопкосочетаний.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Locked

Return to “Обсуждение макросов”