Project

General

Profile

Actions

Feature #560

closed

Add themes to clock face, hands and overlay

Added by Hammel about 8 years ago. Updated about 8 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 #1

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.

Actions #2

Updated by Hammel about 8 years ago

  • Description updated (diff)
Actions #3

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.

Actions #4

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.

Actions #5

Updated by Hammel about 8 years ago

  • Status changed from In Progress to Closed
Actions

Also available in: Atom PDF