title: Help with this design issue
body: <p>I'm making a game GUI API. It is coming along very nicely except for one aspect. I want themes similar to how GTK works. The way I want it to work is that every GUI element will have a default Windows9X-like way of drawing themselves. If it is found that a theme is set for that type of widget, it will be drawn with those bitmaps. </p>
  
  <p>My original concept was to create a Theme class which would have getters and setters for the bitmaps.</p>
  
  <p>for example:</p>
  
  <pre><code>themeManager.setButtonHover(Bitmap *bitmap);
  </code></pre>
  
  <p>The problem with this, is that it is not flexable if I want to create new types of Widgets. I may eventually want to create a superButton which would use a different theme than a button. This is the flaw with that concept. The concept I'm thinking of going with is that each widget type has static methods to set the theme for itself and the constructor uses that.</p>
  
  <p>Are there better ways of doing this that I'm not thinking of? Since it is an API, I want to avoid reading text files, so reading the theme from a text document is not an option.</p>
  
  <p>Thanks</p>