
* IOT example, circular progress bar: Use a pen instead of a brush That way we don't have to draw two circles, and we can in addition use a conical gradient. * IOT example: Make circular progress bar a QskControl ... and internally use a QskPaintedNode for now. By doing this we already have the API ready (similar to QskProgressBar) and can swap the QskPaintedNode with an arc renderer at a later point in time.
85 lines
2.5 KiB
C++
85 lines
2.5 KiB
C++
/******************************************************************************
|
|
* Copyright (C) 2021 Edelhirsch Software GmbH
|
|
* This file may be used under the terms of the 3-clause BSD License
|
|
*****************************************************************************/
|
|
|
|
#pragma once
|
|
|
|
#include <QskGradient.h>
|
|
#include <QskSkin.h>
|
|
|
|
class Skin : public QskSkin
|
|
{
|
|
public:
|
|
class Palette
|
|
{
|
|
public:
|
|
Palette( const QskGradient& menuBar, const QskGradient& mainContent,
|
|
const QskGradient& box, const QColor& lightDisplay, const QColor& pieChart,
|
|
const QskGradient& roundButton, const QColor& weekdayBox,
|
|
const QColor& text, const QColor& shadow,
|
|
const QskGradient& circularProgressBarGroove )
|
|
: menuBar( menuBar )
|
|
, mainContent( mainContent )
|
|
, box( box )
|
|
, lightDisplay( lightDisplay )
|
|
, pieChart( pieChart )
|
|
, roundButton( roundButton )
|
|
, weekdayBox( weekdayBox )
|
|
, text( text )
|
|
, shadow( shadow )
|
|
, circularProgressBarGroove( circularProgressBarGroove )
|
|
{
|
|
}
|
|
QskGradient menuBar;
|
|
QskGradient mainContent;
|
|
QskGradient box;
|
|
QColor lightDisplay;
|
|
QColor pieChart;
|
|
QskGradient roundButton;
|
|
QColor weekdayBox;
|
|
QColor text;
|
|
QColor shadow;
|
|
QskGradient circularProgressBarGroove;
|
|
};
|
|
|
|
Skin( const Palette& palette, QObject* parent = nullptr );
|
|
~Skin() override;
|
|
|
|
enum SkinFontRole
|
|
{
|
|
TitleFont = QskSkin::HugeFont + 1,
|
|
};
|
|
|
|
private:
|
|
void initHints( const Palette& palette );
|
|
};
|
|
|
|
class DaytimeSkin : public Skin
|
|
{
|
|
public:
|
|
DaytimeSkin( QObject* parent = nullptr )
|
|
: Skin(
|
|
Skin::Palette( {"#6D7BFB"}, {"#fbfbfb"}, {"#ffffff"},
|
|
"#ffffff", "#ffffff", {"#f7f7f7"},
|
|
{"#f4f4f4"}, Qt::black, Qt::black,
|
|
{ Qt::Horizontal, { { 0.0, 0xc4c4c4 }, { 0.5, 0xf8f8f8 }, { 1.0, 0xc4c4c4 } } } )
|
|
, parent )
|
|
{
|
|
}
|
|
};
|
|
|
|
class NighttimeSkin : public Skin
|
|
{
|
|
public:
|
|
NighttimeSkin( QObject* parent = nullptr )
|
|
: Skin(
|
|
Skin::Palette( {"#2937A7"}, {"#040404"}, {"#000000"},
|
|
"#000000", "#000000", {"#0a0a0a"},
|
|
{"#0c0c0c"}, Qt::white, Qt::white,
|
|
{ Qt::Horizontal, { { 0.0, 0x666666 }, { 0.5, 0x222222 }, { 1.0, 0x333333 } } } )
|
|
, parent )
|
|
{
|
|
}
|
|
};
|