Feature #560
Updated by Hammel almost 8 years ago
This is relatively easy although the rotation of the hands is a little confusing (to me, so far). But the background face and overlay (like adding a glass highlight) are straightforward.
How this needs to be done:
* Add support for a theme directory
* Add support for a current theme configuration, defaulting to original drawn face and hands
* Design theme config file format, including validation of the content
** Maximum face size: 512
** Scale hands: face size * {.97 second, .85 minute, .65 hour}
** Hands have rotation point: x/y offset for where rotation should occur
* Write functions for loading hands and rotating them
* If theme available, do drawing:
** Draw background
** Call hour hand, draw it
** Call minute hand, draw it
** Call second hand, draw it
** Draw overlay
The hand functions have to
* Be loaded into their own cairo surface
* Scale the hand
* Rotate the hand
* position the hand after the call
* merged into the main cairo surface
See http://zetcode.com/gfx/cairo/compositing/
Also see this for how to translate and rotate the hands: http://stackoverflow.com/a/35996791. Note that this also shows the use of a Cairo pattern that is generated from the source and is used for translating/rotating.