Page 1 of 11

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 в поле ввода текста:
  1. -- See http:// forum.farmanager.com/viewtopic.php?p=130985#p130985
  2. local DLGITEMTYPE_EDIT, DLGITEMTYPE_PSWEDIT, DLGITEMTYPE_FIXEDIT = 4, 5, 6
  3.  
  4. local DialogTools_MainGuid = "B2EC2264-0F55-4B86-87F7-F1392B8FC5DC"
  5. local DialogTools_UndoGuid = "1117C0E3-76BA-443D-90E3-89D20C45F364"
  6. local DialogTools_EditGuid = "D0C5118D-E750-4E00-A4D4-0E0E0063571F"
  7. local DialogTools_PwShGuid = "C8D4D4A4-943B-436F-8414-D36CBAF37C53"
  8.  
  9. local function inEditField()
  10.   return Dlg.ItemType == DLGITEMTYPE_EDIT or Dlg.ItemType == DLGITEMTYPE_FIXEDIT
  11. end
  12.  
  13. local function callUndoRedo( stepKey )
  14.   Plugin.Menu( DialogTools_MainGuid, DialogTools_UndoGuid )
  15.   Keys( stepKey .. ' ' .. 'Enter' )
  16. end
  17.  
  18. Macro {
  19.   description = "DialogTools: Undo";
  20.   area = "Dialog"; key = "CtrlZ AltBS";
  21.   condition = inEditField;
  22.   action = function() callUndoRedo( '' ) end
  23. }
  24.  
  25. Macro {
  26.   description = "DialogTools: Redo";
  27.   area = "Dialog"; key = "CtrlShiftZ AltShiftBS";
  28.   condition = inEditField;
  29.   action = function() callUndoRedo( 'Up' ) end
  30. }
  31.  
  32. Macro {
  33.   description = "DialogTools: Edit";
  34.   area = "Dialog"; key = "F4";
  35.   condition = inEditField;
  36.   action = function() Plugin.Menu( DialogTools_MainGuid, DialogTools_EditGuid ) end
  37. }
  38.  
  39. Macro {
  40.   description = "DialogTools: Show password";
  41.   area = "Dialog"; key = "F3";
  42.   condition = function() return Dlg.ItemType == DLGITEMTYPE_PSWEDIT end;
  43.   action = function() Plugin.Menu( DialogTools_MainGuid, DialogTools_PwShGuid ) end
  44. }

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 строк.

Re: Развёрнутое редактирование полей ввода

Posted: Wed 16 Sep, 2009 15:45
by zg
HaRT wrote:Коренной недостаток такого подхода в том, что DialogTools только для Far 2.
кто зохавал ваш мозг?