Page 1 of 12
DialogTools — дополнительные возможности в диалогах
Posted: Tue 23 Dec, 2008 04:42
by zg
часть того, что было
dialogmanager'ом портировано под новое апи и уникод. называется
DialogTools. лежит у t-rex'а в
svn. включает в себя:
Code: Select all
Change Case
Open File Dialog
Paste Selection
Show Password
Search
Replace
Undo
остальное как-нибудь тоже планируется.
DialogTools — дополнительные возможности в диалогах
Posted: Wed 16 Sep, 2009 10:16
by HaRT
В этой теме теперь обсуждается плагин DialogTools.
Но начиналось всё с темы в разделе «Плагины: Предложения и идеи».
Вступление: есть у меня идейка, но совершенно нет энтузиазма её воплощать. Для частного случая она была независимо придумана и реализована
Cavalerом в
недавней версии его плагина
RESearch, но общий случай он тоже делать не рвётся.
Мотивация: зачастую поля ввода в Фаровских диалогах куда меньше, чем текст, который надо в них ввести. Про удобство редактирования, всякие там переходы-раскраски-навороты я уж и не говорю. Хочется иметь в полях ввода стандартных диалогов (почти) всю мощь редактора.
Идея: написать плагин, который бы, будучи вызван из поля ввода через меню плагинов, брал текущее содержимое, позицию курсора, выделение, режим вставки/замены (и проч.) и открывал (модальный) редактор со всем этим. При закрытии редактора все те же самые данные плагин переносил бы обратно в поле ввода.
Обсуждение: разумеется, встают некоторые закономерные вопросы, как-то: что делать с разделителями строк, какого размера должен быть редактор и т.п. Но какие-то из них для начального этапа неважны, а другие могут быть урегулированы опциями.
Заключение: если кому-то это интересно, я готов обсуждать детали логики.
2015-07-09
HaRT wrote: Если кому интересно, вот работающие макросы для Undo/Redo/Edit/Show password в поле ввода текста:
-- See http:// forum.farmanager.com/viewtopic.php?p=130985#p130985
local DLGITEMTYPE_EDIT, DLGITEMTYPE_PSWEDIT, DLGITEMTYPE_FIXEDIT = 4, 5, 6
local DialogTools_MainGuid = "B2EC2264-0F55-4B86-87F7-F1392B8FC5DC"
local DialogTools_UndoGuid = "1117C0E3-76BA-443D-90E3-89D20C45F364"
local DialogTools_EditGuid = "D0C5118D-E750-4E00-A4D4-0E0E0063571F"
local DialogTools_PwShGuid = "C8D4D4A4-943B-436F-8414-D36CBAF37C53"
local function inEditField()
return Dlg.ItemType == DLGITEMTYPE_EDIT or Dlg.ItemType == DLGITEMTYPE_FIXEDIT
end
local function callUndoRedo( stepKey )
Plugin.Menu( DialogTools_MainGuid, DialogTools_UndoGuid )
Keys( stepKey .. ' ' .. 'Enter' )
end
Macro {
description = "DialogTools: Undo";
area = "Dialog"; key = "CtrlZ AltBS";
condition = inEditField;
action = function() callUndoRedo( '' ) end
}
Macro {
description = "DialogTools: Redo";
area = "Dialog"; key = "CtrlShiftZ AltShiftBS";
condition = inEditField;
action = function() callUndoRedo( 'Up' ) end
}
Macro {
description = "DialogTools: Edit";
area = "Dialog"; key = "F4";
condition = inEditField;
action = function() Plugin.Menu( DialogTools_MainGuid, DialogTools_EditGuid ) end
}
Macro {
description = "DialogTools: Show password";
area = "Dialog"; key = "F3";
condition = function() return Dlg.ItemType == DLGITEMTYPE_PSWEDIT end;
action = function() Plugin.Menu( DialogTools_MainGuid, DialogTools_PwShGuid ) end
}
Re: Развёрнутое редактирование полей ввода
Posted: Wed 16 Sep, 2009 10:34
by Yegor
Я думаю, есть смысл расширить ф-ть плагина DialogTools и попробовать добавить тюда такую ф-ю.
Не знаю, правда, насколько это нужно, хотя было бы полезно в редактировании макросов в плагине FAR Macro
Re: Развёрнутое редактирование полей ввода
Posted: Wed 16 Sep, 2009 10:42
by HaRT
Yegor wrote:Я думаю, есть смысл расширить ф-ть плагина DialogTools и попробовать добавить тюда такую ф-ю.
Коренной недостаток такого подхода в том, что
DialogTools только для
Far 2.
23:23 MSK
Оказывается, в Фаре 1.75 с
DialogTools тоже всё в порядке.
Re: Развёрнутое редактирование полей ввода
Posted: Wed 16 Sep, 2009 10:48
by Skirda
Ну, я бы сказал, что это баян, но т.к. это (спецификация) вроде бы ни где не публиковалось (упоминания можно найти в форуме), то...
В общем есть такой проект DI_MEMOEDIT (для чего в свое время выкидывали все, относящиеся к слову "файл" из класса Editor в FileEdit)
Вот только руки никак не доходят...
Здесь как раз тот случай, когда плагином не гоже...
PS.
Если нужно, могу выкатить текущее недоописание проекта.
Re: Развёрнутое редактирование полей ввода
Posted: Wed 16 Sep, 2009 10:53
by Skirda
Хе... оказывается описание
есть
Re: Развёрнутое редактирование полей ввода
Posted: Wed 16 Sep, 2009 10:59
by HaRT
Skirda wrote:есть такой проект DI_MEMOEDIT (для чего в свое время выкидывали все, относящиеся к слову "файл" из класса Editor в FileEdit)
Вот только руки никак не доходят...
Вот-вот. А в виде плагина пусть и не так красиво, зато гораздо проще и потенциально быстрее.
Плюс оно возможно и в Фар 1.7.
Re: Развёрнутое редактирование полей ввода
Posted: Wed 16 Sep, 2009 11:15
by Skirda
HaRT, да ради Бога, главное чтобы кто-то поддерживал такой плагин
Re: Развёрнутое редактирование полей ввода
Posted: Wed 16 Sep, 2009 11:15
by Александр Кряжев
HaRT, не кажется ли Вам, что пора уже "забивать" на поддержку тупиковых ветвей развития?
Re: Развёрнутое редактирование полей ввода
Posted: Wed 16 Sep, 2009 11:29
by t-rex
Ну это плагин ровно на 10-20 строк кода, можешь и сам написать раз оно тебе так надо.
Re: Развёрнутое редактирование полей ввода
Posted: Wed 16 Sep, 2009 11:34
by HaRT
Skirda wrote:да ради Бога, главное чтобы кто-то поддерживал такой плагин
Вот я и ищу такого человека. Пожалуй, постучусь ещё в
PowerShellFar, т.к. надеюсь, что наскриптовать предлагаемый плагин опытному человеку будет несложно. Вдруг
NightRomanу идея понравится…
Александр Кряжев wrote:не кажется ли Вам, что пора уже "забивать" на поддержку тупиковых ветвей развития?
Русская пословица гласит: “Старый конь борозды не портит”; есть и английская фраза к случаю: “The latest isn't the greatest”. Зачем раньше времени хоронить хороший продукт, ведь
Фар 2 по некоторым показателям ещё не дотягивает до
Фар 1.7.
Re: Развёрнутое редактирование полей ввода
Posted: Wed 16 Sep, 2009 11:43
by HaRT
Skirda wrote:Здесь как раз тот случай, когда плагином не гоже...
Я вспомнил ещё один довод.
Я ничего не имею против DI_MEMOEDIT, но его внедрение ничем не улучшит
уже написанные плагины, а предлагаемая мной функциональность всё-таки упростила бы работу с ними.
Re: Развёрнутое редактирование полей ввода
Posted: Wed 16 Sep, 2009 12:08
by t-rex
t-rex wrote:Ну это плагин ровно на 10-20 строк кода, можешь и сам написать раз оно тебе так надо.
Ты уже тут стока написал что мог бы уже и плагин написать.
Re: Развёрнутое редактирование полей ввода
Posted: Wed 16 Sep, 2009 12:11
by HaRT
t-rex wrote:Ну это плагин ровно на 10-20 строк кода, можешь и сам написать раз оно тебе так надо.
В минимальном варианте, возможно, и так, но в полнофункциональном куда больше.
t-rex wrote:Ты уже тут стока написал что мог бы уже и плагин написать.
Ты мне льстишь.
Приятно, конечно, но, к сожалению, я не так быстро въезжаю в новое, а также применяю имеющийся багаж на практике.
Re: Развёрнутое редактирование полей ввода
Posted: Wed 16 Sep, 2009 12:30
by t-rex
Имено полнофункциональный 20 строк.