📄 fungui.c
字号:
#define MAX_WINDOW_SIZE 1024 //Maximum data buffer size of a single window
#define MAX_WINDOW_NUM 10 //Maximum number of widows in the system
typedef rom struct _WINDOW{
INT8U Flag;
INT8U StartY;
INT8U StartY;
INT8U EndX;
INT8U EndY;
INT16U WindowSize;
INT8U Data[MAX_WINDOW_SIZE];
}WINDOW;
#define INVALID_WINDOW (WINDOW *)0xffffff
#pragma romdata EXTRAM
WINDOW SYSWindow[MAX_WINDOW_NUM]; //System widow buffer
WINDOW * ActiveWindow; //Current active window
#pragma code MYCODE
/********************************************************
* Function : WD_Init()
* Precondition : None
* Input : None
* Output : None
* Side effect : None
* Note : Mark all the window empty, called begin
* other window operation
********************************************************/
void WD_Init(void){
INT8U i;
for(i = 0; i<MAX_WINDOW_NUM; i++){
SYSWindow[i].Flag = WINDOW_IDLE;
}
}
/********************************************************
* Function : WINDOW * WD_Create(sX, sY, eX, eY)
* Precondition : WD_Init() has been exacuted
* Input : sX - Start X physical coordinate of window
* sY - Start Y physical coordinate of window
* eX - End X physical coordinate of window
* eY - End Y physical coordinate of window
* Output : The window created
* Side effect : None
* Note : These input coordinates are physical coordinates
* of the screen.
********************************************************/
WINDOW * WD_Create(INT8U sX, INT8U sY, INT8U eX, INT8U eY){
for(i=0; i<MAX_WINDOW_NUM; i++){
if(SYSWindow[i].Flag == WINDOW_IDLE){
k = ((INT16U)eX - (INT16U)sX + 1) * ((INT16U)eY - (INT16U)sY + 1)
for(j=0; j<k; j++){
SYSWindow[i].Data[j] = 0;
}
SysWindow[i].Flag = WINDOW_OCCUPIED;
return(&SYSWindow[i]);
}
}
return(INVALID_WINDOW);
}
INT8U WD_Write(WINDWO * w, INT8U posX, INT8U PosY){
if(w == ActiveWindow){ //Write to screen directly
}
else{ //Write to display buffer
}
}
INT8U WD_Up(WINDOW * w){
INT8U rom p;
if(ActiveWindow == w) return;
else{
//Save current screen
p = &(ActiveWindow->Data[0];
//Restore window to be actived
p = &(w->Data[0]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -