📄 screateevent.c
字号:
* 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 + -