344 lines
6.3 KiB
C
344 lines
6.3 KiB
C
|
/*
|
||
|
* Copyright (c) 2019 CTCaer
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or modify it
|
||
|
* under the terms and conditions of the GNU General Public License,
|
||
|
* version 2, as published by the Free Software Foundation.
|
||
|
*
|
||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||
|
* more details.
|
||
|
*
|
||
|
* You should have received a copy of the GNU General Public License
|
||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
*@file lv_themes.h
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#ifndef LV_THEMES_H
|
||
|
#define LV_THEMES_H
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
/*********************
|
||
|
* INCLUDES
|
||
|
*********************/
|
||
|
#ifdef LV_CONF_INCLUDE_SIMPLE
|
||
|
#include "lv_conf.h"
|
||
|
#else
|
||
|
#include "../../lv_conf.h"
|
||
|
#endif
|
||
|
|
||
|
#include "../lv_core/lv_style.h"
|
||
|
|
||
|
/*********************
|
||
|
* DEFINES
|
||
|
*********************/
|
||
|
|
||
|
/**********************
|
||
|
* TYPEDEFS
|
||
|
**********************/
|
||
|
|
||
|
typedef struct {
|
||
|
lv_style_t *bg;
|
||
|
lv_style_t *panel;
|
||
|
|
||
|
#if USE_LV_CONT != 0
|
||
|
lv_style_t *cont;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_BTN != 0
|
||
|
struct {
|
||
|
lv_style_t *rel;
|
||
|
lv_style_t *pr;
|
||
|
lv_style_t *tgl_rel;
|
||
|
lv_style_t *tgl_pr;
|
||
|
lv_style_t *ina;
|
||
|
} btn;
|
||
|
#endif
|
||
|
|
||
|
|
||
|
#if USE_LV_IMGBTN != 0
|
||
|
struct {
|
||
|
lv_style_t *rel;
|
||
|
lv_style_t *pr;
|
||
|
lv_style_t *tgl_rel;
|
||
|
lv_style_t *tgl_pr;
|
||
|
lv_style_t *ina;
|
||
|
} imgbtn;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_LABEL != 0
|
||
|
struct {
|
||
|
lv_style_t *prim;
|
||
|
lv_style_t *sec;
|
||
|
lv_style_t *hint;
|
||
|
} label;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_IMG != 0
|
||
|
struct {
|
||
|
lv_style_t *light;
|
||
|
lv_style_t *dark;
|
||
|
} img;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_LINE != 0
|
||
|
struct {
|
||
|
lv_style_t *decor;
|
||
|
} line;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_LED != 0
|
||
|
lv_style_t *led;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_BAR != 0
|
||
|
struct {
|
||
|
lv_style_t *bg;
|
||
|
lv_style_t *indic;
|
||
|
} bar;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_SLIDER != 0
|
||
|
struct {
|
||
|
lv_style_t *bg;
|
||
|
lv_style_t *indic;
|
||
|
lv_style_t *knob;
|
||
|
} slider;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_LMETER != 0
|
||
|
lv_style_t *lmeter;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_GAUGE != 0
|
||
|
lv_style_t *gauge;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_ARC != 0
|
||
|
lv_style_t *arc;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_PRELOAD != 0
|
||
|
lv_style_t *preload;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_SW != 0
|
||
|
struct {
|
||
|
lv_style_t *bg;
|
||
|
lv_style_t *indic;
|
||
|
lv_style_t *knob_off;
|
||
|
lv_style_t *knob_on;
|
||
|
} sw;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_CHART != 0
|
||
|
lv_style_t *chart;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_CALENDAR != 0
|
||
|
struct {
|
||
|
lv_style_t *bg;
|
||
|
lv_style_t *header;
|
||
|
lv_style_t *header_pr;
|
||
|
lv_style_t *day_names;
|
||
|
lv_style_t *highlighted_days;
|
||
|
lv_style_t *inactive_days;
|
||
|
lv_style_t *week_box;
|
||
|
lv_style_t *today_box;
|
||
|
} calendar;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_CB != 0
|
||
|
struct {
|
||
|
lv_style_t *bg;
|
||
|
struct {
|
||
|
lv_style_t *rel;
|
||
|
lv_style_t *pr;
|
||
|
lv_style_t *tgl_rel;
|
||
|
lv_style_t *tgl_pr;
|
||
|
lv_style_t *ina;
|
||
|
} box;
|
||
|
} cb;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_BTNM != 0
|
||
|
struct {
|
||
|
lv_style_t *bg;
|
||
|
struct {
|
||
|
lv_style_t *rel;
|
||
|
lv_style_t *pr;
|
||
|
lv_style_t *tgl_rel;
|
||
|
lv_style_t *tgl_pr;
|
||
|
lv_style_t *ina;
|
||
|
} btn;
|
||
|
} btnm;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_KB != 0
|
||
|
struct {
|
||
|
lv_style_t *bg;
|
||
|
struct {
|
||
|
lv_style_t *rel;
|
||
|
lv_style_t *pr;
|
||
|
lv_style_t *tgl_rel;
|
||
|
lv_style_t *tgl_pr;
|
||
|
lv_style_t *ina;
|
||
|
} btn;
|
||
|
} kb;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_MBOX != 0
|
||
|
struct {
|
||
|
lv_style_t *bg;
|
||
|
struct {
|
||
|
lv_style_t *bg;
|
||
|
lv_style_t *rel;
|
||
|
lv_style_t *pr;
|
||
|
} btn;
|
||
|
} mbox;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_PAGE != 0
|
||
|
struct {
|
||
|
lv_style_t *bg;
|
||
|
lv_style_t *scrl;
|
||
|
lv_style_t *sb;
|
||
|
} page;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_TA != 0
|
||
|
struct {
|
||
|
lv_style_t *area;
|
||
|
lv_style_t *oneline;
|
||
|
lv_style_t *cursor;
|
||
|
lv_style_t *sb;
|
||
|
} ta;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_SPINBOX != 0
|
||
|
struct {
|
||
|
lv_style_t *bg;
|
||
|
lv_style_t *cursor;
|
||
|
lv_style_t *sb;
|
||
|
} spinbox;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_LIST
|
||
|
struct {
|
||
|
lv_style_t *bg;
|
||
|
lv_style_t *scrl;
|
||
|
lv_style_t *sb;
|
||
|
struct {
|
||
|
lv_style_t *rel;
|
||
|
lv_style_t *pr;
|
||
|
lv_style_t *tgl_rel;
|
||
|
lv_style_t *tgl_pr;
|
||
|
lv_style_t *ina;
|
||
|
} btn;
|
||
|
} list;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_DDLIST != 0
|
||
|
struct {
|
||
|
lv_style_t *bg;
|
||
|
lv_style_t *bgo;
|
||
|
lv_style_t *pr;
|
||
|
lv_style_t *sel;
|
||
|
lv_style_t *sb;
|
||
|
} ddlist;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_ROLLER != 0
|
||
|
struct {
|
||
|
lv_style_t *bg;
|
||
|
lv_style_t *sel;
|
||
|
} roller;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_TABVIEW != 0
|
||
|
struct {
|
||
|
lv_style_t *bg;
|
||
|
lv_style_t *indic;
|
||
|
struct {
|
||
|
lv_style_t *bg;
|
||
|
lv_style_t *rel;
|
||
|
lv_style_t *pr;
|
||
|
lv_style_t *tgl_rel;
|
||
|
lv_style_t *tgl_pr;
|
||
|
} btn;
|
||
|
} tabview;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_TILEVIEW != 0
|
||
|
struct {
|
||
|
lv_style_t *bg;
|
||
|
lv_style_t *scrl;
|
||
|
lv_style_t *sb;
|
||
|
} tileview;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_TABLE != 0
|
||
|
struct {
|
||
|
lv_style_t *bg;
|
||
|
lv_style_t *cell;
|
||
|
} table;
|
||
|
#endif
|
||
|
|
||
|
#if USE_LV_WIN != 0
|
||
|
struct {
|
||
|
lv_style_t *bg;
|
||
|
lv_style_t *sb;
|
||
|
lv_style_t *header;
|
||
|
struct {
|
||
|
lv_style_t *bg;
|
||
|
lv_style_t *scrl;
|
||
|
} content;
|
||
|
struct {
|
||
|
lv_style_t *rel;
|
||
|
lv_style_t *pr;
|
||
|
} btn;
|
||
|
} win;
|
||
|
#endif
|
||
|
} lv_theme_t;
|
||
|
|
||
|
/**********************
|
||
|
* GLOBAL PROTOTYPES
|
||
|
**********************/
|
||
|
|
||
|
/**
|
||
|
* Set a theme for the system.
|
||
|
* From now, all the created objects will use styles from this theme by default
|
||
|
* @param th pointer to theme (return value of: 'lv_theme_init_xxx()')
|
||
|
*/
|
||
|
void lv_theme_set_current(lv_theme_t *th);
|
||
|
|
||
|
/**
|
||
|
* Get the current system theme.
|
||
|
* @return pointer to the current system theme. NULL if not set.
|
||
|
*/
|
||
|
lv_theme_t * lv_theme_get_current(void);
|
||
|
|
||
|
/**********************
|
||
|
* MACROS
|
||
|
**********************/
|
||
|
|
||
|
/**********************
|
||
|
* POST INCLUDE
|
||
|
*********************/
|
||
|
#include "lv_theme_hekate.h"
|
||
|
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
} /* extern "C" */
|
||
|
#endif
|
||
|
|
||
|
#endif /*LV_THEMES_H*/
|