New Theme Api Goals

See for Owen's thoughts on a new theme API.


  1. Make it easier for third party toolkits to use GTK+ theme engines
  2. Make it easier for for theme authors to write themes
  3. Improve support for "native" themes such as the Windows theme
  4. Allow custom widgets to look emulate the appearance of existing widgets as well as providing styled drawing operations
  5. Support animations between states


To achieve the above goals:

  • Don't require GtkWidget instances (1)

  • Allow theme engines to set style properties and colours (1, 3)
  • Widget based rendering model (paint_button, check, menu, etc) (2, 4)
  • Some abstract functions (paint_shadow, line, text, etc) (2, 4)
  • All drawing done using cairo (1)
  • Well defined palette of colours (2)
  • Widget flags (focused, checked) in addition to states (2)

Other Issues

  • Some widgets do not paint in all states (e.g. no prelight tabs or menubar items)
  • Not all widgets are transparent. This makes things such as rounded corners difficult (e.g. in GtkEntry)

Projects/GTK/NewThemeApi/Goals (last edited 2018-12-05 15:46:07 by EmmanueleBassi)