2010-12-01 4 views
0

Je crée une API GUI de jeu. Cela se passe très bien, sauf pour un aspect. Je veux des thèmes similaires à ceux de GTK. La façon dont je veux que cela fonctionne est que chaque élément de l'interface graphique aura une manière de dessiner Windows9X par défaut. S'il est trouvé qu'un thème est défini pour ce type de widget, il sera dessiné avec ces bitmaps.Aide pour ce problème de conception

Mon concept original était de créer une classe de thème qui aurait des getters et des setters pour les bitmaps.

par exemple:

themeManager.setButtonHover(Bitmap *bitmap); 

Le problème avec cela, est qu'il n'y a pas flexable si je veux créer de nouveaux types de Widgets. Je pourrais éventuellement vouloir créer un superButton qui utiliserait un thème différent d'un bouton. C'est la faille avec ce concept. Le concept que je pense aller avec est que chaque type de widget a des méthodes statiques pour définir le thème pour lui-même et le constructeur utilise cela.

Y a-t-il de meilleures façons de faire cela auxquelles je ne pense pas? Comme il s'agit d'une API, je veux éviter de lire les fichiers texte, donc lire le thème à partir d'un document texte n'est pas une option.

Merci

Répondre

0

Peut-être le superButton sur modèle une politique et une politique par défaut qui fait la valeur par défaut et l'utilisateur a la possibilité de fournir une autre politique? La politique pourrait alors définir les attributs du bouton (tels que l'image de survol, etc.) - est-ce que ce que je décris est logique?

+0

oh .. avez-vous choisi d'aller avec cette idée? Cela a-t-il fonctionné? – Nim