88 lines
1.9 KiB
C
88 lines
1.9 KiB
C
#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 //按钮栏在左边
|
|
#define BUTTON_START_X 0
|
|
#define PALETTE_START_X COLOR_BLOCK_WIDTH*2+1
|
|
#define PALETTE_END_X LCD_PIXEL_WIDTH
|
|
|
|
#else //按钮栏在右边,(存在触摸按键时也会的bug仅用于测试触摸屏左边界)
|
|
#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; //按键的x起始坐标
|
|
uint16_t start_y; //按键的y起始坐标
|
|
uint16_t end_x; //按键的x结束坐标
|
|
uint16_t end_y; //按键的y结束坐标
|
|
uint32_t para; //颜色按钮中表示选择的颜色,笔迹形状按钮中表示选择的画刷
|
|
uint8_t touch_flag; //按键按下的标志
|
|
|
|
void (*draw_btn)(void * btn); //按键描绘函数
|
|
void (*btn_command)(void * btn); //按键功能执行函数,例如切换颜色、画刷
|
|
|
|
}Touch_Button;
|
|
|
|
|
|
/*画刷形状列表*/
|
|
typedef enum
|
|
{
|
|
LINE_SINGLE_PIXCEL = 0, //单像素线
|
|
|
|
LINE_2_PIXCEL, //2像素线
|
|
|
|
LINE_4_PIXCEL, //4像素线
|
|
|
|
LINE_6_PIXCEL, //6像素线
|
|
|
|
LINE_8_PIXCEL, //8像素线
|
|
|
|
LINE_16_PIXCEL, //16像素线
|
|
|
|
LINE_20_PIXCEL, //20像素线
|
|
|
|
LINE_WITH_CIRCLE, //珠子连线
|
|
|
|
RUBBER, //橡皮
|
|
|
|
}SHAPE;
|
|
|
|
/*画刷参数*/
|
|
typedef struct
|
|
{
|
|
uint32_t color;
|
|
|
|
SHAPE shape;
|
|
|
|
}Brush_Style;
|
|
|
|
/*brush全局变量在其它文件有使用到*/
|
|
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
|
|
|