Свойство "Always On Top" для немодальных диалогов?

Хотите предложить идею нового плагина или знаете, что улучшить в существующем? Пишите сюда.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Свойство "Always On Top" для немодальных диалогов?

Post by citRiks »

Latest post of the previous page:

John Doe, HaRT,
да, я там чего-то обознался, а сейчас мысль совсем ушла уже.
Но вот что вспомнил, если есть непонятки и нет согласия душа в душу,
то реализовывать надо простейшим способом (это не отмененяет качество кода),
и смотреть дальше чего не хватает для полного счастья.

Т.е. я бы предложил выдать хоть какую-то реализацию, и посмотреть как с ней кому живется.
Слишком много логики не нужно, но нужна наверное определенная гибкость.
Например, будет просто:
"Все модальные диалоги главнее немодальных,
а немодальные диалоги с АОТ главнее немодальных диалогов без АОТ"
Главнее==Выше (ближе к юзеру)
АОТ запрещает уходить взад, даже если нет на нем фокуса.

И пусть не будет z-index-ов и арбитражей "кто важнее/выше/поверх кого",
но допустим пусть будет функция "вытащить диалог (по его ID) наверх".
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Свойство "Always On Top" для немодальных диалогов?

Post by buniak_a_h »

Во, нашёл (сентябрь 2017 !!!)
John Doe wrote: Fri 29 Sep, 2017 09:35 Чего ещё пока нет: режима "Always on top".
Тема-то, оказывается, старая! ;-)
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Свойство "Always On Top" для немодальных диалогов?

Post by buniak_a_h »

Как считаете, есть вероятность, что следующие два виша с мантиса:
0003517: Немодальный диалог: возможность отображаться поверх всех окон и
0003518: Клик за пределами (немодального) окна
будут реализованы? С 2017 года висят…
И не говорите, что оффтопик. Вещи очень связанные и очень нужные. Для полноценного IDE и Find All - необходимые!
Last edited by buniak_a_h on Mon 23 Mar, 2020 22:57, edited 2 times in total.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Свойство "Always On Top" для немодальных диалогов?

Post by citRiks »

buniak_a_h wrote: Mon 23 Mar, 2020 22:23 Тема-то, оказывается, старая! ;-)
ны да, потому что речь не про какие-то изыски, а про весьма базовую функциональность, вот люди и спрашивают "а хде это?"
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Свойство "Always On Top" для немодальных диалогов?

Post by citRiks »

Еще в копилку пользы от AOT
Есть замечательные скрипты для AutoCompletion, все отлично
(я пока использовал только от @SimSU)
но к сожалению то слово которое подсказываетя, оно делается с far.Text(..),
оно мелькает так что эпилепсию можно заработать.
Если бы подксазка была бы просто в немодальном АОТ,
то выглядело бы гораздо приличнее, и удобнее
удобнее - это можно было бы показывать список словм выбиратьиз этого списка на ходу,
а не лезть в отдельное меню со списком
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Свойство "Always On Top" для немодальных диалогов?

Post by John Doe »

Скорее всего мелькание можно устранить и сейчас.
https://t.me/FarManager — Telegram чат
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Свойство "Always On Top" для немодальных диалогов?

Post by citRiks »

John Doe wrote: Wed 15 Apr, 2020 18:40 Скорее всего мелькание можно устранить и сейчас.
не знаю офтопик или нет, и как же? Хотя бы на уровне идеи?

еще вот что пришло в голову
Вот у нас есть DialogAutoCompletion и ShellAutoCompletion, они:
А.) Не-модальные
Б.) Таки да АОТ
Ц.) могут быть в фокусе, или не в фокусе, все равно оставаясь на виду
Д.) Чего еще не хватает чтобы назвать их настоящими АОТ?
И начать их использовать более широко?

Думаю что так же как они обладают элементом List сейчас,
так же могут хостить (обладать) и другими диалоговыми элементами,
ну и понятно что отвязать от shell + dialog (сделать типа многофункциональными)

Создать допустим общий класс "AlwaysOnTop",
чтобы не путать с legacy DialogAutoCompletion и ShellAutoCompletion.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Свойство "Always On Top" для немодальных диалогов?

Post by citRiks »

John Doe wrote: Wed 15 Apr, 2020 18:40 Скорее всего мелькание можно устранить и сейчас.
Кстати вот что, сейчас только что понял, мелькает только в Конему, вот оно че Михалыч..
но в любом случае, а у вас какая идея насчет мельканья от far.Text(..) ?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Свойство "Always On Top" для немодальных диалогов?

Post by John Doe »

Я утверждаю лишь то, что прочие испробованные мною плагины и скрипты с подобной функциональностью - мелькания не вызывали.
Но к теме это не имеет отношения.
https://t.me/FarManager — Telegram чат
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Свойство "Always On Top" для немодальных диалогов?

Post by citRiks »

zg wrote: Wed 18 Mar, 2020 14:28 что касается темы, то пока у меня складывается впечатление, что всем нужна возможность прилепить что-то к конкретным панелям/просмотру/редактору, но все почему-то просят aot.
Хорошо, давайте попробуем сугубо утилитарно.
В редакторе есть "Искать все" с окошком результатов, что замечательно и удобно.
Хотелось бы чтобы оно не закрывалось, позволяя пока оно открыто,
в самом этом редакторе, быть в редакторе, делать переходы по найденному,
по тексту редактора, редактировать.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Свойство "Always On Top" для немодальных диалогов?

Post by zg »

citRiks wrote: Tue 08 Sep, 2020 05:47В редакторе есть "Искать все" с окошком результатов, что замечательно и удобно.
Хотелось бы чтобы оно не закрывалось, позволяя пока оно открыто,
в самом этом редакторе, быть в редакторе, делать переходы по найденному,
по тексту редактора, редактировать.
реализуемо текущими средствами.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Свойство "Always On Top" для немодальных диалогов?

Post by citRiks »

zg,
Смиренно прошу разьяснений как?
скрипта с демонстрацией не требую,
а нужно хоть какое краткое, но принципиальное обьяснение.
Напоминаю что нужно чтобы окно результатов поиска не исчезало при переходе в редактор.
Это окно - оно меню, даже если задать флаг немодальности на нем,
(Вы это имели ввиду может? а это можно на уже живом диалоге/меню сделать?)
..то при переключении (при переносе фокуса в) в редактор оно будет уходить куда-то взад.
Last edited by citRiks on Tue 08 Sep, 2020 12:55, edited 2 times in total.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Свойство "Always On Top" для немодальных диалогов?

Post by zg »

citRiks wrote: Tue 08 Sep, 2020 12:54Смиренно прошу разьяснений как?
уже разъяснял.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Свойство "Always On Top" для немодальных диалогов?

Post by buniak_a_h »

zg wrote: Tue 08 Sep, 2020 20:01
citRiks wrote: Tue 08 Sep, 2020 12:54Смиренно прошу разьяснений как?
уже разъяснял.
1. Это Вы мне разъясняли. За что Вам большое спасибо: скрипт компиляции (Harbour и GoLang) прекрасно работает.
2. У этого решения есть ограничение:
zg wrote: Sun 17 Nov, 2019 04:01 в диалоге ловится кнопка, если она не нужна, диалог закрывается, кнопка выполняется в панелях (выделение моё), диалог переоткрывается.
Т.е. это работает только если диалог открыт "на фоне" панелей. А заставить любой объект, на который переключён фокус, обрабатывать любое событие, не нужное диалогу - это написать первую версию ФАР-а
3. Это немножко не о том. Там описано, как при клике вне диалога переключиться на окно не закрывая диалога. Это пол дела. Ещё бы (а) не прятать диалог вообще и (б) переходить не просто на "предыдущее (это удовлетворительно, когда "предыдущее" - вьюер, единственный на весь экран редактор или панели), а переключаться именно на тот объект (один из нескольких диалогов, один из нескольких одновременно видимых редакторов), в области которого кликнули. Увы, "кликнутый" объект "вытаскивается наверх" и, если его область перекрывает область диалога, то диалог "прячется" под ним. Вот этого-то и хотелось бы избежать.
--
Для компиляторов я сделал так, что если диалог имеется, то по повторному нажатию хоткея я переключаюсь на него (т.е. вытаскиваю его наверх). Это сделать реально, но это, всё же, немного не то. Надо жать лишнюю пимпочку…
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Свойство "Always On Top" для немодальных диалогов?

Post by citRiks »

zg,
zg wrote: Sun 17 Nov, 2019 04:01 Скрипт LuaPicture как-то обходит это (как, я не разбирался).
в диалоге ловится кнопка, если она не нужна, диалог закрывается, кнопка выполняется в панелях, диалог переоткрывается.
Сразу предупреждаю:
далее по тексту идет на 99% чистое восхищение вашими возможностями
и еще 1% - попытка оправится от осознания своего ничтожества, придти в себя..
Не сарказм, такой скрипт написать - это гениальность.

Скрипт LuaPicture весьма могучий, судя по этому скрипту вы можете за выходные переписать ФарМанагер заново.
Но тем более не понятно вот что :)
почему же вам легче выпилить такой монументально-вычурный костылище, чем добавить простое настоящее АОТ?
Закрывать и переоткрывать диалоги "чтобы было похоже на АОТ" - это всем костылям костыль.
Касательно конкретно результатов поиска редактора, вы предлагаете:
1.) При каждом инпуте (нажатии/любом движении) ==>>
2.) закрывать результаты поиска ==>>
3.) перенаправлять в редактор этот инпут ==>>
4.) Заново искать все ==>>
5.) Позиционировать окошко на прежнее место, текущее значение, режим (там два режима что-ли) ==>>
7.) Типа победа
Я даже не говорю что в таком режиме 100% поломается поведение кучи макросов, и не будет курсора.

Я все правильно понял?

Умоляю простить если чего упустил со своим жалким умишком (искренне говорю)

PS
сейчас пересмотрел ЛуаПикча, на самом деле там меньше тысячи строк, мне вначале показалось их там тысячи.
Меня видимо поразило количество изощренного ФФИ на квадратнyю строчку кода, простите за излишнюю эмоциональность,
Все это такое уложить в меньше тысячи строчек - это тоже вполне впечатляет.
Last edited by citRiks on Tue 08 Sep, 2020 20:58, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Свойство "Always On Top" для немодальных диалогов?

Post by buniak_a_h »

zg, P/S
Многие неприятности легко были бы побеждены, если бы у открытого редактора можно было бы менять координаты, как это делается с диалогами (сообщения DM_RESIZEDIALOG и DM_MOVEDIALOG). Причём, вроде, всё для этого есть (есть функция editor.SetParam с кучей флагов; не хватает только ESPT_RESIZE и ESPT_MOVE, а лучше ESPT_SETBOUNDS). Ну и реализовать эти флаги (тоже, наверняка, наполовину готово, раз есть возможность указывать координаты при создании окна редактора editor.Editor()). Это, конечно, "костыль" (не учитывает, например, перемещение немодального диалога или диалог на фоне чего-то кроме редактора-вьюера), но для многих задач (в частности, "любимая" тема citRiks-а про нумерацию строк в редакторе, или мои поиск, компиляция) этого бы хватило.
Last edited by buniak_a_h on Tue 08 Sep, 2020 21:06, edited 2 times in total.
Post Reply

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