📄 syswindow.c
字号:
/*
*********************************************************************************************************
* Samsung ARM S3C2410 Software Frame
*
* (c) Copyright 2008-2010, LastRitter
* All Rights Reserved
*
* File :
* By : LastRitter
*********************************************************************************************************
*/
#include "SystemTool.h"
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
window sta_Window[SW_WINDOW_MAX+1];
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
void SW_StructInit(window *pstWindow)
{
pstWindow->uiX =SW_DEF_X;
pstWindow->uiY =SW_DEF_Y;
pstWindow->uiWidth =SW_DEF_WIDTH;
pstWindow->uiHigh =SW_DEF_HIGH;
pstWindow->uiStyple =SW_DEF_STYPLE;
pstWindow->stFront =SW_DEF_FRONT;
pstWindow->stBack =SW_DEF_BACK;
pstWindow->scTitle =SW_DEF_TITLE;
pstWindow->uiParent =SW_DEF_PARENT;
pstWindow->uiChild =SW_DEF_CHILD;
pstWindow->uiHandle =SW_DEF_HANDLE;
pstWindow->uiApp =SW_DEF_APP;
pstWindow->CallBack =SW_DEF_CALLBACK;
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
uint16 SW_CreateWindow(window *pstWindow)
{
uint16 uiCount;
for(uiCount=1;uiCount<SW_WINDOW_MAX;uiCount++)
{
if(sta_Window[uiCount].uiHandle==0)
{
sta_Window[uiCount].uiX =pstWindow->uiX;
sta_Window[uiCount].uiY =pstWindow->uiY;
sta_Window[uiCount].uiWidth =pstWindow->uiWidth;
sta_Window[uiCount].uiHigh =pstWindow->uiHigh;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
sta_Window[uiCount].stFront =pstWindow->stFront;
sta_Window[uiCount].stBack =pstWindow->stBack;
sta_Window[uiCount].scTitle =pstWindow->scTitle;
sta_Window[uiCount].uiStyple=pstWindow->uiStyple;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
sta_Window[uiCount].uiState =pstWindow->uiState;
sta_Window[uiCount].uiParent=pstWindow->uiParent;
sta_Window[uiCount].uiChild =pstWindow->uiChild;
sta_Window[uiCount].CallBack=pstWindow->CallBack;
sta_Window[uiCount].uiHandle=uiCount;
sta_Window[uiCount].uiApp=pstWindow->uiApp;
sta_Window[uiCount].CallBack(uiCount,0,0,SW_WINDOW_INIT);
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
return uiCount;
}
}
UART_TextOut("Can not Create More Window\n");
return 0;
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
uint16 SW_DeleteWindow(uint16 uiHandle)
{
if(uiHandle==0||uiHandle>=SW_WINDOW_MAX)
{
UART_TextOut("Error handle.\n");
return 1;
}
if(sta_Window[uiHandle].CallBack)
{
sta_Window[uiHandle].CallBack(uiHandle,0,0,SW_WINDOW_EXIT);
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
if(SW_HideWindow(uiHandle))
{
UART_TextOut("Can't hide this window.(SW_DeleteWindow)\n");
return 1;
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
if(sta_Window[uiHandle].uiStyple!=SW_STYPLE_MAIN&&
sta_Window[uiHandle].uiStyple!=SW_STYPLE_TASKBAR)
{
SW_DeleteDock(uiHandle);
}
else
{
UART_TextOut("Can't Delete Task bar and Man window.(SW_DeleteWindow)\n");
return 1;
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
sta_Window[uiHandle].uiHandle=0;
sta_Window[uiHandle].CallBack=NULL;
SW_StructInit(&sta_Window[uiHandle]);
sta_Window[uiHandle].stMessageGroup->uiCurMessage=0;
return 0;
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
uint16 SW_CreateWindowEx(uint16 uiApp,char *pstTitle,void (*CallBack)(uint16,uint16,uint16,uint16),
uint16 uiX,uint16 uiY,uint16 uiWidth,uint16 uiHigh)
{
uint16 uiHandle;
// uint16 uiCount;
window stWindow;
if((uiX+uiWidth)>SW_XMAX||(uiY+uiHigh)>SW_YMAX)
return 0;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
SW_StructInit(&stWindow);
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
if(uiX!=0||uiY!=0||uiWidth!=0||uiHigh!=0)
{
stWindow.uiX=uiX;
stWindow.uiY=uiY;
stWindow.uiWidth=uiWidth;
stWindow.uiHigh=uiHigh;
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
stWindow.scTitle=pstTitle;
stWindow.CallBack=CallBack;
stWindow.uiApp=uiApp;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
uiHandle=SW_CreateWindow(&stWindow);
// UART_TextOut("App %d",uiApp);
// for(uiCount=0;uiCount<SW_WINDOW_MAX;uiCount++)
// UART_TextOut("C %d ",sta_Window[uiCount].uiApp);
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
SW_AddDock(uiHandle);
return uiHandle;
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
uint16 SW_SetColour(uint16 uiHandle,colour stFront,colour stBack)
{
sta_Window[uiHandle].stFront=stFront;
sta_Window[uiHandle].stBack=stBack;
return 0;
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
uint16 SW_SetStyple(uint16 uiHandle,uint16 uiStyple)
{
uint16 uiTemp=sta_Window[uiHandle].uiStyple;
sta_Window[uiHandle].uiStyple=uiStyple;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
switch(uiStyple)
{
case SW_STYPLE_FULL:
case SW_STYPLE_MAIN:
sta_Window[uiHandle].uiX=0;
sta_Window[uiHandle].uiY=0;
sta_Window[uiHandle].uiWidth=SW_XMAX;
sta_Window[uiHandle].uiHigh =SW_YMAX;
break;
case SW_STYPLE_TASKBAR:
sta_Window[uiHandle].uiX=0;
sta_Window[uiHandle].uiY=(SW_YMAX-SW_DEF_TASKBAR_HIGH);
sta_Window[uiHandle].uiWidth=SW_XMAX;
sta_Window[uiHandle].uiHigh =SW_DEF_TASKBAR_HIGH;
break;
default:break;
}
return uiTemp;
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
const window *SW_GetWindowInfo(uint16 uiHandle)
{
if(uiHandle==0||uiHandle>=SW_WINDOW_MAX||sta_Window[uiHandle].uiHandle!=uiHandle)
{
UART_TextOut("Error handle %d.(SW_GetWindowInfo)\n",uiHandle);
return 0;
}
return &sta_Window[uiHandle];
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -