Columns UI v3.2.0-rc.1 [07.12.2025]

Список разделов foobar2000 Секреты foobar2000 Интерфейс - CUI



Сообщение #341 SergPuh.68 » 08.09.2019, 08:43

MeinHerz, аналогично,я чуть комп не порвал мучаясь со шрифтами а оно вот где собака зарыта :smile:
SergPuh.68 M
Аватара
Откуда: Украина
Репутация: 145
С нами: 6 лет 11 месяцев

Сообщение #342 TheQwertiest » 08.09.2019, 16:31

UiHacks - та ещё шляпа. Там много костылей, которые вмешиваются в работу других компонентов (что, в принципе, не было бы такой уж большой проблемой, если бы UiHacks поддерживался в актуальном состоянии). И, к сожалению, эти костыли не отделить от функционала, который не требует взаимодействия с другими компонентами.

Требовать от авторов других компонентов (CUI в данном случае) поддерживать совместимость с UiHacks - довольно странно. Тем более, что UiHacks даже не имеет открытого исходного кода (т.е. единственный способ поддерживать совместимость - это вообще ничего не делать).

PS: Очень надеюсь как-нибудь сделать "обрезанную" версию UiHacks, которая не ломает fb2k при каждом чихе.
TheQwertiest
Репутация: 4
С нами: 7 лет 8 месяцев

Сообщение #343 MeinHerz » 08.09.2019, 19:02

TheQwertiest:И, к сожалению, эти костыли не отделить от функционала, который не требует взаимодействия с другими компонентами.

Пора бы добавить этот функционал в сам фубар. Ну если UI Hacks давно не обновлялся и вполне возможно, что просто заброшен. Например, не такая уж наверное и сложная задача, чтобы фубар искал шрифты в папке, куда он установлен. Я уж про другие плюшки молчу, бог с ними, с заголовками окон и т.д.
MeinHerz
Репутация: 20
С нами: 7 лет 7 месяцев

Сообщение #344 AHAPXICT » 08.09.2019, 22:02

MeinHerz, вы говорите очевидные вещи, но тут коса на камень нашла, долго про это рассказывать. Это принципиальная позиция автора плеера. Старожилы форума могут рассказать, это было ещё на старом форуме, как всё это было(факи-перефаки на несколько страниц, по разным вопросам).
Ну, а что касается CUI ? Значит теперь у каждого свой путь и всех делов.
AHAPXICT M
Аватара
Откуда: Киев
Репутация: 252
С нами: 12 лет 1 месяц

  • 2

Сообщение #345 Azaza » 09.09.2019, 00:04

MeinHerz:Вызывает разочарование, если честно. Не работают нормально настройки цвета и шрифта. На гидрогене прочитал, что новый Columns конфликтует с UI Hacks. Версия 0.5.1 так и остается основной рабочей
Вложения
палка.jpg
Azaza M
Аватара
Репутация: 448
С нами: 9 лет 3 месяца

Сообщение #346 seriousstas » 09.09.2019, 12:20

UiHacks - та ещё шляпа. Там много костылей, которые вмешиваются в работу других компонентов
Можно подробнее про костыли ..? Аналогов нет и не будет в ближайшем 100-летии)
VEG не раз советовал писать в сапорт или разрабу того-же CUI.
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 110
С нами: 10 лет 10 месяцев

Сообщение #347 TheQwertiest » 10.09.2019, 22:35

seriousstas:Можно подробнее про костыли ..?
Весь компонент - это костыли =) Это его суть (которая даже в названии отражена): компонент меняет поведение программы и окон, которые ему не принадлежат, в обход предоставляемого API.
Конкретно подгрузка шрифтов (насколько я помню) реализована через перехваты (https://github.com/microsoft/detours). Перехваты - это ОЧЕНЬ большой костыль, который в некоторых случаях приводят к безумным багам (напр. когда одна и та же функция перехватывается несколько раз разными библиотеками, которые ничего про друг друга не знают).
TheQwertiest
Репутация: 4
С нами: 7 лет 8 месяцев

Сообщение #348 seriousstas » 11.09.2019, 14:45

Весь компонент - это костыли =) Это его суть
Не убедил..) Пользуюсь давно - ничего такого.
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 110
С нами: 10 лет 10 месяцев

Сообщение #349 MC Web » 11.09.2019, 16:03

Компоненты от DRONа:
UI Hacks (foo_ui_hacks)
Стрелочный пикметр (foo_vis_vumeter.dll)
получились удачные и востребованные по сей день.
Лично меня UI Hacks выручает очень сильно, да и альтернативы никакой нет...
MC Web
Репутация: 248
С нами: 12 лет 3 месяца

Сообщение #350 TheQwertiest » 11.09.2019, 21:12

???
Был вопрос про костыли и причины, по которым костыли причиняют боль самому UIHacks и другим компонентам (и ломают их, без простых способов избежания этого), был дан ответ с примером.
Никаких советов и\или убеждений по поводу использования\неиспользования компонента не предлагалось.
TheQwertiest
Репутация: 4
С нами: 7 лет 8 месяцев

Сообщение #351 seriousstas » 12.09.2019, 13:08

по которым костыли причиняют боль самому UIHacks и другим компонентам
Просто - все оч абстрактно ..
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 110
С нами: 10 лет 10 месяцев

Сообщение #352 TheQwertiest » 12.09.2019, 14:10

Ничего абстрактного: компонент построен на костылях (foo_ui_hacks). Это факт, с которым можно только смириться =)

зы: в любом случае, детальное обсуждение foo_ui_hacks выходит за рамки данного топика.
TheQwertiest
Репутация: 4
С нами: 7 лет 8 месяцев

Сообщение #353 LUR » 12.09.2019, 16:06

TheQwertiest:компонент меняет поведение программы и окон, которые ему не принадлежат, в обход предоставляемого API.
Т.е. Columns UI этого не делает совершенно?) Что такое вообще костыли, если любой компонент может взять хендл любого окна и сделать с ним все что угодно? Вполне возможно что новые колумнсы сами лезут туда, где просто начинается конфликт интересов с хаксом, который ну тупо не поддерживается, а автору колумнсов на него срать) Да и любой сторонний компонент типа сплиттера тоже "костыль".
TheQwertiest:был дан ответ с примером
Дайте ссылку на пост, а то лень искать...
LUR M
Модератор
Аватара
Откуда: Минск
Репутация: 418
С нами: 13 лет

Сообщение #354 TheQwertiest » 12.09.2019, 22:06

Т.е. Columns UI этого не делает совершенно?)
На текущий момент ничего такого в CUI не видел (ни в исходных кодах, ни в поведении самого компонента).

Что такое вообще костыли, если любой компонент может взять хендл любого окна и сделать с ним все что угодно?
Именно это и есть костыли - брать владение чужими ресурсами, когда это не предполагается (и не ожидается), изменять чужие ресурсы, когда это не предполагается и т.д. и т.п..

Вполне возможно что новые колумнсы сами лезут туда, где просто начинается конфликт интересов с хаксом, который ну тупо не поддерживается, а автору колумнсов на него срать)
Скорее всего (ибо не полезу в дизасэмбл ради праздного интереса) всё много проще. Как я писал выше, foo_ui_hacks использует перехваты для реализации функционала работы со шрифтами. CUI, наверное, стал использовать WinAPI функцию, которую foo_ui_hacks не перехватывает, из-за этого "костыль" для шрифтов не отрабатывает.

CUI не использует перехваты (по крайней мере я не обнаружил этого в исходном коде), поэтому конфликта по перехватам точно там нет.

Да и любой сторонний компонент типа сплиттера тоже "костыль".
Почему? Брать владение ресурсом, который предполагает, что им будет кто-то владеть - это нормально.
Компоненты типа "панель" всегда работают через некоторый API (CUI/DUI), который позволяет родительской панели\компоненту управлять им (и передавать об этом информацию управляемому компоненту) без необходимости костылей. "Панель" знает, что её могут перемещать, менять размер, скрывать и т.п.. Это ожидаемое поведение.

Костыль - это, например, насильно перехватывать управление родительским окном (эффект прилипания к краю экрана в UiHacks): если fb2k реализует схожий функционал, то "двойное" управление окном приведёт к очень "интересным" багам.
Костыль - это редактировать чужой компонент, добавляя туда новое меню (изменение интерфейса foo_albumlist в UiHacks). Если компонент foo_albumlist изменит номер ресурса и переиспользует старый номер для других целей, то это приведёт к полному undefined behaviour'у.
И т.д. и т.п..

Дайте ссылку на пост, а то лень искать...
Пост на предыдущей странице.

foo_ui_hacks - это (в некотором смысле) эквивалент бинарного патча, который редактирует некоторые места программы с надеждой, что эти места никто и никогда не поменяет. Иногда эти места меняются и "патч" приводит к непредсказуемым последствиям.

При всем сказанном, "костыль" - это не плохо само по себе (и автор UiHacks проделал великолепную работу). Но каждый такой "костыль" несёт риски и это надо понимать. Перекладывать ответственность за сломанные костыли на разработчиков, которые эти костыли сами не делали и никогда не поддерживали, - это абсурд.
TheQwertiest
Репутация: 4
С нами: 7 лет 8 месяцев

Сообщение #355 LUR » 13.09.2019, 12:35

TheQwertiest, спасибо за ответ по полочкам. Кстати, перехват в JSplitter таки используется просто для таскания панелей плагинов средней кнопкой мыши. Сам увидел, к чему это порой приводит, хотя опцию отключаемой и сделал. Но при этом я там же вмешиваюсь в прорисовку панелей плагинов, включая ухищрения для отрисовки фона и копирования его в основное окно, так что как и WSH Panel Mod, так и впрочем JScript Panel, как его наследователь, имеет механизмы, для того, чтобы вмешаться в отрисовку плагинов. Я просто решил чуть-чуть поразмышлять на тему грани костылей с "обходом API". Конкретно в моем случае, я имею в виду так называемую псевдопрозрачность. Пытаясь реализовать сплиттер, в котором так же может находится такой же сплиттер и панели с псевдопрозрачностью, наткнулся на очень неоднозначное решение вопроса. Ну лично для меня, конечно.
LUR M
Модератор
Аватара
Откуда: Минск
Репутация: 418
С нами: 13 лет

Сообщение #356 foobar2000.club » 14.12.2019, 23:10

Вышла новая версия плагина: Columns UI v1.3.0 [14.12.2019]
foobar2000.club
Автор темы, Робот
Репутация: 10
С нами: 13 лет 5 месяцев

Сообщение #357 foobar2000.club » 15.02.2020, 23:10

Вышла новая версия плагина: Columns UI v1.4.0 [15.02.2020]
foobar2000.club
Автор темы, Робот
Репутация: 10
С нами: 13 лет 5 месяцев

Сообщение #358 foobar2000.club » 07.03.2020, 23:10

Вышла новая версия плагина: Columns UI v1.4.1 [06.03.2020]
foobar2000.club
Автор темы, Робот
Репутация: 10
С нами: 13 лет 5 месяцев

Сообщение #359 foobar2000.club » 29.08.2020, 23:10

Вышла новая версия плагина: Columns UI v1.5.0 [29.08.2020]
foobar2000.club
Автор темы, Робот
Репутация: 10
С нами: 13 лет 5 месяцев

Сообщение #360 foobar2000.club » 04.09.2020, 10:10

Вышла новая версия плагина: Columns UI v1.6.0 [03.09.2020]
foobar2000.club
Автор темы, Робот
Репутация: 10
С нами: 13 лет 5 месяцев

Пред.След.

Вернуться в Интерфейс - CUI