⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 appframe.c

📁 fs2410上的驱动
💻 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 + -