STM32H750XB_RT-THREAD/28-电容触摸屏—触摸画板(兼容屏幕版本)/User/touch/palette.h

88 lines
1.9 KiB
C
Raw Permalink Normal View History

2025-07-21 06:34:29 +00:00
#ifndef _PALETTE_H
#define _PALETTE_H
#include "stm32h7xx.h"
#include "./lcd/bsp_lcd.h"
#define COLOR_BLOCK_WIDTH lcd_param[cur_lcd].m_palette_btn_width
#define COLOR_BLOCK_HEIGHT lcd_param[cur_lcd].m_palette_btn_height
#define BUTTON_NUM 18
#define PALETTE_START_Y 0
#define PALETTE_END_Y LCD_PIXEL_HEIGHT
#if 1 //<2F><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define BUTTON_START_X 0
#define PALETTE_START_X COLOR_BLOCK_WIDTH*2+1
#define PALETTE_END_X LCD_PIXEL_WIDTH
#else //<2F><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD>ұߣ<D2B1>(<28><><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱҲ<CAB1><D2B2><EFBFBD><EFBFBD>bug<75><67><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD>)
#define BUTTON_START_X LCD_PIXEL_WIDTH-2*COLOR_BLOCK_WIDTH
#define PALETTE_START_X 0
#define PALETTE_END_X LCD_PIXEL_WIDTH-2*COLOR_BLOCK_WIDTH
#endif
typedef struct
{
uint16_t start_x; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
uint16_t start_y; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
uint16_t end_x; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint16_t end_y; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint32_t para; //<2F><>ɫ<EFBFBD><C9AB>ť<EFBFBD>б<EFBFBD>ʾѡ<CABE><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>״<EFBFBD><D7B4>ť<EFBFBD>б<EFBFBD>ʾѡ<CABE><D1A1><EFBFBD>Ļ<EFBFBD>ˢ
uint8_t touch_flag; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µı<C2B5>־
void (*draw_btn)(void * btn); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6BAAF>
void (*btn_command)(void * btn); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>к<EFBFBD><D0BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ˢ
}Touch_Button;
/*<2A><>ˢ<EFBFBD><CBA2>״<EFBFBD>б<EFBFBD>*/
typedef enum
{
LINE_SINGLE_PIXCEL = 0, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LINE_2_PIXCEL, //2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LINE_4_PIXCEL, //4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LINE_6_PIXCEL, //6<><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LINE_8_PIXCEL, //8<><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LINE_16_PIXCEL, //16<31><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LINE_20_PIXCEL, //20<32><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LINE_WITH_CIRCLE, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RUBBER, //<2F><>Ƥ
}SHAPE;
/*<2A><>ˢ<EFBFBD><CBA2><EFBFBD><EFBFBD>*/
typedef struct
{
uint32_t color;
SHAPE shape;
}Brush_Style;
/*brushȫ<68>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>*/
extern Brush_Style brush;
void Palette_Init(void);
void Touch_Button_Init(void);
void Touch_Button_Down(uint16_t x,uint16_t y);
void Touch_Button_Up(uint16_t x,uint16_t y);
void Draw_Trail(int16_t pre_x,int16_t pre_y,int16_t x,int16_t y,Brush_Style* brush);
#endif //_PALETTE_H