73 lines
1.9 KiB
C
73 lines
1.9 KiB
C
#ifndef MYWIN_MSGBOX_H__
|
||
#define MYWIN_MSGBOX_H__
|
||
|
||
#include "mywin_inc.h"
|
||
|
||
// 消息对话框,继承自MYWIN框架
|
||
|
||
// 定义条目最大数目
|
||
#define MSGBOX_ITEM_MAXNUM 10
|
||
|
||
// 定义条目最大长度
|
||
#define MSGBOX_ITEM_MAXLEN 50
|
||
|
||
typedef struct {
|
||
WIN_WindowStruct win;
|
||
uint32_t titleTxtColor;
|
||
uint32_t titleRectColor;
|
||
uint32_t tipRectColor;
|
||
uint32_t butRectColor;
|
||
int press;
|
||
char *title;
|
||
char *msg;
|
||
char *key;
|
||
char *key2;
|
||
char items[MSGBOX_ITEM_MAXNUM][MSGBOX_ITEM_MAXLEN];
|
||
int itemNum;
|
||
int index;
|
||
int y_step; // 选择框时的条目宽度
|
||
} WIN_MsgboxStruct;
|
||
|
||
// 在堆中创建一个消息对话框,
|
||
WIN_MsgboxStruct *WIN_CreatMsgbox(WIN_WindowStruct *base,
|
||
void (*msgLoop)(struct _WIN_WindowStruct *win,
|
||
WIN_MsgStruct *msg),
|
||
int x, int y, int x_size, int y_size);
|
||
|
||
// 消息对话框设置标题
|
||
void MSGBOX_SetTitle(WIN_MsgboxStruct *msgbox, char *title);
|
||
|
||
// 消息对话框设置内容
|
||
void MSGBOX_SetMsg(WIN_MsgboxStruct *msgbox, char *msg);
|
||
|
||
// 消息对话框设置按键
|
||
void MSGBOX_SetKey(WIN_MsgboxStruct *msgbox, char *key);
|
||
|
||
void MSGBOX_SetKey2(WIN_MsgboxStruct *msgbox, char *key);
|
||
|
||
// 添加条目
|
||
void MSGBOX_AddItem(WIN_MsgboxStruct *msgbox, char *item);
|
||
|
||
// 消息框的绘制函数
|
||
void MSGBOX_DefaultPaint(WIN_MsgboxStruct *msgbox);
|
||
|
||
// 消息框的消息处理函数
|
||
void MSGBOX_defaultMsgLoop(WIN_MsgboxStruct *msgbox, WIN_MsgStruct *msg);
|
||
|
||
// 弹出提示框
|
||
int MSGBOX_Tips(WIN_WindowStruct *base, char *title, char *msg, char *key);
|
||
|
||
// 弹出提示框,在一段时间后自动退出
|
||
int MSGBOX_TipsTime(WIN_WindowStruct *base, char *title, char *msg, char *key,
|
||
uint32_t ms);
|
||
|
||
// 弹出询问框,按键确定返回0,取消返回1
|
||
int MSGBOX_Inquiry(WIN_WindowStruct *base, char *title, char *msg, char *key,
|
||
char *key2);
|
||
|
||
// 弹出选择框,按键确定返回序号,取消返回-1
|
||
int MSGBOX_Select(WIN_WindowStruct *base, char *title, char **item, int itemNum,
|
||
char *key, char *key2);
|
||
|
||
#endif
|