145 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			145 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef MYWIN_H__
 | 
						||
#define MYWIN_H__
 | 
						||
 | 
						||
// 窗口管理器初始化
 | 
						||
int WIN_Init(void);
 | 
						||
 | 
						||
/*******************获取和设置环境变量********************/
 | 
						||
 | 
						||
// 返回窗口环境变量
 | 
						||
WIN_Struct *WIN_GetWinStruct(void);
 | 
						||
 | 
						||
// 设置窗口运行回调函数
 | 
						||
void *WIN_SetRunCallBack(void (*callback)(void));
 | 
						||
 | 
						||
// 阻塞窗口运行结束时设置返回值
 | 
						||
void WIN_SetBlockWinReturn(int ret, void *data, int datasize);
 | 
						||
 | 
						||
// 获取阻塞窗口的数据
 | 
						||
int WIN_GetBlockWinReturn(int *ret, void *buff, int buffsize);
 | 
						||
 | 
						||
/*********************输入输出接口函数**********************/
 | 
						||
 | 
						||
// 获取外部数据指针,这个函数在窗口应用中调用
 | 
						||
void *WIN_GetExtData(u32 *datasize);
 | 
						||
 | 
						||
// 放置外部数据到窗口,这个函数在其他线程或中断中调用
 | 
						||
int WIN_PlaceExtData(void *data, u32 size);
 | 
						||
 | 
						||
// 设置在指定窗口运行的函数,返回0,成功
 | 
						||
// 这个函数用于在窗口线程之外通知窗口调用函数
 | 
						||
int WIN_RunInWindow(const char *title, void (*fun)(void *ptr), void *ptr);
 | 
						||
 | 
						||
// 运行消息中的函数 ,返回0,成功
 | 
						||
// 这个函数在窗口消息循环中接收到运行消息后调用
 | 
						||
int WIN_RunMsgFunction(WIN_MsgStruct *msg);
 | 
						||
 | 
						||
/**************************窗口操作函数**********************************/
 | 
						||
 | 
						||
// 返回基础窗口指针
 | 
						||
WIN_WindowStruct *WIN_GetBaseWindow(void);
 | 
						||
 | 
						||
// 返回最后一次运行的窗口
 | 
						||
WIN_WindowStruct *WIN_GetCurrentWindow(void);
 | 
						||
 | 
						||
// 在堆中创建一个窗口,返回窗口的指针
 | 
						||
WIN_WindowStruct *WIN_CreatWindow(WIN_WindowStruct *base,
 | 
						||
                                  void (*msgLoop)(struct _WIN_WindowStruct *win,
 | 
						||
                                                  WIN_MsgStruct *msg),
 | 
						||
                                  int x, int y, int x_size, int y_size);
 | 
						||
 | 
						||
// 创建已经实例化的窗口,返回1,创建成功
 | 
						||
int WIN_CreatWindowExt(WIN_WindowStruct *win, WIN_WindowStruct *base,
 | 
						||
                       void (*msgLoop)(struct _WIN_WindowStruct *win,
 | 
						||
                                       WIN_MsgStruct *msg),
 | 
						||
                       int x, int y, int x_size, int y_size);
 | 
						||
 | 
						||
// 销毁一个窗口,资源回收
 | 
						||
void WIN_DeleteWindow(WIN_WindowStruct *win);
 | 
						||
 | 
						||
// 将指定窗口设置为置顶,返回1添加成功
 | 
						||
int WIN_SetAsTopWin(WIN_WindowStruct *win);
 | 
						||
 | 
						||
// 窗口取消置顶,返回1成功
 | 
						||
int WIN_ResetAsTopWin(WIN_WindowStruct *win);
 | 
						||
 | 
						||
// 根据指定id号获取窗口指针
 | 
						||
WIN_WindowStruct *WIN_GetWindowStructById(WIN_WindowStruct *win, u32 id);
 | 
						||
 | 
						||
// 从子窗口列表中删除指定窗口
 | 
						||
int WIN_DelFromChidList(WIN_WindowStruct *win, WIN_WindowStruct *chidWin);
 | 
						||
 | 
						||
// 添加窗口到子窗口列表中
 | 
						||
int WIN_AddToChidList(WIN_WindowStruct *win, WIN_WindowStruct *chidWin);
 | 
						||
 | 
						||
// 判断目标窗口是不是子窗口,是返回1
 | 
						||
int WIN_CheckChidWin(WIN_WindowStruct *win, WIN_WindowStruct *chid);
 | 
						||
 | 
						||
// 通过指定的坐标找到顶端可见的窗口,没找到返回0
 | 
						||
WIN_WindowStruct *WIN_FindTopWinByPos(WIN_WindowStruct *win, int x, int y);
 | 
						||
 | 
						||
// 找到顶端可控窗口
 | 
						||
WIN_WindowStruct *WIN_FindTopWin(WIN_WindowStruct *win);
 | 
						||
 | 
						||
// 把指定子窗口设置为最高
 | 
						||
int WIN_SetChidWinTop(WIN_WindowStruct *win, WIN_WindowStruct *chidWin);
 | 
						||
 | 
						||
// 找到指定窗口在屏幕上的坐标和大小
 | 
						||
void WIN_GetWinPosOnLcd(WIN_WindowStruct *win, int *x, int *y, int *x_size,
 | 
						||
                        int *y_size);
 | 
						||
 | 
						||
// 返回两个窗口的共同父窗口,没有共同父窗口返回0
 | 
						||
WIN_WindowStruct *WIN_FindPrent(WIN_WindowStruct *win1, WIN_WindowStruct *win2);
 | 
						||
 | 
						||
// 设置无效区矩形,此矩形会被限制在窗口无效区之内
 | 
						||
void WIN_SetWinInvalidRect(WIN_WindowStruct *win, RECT_Struct *r);
 | 
						||
 | 
						||
// 获取当前窗口无效区矩形
 | 
						||
void WIN_GetWinInvalidRect(WIN_WindowStruct *win, RECT_Struct *r);
 | 
						||
 | 
						||
// 设置窗口标题
 | 
						||
void WIN_SetWinTitle(WIN_WindowStruct *win, char *title);
 | 
						||
 | 
						||
// 根据窗口标题找到窗口指针
 | 
						||
WIN_WindowStruct *WIN_GetWinByTitle(WIN_WindowStruct *win, char *title);
 | 
						||
 | 
						||
// 查找win是否被遮挡,是,返回1
 | 
						||
int WIN_FindBlock(WIN_WindowStruct *win);
 | 
						||
 | 
						||
// 屏蔽和接触屏蔽子窗口的按键和键盘消息
 | 
						||
int WIN_SetChildWinkeyShield(WIN_WindowStruct *win, int power);
 | 
						||
 | 
						||
/**************************窗口绘制相关******************************/
 | 
						||
 | 
						||
// 根据窗口坐标设置LCD的活动窗口,所有绘制操作都在这个窗口之内
 | 
						||
void WIN_EnterPaint(WIN_WindowStruct *win);
 | 
						||
 | 
						||
// 在窗口绘制时,判断需不需要绘制顶端窗口
 | 
						||
void WIN_TopWinPaint(WIN_WindowStruct *win);
 | 
						||
 | 
						||
// 窗口默认的绘制函数
 | 
						||
void WIN_DefaultPaint(WIN_WindowStruct *win);
 | 
						||
 | 
						||
// 绘制背景
 | 
						||
void WIN_PaintBackGround(WIN_WindowStruct *win);
 | 
						||
 | 
						||
// 设置页面的背景图片
 | 
						||
void WIN_SetBackPic(WIN_WindowStruct *win);
 | 
						||
 | 
						||
// 设置页面的背景图片路径
 | 
						||
void WIN_SetBackPicPath(WIN_WindowStruct *win, char *path);
 | 
						||
 | 
						||
// 设置页面的画背景函数
 | 
						||
void *WIN_SetBackFun(WIN_WindowStruct *win, void (*fun)(void));
 | 
						||
 | 
						||
// 设置前景色
 | 
						||
void WIN_SetColor(WIN_WindowStruct *win, u32 color);
 | 
						||
 | 
						||
// 设置背景色
 | 
						||
void WIN_SetBkColor(WIN_WindowStruct *win, u32 bkcolor);
 | 
						||
 | 
						||
// 显示窗口
 | 
						||
void WIN_ShowWindow(WIN_WindowStruct *win);
 | 
						||
 | 
						||
#endif
 |