375 lines
16 KiB
C
Executable File
375 lines
16 KiB
C
Executable File
#ifndef UIDISPLAYUTIL_H
|
|
#define UIDISPLAYUTIL_H
|
|
#ifdef NULL
|
|
#undef NULL
|
|
#define NULL 0
|
|
#endif
|
|
extern VControl NULLCtrl;
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
#define NULLCmdMap NULL
|
|
#define NULLShow NULL
|
|
|
|
//#NT#2008/09/18#lincy-begin
|
|
#define SHOW_ITEM_RECT(type,name,x1,y1,x2,y2,lineStl,fillStl,fClr,bgClr,layout,align,map) \
|
|
static ITEM_RECTANGLE name = {(type), x1,y1,x2,y2,lineStl,fillStl,fClr,bgClr,layout,align,(void *)map};
|
|
#define SHOW_ITEM_ROUNDRECT(type,name,x1,y1,x2,y2,lineStl,fillStl,fClr,bgClr,layout,align,map,rx,ry) \
|
|
static ITEM_ROUNDRECT name = {(type), x1,y1,x2,y2,lineStl,fillStl,fClr,bgClr,layout,align,(void *)map,rx,ry};
|
|
#define SHOW_ITEM_ELLIPSE(type,name,x1,y1,x2,y2,lineStl,fillStl,fClr,bgClr,layout,align,map) \
|
|
static ITEM_ELLIPSE name = {(type), x1,y1,x2,y2,lineStl,fillStl,fClr,bgClr,layout,align,(void *)map};
|
|
#define SHOW_ITEM_LINE(type,name,x1,y1,x2,y2,lineStl,fillStl,lineClr,map) \
|
|
static ITEM_LINE name = {(type), x1,y1,x2,y2,lineStl,fillStl,lineClr,(void *)map};
|
|
#define SHOW_ITEM_IMAGE(type,name,x1,y1,x2,y2,data,bltRop,ParRop,clrkey,clrMap,layout,clip,align,imageT) \
|
|
static ITEM_IMAGE name = {(type), x1,y1,x2,y2,data,bltRop,ParRop,clrkey,(void *)clrMap,layout,clip,align,(void *)imageT};
|
|
#define SHOW_ITEM_TEXT(type,name,x1,y1,x2,y2,data,fontT,fontstl,fillstl,fontsize,tclr,ShClr,LiClr,layout,clip,align,lineH,LeSpe,InSpe,StrT) \
|
|
static ITEM_TEXT name = {(type), x1,y1,x2,y2,data,(void *)fontT,fontstl,fillstl,fontsize,tclr,ShClr,LiClr,layout,clip,align,lineH,LeSpe,InSpe,(void *)StrT};
|
|
#define SHOW_ITEM_GROUP(type,name,x1,y1,x2,y2) \
|
|
static ITEM_GROUP name = {(type), x1,y1,x2,y2,(ITEM_BASE**)(name##Show)};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
#define SHOW_MAP_BEGIN(Name) static ITEM_BASE* Name##Show[]={
|
|
#define SHOW_MAP_BODY(Name) (ITEM_BASE*)&Name,
|
|
#define SHOW_MAP_END NULL};
|
|
//#NT#2008/09/18#lincy-end
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
#define DECLARE_EVENT(Name) extern EVENT_ENTRY Name##CmdMap[];
|
|
#define EVENT_BEGIN(Name) EVENT_ENTRY Name##CmdMap[]={
|
|
#define EVENT_ITEM(Event,pfn) {Event,pfn},
|
|
#define EVENT_END {NVTEVT_NULL,0},};
|
|
///////////////////////////////////////////////////////////////////////////////////
|
|
#define CREATE_ZOOM_DATA(Name,value) \
|
|
CTRL_ZOOM_DATA Name##Data={ \
|
|
value \
|
|
};
|
|
///////////////////////////////////////////////////////////////////////////////////
|
|
#define CREATE_STATIC_DATA(Name,value) \
|
|
CTRL_STATIC_DATA Name##Data={ \
|
|
value \
|
|
};
|
|
///////////////////////////////////////////////////////////////////////////////////
|
|
#define CREATE_STATE_ITEM_DATA(Name,stringID,iconID,pExeFunc) \
|
|
static CTRL_STATE_ITEM_DATA Name##Item={ \
|
|
stringID, \
|
|
iconID, \
|
|
pExeFunc \
|
|
};
|
|
|
|
#define CREATE_STATE_DATA(Name,currentItem) \
|
|
CTRL_STATE_DATA Name##Data={ \
|
|
currentItem, \
|
|
sizeof(Name##StateList)/sizeof(CTRL_STATE_ITEM_DATA *) -1, \
|
|
Name##StateList, \
|
|
};
|
|
//state graph total change -2 because first group is skin,not a state
|
|
#define CREATE_STATEGRAPH_DATA(Name,status,pFunc) \
|
|
CTRL_STATEGRAPH_DATA Name##Data={ \
|
|
status, \
|
|
pFunc, \
|
|
sizeof(Name##Show)/sizeof(ITEM_BASE*) -2, \
|
|
};
|
|
|
|
#define CREATE_PANEL_DATA(Name,status,pFunc) \
|
|
CTRL_TAB_DATA Name##Data={ \
|
|
status, \
|
|
pFunc \
|
|
};
|
|
|
|
#define CREATE_TAB_DATA(Name,focus) \
|
|
CTRL_TAB_DATA Name##Data={ \
|
|
focus, \
|
|
sizeof(Name##CtrlList)/sizeof(VControl *) -1, \
|
|
};
|
|
|
|
#define CREATE_BUTTON_ITEM_DATA(Name,stringID,iconID,StatusFlag,pExeFunc) \
|
|
static CTRL_BUTTON_ITEM_DATA Name##Item={ \
|
|
stringID, \
|
|
iconID, \
|
|
StatusFlag, \
|
|
pExeFunc, \
|
|
};
|
|
|
|
#define CREATE_BUTTON_DATA(Name,style) \
|
|
CTRL_BUTTON_DATA Name##Data={ \
|
|
style, \
|
|
Name##ButtonList, \
|
|
};
|
|
|
|
|
|
#define CREATE_MENU_ITEM_DATA(Name,stringID,iconID,StatusFlag,pExeFunc,value) \
|
|
static CTRL_MENU_ITEM_DATA Name##Item={ \
|
|
stringID, \
|
|
iconID, \
|
|
StatusFlag, \
|
|
pExeFunc, \
|
|
NULL, \
|
|
value, \
|
|
};
|
|
|
|
#define CREATE_MENU_DATA(Name,currentItem,pageItem,style) \
|
|
CTRL_MENU_DATA Name##Data={ \
|
|
currentItem, \
|
|
sizeof(Name##MenuList)/sizeof(CTRL_MENU_ITEM_DATA *) -1, \
|
|
pageItem, \
|
|
style, \
|
|
0, \
|
|
Name##MenuList, \
|
|
sizeof(Name##MenuList)/sizeof(CTRL_MENU_ITEM_DATA *) -1, \
|
|
};
|
|
|
|
#define CREATE_LIST_ITEM_DATA(Name,stringID,iconID,StatusFlag) \
|
|
static CTRL_LIST_ITEM_DATA Name##Item={ \
|
|
stringID, \
|
|
iconID, \
|
|
StatusFlag, \
|
|
};
|
|
|
|
#define CREATE_LIST_DATA(Name,currentItem,pageItem,style,event) \
|
|
CTRL_LIST_DATA Name##Data={ \
|
|
currentItem, \
|
|
sizeof(Name##ListList)/sizeof(CTRL_LIST_ITEM_DATA *) -1, \
|
|
pageItem, \
|
|
style, \
|
|
0, \
|
|
Name##ListList, \
|
|
sizeof(Name##ListList)/sizeof(CTRL_LIST_ITEM_DATA *) -1, \
|
|
event, \
|
|
};
|
|
|
|
#define CREATE_SLIDER_DATA(Name,sliderType,currentItem,totalItem) \
|
|
CTRL_SLIDER_DATA Name##Data={ \
|
|
(sliderType), \
|
|
currentItem, \
|
|
totalItem, \
|
|
};
|
|
|
|
#define CREATE_SCRBAR_DATA(Name,scrlbarType,scrlbarShape,currentItem,totalItem) \
|
|
CTRL_SCRBAR_DATA Name##Data={ \
|
|
(scrlbarType), \
|
|
scrlbarShape, \
|
|
currentItem, \
|
|
totalItem, \
|
|
0, \
|
|
};
|
|
|
|
#define CREATE_PROBAR_DATA(Name,progressbarType,currentItem,totalItem) \
|
|
CTRL_PROBAR_DATA Name##Data={ \
|
|
(progressbarType), \
|
|
currentItem, \
|
|
totalItem, \
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
#define LIST_LIST_BEGIN(Name) CTRL_LIST_ITEM_DATA *Name##ListList[]={
|
|
#define LIST_LIST_ITEM(Name) &Name##Item,
|
|
#define LIST_LIST_END 0};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
#define STATE_LIST_BEGIN(Name) CTRL_STATE_ITEM_DATA *Name##StateList[]={
|
|
#define STATE_LIST_ITEM(Name) &Name##Item,
|
|
#define STATE_LIST_END 0};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
#define BUTTON_LIST_BEGIN(Name) CTRL_BUTTON_ITEM_DATA *Name##ButtonList[]={
|
|
#define BUTTON_LIST_ITEM(Name) &Name##Item,
|
|
#define BUTTON_LIST_END 0};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
#define MENU_LIST_BEGIN(Name) CTRL_MENU_ITEM_DATA *Name##MenuList[]={
|
|
#define MENU_LIST_ITEM(Name) &Name##Item,
|
|
#define MENU_LIST_END 0};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
#define DECLARE_CTRL_LIST(Name) extern VControl *Name##CtrlList[];
|
|
#define CTRL_LIST_BEGIN(Name) VControl *Name##CtrlList[]={
|
|
#define CTRL_LIST_ITEM(Name) &Name##Ctrl,
|
|
#define CTRL_LIST_END 0};
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
#define CREATE_CTRL(Name,ShowTable,Type,Data,Parent,x1,y1,x2,y2) \
|
|
VControl Name##Ctrl={ \
|
|
#Name, \
|
|
Type, \
|
|
Name##CtrlList, \
|
|
Parent, \
|
|
0, \
|
|
Name##CmdMap, \
|
|
Data, \
|
|
ShowTable##Show, \
|
|
{(x1),(y1),(x2),(y2)}, \
|
|
0 \
|
|
};
|
|
|
|
#define CREATE_PANEL_CTRL(Name,Parent,x1,y1,x2,y2) \
|
|
VControl Name##Ctrl={ \
|
|
#Name, \
|
|
CTRL_PANEL, \
|
|
Name##CtrlList, \
|
|
Parent, \
|
|
0, \
|
|
NULL, \
|
|
(void *)&Name##Data, \
|
|
NULL, \
|
|
{(x1),(y1),(x2),(y2)}, \
|
|
0 \
|
|
};
|
|
|
|
#define CREATE_TAB_CTRL(Name,Cmd,Parent,x1,y1,x2,y2) \
|
|
VControl Name##Ctrl={ \
|
|
#Name, \
|
|
CTRL_TAB, \
|
|
Name##CtrlList, \
|
|
Parent, \
|
|
0, \
|
|
Cmd##CmdMap, \
|
|
(void *)&Name##Data, \
|
|
Name##Show, \
|
|
{(x1),(y1),(x2),(y2)}, \
|
|
0 \
|
|
};
|
|
|
|
#define CREATE_ZOOM_CTRL(Name,Parent,x1,y1,x2,y2) \
|
|
VControl Name##Ctrl={ \
|
|
#Name, \
|
|
CTRL_ZOOM, \
|
|
NULL, \
|
|
Parent, \
|
|
0, \
|
|
Name##CmdMap, \
|
|
(void *)&Name##Data, \
|
|
Name##Show, \
|
|
{(x1),(y1),(x2),(y2)}, \
|
|
0 \
|
|
};
|
|
#define CREATE_STATIC_CTRL(Name,Parent,x1,y1,x2,y2) \
|
|
VControl Name##Ctrl={ \
|
|
#Name, \
|
|
CTRL_STATIC, \
|
|
NULL, \
|
|
Parent, \
|
|
0, \
|
|
Name##CmdMap, \
|
|
(void *)&Name##Data, \
|
|
Name##Show, \
|
|
{(x1),(y1),(x2),(y2)}, \
|
|
0 \
|
|
};
|
|
#define CREATE_STATE_CTRL(Name,Parent,x1,y1,x2,y2) \
|
|
VControl Name##Ctrl={ \
|
|
#Name, \
|
|
CTRL_STATE, \
|
|
NULL, \
|
|
Parent, \
|
|
0, \
|
|
Name##CmdMap, \
|
|
(void *)&Name##Data, \
|
|
Name##Show, \
|
|
{(x1),(y1),(x2),(y2)}, \
|
|
0 \
|
|
};
|
|
#define CREATE_STATEGRAPH_CTRL(Name,Cmd,Parent,x1,y1,x2,y2) \
|
|
VControl Name##Ctrl={ \
|
|
#Name, \
|
|
CTRL_STATEGRAPH, \
|
|
NULL, \
|
|
Parent, \
|
|
0, \
|
|
Cmd##CmdMap, \
|
|
(void *)&Name##Data, \
|
|
Name##Show, \
|
|
{(x1),(y1),(x2),(y2)}, \
|
|
0 \
|
|
};
|
|
#define CREATE_BUTTON_CTRL(Name,Cmd,Parent,x1,y1,x2,y2) \
|
|
VControl Name##Ctrl={ \
|
|
#Name, \
|
|
CTRL_BUTTON, \
|
|
NULL, \
|
|
Parent, \
|
|
0, \
|
|
Cmd##CmdMap, \
|
|
(void *)&Name##Data, \
|
|
Name##Show, \
|
|
{(x1),(y1),(x2),(y2)}, \
|
|
0 \
|
|
};
|
|
|
|
#define CREATE_MENU_CTRL(Name,Cmd,Parent,x1,y1,x2,y2) \
|
|
VControl Name##Ctrl={ \
|
|
#Name, \
|
|
CTRL_MENU, \
|
|
NULL, \
|
|
Parent, \
|
|
0, \
|
|
Cmd##CmdMap, \
|
|
(void *)&Name##Data, \
|
|
Name##Show, \
|
|
{(x1),(y1),(x2),(y2)}, \
|
|
0 \
|
|
};
|
|
|
|
#define CREATE_LIST_CTRL(Name,Cmd,Parent,x1,y1,x2,y2) \
|
|
VControl Name##Ctrl={ \
|
|
#Name, \
|
|
CTRL_LIST, \
|
|
NULL, \
|
|
Parent, \
|
|
0, \
|
|
Cmd##CmdMap, \
|
|
(void *)&Name##Data, \
|
|
Name##Show, \
|
|
{(x1),(y1),(x2),(y2)}, \
|
|
0 \
|
|
};
|
|
|
|
#define CREATE_SLIDER_CTRL(Name,Cmd,Parent,x1,y1,x2,y2) \
|
|
VControl Name##Ctrl={ \
|
|
#Name, \
|
|
CTRL_SLIDER, \
|
|
Name##CtrlList, \
|
|
Parent, \
|
|
0, \
|
|
Cmd##CmdMap, \
|
|
(void *)&Name##Data, \
|
|
Name##Show, \
|
|
{(x1),(y1),(x2),(y2)}, \
|
|
0 \
|
|
};
|
|
|
|
#define CREATE_SCRBAR_CTRL(Name,Cmd,Parent,x1,y1,x2,y2) \
|
|
VControl Name##Ctrl={ \
|
|
#Name, \
|
|
CTRL_SCROLLBAR, \
|
|
Name##CtrlList, \
|
|
Parent, \
|
|
0, \
|
|
Cmd##CmdMap, \
|
|
(void *)&Name##Data, \
|
|
Name##Show, \
|
|
{(x1),(y1),(x2),(y2)}, \
|
|
0 \
|
|
};
|
|
|
|
#define CREATE_PROBAR_CTRL(Name,Cmd,Parent,x1,y1,x2,y2) \
|
|
VControl Name##Ctrl={ \
|
|
#Name, \
|
|
CTRL_PROGRESSBAR, \
|
|
Name##CtrlList, \
|
|
Parent, \
|
|
0, \
|
|
Cmd##CmdMap, \
|
|
(void *)&Name##Data, \
|
|
Name##Show, \
|
|
{(x1),(y1),(x2),(y2)}, \
|
|
0 \
|
|
};
|
|
|
|
/*********************************************
|
|
marcro usage
|
|
#define Conn(x,y) x##y
|
|
#define ToChar(x) #@x
|
|
#define ToString(x) #x
|
|
**********************************************/
|
|
|
|
#endif
|