cook-c100/src/app/Module/wjh_Graph.h

92 lines
2.9 KiB
C
Raw Normal View History

2024-08-20 19:34:19 +08:00
/*
* wjh_Graph.h
*
* Created on: 2024<EFBFBD><EFBFBD>7<EFBFBD><EFBFBD>26<EFBFBD><EFBFBD>
* Author: wu
*/
#ifndef APP_MODULE_WJH_GRAPH_C_
#define APP_MODULE_WJH_GRAPH_C_
#include "gdd.h"
enum{
GRAPH_DATA_LEN_MAX = 30,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
GRAPH_TITLE_LEN_MAX = 20,//<2F><><EFBFBD><EFBFBD><E2B3A4>
GRAPH_DATA_NUM_MAX = 20,//<2F><><EFBFBD><EFBFBD>
GRAPH_Y_SEG_LEN_OPT = 40,//Y<><59><EFBFBD>߶<EFBFBD><DFB6><EFBFBD><EFBFBD>ż<EFBFBD><C5BC><EFBFBD>
GRAPH_Y_DASHED_SOLID = 3,//Y<><59><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ʵ<EFBFBD>߳<EFBFBD><DFB3><EFBFBD>
GRAPH_Y_DASHED_DASHED = 3,//Y<><59><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>
};
enum WJH_GRAPH_MODE{
GRAPH_BAR_CHART = 0,//<2F><>״ͼ
GRAPH_LINE_CHART,//<2F><><EFBFBD><EFBFBD>ͼ
GRAPH_PIE_CHART,//<2F><>ͼ
};
enum WJH_GRAPH_SORT{
GRAPH_SORT_DEFAULT = 0,//Ĭ<><C4AC><EFBFBD><EFBFBD>ʾ(<28><>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>ʾ)
GRAPH_SORT_ASC_BY_DATA,//<2F><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
GRAPH_SORT_DES_BY_DATA,//<2F><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
GRAPH_SORT_ASC_BY_LABEL,//<2F><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>ǩ<EFBFBD>ֵ<EFBFBD>)
GRAPH_SORT_DES_BY_LABEL,//<2F><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>ǩ<EFBFBD>ֵ<EFBFBD>)
};
static u32 Graph_ColorDefaultTable[GRAPH_DATA_NUM_MAX] = {
RGB(255, 99, 71) // <20><><EFBFBD>޵ijȺ<C4B3>ɫ
, RGB(255, 153, 51) // <20><>ɫ
, RGB(255, 204, 0) // <20><>ɫ
, RGB(153, 204, 0) // dz<><C7B3>ɫ
, RGB(51, 204, 51) // <20><><EFBFBD><EFBFBD>ɫ
, RGB(0, 153, 102) // <20><>ɫ
, RGB(0, 102, 204) // <20><><EFBFBD><EFBFBD>ɫ
, RGB(76, 76, 192) // <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ɫ
, RGB(153, 51, 204) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
, RGB(204, 51, 153) // <20>ۺ<EFBFBD>ɫ
, RGB(255, 102, 102) // dz<><C7B3>ɫ
, RGB(102, 153, 255) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
, RGB(102, 102, 255) // <20><><EFBFBD><EFBFBD>ɫ
, RGB(153, 153, 255) // <20><><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>
, RGB(102, 204, 102) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
, RGB(204, 204, 204) // dz<><C7B3>ɫ
, RGB(153, 102, 51) // <20><>ɫ
, RGB(51, 51, 153) // <20><><EFBFBD><EFBFBD>ɫ
, RGB(255, 255, 153) // <20><><EFBFBD><EFBFBD>ɫ
, RGB(153, 255, 204) // dz<><C7B3><EFBFBD><EFBFBD>ɫ
};
struct WJH_GRAPH_DATA{
u8 xLabel[GRAPH_DATA_LEN_MAX];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>ÿһ<C3BF>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ƣ<EFBFBD>
u32 data;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>ÿһ<C3BF>ж<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
};
struct WJH_GRAPH_INFO{
u8 title[GRAPH_TITLE_LEN_MAX];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
u32 dataNum;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct WJH_GRAPH_DATA dataTable[GRAPH_DATA_NUM_MAX];
enum WJH_GRAPH_MODE chartMode;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>״ͼ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͼ<CFB5>йصIJ<D8B5><C4B2><EFBFBD>
u8 adaptiveFlag_Y;//Y<><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪTrue<75><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD>м<EFBFBD><D0BC><EFBFBD><E3A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>
u32 dataMax_Y;//ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״ͼ<D7B4>йصIJ<D8B5><C4B2><EFBFBD>
u32 linehight;//һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ĸ߶<C4B8>
u32 lineNum;//һ<><D2BB><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD>
u32 dataColor[GRAPH_DATA_NUM_MAX];//<2F><><EFBFBD>ݶ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>ɫ
enum WJH_GRAPH_SORT sortFlag;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
};
HWND wjh_Graph_Initialize(u32 x,u32 y,u32 w,u32 h,u32 dataNum,u8 x_Data[][GRAPH_DATA_LEN_MAX],u32 y_Data[],HWND p_father);
bool_t wjh_Graph_SetTitle(HWND hwnd,u8 *ls_title);
bool_t wjh_Graph_SetShowMode(HWND hwnd,enum WJH_GRAPH_MODE mode);
bool_t wjh_Graph_SetYData(HWND hwnd,u32 dataNum,u32 data[]);
bool_t wjh_Graph_SetSortFlag(HWND hwnd,enum WJH_GRAPH_SORT sortFlag);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͼ<CFB5>й<EFBFBD>
bool_t wjh_Graph_SetYDataMAX(HWND hwnd,u32 max);
bool_t wjh_Graph_SetYMAXAdaptive(HWND hwnd);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>й<EFBFBD>
bool_t wjh_Graph_SetPieColor(HWND hwnd,u32 colorNum,u32 color[]);
#endif /* APP_MODULE_WJH_GRAPH_C_ */