PoC GUI с датабиндингом и диспетчером евентов, который работает на WPF, WinForms и FEZ Panda (я, правда, пока не решил вопрос с клавиатурой, зато протестировал мультитрединг)
PoC = proof of concept. Компиляется DLL с приложением и подгружаются в разные EXE "hosts"
в случае панды подгружается в прошивку, но суть та же - дллка одна, приложение одно, гуи движки разные. В панде user-accessible мозгов 62 кб и флеша 148 кб :)
Вопросы: 1. От платформы только рендерер и топовые окна (кроме Panda) или небольшой реюз контролов/лэйаутов? А внутри движка Measure/Arrange по образу WPF или другая семантика? 2. Какой плагин вешает слева табы с такой раскраской? ;)
1. рендерер, да. не знаю, имеет ли смысл реимплементировать текст бокс, поэтому реюз контролов есть. лейауты не реюзаю.
2. Measure/Arrange. Но вообще хочу попробовать сделать constraint-based, а не layout-based анимацию. Типа, чтобы можно было написать "этот контрол отстоит от других в этом контейнере минимум на 50 и рядом с (А,Б,Ц)" и оно граф плавно лейаутило.
Меня существующие UI фреймворки по разным причинам не устраивают. Хочется поэкспериментировать с написанием своего, чтобы было потом проще формулировать требования под конкретные задачи.
А еще есть DirectX, OpenGL и прочая, которыми иногда хочется пользоваться, а в них гуев не предусмотрено. А эмбед - в основном шутки ради. Хотелось посмотреть, насколько дотнет масштабируется вниз-вверх.
Мне интересно, что именно послужило точкой отсчета для начала экспериментов над GUI. У меня во френдленте как минимум три человека начали ставить какие-то эксперименты в этой теме. Учитывая, что у меня еще 30го числа сдох роутер, и с тех пор френдленту никто не читал, источник должен быть несколько раньше.
Пытался скрестить GUI с комбинаторным подходом. Если наконец-то настрою аську, могу рассказать подробнее.
Я о том, что с помощью комбинаторов неплохо бы собирать отдельные элементы, чтобы избавиться от overhead'а, а он, похоже, про сборку форм в комбинаторном стиле. Но за ссылку все равно спасибо.
Да у него про всё помаленьку. :) Больше в сторону датабайндинга на комбинаторах.
К сборке геометрии на комбинаторах, если припомнить, ближе всего TeX. А что касается "сборки поведения", то там достаточно одного комбинатора, определяющего приоритеты. Впрочем это можно делать и как mixin в линии наследования. У меня в рабочем проекте с wxPython используется ряд своих mixins типа ZoomFont (менять размеры шрифта в окне колёсиком мышки), etc. А было бы что-нибудь хаскельное - mixins подрубались бы использованием комбинатора.
no subject
Date: 2010-11-01 12:31 pm (UTC)no subject
Date: 2010-11-01 12:57 pm (UTC)no subject
Date: 2010-11-02 12:44 am (UTC)Компиляется DLL с приложением и подгружаются в разные EXE "hosts"
в случае панды подгружается в прошивку, но суть та же - дллка одна, приложение одно, гуи движки разные. В панде user-accessible мозгов 62 кб и флеша 148 кб :)
no subject
Date: 2010-11-01 02:37 pm (UTC)Вопросы:
1. От платформы только рендерер и топовые окна (кроме Panda) или небольшой реюз контролов/лэйаутов? А внутри движка Measure/Arrange по образу WPF или другая семантика?
2. Какой плагин вешает слева табы с такой раскраской? ;)
no subject
Date: 2010-11-02 12:52 am (UTC)лейауты не реюзаю.
2. Measure/Arrange. Но вообще хочу попробовать сделать constraint-based, а не layout-based анимацию.
Типа, чтобы можно было написать "этот контрол отстоит от других в этом контейнере минимум на 50 и рядом с (А,Б,Ц)" и оно граф плавно лейаутило.
3. Productivity Power Tools - http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef
а вообще http://wizzard0.livejournal.com/157046.html
no subject
Date: 2010-11-01 02:37 pm (UTC)no subject
Date: 2010-11-02 12:55 am (UTC)А еще есть DirectX, OpenGL и прочая, которыми иногда хочется пользоваться, а в них гуев не предусмотрено. А эмбед - в основном шутки ради. Хотелось посмотреть, насколько дотнет масштабируется вниз-вверх.
no subject
Date: 2010-11-03 04:06 pm (UTC)http://git.clutter-project.org/mx/tree/README
no subject
Date: 2010-11-03 07:53 pm (UTC)Пытался скрестить GUI с комбинаторным подходом. Если наконец-то настрою аську, могу рассказать подробнее.
no subject
Date: 2010-11-03 10:53 pm (UTC)http://conal.net/blog/ и особенно http://conal.net/blog/tag/tv/
no subject
Date: 2010-11-04 02:31 pm (UTC)no subject
Date: 2010-11-04 08:50 pm (UTC)К сборке геометрии на комбинаторах, если припомнить, ближе всего TeX. А что касается "сборки поведения", то там достаточно одного комбинатора, определяющего приоритеты. Впрочем это можно делать и как mixin в линии наследования. У меня в рабочем проекте с wxPython используется ряд своих mixins типа ZoomFont (менять размеры шрифта в окне колёсиком мышки), etc. А было бы что-нибудь хаскельное - mixins подрубались бы использованием комбинатора.