wiki:1.x_Brainstorm
Last modified 7 years ago Last modified on 08/15/10 16:24:06

Brainstorming for the complete rewrite of gtk-engine that's going to happen for 1.x

Goals

  • provide a few different styles
  • move general cairo code into cairo-support.{c,h}
  • move gtk dependent stuff into gtk-support.{c,h} (sans things in *-style.{c,h} and nodoka-theme-main.c)
  • move general support code for widget drawing independent on both cairo and gtk into widget-support.{c,h}
  • each style should have nodoka-draw-<style>.{c/h}
  • support all text directions in the drawing code
  • support for animations of state changes, progress bar stripes and maybe blinking for hilighted widgets in drawing code
  • rethink RGBA support -- is it desirable to have and if so in what way?
  • more flexible gradients handling, style settings for gradients should be separated into nodoka-draw-<style>.h
  • add test suite for testing the drawing functions
  • maybe add some test for testing also the gtk code

Project planing

  • Phase one (in progress) -- Initial widget design phase -- prepare a static svg image with widget preview for each style
  • Phase two -- Detailed widget design -- work out details of widget design, especially the look of other states than those displayed in widget-preview
  • Phase three -- Implement drawing code and write a test suite for this code
  • Phase four -- Write the engine itself (if gtk3 widget-draw differs from gtk2, write one engine for gtk2 and one for gtk3)
  • Phase five -- Release first public alpha, start rewriting the various themes (midnight, silver, ...), iron out smaller design details, work on code optimizations
  • Phase six -- Release first public beta, entering bugfix-only phase
  • Phase seven -- GA