Project

General

Profile

Actions

Feature #560

closed

Add themes to clock face, hands and overlay

Added by Hammel over 7 years ago. Updated over 7 years ago.

Status:
Closed
Priority:
Immediate
Assignee:
Target version:
Start date:
16 Dec 2016
Due date:
% Done:

100%

Estimated time:
Severity:
01 - Critical

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
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.

Actions

Also available in: Atom PDF