Помогите с этой проблемой дизайна - PullRequest
0 голосов
/ 01 декабря 2010

Я делаю игровой графический интерфейс API. Это идет очень хорошо, за исключением одного аспекта. Я хочу темы, похожие на то, как работает GTK. Я хочу, чтобы все работало так, чтобы каждый элемент графического интерфейса по умолчанию рисовался как Windows9X. Если будет найдено, что тема установлена ​​для этого типа виджета, она будет нарисована с этими растровыми изображениями.

Моя первоначальная концепция заключалась в создании класса Theme, в котором были бы методы получения и установки для растровых изображений.

например:

themeManager.setButtonHover(Bitmap *bitmap);

Проблема в том, что он не может быть гибким, если я хочу создавать новые типы виджетов. Возможно, я в конечном итоге захочу создать супербаттон, который будет использовать тему, отличную от кнопки. Это недостаток этой концепции. Концепция, о которой я думаю, заключается в том, что каждый тип виджета имеет статические методы для установки темы для себя, и конструктор использует это.

Есть ли лучшие способы сделать это, о которых я не думаю? Поскольку это API, я хочу избегать чтения текстовых файлов, поэтому чтение темы из текстового документа не вариант.

Спасибо

1 Ответ

0 голосов
/ 01 декабря 2010

Может быть шаблоном superButton для политики , а затем иметь политику по умолчанию , которая используется по умолчанию, и пользователь может предоставить другую политику?Затем политика может определить атрибуты кнопки (например, изображение при наведении и т. Д.) - имеет ли смысл то, что я описываю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...