yorool_gui

Categories:

GUI на Rust - мой подход к снаряду

Выложил прототип GUI на Rust'e. Назвал, разумееется, yorool_gui :-)

Пока умеет рисовать кнопки, нажимать кнопки и передавать сообщения между кнопками. Прототип рисует три кнопки и имитирует поведение radio buttons на них.

Сейчас популярный подход к GUI — делать в стиле Model-View-Controller. В такой архитектуре сделан Elm, на Расте сейчас развивается Azul. Оно конечно неплохо, но мне не нравится — я уже покусан MFC и хочу объекты с внутренним состоянием и чтобы между ними сообщения бегали.

Так что сейчас архитектура получилась такой:

  1. Виждет может владеть другими виджетами, так что получается дерево из них
  2. Все виждеты в дереве — это trait object типа Widget<MSG>
  3. MSG — это тип, из которого каждый виджет может извлечь сообщение, адресованное ему и завернуть в него свои сообщения
  4. MSG обрабатываются вот в таком примерно порядке:
    — собрать и обработать от всех виждетов сообщения (например о том, что у них что-то изменилось)
    —разослать им запросы на дополнительную информацию
    — собрать и обработать ответы и разослать команды на изменения

Для отрисовки и ввода я взял ggez — по прочтению вот этого обзора. Ну автор обзора (и он же основной автор ggez) предвзят наверное — но все нужное в ggez есть и пишется на нем легко.

Error

Anonymous comments are disabled in this journal

default userpic

Your reply will be screened

Your IP address will be recorded