帮助解决这个设计问题

时间:2010-12-01 16:33:18

标签: c++ themes

我正在制作游戏GUI API。除了一个方面,它很顺利。我想要与GTK的工作方式类似的主题。我希望它的工作方式是每个GUI元素都有一个类似于Windows9X的默认绘制方式。如果发现为该类型的小部件设置了主题,则将使用这些位图绘制主题。

我最初的想法是创建一个Theme类,它将为位图提供getter和setter。

例如:

themeManager.setButtonHover(Bitmap *bitmap);

问题在于,如果我想创建新类型的小部件,它就不灵活。我可能最终想要创建一个使用与按钮不同的主题的superButton。这是这个概念的缺陷。我想要的概念是每个窗口小部件类型都有静态方法来为自己设置主题,构造函数使用它。

有没有更好的方法来做到这一点,我没想到?由于它是一个API,我想避免阅读文本文件,因此从文本文档中读取主题不是一种选择。

由于

1 个答案:

答案 0 :(得分:0)

可以将策略上的superButton模板化,然后使用默认策略执行默认策略,用户可以选择提供不同的策略吗?然后策略可以定义按钮的属性(例如悬停图像等) - 我所描述的内容是否有意义?