Feature #560
closedAdd themes to clock face, hands and overlay
100%
Description
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
- 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.
Updated by Hammel about 8 years ago
- % Done changed from 0 to 10
This code is going into the implement-themes branch until it's ready.
Updated by Hammel about 8 years ago
- % Done changed from 10 to 70
Implemented themes handling in piclock. It was actually much easier than I thought. I now have two themes: test and roman. The latter is the default. I need to test these on hardware now.
All code is checked into the implement-themes branch.
Updated by Hammel about 8 years ago
- % Done changed from 70 to 100
Verified on hardware. Just needed a little packaging update.
Boom! Hoorah! Themes are added to piclock!
Closing issue.