Контролы без поддержки ОС
От: maks1180  
Дата: 02.05.21 20:40
Оценка:
Хочу сделать (или найти) следующую реализацию контролов:
1) Приложение НЕ будет создавать контрол через Windows API, т.е. ОС не будет знать состав контролов этого окна
2) вместо Windows, приложение само будет раскидывать сообщения по дочерным окнам (контролам).

Плюсы:
1) потом планирую портировать приложение под Linux и Mac, думаю с таким подходом будет проще портировать
и тестировать нужно будет только для 1 ОС полностью, а для остальных ОС только частично.
2) будет выглядеть и вести себя одинаково вне зависимости от ОС и версии ОС.
3) можно обойтись без тяжелых фреймворков, таких как QT
4) ОС не будет знать состав контролов этого окна. Хакерам будет сложнее.

Какие минусы у данного подхода ?
Существуют ли такие реализации ?
===============================================
(реклама, удалена модератором)
Отредактировано 02.05.2021 20:42 maks1180 . Предыдущая версия . Еще …
Отредактировано 02.05.2021 20:42 maks1180 . Предыдущая версия .
Re: Контролы без поддержки ОС
От: Михaил  
Дата: 02.05.21 21:06
Оценка: +6
Здравствуйте, maks1180, Вы писали:

M>Хочу сделать (или найти) следующую реализацию контролов:

M>1) Приложение НЕ будет создавать контрол через Windows API, т.е. ОС не будет знать состав контролов этого окна
M>2) вместо Windows, приложение само будет раскидывать сообщения по дочерным окнам (контролам).

M>Какие минусы у данного подхода ?

M>Существуют ли такие реализации ?

Qt?
Re[2]: Контролы без поддержки ОС
От: maks1180  
Дата: 02.05.21 21:08
Оценка:
М>Qt?

Разве он так умеет ?
===============================================
(реклама, удалена модератором)
Re: Контролы без поддержки ОС
От: RonWilson Россия  
Дата: 02.05.21 21:25
Оценка: +9
Здравствуйте, maks1180, Вы писали:

M>Какие минусы у данного подхода ?

Вместо работы на полезными функциями будет работа над этими контролами, да которых, по сути, никому нет никакого дела — сделаны они нативно или вот так.

M>Существуют ли такие реализации ?

Можно взять любую оконную библиотеку эпохи MSDOS и портировать под нужную ОС (рисование, обработка манимуалятора типа "мышь"), выглядеть будет ээ, соотвествующе.
Re[3]: Контролы без поддержки ОС
От: Zhendos  
Дата: 02.05.21 21:29
Оценка: +3
Здравствуйте, maks1180, Вы писали:

М>>Qt?


M>Разве он так умеет ?


Он именно так и работает.
Re[2]: Контролы без поддержки ОС
От: Zhendos  
Дата: 02.05.21 21:31
Оценка: +1
Здравствуйте, RonWilson, Вы писали:

M>>Существуют ли такие реализации ?

RW>Можно взять любую оконную библиотеку эпохи MSDOS и портировать под нужную ОС (рисование, обработка манимуалятора типа "мышь"), выглядеть будет ээ, соотвествующе.

Соотвестующе круто конечно имелось ввиду. Вот кстати нужная библиотека https://github.com/magiblot/tvision
Re[3]: Контролы без поддержки ОС
От: Михaил  
Дата: 02.05.21 22:57
Оценка:
Здравствуйте, maks1180, Вы писали:

М>>Qt?


M>Разве он так умеет ?


Да. Плюсы — кросплатформенность малой кровью, отличная кастомизируемость стилями, минусы — не до конца нативное поведение таких контролов.
Еще есть sciter (тоже сам рисует, html, css и c++) и для ныне популярный рисующий в хромиуме (не с++) electron (js, html, css)
Re[3]: Контролы без поддержки ОС
От: denis.st Россия  
Дата: 02.05.21 23:46
Оценка: -1
RW>>Можно взять любую оконную библиотеку эпохи MSDOS и портировать под нужную ОС (рисование, обработка манимуалятора типа "мышь"), выглядеть будет ээ, соотвествующе.

Z>Соотвестующе круто конечно имелось ввиду. Вот кстати нужная библиотека https://github.com/magiblot/tvision


именно. как крутое, олдскульно-душещипательное говно
Re: Контролы без поддержки ОС
От: denis.st Россия  
Дата: 02.05.21 23:49
Оценка: +1
M>1) ... и тестировать нужно будет только для 1 ОС полностью, а для остальных ОС только частично.
M>2) будет выглядеть и вести себя одинаково вне зависимости от ОС и версии ОС.
M>Какие минусы у данного подхода ?
в том, что наверняка юзеры будут плеваться от поведения этих "кроссплатформенных" контроллов, и их придётся долго и упорно допиливать на каждой поддержанной платформе, добавляя самостийные плюшки
Re: Контролы без поддержки ОС
От: DenisCh Россия  
Дата: 03.05.21 02:21
Оценка:
Здравствуйте, maks1180, Вы писали:

M>Хочу сделать (или найти) следующую реализацию контролов:

M>1) Приложение НЕ будет создавать контрол через Windows API, т.е. ОС не будет знать состав контролов этого окна
M>2) вместо Windows, приложение само будет раскидывать сообщения по дочерным окнам (контролам).

M>Существуют ли такие реализации ?


Ага. 1сV8, например. Запусти её и посмотри винспаем её контролы...
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re: accessibility & usability
От: watchmaker  
Дата: 03.05.21 02:50
Оценка: 23 (7) +15
О, как раз сейчас многие приложения обзаводятся интерфейсом на html+js (и браузерным движком чтобы всё неспешно рендрить ). Само по себе это терпимо, пока кто-то не начинает для пущей "кроссплатформенности" не использовать контролы браузера (они же не такие красивые как хочется), а самому рисовать кнопки (накладывая на условный div нужный стиль) и потом в js обрабатывать клики на них.

И действительно, не проблема нарисовать кнопку, по которой можно кликнуть мышкой.
Проблемы начинаются дальше. Оказывается, что для удобной работы с приложением этого недостаточно.
Ладно, для последнего пункта ещё можно понять почему человек без близорукости может забыть про голосовое управление — ведь он им ни разу не пользовался. Но похоже это та же причина, по которой в подобных интерфейсах постоянно повторяются одни и те же ошибки с неработающими стандартными комбинациями клавиш, — видимо автор также не знал или забыл о них. А сценарий "нажали на кнопку мышкой" отлично прошёл тестирование. Но что будет, если одновременно нажать Ctrl или использовать мультитач не проверялось — автор библиотеки так не делал, значит и пользователь хотеть не должен.

В общем, нарисовать контрол очень просто. Сложно сделать его удобным и совместимым со всеми средствами ввода и вывода.
Re: Контролы без поддержки ОС
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 03.05.21 04:09
Оценка:
Здравствуйте, maks1180, Вы писали:

M>Существуют ли такие реализации ?


imgui. Хорошая бибилотека — 30к звёзд на гитхабе так просто не появляются.
Re[2]: accessibility & usability
От: maks1180  
Дата: 03.05.21 09:57
Оценка:
W>
  • Например, люди при работа с текстом перемещаются между контролами с использованием клавиатуры, но для этого нужно сделать tab index.
    Нужно сделать, но это не сложно.

    W>
  • Скопировать текст ошибки из окна в буфер обмена? Стандартный диалог так умеет. А для кастомного нужно снова код писать. Или пользователю придётся вручную перенабирать текст.
    Это да, нужно делать.

    W>
  • Забыли в своём коде отрисовки учесть DPI? Приложение выглядит мелко/крупно. И вообще есть проблемы с масштабированием.
    Это в любом случаи нужно делать иначе, ОС сама растянет окно и будет плохо это выглядеть.

    W>
  • Стиль приложения может и единый, но зато в каждой ОС выглядит чужеродно.
    Например TeamViewer — они сделали нативные контролы в MacOS, но в Windows они нарисовали такие же как в MacOS — выглядит неплохо (по моему мнению).

    W>
  • Адок с accessibility в широком смысле слова: например, содержимое нативных контролов ОС можно прочитать и ими можно управлять голосом. Если ты забыл написать соответствующий код, то в лучшем случае услышишь от своего приложения что-то вроде "номер вашего заказа <order.png>"
    Вот это я НЕ учёт, спасибо
  • ===============================================
    (реклама, удалена модератором)
    Re[2]: Контролы без поддержки ОС
    От: Mr.Delphist  
    Дата: 05.05.21 08:34
    Оценка: 1 (1)
    Здравствуйте, DenisCh, Вы писали:

    DC>Ага. 1сV8, например. Запусти её и посмотри винспаем её контролы...


    Ну и WPF/UWP/XAML в ту же копилку — всё owner-draw и ровно один HWND на окно
    Re[2]: accessibility & usability
    От: ути-пути Россия  
    Дата: 06.05.21 14:43
    Оценка: +2
    Здравствуйте, watchmaker, Вы писали:

    W>Но похоже это та же причина, по которой в подобных интерфейсах постоянно повторяются одни и те же ошибки с неработающими стандартными комбинациями клавиш


    Задолбало. Куча десктопного софта, где не работают в текстовых полях C-Ins, S-Ins, S-Del.
    Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
    Re[3]: accessibility & usability
    От: Евгений Музыченко Франция https://software.muzychenko.net/ru
    Дата: 06.05.21 16:08
    Оценка: +2
    Здравствуйте, ути-пути, Вы писали:

    УП>Задолбало. Куча десктопного софта, где не работают в текстовых полях C-Ins, S-Ins, S-Del.


    Зато стильномодномолодежно.
    Re: Контролы без поддержки ОС
    От: reversecode google
    Дата: 06.05.21 16:50
    Оценка:
    https://github.com/fffaraz/awesome-cpp#gui
    Re: Контролы без поддержки ОС
    От: cppguard  
    Дата: 06.05.21 22:19
    Оценка:
    Здравствуйте, maks1180, Вы писали:

    M>4) ОС не будет знать состав контролов этого окна. Хакерам будет сложнее.


    Security through obscurity? На самом нижнем слое всё равно придётся работать с системными сообщениями от мыши и клавиатуры, и obscurity будет насмарку.
    Re: Контролы без поддержки ОС
    От: Nikolaz Германия www.nikeware.com
    Дата: 17.06.21 07:15
    Оценка:
    Здравствуйте, maks1180, Вы писали:

    M>Существуют ли такие реализации ?

    sciter.com ?
    Re[3]: Контролы без поддержки ОС
    От: maks1180  
    Дата: 24.09.21 05:40
    Оценка:
    MD>Ну и WPF/UWP/XAML в ту же копилку — всё owner-draw и ровно один HWND на окно

    это .NET относиться ?
    ===============================================
    (реклама, удалена модератором)
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.