This commit is contained in:
qiyongshuang
2026-08-10 10:47:09 +08:00
parent 804daf39a2
commit dfe5ceea43
150 changed files with 20271 additions and 58 deletions
Binary file not shown.
@@ -0,0 +1,377 @@
/**
* @file images.h
* @brief Image resource table generated by WCHGUIDesigner.
* @note Byte order: Big Endian
*/
#ifndef _IMAGES_H_
#define _IMAGES_H_
#include <stdint.h>
#include <stddef.h>
typedef enum {
IMAGE_NONE = 0xFFFF,
// === Raw images (0b000) ===
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0030 = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 0),
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0031 = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 1),
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0032 = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 2),
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0033 = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 3),
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0034 = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 4),
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0035 = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 5),
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0036 = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 6),
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0037 = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 7),
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0038 = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 8),
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0039 = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 9),
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_003A = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 10),
// === CLUT images (0b010) ===
IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCFG1 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 11),
IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCFG2 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 12),
IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCOLOR1 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 13),
IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCOLOR2 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 14),
IMAGE_RES_IMG_TPL_MAIN_PAGERELDATA1 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 15),
IMAGE_RES_IMG_TPL_MAIN_PAGERELDATA2 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 16),
IMAGE_RES_IMG_TPL_MAIN_PAGEANIMAL1 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 17),
IMAGE_RES_IMG_TPL_MAIN_PAGEANIMAL2 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 18),
IMAGE_RES_IMG_TPL_MAIN_PAGEMODEL1 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 19),
IMAGE_RES_IMG_TPL_MAIN_PAGEMODEL2 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 20),
IMAGE_RES_IMG_TPL_MAIN_PAGESETTING1 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 21),
IMAGE_RES_IMG_TPL_MAIN_PAGESETTING2 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 22),
IMAGE_RES_IMG_TPL_MAIN_BAT00 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 23),
IMAGE_RES_IMG_TPL_MAIN_BAT01 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 24),
IMAGE_RES_IMG_TPL_MAIN_BAT02 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 25),
IMAGE_RES_IMG_TPL_MAIN_BAT03 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 26),
IMAGE_RES_IMG_TPL_MAIN_BAT04 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 27),
IMAGE_RES_IMG_TPL_MAIN_BAT05 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 28),
IMAGE_RES_IMG_TPL_MAIN_BAT06 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 29),
IMAGE_RES_IMG_TPL_MAIN_BAT07 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 30),
IMAGE_RES_IMG_TPL_MAIN_BAT08 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 31),
IMAGE_RES_IMG_TPL_MAIN_BAT09 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 32),
IMAGE_RES_IMG_TPL_MAIN_BAT10 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 33),
IMAGE_RES_IMG_TPL_MAIN_BAT11 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 34),
IMAGE_RES_IMG_TPL_MAIN_BAT12 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 35),
IMAGE_RES_IMG_TPL_MAIN_BAT13 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 36),
IMAGE_RES_IMG_TPL_MAIN_BAT14 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 37),
IMAGE_RES_IMG_TPL_MAIN_BAT15 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 38),
IMAGE_RES_IMG_TPL_MAIN_BAT16 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 39),
IMAGE_RES_IMG_TPL_MAIN_BAT17 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 40),
IMAGE_RES_IMG_TPL_MAIN_BAT18 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 41),
IMAGE_RES_IMG_TPL_MAIN_BAT19 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 42),
IMAGE_RES_IMG_TPL_MAIN_BAT20 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 43),
IMAGE_RES_IMG_TPL_MAIN_BAT21 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 44),
IMAGE_RES_IMG_TPL_MAIN_CON1 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 45),
IMAGE_RES_IMG_TPL_MAIN_CON2 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 46),
IMAGE_RES_IMG_TPL_MAIN_CON3 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 47),
IMAGE_RES_IMG_TPL_MAIN_BG = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 48),
} image_index_t;
static const image_info_t image_table[] = {
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0030
.addr = 0x0001DED4,
.width = 10,
.height = 26,
.data_size = 520,
},
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0031
.addr = 0x0001E0DC,
.width = 10,
.height = 26,
.data_size = 520,
},
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0032
.addr = 0x0001E2E4,
.width = 10,
.height = 26,
.data_size = 520,
},
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0033
.addr = 0x0001E4EC,
.width = 10,
.height = 26,
.data_size = 520,
},
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0034
.addr = 0x0001E6F4,
.width = 10,
.height = 26,
.data_size = 520,
},
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0035
.addr = 0x0001E8FC,
.width = 10,
.height = 26,
.data_size = 520,
},
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0036
.addr = 0x0001EB04,
.width = 10,
.height = 26,
.data_size = 520,
},
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0037
.addr = 0x0001ED0C,
.width = 10,
.height = 26,
.data_size = 520,
},
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0038
.addr = 0x0001EF14,
.width = 10,
.height = 26,
.data_size = 520,
},
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0039
.addr = 0x0001F11C,
.width = 10,
.height = 26,
.data_size = 520,
},
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_003A
.addr = 0x0001F324,
.width = 10,
.height = 26,
.data_size = 520,
},
{ // IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCFG1
.addr = 0x00000000,
.width = 73,
.height = 99,
.data_size = 7739,
},
{ // IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCFG2
.addr = 0x00001E3C,
.width = 73,
.height = 99,
.data_size = 7739,
},
{ // IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCOLOR1
.addr = 0x00003C78,
.width = 73,
.height = 99,
.data_size = 7739,
},
{ // IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCOLOR2
.addr = 0x00005AB4,
.width = 73,
.height = 99,
.data_size = 7739,
},
{ // IMAGE_RES_IMG_TPL_MAIN_PAGERELDATA1
.addr = 0x000078F0,
.width = 73,
.height = 99,
.data_size = 7739,
},
{ // IMAGE_RES_IMG_TPL_MAIN_PAGERELDATA2
.addr = 0x0000972C,
.width = 73,
.height = 99,
.data_size = 7739,
},
{ // IMAGE_RES_IMG_TPL_MAIN_PAGEANIMAL1
.addr = 0x0000B568,
.width = 73,
.height = 99,
.data_size = 7739,
},
{ // IMAGE_RES_IMG_TPL_MAIN_PAGEANIMAL2
.addr = 0x0000D3A4,
.width = 73,
.height = 99,
.data_size = 7739,
},
{ // IMAGE_RES_IMG_TPL_MAIN_PAGEMODEL1
.addr = 0x0000F1E0,
.width = 73,
.height = 99,
.data_size = 7739,
},
{ // IMAGE_RES_IMG_TPL_MAIN_PAGEMODEL2
.addr = 0x0001101C,
.width = 73,
.height = 99,
.data_size = 7739,
},
{ // IMAGE_RES_IMG_TPL_MAIN_PAGESETTING1
.addr = 0x00012E58,
.width = 73,
.height = 99,
.data_size = 7739,
},
{ // IMAGE_RES_IMG_TPL_MAIN_PAGESETTING2
.addr = 0x00014C94,
.width = 73,
.height = 99,
.data_size = 7739,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT00
.addr = 0x00016AD0,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT01
.addr = 0x00016F74,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT02
.addr = 0x00017418,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT03
.addr = 0x000178BC,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT04
.addr = 0x00017D60,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT05
.addr = 0x00018204,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT06
.addr = 0x000186A8,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT07
.addr = 0x00018B4C,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT08
.addr = 0x00018FF0,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT09
.addr = 0x00019494,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT10
.addr = 0x00019938,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT11
.addr = 0x00019DDC,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT12
.addr = 0x0001A280,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT13
.addr = 0x0001A724,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT14
.addr = 0x0001ABC8,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT15
.addr = 0x0001B06C,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT16
.addr = 0x0001B510,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT17
.addr = 0x0001B9B4,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT18
.addr = 0x0001BE58,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT19
.addr = 0x0001C2FC,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT20
.addr = 0x0001C7A0,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BAT21
.addr = 0x0001CC44,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_CON1
.addr = 0x0001D0E8,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_CON2
.addr = 0x0001D58C,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_CON3
.addr = 0x0001DA30,
.width = 26,
.height = 26,
.data_size = 1188,
},
{ // IMAGE_RES_IMG_TPL_MAIN_BG
.addr = 0x0001F52C,
.width = 320,
.height = 240,
.data_size = 77312,
},
};
#define RAW_IMAGE_COUNT 11
#define RLE_IMAGE_COUNT 0
#define CLUT_IMAGE_COUNT 38
#define CLUT4_IMAGE_COUNT 0
#define IMAGE_COUNT 49
static inline const image_info_t* get_image(image_index_t index) {
uint16_t idx = IMAGE_GET_INDEX(index);
if (idx >= IMAGE_COUNT) return NULL;
return &image_table[idx];
}
#endif /* _IMAGES_H_ */
@@ -0,0 +1,170 @@
/********************************** (C) COPYRIGHT *******************************
* File Name : wui_asset.c
* Author : WCH
* Version : V1.2.0
* Date : 2026/07/30
* Description : This file is auto-generated by WUI Designer Tool.
* : Contains WUI asset resources (strings, images, fonts).
*********************************************************************************
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
* Attention: This software (modified or not) and binary are used for
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
*******************************************************************************/
#include "wui_asset.h"
#include <stddef.h>
#include "LCD_Font.h"
const wui_bitfont_t wui_font_6x12 = { 6, 12, 0x20, 95, (const uint8_t*)asc2_1206 };
const wui_bitfont_t wui_font_8x16 = { 8, 16, 0x20, 95, (const uint8_t*)asc2_1608 };
/*******************************************************************************
* STRING RESOURCES
******************************************************************************/
/* Maps string IDs to string pointers */
static const char* wui_string_table[WUI_STR_COUNT] = {
[WUI_STR_NONE] = NULL,
[WUI_STR_MAIN_MAIN_TIME] = "12:34",
};
/**
* @brief Get string by ID
* @param id - String ID
* @return String pointer, or NULL if not found
*/
const char* wui_get_string(wui_str_id_t id)
{
if (id > 0 && id < WUI_STR_COUNT)
{
return wui_string_table[id];
}
return NULL;
}
/*******************************************************************************
* IMAGE TABLE RESOURCES
******************************************************************************/
static const uint16_t wui_imgtable_main_main_battery[] = {
IMAGE_RES_IMG_TPL_MAIN_BAT00,
IMAGE_RES_IMG_TPL_MAIN_BAT01,
IMAGE_RES_IMG_TPL_MAIN_BAT02,
IMAGE_RES_IMG_TPL_MAIN_BAT03,
IMAGE_RES_IMG_TPL_MAIN_BAT04,
IMAGE_RES_IMG_TPL_MAIN_BAT05,
IMAGE_RES_IMG_TPL_MAIN_BAT06,
IMAGE_RES_IMG_TPL_MAIN_BAT07,
IMAGE_RES_IMG_TPL_MAIN_BAT08,
IMAGE_RES_IMG_TPL_MAIN_BAT09,
IMAGE_RES_IMG_TPL_MAIN_BAT10,
IMAGE_RES_IMG_TPL_MAIN_BAT11,
IMAGE_RES_IMG_TPL_MAIN_BAT12,
IMAGE_RES_IMG_TPL_MAIN_BAT13,
IMAGE_RES_IMG_TPL_MAIN_BAT14,
IMAGE_RES_IMG_TPL_MAIN_BAT15,
IMAGE_RES_IMG_TPL_MAIN_BAT16,
IMAGE_RES_IMG_TPL_MAIN_BAT17,
IMAGE_RES_IMG_TPL_MAIN_BAT18,
IMAGE_RES_IMG_TPL_MAIN_BAT19,
IMAGE_RES_IMG_TPL_MAIN_BAT20,
IMAGE_RES_IMG_TPL_MAIN_BAT21,
};
static const uint16_t wui_imgtable_main_main_connection[] = {
IMAGE_RES_IMG_TPL_MAIN_CON1,
IMAGE_RES_IMG_TPL_MAIN_CON2,
IMAGE_RES_IMG_TPL_MAIN_CON3,
};
/* Maps image table IDs to image ID arrays */
static const uint16_t* wui_imgtable_list[WUI_IMGTABLE_COUNT] = {
[WUI_IMGTABLE_NONE] = NULL,
[WUI_IMGTABLE_MAIN_MAIN_BATTERY] = wui_imgtable_main_main_battery,
[WUI_IMGTABLE_MAIN_MAIN_CONNECTION] = wui_imgtable_main_main_connection,
};
/**
* @brief Get image table by ID
* @param id - Image table ID
* @return Image table pointer, or NULL if not found
*/
const uint16_t* wui_get_imgtable(wui_imgtable_id_t id)
{
if (id > 0 && id < WUI_IMGTABLE_COUNT)
{
return wui_imgtable_list[id];
}
return NULL;
}
/*******************************************************************************
* FONT RESOURCES
******************************************************************************/
/**
* @brief Font table for WUI
* @details Maps font IDs to font structures
*/
static const wui_font_t wui_font_table[WUI_FONT_COUNT] = {
[WUI_FONT_NONE] = {0},
[WUI_FONT_WUI_PAGE_MAIN_MAIN_TIME] = {
.cnt = 10,
.start_char = '0',
.width = 10,
.height = 26,
.first_img_id = IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0030,
},
};
const wui_font_t* wui_get_font(wui_font_id_t id)
{
if (id > 0 && id < WUI_FONT_COUNT)
{
return &wui_font_table[id];
}
return NULL;
}
/*******************************************************************************
* BITMAP FONT RESOURCES
******************************************************************************/
/* Maps bitmap font IDs to font structures */
static const wui_bitfont_t* wui_bitmap_font_table[WUI_BITMAP_FONT_COUNT] = {
[WUI_BITMAP_FONT_DEFAULT] = &wui_font_8x16,
[WUI_BITMAP_FONT_6X12] = &wui_font_6x12,
[WUI_BITMAP_FONT_8X16] = &wui_font_8x16,
};
/**
* @brief Get bitmap font by ID
* @param id - Bitmap font ID
* @return Bitmap font structure pointer, or default font if not found
*/
const wui_bitfont_t* wui_get_bitmap_font(wui_bitmap_font_id_t id)
{
if (id > 0 && id < WUI_BITMAP_FONT_COUNT) {
return wui_bitmap_font_table[id];
}
return wui_bitmap_font_table[WUI_BITMAP_FONT_DEFAULT];
}
/*********************************************************************
* @fn wui_get_image
*
* @brief Get image information by index.
*
* @param index - Image index.
*
* @return Pointer to image information structure.
*/
const image_info_t* wui_get_image(uint32_t index)
{
// return get_image(index);
uint16_t idx = IMAGE_GET_INDEX(index);
if (idx >= IMAGE_COUNT) return NULL;
return &image_table[idx];
}
@@ -0,0 +1,58 @@
/********************************** (C) COPYRIGHT *******************************
* File Name : wui_asset.h
* Author : WCH
* Version : V1.2.0
* Date : 2026/07/30
* Description : Asset management functions
*********************************************************************************/
#ifndef WUI_ASSET_H
#define WUI_ASSET_H
#include <stdint.h>
#include "wui.h"
#include "images.h"
#include "wui_widget.h"
enum
{
WUI_STR_NONE = 0,
WUI_STR_MAIN_MAIN_TIME,
WUI_STR_COUNT
};
const char* wui_get_string(wui_str_id_t id);
enum
{
WUI_FONT_NONE = 0,
WUI_FONT_WUI_PAGE_MAIN_MAIN_TIME,
WUI_FONT_COUNT
};
const wui_font_t* wui_get_font(wui_font_id_t id);
enum
{
WUI_IMGTABLE_NONE = 0,
WUI_IMGTABLE_MAIN_MAIN_BATTERY,
WUI_IMGTABLE_MAIN_MAIN_CONNECTION,
WUI_IMGTABLE_COUNT
};
const uint16_t* wui_get_imgtable(wui_imgtable_id_t id);
enum {
WUI_BITMAP_FONT_DEFAULT = 0,
WUI_BITMAP_FONT_6X12,
WUI_BITMAP_FONT_8X16,
WUI_BITMAP_FONT_COUNT
};
const wui_bitfont_t* wui_get_bitmap_font(wui_bitmap_font_id_t id);
const image_info_t* wui_get_image(uint32_t index);
#endif
@@ -0,0 +1,22 @@
#include "wui_page.h"
#include "wui.h"
#include "images.h"
#include <stdio.h>
const wui_page_desc_t wui_pages[WUI_PAGE_COUNT] = {
[WUI_PAGE_NONE] = {
.bg_color = RGB888_TO_RGB565(0, 0, 0),
.page_name = "None",
.page_init = wui_page_none_init,
.page_loop = wui_page_none_loop,
.user_data = NULL,
},
[WUI_PAGE_MAIN] = {
.bg_color = RGB888_TO_RGB565(0, 0, 0),
.page_name = "Menu Page",
.page_init = wui_page_main_init,
.page_loop = wui_page_main_loop,
.user_data = NULL,
},
};
@@ -0,0 +1,25 @@
#ifndef WUI_PAGE_H
#define WUI_PAGE_H
#include <stdint.h>
#include "stddef.h"
#include "wui.h"
typedef enum
{
WUI_PAGE_NONE = 0,
WUI_PAGE_MAIN,
WUI_PAGE_COUNT,
} wui_page_t;
#define WUI_START_PAGE WUI_PAGE_MAIN
void wui_page_none_init(void);
void wui_page_none_loop(void);
void wui_page_main_init(void);
void wui_page_main_loop(void);
extern const wui_page_desc_t wui_pages[WUI_PAGE_COUNT];
#endif
@@ -0,0 +1,80 @@
#include "wui_user/wui_page_main.h"
// ================= Template Page =================
// Template: main menu
// Template interaction logic is generated from known template IDs.
// ================= Template Logic Hooks =================
#define MENU_COUNT 6
static const uint8_t menu_widget_ids[MENU_COUNT] = {
MAIN_MAIN_SETTING,
MAIN_MAIN_MODE,
MAIN_MAIN_ANIM,
MAIN_MAIN_REAL_DATA,
MAIN_MAIN_LIGHT_COLOR,
MAIN_MAIN_COLOR_CFG,
};
static const wui_page_t menu_pages[MENU_COUNT] = {
WUI_PAGE_MAIN,
WUI_PAGE_MAIN,
WUI_PAGE_MAIN,
WUI_PAGE_MAIN,
WUI_PAGE_MAIN,
WUI_PAGE_MAIN,
};
static uint8_t main_saved_selection = 0;
static uint8_t current_menu = 0;
static void menu_set(uint8_t index, uint8_t on)
{
if (index < MENU_COUNT)
{
if (on)
{
wui_widget_button_press(menu_widget_ids[index]);
}
else
{
wui_widget_button_release(menu_widget_ids[index]);
}
}
}
static void main_on_key(uint32_t key)
{
if (key == 'a')
{
menu_set(current_menu, 0);
current_menu = (current_menu == 0) ? MENU_COUNT - 1 : current_menu - 1;
menu_set(current_menu, 1);
}
else if (key == 'd')
{
menu_set(current_menu, 0);
current_menu = (current_menu + 1 >= MENU_COUNT) ? 0 : current_menu + 1;
menu_set(current_menu, 1);
}
else if (key == 'b')
{
main_saved_selection = current_menu;
wui_page_switch(menu_pages[current_menu]);
}
}
// ================= Page Functions =================
void wui_page_main_init(void)
{
wui_page_init(widgets_main, sizeof(widgets_main) / sizeof(widgets_main[0]));
current_menu = main_saved_selection;
menu_set(current_menu, 1);
wui_register_key_handler(main_on_key);
}
void wui_page_main_loop(void)
{
}
@@ -0,0 +1,183 @@
#ifndef WUI_PAGE_MAIN_H
#define WUI_PAGE_MAIN_H
#include "wui.h"
#include "wui_user/wui_page.h"
#include "wui_widget.h"
#include "images.h"
#include "wui_asset.h"
#include <stdio.h>
// ================= Widget ID Enum =================
typedef enum
{
MAIN_MAIN_BG_BLACK,
MAIN_MAIN_BG,
MAIN_MAIN_TIME,
MAIN_MAIN_CONNECTION,
MAIN_MAIN_BATTERY,
MAIN_MAIN_SETTING,
MAIN_MAIN_MODE,
MAIN_MAIN_ANIM,
MAIN_MAIN_REAL_DATA,
MAIN_MAIN_LIGHT_COLOR,
MAIN_MAIN_COLOR_CFG,
} main_widget_id_t;
// ================= Declarative Widgets =================
static const wui_widget_desc_t widgets_main[] = {
[MAIN_MAIN_BG_BLACK] = {
.widget_id = MAIN_MAIN_BG_BLACK,
.type = Wui_w_Rect,
.x = 0,
.y = 0,
.w = 320,
.h = 240,
.props.rect = {
.color = RGB888_TO_RGB565(0, 0, 0),
},
},
[MAIN_MAIN_BG] = {
.widget_id = MAIN_MAIN_BG,
.type = Wui_w_StaticImage,
.x = 0,
.y = 0,
.w = 320,
.h = 240,
.props.staticimg = {
.img_id = IMAGE_RES_IMG_TPL_MAIN_BG,
},
},
[MAIN_MAIN_TIME] = {
.widget_id = MAIN_MAIN_TIME,
.type = Wui_w_ExString,
.x = 12,
.y = 4,
.w = 50,
.h = 26,
.props.exstring = {
.str_id = WUI_STR_MAIN_MAIN_TIME,
.font_id = WUI_FONT_WUI_PAGE_MAIN_MAIN_TIME,
.bg_color = RGB888_TO_RGB565(0, 0, 0),
.align = WUI_EXSTRING_ALIGN_LEFT,
},
},
[MAIN_MAIN_CONNECTION] = {
.widget_id = MAIN_MAIN_CONNECTION,
.type = Wui_w_MultiState,
.x = 119,
.y = 4,
.w = 26,
.h = 26,
.props.multistate = {
.imgtable_id = WUI_IMGTABLE_MAIN_MAIN_CONNECTION,
.state_count = 3,
.default_state = 2,
},
},
[MAIN_MAIN_BATTERY] = {
.widget_id = MAIN_MAIN_BATTERY,
.type = Wui_w_MultiState,
.x = 280,
.y = 4,
.w = 26,
.h = 26,
.props.multistate = {
.imgtable_id = WUI_IMGTABLE_MAIN_MAIN_BATTERY,
.state_count = 22,
.default_state = 0,
},
},
[MAIN_MAIN_SETTING] = {
.widget_id = MAIN_MAIN_SETTING,
.type = Wui_w_Button,
.x = 24,
.y = 42,
.w = 73,
.h = 99,
.props.button = {
.pressed_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGESETTING2,
.normal_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGESETTING1,
.is_pressed = 0,
},
},
[MAIN_MAIN_MODE] = {
.widget_id = MAIN_MAIN_MODE,
.type = Wui_w_Button,
.x = 127,
.y = 42,
.w = 73,
.h = 99,
.props.button = {
.pressed_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGEMODEL2,
.normal_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGEMODEL1,
.is_pressed = 0,
},
},
[MAIN_MAIN_ANIM] = {
.widget_id = MAIN_MAIN_ANIM,
.type = Wui_w_Button,
.x = 226,
.y = 42,
.w = 73,
.h = 99,
.props.button = {
.pressed_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGEANIMAL2,
.normal_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGEANIMAL1,
.is_pressed = 0,
},
},
[MAIN_MAIN_REAL_DATA] = {
.widget_id = MAIN_MAIN_REAL_DATA,
.type = Wui_w_Button,
.x = 24,
.y = 141,
.w = 73,
.h = 99,
.props.button = {
.pressed_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGERELDATA2,
.normal_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGERELDATA1,
.is_pressed = 0,
},
},
[MAIN_MAIN_LIGHT_COLOR] = {
.widget_id = MAIN_MAIN_LIGHT_COLOR,
.type = Wui_w_Button,
.x = 127,
.y = 141,
.w = 73,
.h = 99,
.props.button = {
.pressed_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCOLOR2,
.normal_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCOLOR1,
.is_pressed = 0,
},
},
[MAIN_MAIN_COLOR_CFG] = {
.widget_id = MAIN_MAIN_COLOR_CFG,
.type = Wui_w_Button,
.x = 226,
.y = 141,
.w = 73,
.h = 99,
.props.button = {
.pressed_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCFG2,
.normal_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCFG1,
.is_pressed = 0,
},
},
};
#endif // WUI_PAGE_MAIN_H
@@ -0,0 +1,16 @@
#include "wui_user/wui_page_none.h"
static void none_on_key(uint32_t key)
{
wui_page_switch(WUI_START_PAGE);
}
void wui_page_none_init()
{
wui_page_init(widgets_none, sizeof(widgets_none) / sizeof(widgets_none[0]));
wui_register_key_handler(none_on_key);
}
void wui_page_none_loop()
{
}
@@ -0,0 +1,27 @@
#ifndef WUI_PAGE_NONE_H
#define WUI_PAGE_NONE_H
#include "wui.h"
#include "wui_user/wui_page.h"
#include "wui_widget.h"
typedef enum
{
WIDGET_NONE_BG = 0,
} none_widget_id_t;
static const wui_widget_desc_t widgets_none[] = {
[WIDGET_NONE_BG] = {
.widget_id = WIDGET_NONE_BG,
.type = Wui_w_Rect,
.x = 0,
.y = 0,
.w = LCD_WIDTH,
.h = LCD_HEIGHT,
.props.rect = {
.color = LCD_black,
},
},
};
#endif // WUI_PAGE_NONE_H