📄 appframe.c
字号:
/*
*********************************************************************************************************
* Samsung ARM S3C2410 Software Frame
*
* (c) Copyright 2008-2010, LastRitter
* All Rights Reserved
*
* File :
* By : LastRitter
*********************************************************************************************************
*/
#include "SystemTool.h"
#define SW_APP_NO_EXIST 0
#define SW_APP_EXIST 1
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
typedef struct
{
uint16 uiIcon;
uint16 uiHandle;
window stWindow;
uint16 uiState;
}application;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
static application sta_Application[SW_APP_MAX];
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
void SW_AppInit(void)
{
uint16 uiCount;
for(uiCount=0;uiCount<SW_APP_MAX;uiCount++)
{
sta_Application[uiCount].uiIcon=0;
sta_Application[uiCount].uiHandle=SW_DEF_HANDLE;
sta_Application[uiCount].uiState=SW_APP_NO_EXIST;
SW_StructInit(&sta_Application[uiCount].stWindow);
}
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
uint16 SW_OpenApp(uint16 uiIcon)
{
uint16 uiCount,uiHandle;
window *pstTemp;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
for(uiCount=0;uiCount<SW_APP_MAX;uiCount++)
if(sta_Application[uiCount].uiState!=SW_APP_NO_EXIST&&sta_Application[uiCount].uiIcon==uiIcon)
break;
if(uiCount==SW_APP_MAX)
{
UART_TextOut("Can't find the program of this icon.(SW_OpenApp)\n");
return 1;
}
//******************************************************************************************************
pstTemp=&sta_Application[uiCount].stWindow;
uiHandle=SW_CreateWindowEx(uiCount,pstTemp->scTitle,pstTemp->CallBack,
pstTemp->uiX,pstTemp->uiY,pstTemp->uiWidth,pstTemp->uiHigh);
sta_Application[uiCount].uiHandle=uiHandle;
if(pstTemp->uiStyple!=SW_DEF_STYPLE)
SW_SetStyple(uiHandle,pstTemp->uiStyple);
if(pstTemp->stFront!=SW_DEF_FRONT)
SW_SetColour(uiHandle,pstTemp->stFront,pstTemp->stBack);
//******************************************************************************************************
SW_ShowWindow(uiHandle);
return 0;
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
extern window sta_Window[];
uint16 SW_CloseApp(uint16 uiHandle)
{
uint16 uiIcon=sta_Application[sta_Window[uiHandle].uiApp].uiIcon;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
if(uiHandle==0||uiHandle>=SW_WINDOW_MAX||sta_Window[uiHandle].uiHandle!=uiHandle)
{
UART_TextOut("Error handle.(SW_CloseApp) \n");
return 1;
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
if(SW_DeleteWindow(uiHandle))
{
UART_TextOut("Can't Delete this window.(SW_CloseApp)\n");
return 1;
}
if(SW_CloseIcon(uiIcon))
{
UART_TextOut("Can't close the icon of this window.(SW_CloseApp)\n");
return 1;
}
return 0;
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
uint16 SW_AddApp(uint8 *pucBitMap,char *pscTitle,void (*CallBack)(uint16,uint16,uint16,uint16),
uint16 uiX,uint16 uiY,uint16 uiWidth,uint16 uiHigh)
{
uint16 uiCount;
deskicon stIcon;
//******************************************************************************************************
for(uiCount=0;uiCount<SW_APP_MAX;uiCount++)
{
if(sta_Application[uiCount].uiState==SW_APP_NO_EXIST)
break;
}
if(uiCount==SW_APP_MAX)
return 0;
//******************************************************************************************************
sta_Application[uiCount].uiState=SW_APP_EXIST;
stIcon.pscTitle=pscTitle;
stIcon.pucBitMap=pucBitMap;
//******************************************************************************************************
sta_Application[uiCount].uiIcon=SW_AddIcon(&stIcon);
//******************************************************************************************************
sta_Application[uiCount].stWindow.scTitle=pscTitle;
sta_Application[uiCount].stWindow.CallBack=CallBack;
sta_Application[uiCount].stWindow.uiX=uiX;
sta_Application[uiCount].stWindow.uiY=uiY;
sta_Application[uiCount].stWindow.uiWidth=uiWidth;
sta_Application[uiCount].stWindow.uiHigh=uiHigh;
return uiCount;
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
uint16 SW_AddAppEx(uint8 *pucBitMap,char *pscTitle,void (*CallBack)(uint16,uint16,uint16,uint16),
uint16 uiX,uint16 uiY,uint16 uiWidth,uint16 uiHigh,
uint16 uiStyple,colour stFront,colour stBack)
{
uint16 uiCount;
deskicon stIcon;
//******************************************************************************************************
for(uiCount=0;uiCount<SW_APP_MAX;uiCount++)
{
if(sta_Application[uiCount].uiState==SW_APP_NO_EXIST)
break;
}
if(uiCount==SW_APP_MAX)
return 0;
//******************************************************************************************************
sta_Application[uiCount].uiState=SW_APP_EXIST;
stIcon.pscTitle=pscTitle;
stIcon.pucBitMap=pucBitMap;
//******************************************************************************************************
sta_Application[uiCount].uiIcon=SW_AddIcon(&stIcon);
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
sta_Application[uiCount].stWindow.scTitle=pscTitle;
sta_Application[uiCount].stWindow.CallBack=CallBack;
sta_Application[uiCount].stWindow.uiX=uiX;
sta_Application[uiCount].stWindow.uiY=uiY;
sta_Application[uiCount].stWindow.uiWidth=uiWidth;
sta_Application[uiCount].stWindow.uiHigh=uiHigh;
//******************************************************************************************************
if(uiStyple)
sta_Application[uiCount].stWindow.uiStyple=uiStyple;
else
sta_Application[uiCount].stWindow.uiStyple=SW_DEF_STYPLE;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
if(stFront)
sta_Application[uiCount].stWindow.stFront=stFront;
else
sta_Application[uiCount].stWindow.stFront=SW_DEF_FRONT;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
if(stBack)
sta_Application[uiCount].stWindow.stBack=stBack;
else
sta_Application[uiCount].stWindow.stBack=SW_DEF_BACK;
//******************************************************************************************************
return uiCount;
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
uint16 SW_DeleteApp(uint16 uiApp)
{
return 0;
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
uint16 SW_GetAppWindow(uint16 uiApp)
{
return sta_Application[uiApp].uiHandle;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -