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

📄 screateevent.c

📁 brew开发的日历程序 完全模仿mediaplayer的结构设计 值得初学者学习
💻 C
📖 第 1 页 / 共 3 页
字号:
*	Description		 :	handle current window events
*	Input Parameters :	IWindow * , AEEEvent , uint16 , uint32 							
*	Output Parameters:	None												
*	Return Value	 :	boolean			
*	Date			 :	2007/04/12											
*	Author			 :	ZhongNingLin@neusoft.com              								
***************************************************************************/
static void SC_ProcessDigitalTextEvent(CreateEventWin *pme,ITextCtl* m_pText,uint16 wParam)
{
	AECHAR digital[2] = {' ','\0'};
	WWRITELONG(digital,wParam - AVK_0);
	if( WSTRLEN( pme->digitalNumber ) < MAX_DIGT_SIZE )
	  WSTRCAT(pme->digitalNumber,digital); 

	ITEXTCTL_SetText(m_pText,pme->digitalNumber,MAX_DIGT_SIZE);
	ITEXTCTL_Redraw(m_pText); 
}
/**************************************************************************
*	Function Name	 :	SC_ProcessTextEvent                                            
*	Description		 :	handle current window events
*	Input Parameters :	IWindow * , AEEEvent , uint16 , uint32 							
*	Output Parameters:	None												
*	Return Value	 :	boolean			
*	Date			 :	2007/04/12											
*	Author			 :	ZhongNingLin@neusoft.com              								
***************************************************************************/
static boolean SC_ProcessTextEvent(CreateEventWin *pme,AEEEvent eCode, uint16 wParam, uint32 dwParam,ITextCtl* m_pText)
{
	int len;
	int32 curPos;
	curPos = ITEXTCTL_GetCursorPos(m_pText);
	len = WSTRLEN(ITEXTCTL_GetTextPtr(m_pText));
	if (ITEXTCTL_HandleEvent(m_pText, eCode, wParam, dwParam))
	{
		// If there is text, then make sure the cursor is at the start or end
		if (len)
		{
			// If the cursor is anywhere between the start and end, let the control handle
			// the event
			if (curPos >= TC_CURSORSTART + 1 &&    // cursor beyond start
				curPos <= len - 1)             // cursor before end
				return TRUE;
			
		}		
		
		switch( eCode )
		{
		case EVT_KEY:
			switch( wParam)
			{
				
			case AVK_RIGHT:
				if (curPos == TC_CURSORSTART || curPos == (len - 1))
					return TRUE;
				break;
			case AVK_LEFT:
				if (curPos == (TC_CURSORSTART + 1) || curPos == len)
					return TRUE;
				break;
			case AVK_CLR:
				switch(pme->appState)
				{
				case APP_TELPHON:
				case APP_BRITHDATY_DATE:					
					pme->digitalNumber[WSTRLEN( pme->digitalNumber ) -1] = '\0';
					return TRUE;
				default:
				    return TRUE;
				}
			
			case AVK_0:
			case AVK_1:
			case AVK_2:
			case AVK_3:
			case AVK_4:
			case AVK_5:
			case AVK_6:
			case AVK_7:
			case AVK_8:
			case AVK_9:
				switch(pme->appState)
				{
				case APP_TELPHON:
				case APP_BRITHDATY_DATE:
					SC_ProcessDigitalTextEvent(pme,m_pText, wParam);
					return TRUE;
				default:
				    return FALSE;
				}
			    
			    
			default:
				return FALSE;
			}
		
		}//end of switch eCode
	}//end of if

	return FALSE;
}

/**************************************************************************
*	Function Name	 :	ReleaseObj                                  
*	Description		 :	release controls
*	Input Parameters :	void ** 				
*	Output Parameters:	None												
*	Return Value	 :	boolean			
*	Date			 :	2007/04/13											
*	Author			 :	ZhongNingLin@neusoft.com              								
***************************************************************************/
static void ReleaseObj(void ** ppObj)
{
   if ( ppObj && *ppObj ) 
   {
      (void)IBASE_Release(((IBase *)*ppObj));
      *ppObj = NULL;
   }
}


/**************************************************************************
*	Function Name	 :	SC_setMemoContent                                  
*	Description		 :	set the memo content
*	Input Parameters :	CreateEventWin * 				
*	Output Parameters:	None												
*	Return Value	 :	boolean			
*	Date			 :	2007/04/17											
*	Author			 :	ZhongNingLin@neusoft.com              								
***************************************************************************/
static void SC_setMemoContent(CreateEventWin* pme)
{	
	if( pme->m_Obj == NULL )
		return;
	ITEXTCTL_GetText( (ITextCtl *)pme->m_Obj,pme->memoContent, 30) ;
}

/**************************************************************************
*	Function Name	 :	SC_setMemoTime                                  
*	Description		 :	设置闹钟时间
*	Input Parameters :	CreateEventWin * 				
*	Output Parameters:	None												
*	Return Value	 :	boolean			
*	Date			 :	2007/04/17											
*	Author			 :	ZhongNingLin@neusoft.com              								
***************************************************************************/
static void SC_setMemoTime(CreateEventWin* pme)
{
	int32 time = 0;

	if( pme->m_Obj == NULL )
		return;

	time = ITIMECTL_GetTime( (ITimeCtl *) pme->m_Obj); 

	ITIMECTL_GetTimeString( (ITimeCtl *) pme->m_Obj,time,pme->alarmTime,25,GTS_AMPM); 

}

/**************************************************************************
*	Function Name	 :	SC_setBrthName                                  
*	Description		 :	设置生日人姓名
*	Input Parameters :	CreateEventWin * 				
*	Output Parameters:	None												
*	Return Value	 :	None			
*	Date			 :	2007/04/17											
*	Author			 :	ZhongNingLin@neusoft.com              								
***************************************************************************/
static void SC_setBrthName(CreateEventWin* pme)
{	
	if( pme->m_Obj == NULL )
		return;
	ITEXTCTL_GetText( (ITextCtl *)pme->m_Obj,pme->name, MAX_BRTH_SIZE);
}

/**************************************************************************
*	Function Name	 :	SC_setBrthAge                                  
*	Description		 :	设置生日人年龄(过生的周岁)
*	Input Parameters :	CreateEventWin * 				
*	Output Parameters:	None												
*	Return Value	 :	None			
*	Date			 :	2007/04/17											
*	Author			 :	ZhongNingLin@neusoft.com              								
***************************************************************************/
static void SC_setBrthAge(CreateEventWin* pme)
{
	double year = 0.0;
	uint8  age  = 0;
	uint16 sysYear = pme->m_pOwner->m_year;
	
	year = WSTRTOFLOAT(pme->digitalNumber);
	age = (uint8)(sysYear - year);

	if( age < 0 )
		age = 24;

	if( age > 200 )
		age = 200;
	
	pme->age = age;
}

/**************************************************************************
*	Function Name	 :	SC_setBrthTime                                  
*	Description		 :	设置闹钟时间
*	Input Parameters :	CreateEventWin * 				
*	Output Parameters:	None												
*	Return Value	 :	None			
*	Date			 :	2007/04/17											
*	Author			 :	ZhongNingLin@neusoft.com              								
***************************************************************************/
static void SC_setBrthTime(CreateEventWin* pme)
{
	int32 time = 0;

	if( pme->m_Obj == NULL )
		return;

	time = ITIMECTL_GetTime( (ITimeCtl *) pme->m_Obj); 

	ITIMECTL_GetTimeString( (ITimeCtl *) pme->m_Obj,time,pme->alarmTime,25,GTS_AMPM); 

}

/**************************************************************************
*	Function Name	 :	SC_SaveBrthDay                                  
*	Description		 :	把生日备忘录存入数据库中
*	Input Parameters :	CreateEventWin * 				
*	Output Parameters:	None												
*	Return Value	 :	None			
*	Date			 :	2007/04/17											
*	Author			 :	ZhongNingLin@neusoft.com              								
***************************************************************************/
static void SC_SaveBrthDay(CreateEventWin* pme)
{
	AECHAR sDate[30] = {' ','\0'};
	
	EventData *data = NULL;	
	
	data = (EventData*)MALLOC(sizeof(EventData));
	if( data == NULL)
		return;
	Schedule_GetDateString(pme->m_pOwner, sDate);

	data->eAlarm = pme->alarmType;
	data->eType  = pme->m_pOwner->eventType;
	data->eAge   = pme->age;
	data->index  = pme->index;

	STRTOWSTR( " ", data->eContent,15 );
	WSTRCPY( data->eName, pme->name );	
	STRTOWSTR( " ", data->eTelNo,15 );	
	WSTRCPY( data->eTime, pme->alarmTime );

	//SEventContent_Insert(data, pme->m_pOwner);//链表
	if( pme->appTYPE == APP_NEW )
	{
		WSTRCPY( data->eDate, sDate );	
		ScheDB_AddEventItem( pme->m_pOwner,data);
	} 
	else
	{
		WSTRCPY( data->eDate, pme->sDate );
		ScheDB_UpdateEventItem( pme->m_pOwner,data);
	}		 

	FREEIF(data);
}
/**************************************************************************
*	Function Name	 :	SC_saveMemo                                  
*	Description		 :	把备忘录存入数据库中
*	Input Parameters :	CreateEventWin * 				
*	Output Parameters:	None												
*	Return Value	 :	None			
*	Date			 :	2007/04/17											
*	Author			 :	ZhongNingLin@neusoft.com              								
***************************************************************************/
static void SC_saveMemo(CreateEventWin* pme)
{
   
	AECHAR sDate[30] = {' ','\0'};
	
	EventData *data = NULL;	
	
	data = (EventData*)MALLOC(sizeof(EventData));
	if( data == NULL)
		return;
	Schedule_GetDateString(pme->m_pOwner, sDate);

	data->eAlarm = pme->alarmType;
	data->eType  = pme->m_pOwner->eventType;
	data->index  = pme->index;
	WSTRCPY( data->eContent, pme->memoContent );
	//WSTRCPY( data->eDate, sDate );
	STRTOWSTR(" ", data->eName,15 );
	STRTOWSTR(" ", data->eTelNo,15 );	
	WSTRCPY( data->eTime, pme->alarmTime );

	//SEventContent_Insert(data, pme->m_pOwner);//链表
    if( pme->appTYPE == APP_NEW )
	{
		WSTRCPY( data->eDate, sDate );	
		ScheDB_AddEventItem( pme->m_pOwner,data);
	} 
	else
	{
		WSTRCPY( data->eDate, pme->sDate );
		ScheDB_UpdateEventItem( pme->m_pOwner,data);
	}	

	FREEIF(data);
}

/**************************************************************************
*	Function Name	 :	SC_SaveTleNo                                  
*	Description		 :	通话备忘录写入数据库
*	Input Parameters :	CreateEventWin * 				
*	Output Parameters:	None												
*	Return Value	 :	boolean			
*	Date			 :	2007/04/22											
*	Author			 :	ZhongNingLin@neusoft.com              								
***************************************************************************/
static void SC_SaveTleNo(CreateEventWin* pme)
{
	AECHAR sDate[30] = {' ','\0'};
	
	EventData *data = NULL;	
	
	data = (EventData*)MALLOC(sizeof(EventData));
	if( data == NULL)
		return;
	Schedule_GetDateString(pme->m_pOwner, sDate);

	data->eAlarm = pme->alarmType;
	data->eType  = pme->m_pOwner->eventType;
	data->index  = pme->index;

	STRTOWSTR( " ", data->eContent,15 );
	WSTRCPY( data->eName, pme->name );
	//WSTRCPY( data->eDate, sDate );	
	WSTRCPY( data->eTelNo, pme->digitalNumber );	
	WSTRCPY( data->eTime, pme->alarmTime );

	//SEventContent_Insert(data, pme->m_pOwner);//链表
	if( pme->appTYPE == APP_NEW )
	{
		WSTRCPY( data->eDate, sDate );	
		ScheDB_AddEventItem( pme->m_pOwner,data);
	} 
	else
	{
		WSTRCPY( data->eDate, pme->sDate );
		ScheDB_UpdateEventItem( pme->m_pOwner,data);
	}	
	

	FREEIF(data);
}
//========================end of file============

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -