Esempio n. 1
0
bool IntersectRect(WRect *prcDest, const WRect *prcSrc1, const WRect *prcSrc2)
{
   int aleft, atop, aright, abottom;   // coordinates of prcSrc1
   int bleft, btop, bright, bbottom;   // coordinates of prcSrc2

   // get the left, top, right, bottom coordinates of each source rect
   RCCOORD(prcSrc1, aleft, atop, aright, abottom);
   RCCOORD(prcSrc2, bleft, btop, bright, bbottom);

   // early rejection test
   if (aleft > bright || atop > bbottom || bleft > aright || btop > abottom) {
      if (prcDest) {
         SETAEERECT(prcDest, 0, 0, 0, 0);
      }
      return 0;   // empty intersection
   }

   if (prcDest) {
      prcDest->x  = MAX(aleft, bleft);
      prcDest->y  = MAX(atop, btop);
      prcDest->dx = MIN(aright, bright) - prcDest->x+1;
      prcDest->dy = MIN(abottom, bbottom) - prcDest->y + 1;
   }
   
   return 1;
}
Esempio n. 2
0
// this function is called when your application is starting up
boolean lizard_InitAppData(lizard* pMe)
{
    // Get the device information for this handset.
    // Reference all the data by looking at the pMe->DeviceInfo structure
    // Check the API reference guide for all the handy device info you can get
	 
    pMe->DeviceInfo.wStructSize = sizeof(pMe->DeviceInfo);
    ISHELL_GetDeviceInfo(pMe->a.m_pIShell,&pMe->DeviceInfo);
	
	SETAEERECT( &pMe->m_rScreenRect, 
		0, 0, 
		pMe->DeviceInfo.cxScreen, 
		pMe->DeviceInfo.cyScreen);
	

	
   IGlobalVariable_New(pMe->a.m_pIShell, pMe->a.m_pIDisplay, &(pMe->DeviceInfo), (void **) &(pMe->glbVar));
	pMe->glbVar->ClsId = pMe->a.clsID;
	 
	pMe->glbVar->appState = APP_STATE_INIT;
	
	IMainUI_New( pMe->glbVar, 0, (void **)&(pMe->pMainUI));

	IPositionThread_New(pMe->glbVar, 0, (void**)&(pMe->pPosThread),&( pMe->pMainUI->pPosUI));
	
	
    // if there have been no failures up to this point then return success
    return TRUE;
}
Esempio n. 3
0
/*
*	函数名称: 
		 PicBrowser::Init()
*  功能介绍:
		该函数为PicBrowser类的初始化函数,载入必要的资源。
*  输入参数:   
		N/A
*  输出参数:  
		N/A
*  返回值:   
		返回是否初始化成功
*	可能出现的意外:
		N/A
*/ 
boolean PicBrowser::Init()
{
	AEEImageInfo mi;
	int nByteLoad=0;
	m_pwszTitle=(AECHAR *)MALLOC(MAX_STRING_LEN+1);  //申请字符串资源空间
	if(m_pwszTitle!=NULL)
	{
		nByteLoad=ISHELL_LoadResString(m_pIShell,FK_RES_FILE,IDS_TITLE,m_pwszTitle,MAX_STRING_LEN); //载入字符串
	}

	m_pImage=ISHELL_LoadResImage(m_pIShell,FK_RES_FILE,IDB_PIC); //载入图片
	
	if(m_pImage==NULL || nByteLoad==0)
	{
		m_bInitSuccess=FALSE;  //资源装载失败
	}
	else
	{
		m_nRed=255;  //颜色值的R值初始化为255

		//取图片信息
		IIMAGE_GetInfo(m_pImage,&mi);
		m_nWidth=(int)mi.cx;
		m_nHeight=(int)mi.cy;

		//设置剪切矩形和图片初始位置
		SETAEERECT(&m_rctImage,0,pApp->nNoarmalFontH,pApp->lcdW,pApp->lcdH-pApp->nNoarmalFontH);
		m_nImageDrawX=m_rctImage.x+(m_rctImage.dx-m_nWidth)/2;
		m_nImageDrawY=m_rctImage.y+(m_rctImage.dy-m_nHeight)/2;
		
		m_bInitSuccess=TRUE;//装载成功
	}

	return m_bInitSuccess;
}
Esempio n. 4
0
/*
*	函数名称: 
		 PicBrowser::Draw()
*  功能介绍:
		该函数为PicBrowser类的显示函数。作用是根据相应的位置信息和颜色信息在屏幕上显示一行字和一副图片。
		
*  输入参数:   
		N/A
*  输出参数:  
		N/A
*  返回值:   
		返回是否初始化成功
*	可能出现的意外:
		N/A
*/ 
void   PicBrowser::Draw()
{
	RGBVAL rgb;
	AEERect rctScreen;
	AECHAR pwszFailTip[7]= {0x8D44,0x6E90,0x88C5,0x8F7D,0x5931,0x8D25,0};    //资源装载失败

	IDISPLAY_ClearScreen(m_pIDisplay);
	
	SETAEERECT(&rctScreen,0,0,pApp->lcdW,pApp->lcdH);	

	if(!m_bInitSuccess)  //若初始化失败,提示之
	{
		IDISPLAY_DrawText(m_pIDisplay,AEE_FONT_NORMAL,pwszFailTip,-1,0,0,0,0);
		return;
	}
	
	//以下画彩色文字
	rgb=IDISPLAY_SetColor(m_pIDisplay,CLR_USER_TEXT,MAKE_RGB(m_nRed,0,255-m_nRed));
	IDISPLAY_DrawText(m_pIDisplay,AEE_FONT_NORMAL,m_pwszTitle,-1,0,0,0,0);
	IDISPLAY_SetColor(m_pIDisplay,CLR_USER_TEXT,rgb);
	
	//以下画图片
	IDISPLAY_SetClipRect(m_pIDisplay,&m_rctImage); //设置剪切矩形
	IDISPLAY_ClearScreen(m_pIDisplay);
	IIMAGE_Draw(m_pImage,m_nImageDrawX,m_nImageDrawY);
	IDISPLAY_DrawRect(m_pIDisplay,&m_rctImage,MAKE_RGB(0,0,0),RGB_NONE,IDF_RECT_FRAME);
	IDISPLAY_SetClipRect(m_pIDisplay,&rctScreen);  //将剪切矩形设回来

}
Esempio n. 5
0
uint32 IMainUI_Show(IMainUI* pUI){
	CtlAddItem ai;
	AEERect rRect;
	boolean ok; 
	pUI->glbVar->appState = APP_STATE_MAINUI;
	IDisplay_ClearScreen(pUI->glbVar->pIDisplay);
	IRESOURCE_LoadResource(pUI->glbVar->pIResouce, IDS_MAINUI_TITLE);
	IMENUCTL_SetTitle(pUI->pMenu, NULL, 0, pUI->glbVar->pIResouce->idsResource);
	
	
	// Add Items in the Menu
	
	IRESOURCE_LoadResource(pUI->glbVar->pIResouce, IDS_MAINUI_LOCATE);
	
	// Add Items in the Menu
	//ai.pText = pUI->glbVar->pIResouce->idsResource;
	ai.pImage = NULL;
	ai.pszResImage = 
		ai.pszResText = NULL;
	ai.wImage = NULL;
	ai.wText = NULL;
	ai.dwData = 0;

	// Add New
	
	
	ai.wFont = AEE_FONT_NORMAL;
	ai.wItemID = IDS_MAINUI_LOCATE;
 

	//位置上报
	IRESOURCE_LoadResource(pUI->glbVar->pIResouce, IDS_MAINUI_LOCATE);
	ai.pText = pUI->glbVar->pIResouce->idsResource;
	ai.wItemID = IDS_MAINUI_LOCATE;
	ok = IMENUCTL_AddItemEx(pUI->pMenu, &ai);
 
	//拍照上传
	IRESOURCE_LoadResource(pUI->glbVar->pIResouce, IDS_MAINUI_PHOTO);
	ai.pText = pUI->glbVar->pIResouce->idsResource;
	ai.wItemID = IDS_MAINUI_PHOTO; 
	IMENUCTL_AddItemEx(pUI->pMenu, &ai);
	
	
	SETAEERECT(&rRect, 0, 5, pUI->glbVar->pDevice->cxScreen, 
		pUI->glbVar->pDevice->cyScreen -  IDISPLAY_GetFontMetrics( pUI->glbVar->pIDisplay, AEE_FONT_NORMAL, NULL, NULL ) - 10);
	IMENUCTL_SetRect(pUI->pMenu, &rRect);
	IMENUCTL_SetActive(pUI->pMenu, FALSE);
	IMENUCTL_Redraw(pUI->pMenu);
	
	IRESOURCE_LoadResource(pUI->glbVar->pIResouce, IDS_MAINUI_SETTINGS);
	IMENUCTL_AddItem(pUI->pSK, NULL, NULL, IDS_MAINUI_SETTINGS, pUI->glbVar->pIResouce->idsResource, 0);
	
	 IMENUCTL_Redraw(pUI->pSK);
	 
	pUI->focusCTL = MAINUI_INIT;
	return AEE_SUCCESS;
}
Esempio n. 6
0
/*===========================================================================
   This function draws the splash screen and brings up the main window
   after the splash timer runs out.
===========================================================================*/
void  TS_DrawSplash(CTopSoupApp * pme,AECHAR* prompt,int msTimeout,PFNNOTIFY on_splashOver,void* pUser)
{
	if( NULL == prompt )
		return;
	
	if (pme->m_pWin)
		CTopSoupApp_DisableWin(pme);
   
   {
      IImage * pi = ISHELL_LoadResImage(pme->a.m_pIShell, NAVIGATE_RES_FILE, IDP_OBJECT_PROMPT);
	  IStatic * pInfoStatic = NULL;

      if (pi)
      {
         AEERect  rect;
		 AEEImageInfo      info;
		 int16 x,y;

		 IIMAGE_GetInfo(pi,&info);
		 x = ( pme->m_rectWin.dx - info.cx ) / 2;
		 y = pme->m_rectWin.y + ( pme->m_rectWin.dy - info.cy ) / 2;
         SETAEERECT(&rect,x,y,info.cx,info.cy);
         TS_DrawImage(pi, &rect, TRUE);


		 ISHELL_CreateInstance(pme->a.m_pIShell, AEECLSID_STATIC, (void **)&pInfoStatic);
		 ISTATIC_SetRect(pInfoStatic, &rect);
		 ISTATIC_SetProperties(pInfoStatic,  ST_MIDDLETEXT | ST_CENTERTEXT | ST_NOSCROLL);
         TS_FitStaticText(pme->a.m_pIDisplay, pInfoStatic, AEE_FONT_LARGE, prompt);

         TS_RELEASEIF(pi);
		 TS_RELEASEIF(pInfoStatic);
      }

      // start the timer.
	  if ( on_splashOver )
		  ISHELL_SetTimer(pme->a.m_pIShell, msTimeout, (PFNNOTIFY)on_splashOver, pUser);  
	  else
		  ISHELL_SetTimer(pme->a.m_pIShell, msTimeout, (PFNNOTIFY)CTopSoupApp_onSplashDrawOver, pme);
   }
}
Esempio n. 7
0
/*=============================================================================
FUNCTION: CDialerApp_SetupRecallDlg_Init

DESCRIPTION: Initializes the controls for Calling dialog

PARAMETERS:
*pMe: CDialerApp object pointer

RETURN VALUE:
boolean: Returns TRUE if successful

COMMENTS:

SIDE EFFECTS:

SEE ALSO:

=============================================================================*/
boolean CDialerApp_SetupRecallDlg_Init(CDialerApp *pMe)
{
#if defined(FEATURE_WCDMA) || defined(FEATURE_GSM)
    IDialog *pActiveDlg;
    IStatic *pIStatic;
    IMenuCtl *pISoftKeyMenu;
    AEERect StaticRect;
    AEERect MenuRect;
    AECHAR *pszRecall = NULL;

    PRINT_FUNCTION_NAME();
    // error checking
    if(pMe == NULL)
    {
        return FALSE;
    }

    pActiveDlg = CDialerApp_GetActiveDlg(pMe);

    // error checking
    if (pActiveDlg == NULL)
    {
        DIALER_ERR("Null pointer", 0,0,0);
        return FALSE;
    }

    // Get controls in dialog
    pIStatic = (IStatic*) IDIALOG_GetControl(pActiveDlg, IDC_STATIC_SETUP_RECALL);
    pISoftKeyMenu = (IMenuCtl*)IDIALOG_GetControl(pActiveDlg,
                    IDC_SK_SETUP_RECALL);
    if((pIStatic == NULL) || (pISoftKeyMenu == NULL))
    {
        DIALER_ERR("Null pointer", 0,0,0);
        return FALSE; // error
    }

    // init buffer
    pszRecall = (AECHAR*) MALLOC ((DIALERAPP_MAX_STR_SIZE)*sizeof(AECHAR));
    if(pszRecall == NULL)
    {
        DIALER_ERR("No memory", 0,0,0);
        return FALSE;
    }

    // Update the softkey menu
    (void) IMENUCTL_DeleteAll(pISoftKeyMenu);
    (void) IMENUCTL_AddItem(pISoftKeyMenu, DIALERAPP_RES_FILE, IDS_OK,
                            IDL_SK_SETUP_RECALL, NULL, 0);
    (void) IMENUCTL_AddItem(pISoftKeyMenu, DIALERAPP_RES_FILE, IDS_CANCEL,
                            IDL_SK_SETUP_RECALL_CANCEL, NULL, 0);
    SetDefaultSoftkeyLook(pMe->a.m_pIShell, pISoftKeyMenu);

    // Set Static control size
    ISTATIC_GetRect(pIStatic, &StaticRect);
    IMENUCTL_GetRect(pISoftKeyMenu, &MenuRect);
    SETAEERECT(&StaticRect, 10, 10, pMe->m_rc.dx-20, pMe->m_rc.dy-MenuRect.dy-20);

    // Static Info Properties
    ISTATIC_SetRect(pIStatic, &StaticRect);
    ISTATIC_SetActive(pIStatic, FALSE);
    ISTATIC_SetProperties(pIStatic, ST_MIDDLETEXT | ST_CENTERTEXT | ST_NOSCROLL);

    (void) ISHELL_LoadResString(pMe->a.m_pIShell, DIALERAPP_RES_FILE,
                                IDS_SETUP_RECALL, pszRecall,
                                ((DIALERAPP_MAX_STR_SIZE)*sizeof(AECHAR)));
    (void) ISTATIC_SetText(pIStatic, pszRecall, NULL, AEE_FONT_BOLD,
                           AEE_FONT_NORMAL);

    (void) IDIALOG_SetFocus(pActiveDlg, IDC_SK_SETUP_RECALL);

    FREEIF(pszRecall);

    return TRUE;
#else
    return FALSE;
#endif // defined(FEATURE_WCDMA) || defined(FEATURE_GSM)
}
Esempio n. 8
0
/*=============================================================================
FUNCTION: CDialerApp_RecallDlg_Init

DESCRIPTION: Initializes the controls for Calling dialog

PARAMETERS:
  *pMe: CDialerApp object pointer

RETURN VALUE:
  boolean: Returns TRUE if successful

COMMENTS:

SIDE EFFECTS:

SEE ALSO:

=============================================================================*/
boolean CDialerApp_RecallDlg_Init(CDialerApp *pMe)
{
#if defined(FEATURE_WCDMA) || defined(FEATURE_GSM)
    IDialog *pActiveDlg;
    IStatic *pIStatic;
    IMenuCtl *pISoftKeyMenu;
    AEERect StaticRect;
    AEERect MenuRect;
    AECHAR *pszRecall = NULL;
    AECHAR *pszName = NULL;
    CRecallDlgInfo *pDlgInfo = NULL;

    PRINT_FUNCTION_NAME();
    // error checking
    if(pMe == NULL)
    {
        return FALSE;
    }

    pActiveDlg = CDialerApp_GetActiveDlg(pMe);

    // error checking
    if (pActiveDlg == NULL)
    {
        DIALER_ERR("Null pointer", 0,0,0);
        return FALSE;
    }

    pDlgInfo = (CRecallDlgInfo*) CDialerApp_GetActiveDlgInfo(pMe);

    // Get controls in dialog
    pIStatic = (IStatic*) IDIALOG_GetControl(pActiveDlg, IDC_STATIC_RECALL);
    pISoftKeyMenu = (IMenuCtl*)IDIALOG_GetControl(pActiveDlg, IDC_SK_RECALL);
    if((pIStatic == NULL) || (pISoftKeyMenu == NULL))
    {
        DIALER_ERR("Null pointer", 0,0,0);
        return FALSE; // error
    }

    // init buffer
    pszRecall = (AECHAR*) MALLOC ((DIALERAPP_MAX_STR_SIZE)*sizeof(AECHAR));
    if(pszRecall == NULL)
    {
        DIALER_ERR("No memory", 0,0,0);
        return FALSE;
    }

    pszName = (AECHAR*) MALLOC ((DIALERAPP_MAX_STR_SIZE)*sizeof(AECHAR));
    if(pszName == NULL)
    {
        DIALER_ERR("No memory", 0,0,0);
        FREEIF(pszRecall);
        return FALSE;
    }

    // Update the softkey menu
    (void) IMENUCTL_DeleteAll(pISoftKeyMenu);

    if(AEECM_IS_VOICECALL_CONNECTED(pMe->m_pICM))
    {
        (void) IMENUCTL_AddItem(pISoftKeyMenu, DIALERAPP_RES_FILE,
                                IDS_HOLD_N_ACCEPT, IDL_RECALL_SK_HOLD_N_ACCEPT,
                                NULL, 0);
        (void) IMENUCTL_AddItem(pISoftKeyMenu, DIALERAPP_RES_FILE, IDS_REL_N_ACCEPT,
                                IDL_RECALL_SK_REL_N_ACCEPT, NULL, 0);
    }
    else
    {
        (void) IMENUCTL_AddItem(pISoftKeyMenu, DIALERAPP_RES_FILE, IDS_CALL,
                                IDL_RECALL_SK_CALL, NULL, 0);
    }

    (void) IMENUCTL_AddItem(pISoftKeyMenu, DIALERAPP_RES_FILE, IDS_CANCEL,
                            IDL_RECALL_SK_CANCEL, NULL, 0);
    SetDefaultSoftkeyLook(pMe->a.m_pIShell, pISoftKeyMenu);

    // Set Static control size
    ISTATIC_GetRect(pIStatic, &StaticRect);
    IMENUCTL_GetRect(pISoftKeyMenu, &MenuRect);
    SETAEERECT(&StaticRect, 10, 10, pMe->m_rc.dx-20, pMe->m_rc.dy-MenuRect.dy-20);

    // Static Info Properties
    ISTATIC_SetRect(pIStatic, &StaticRect);
    ISTATIC_SetActive(pIStatic, FALSE);
    ISTATIC_SetProperties(pIStatic, ST_MIDDLETEXT | ST_CENTERTEXT | ST_NOSCROLL);

    // Display name or number
    if(CheckAEEReturnStatus(ICM_GetCallInfo(pMe->m_pICM,pDlgInfo->callID,
                                            &(pMe->m_CallInfo), sizeof(AEECMCallInfo))) == TRUE)
    {
        CDialerApp_FormatNumberDisplayString(pMe, &(pMe->m_CallInfo), pszName,
                                             DIALERAPP_MAX_STR_SIZE,
                                             pMe->m_bNVAutoHyphen);
        (void) ISTATIC_SetText(pIStatic, pszName, NULL, AEE_FONT_BOLD,
                               AEE_FONT_NORMAL);

        if(WSTRLEN(pMe->m_CallInfo.other_party_no) != 0)
        {
            if(pMe->m_bNVAutoHyphen == TRUE)
            {
                AECHAR *pszHyphen = CDialerApp_HyphenateNumberString(
                                        pMe->m_CallInfo.other_party_no);
                if(WSTRCMP(pszHyphen, pszName) != 0)
                {
                    // want the phone number if it is not null and already being displayed
                    (void) ISTATIC_SetTextEx(pIStatic, (byte*) "\n", NULL, TRUE);
                    (void) ISTATIC_SetTextEx(pIStatic, (byte*) pszHyphen, NULL, TRUE);
                }
                FREEIF(pszHyphen);
            }
            else
            {
                if(WSTRCMP(pMe->m_CallInfo.other_party_no, pszName) != 0)
                {
                    // want the phone number if it is not null and already being displayed
                    (void) ISTATIC_SetTextEx(pIStatic, (byte*) "\n", NULL, TRUE);
                    (void) ISTATIC_SetTextEx(pIStatic,
                                             (byte*) pMe->m_CallInfo.other_party_no,
                                             NULL, TRUE);
                }
            }
        }
    }

    (void) ISHELL_LoadResString(pMe->a.m_pIShell, DIALERAPP_RES_FILE,
                                IDS_AVAILABLE, pszRecall,
                                ((DIALERAPP_MAX_STR_SIZE)*sizeof(AECHAR)));
    (void) ISTATIC_SetTextEx(pIStatic, (byte*) pszRecall, NULL, TRUE);

    (void) IDIALOG_SetFocus(pActiveDlg, IDC_SK_RECALL);

    FREEIF(pszRecall);
    FREEIF(pszName);

    return TRUE;
#else
    return FALSE;
#endif // defined(FEATURE_WCDMA) || defined(FEATURE_GSM)
}
Esempio n. 9
0
/*=============================================================================
FUNCTION: CDialerApp_CallingDlg_Init

DESCRIPTION: Initializes the controls for Calling dialog

PARAMETERS:
  *pMe: CDialerApp object pointer

RETURN VALUE:
  boolean: Returns TRUE if successful

COMMENTS:

SIDE EFFECTS:

SEE ALSO:

=============================================================================*/
boolean CDialerApp_CallingDlg_Init(CDialerApp *pMe)
{
    IDialog *pActiveDlg;
    IStatic *pIStatic;
    IMenuCtl *pISoftKeyMenu;
    AEERect StaticRect;
    AEERect MenuRect;
    AECHAR *pszTitle = NULL;

    PRINT_FUNCTION_NAME();
    // error checking
    if(pMe == NULL)
    {
        return FALSE;
    }

    pActiveDlg = CDialerApp_GetActiveDlg(pMe);

    // error checking
    if (pActiveDlg == NULL)
    {
        DIALER_ERR("Null pointer", 0,0,0);
        return FALSE;
    }

    // Get controls in dialog
    pIStatic = (IStatic*) IDIALOG_GetControl(pActiveDlg,
               IDC_STATIC_CALLING);
    pISoftKeyMenu = (IMenuCtl*)IDIALOG_GetControl(pActiveDlg,
                    IDC_SK_CALLING);
    if((pIStatic == NULL) || (pISoftKeyMenu == NULL))
    {
        DIALER_ERR("Null pointer", 0,0,0);
        return FALSE; // error
    }

    // init buffer
    pszTitle = (AECHAR*) MALLOC ((DIALERAPP_MAX_STR_SIZE)*sizeof(AECHAR));
    if(pszTitle == NULL)
    {
        DIALER_ERR("No memory", 0,0,0);
        return FALSE;
    }

    // load the title
#ifdef FEATURE_TTY
    if(CheckAEEReturnStatus(ICM_GetCallInfo(pMe->m_pICM, pMe->m_byCurrOrigCall, &(pMe->m_CallInfo), sizeof(AEECMCallInfo))) == FALSE)
    {
        DIALER_ERR("ICM_GetCallInfo FAILED", 0, 0, 0);
        return FALSE;
    }
    if( pMe->m_CallInfo.bTTYcall ) {
        (void) ISHELL_LoadResString(pMe->a.m_pIShell, DIALERAPP_RES_FILE, IDS_CALLING_TTY, pszTitle,
                                    ((DIALERAPP_MAX_STR_SIZE)*sizeof(AECHAR)));
    }
    else {
        (void) ISHELL_LoadResString(pMe->a.m_pIShell, DIALERAPP_RES_FILE, IDS_CALLING, pszTitle,
                                    ((DIALERAPP_MAX_STR_SIZE)*sizeof(AECHAR)));
    }
#else
    (void) ISHELL_LoadResString(pMe->a.m_pIShell, DIALERAPP_RES_FILE, IDS_CALLING, pszTitle,
                                ((DIALERAPP_MAX_STR_SIZE)*sizeof(AECHAR)));
#endif
    // Update the softkey menu
    (void) IMENUCTL_DeleteAll(pISoftKeyMenu);
    (void) IMENUCTL_AddItem(pISoftKeyMenu, DIALERAPP_RES_FILE, IDS_END,
                            IDL_SK_CALLING_END, NULL, 0);
    SetDefaultSoftkeyLook(pMe->a.m_pIShell, pISoftKeyMenu);


    // Set Static control size
    ISTATIC_GetRect(pIStatic, &StaticRect);
    IMENUCTL_GetRect(pISoftKeyMenu, &MenuRect);
    SETAEERECT(&StaticRect, 10, 10, pMe->m_rc.dx-20, pMe->m_rc.dy-MenuRect.dy-20);

    // Static Info Properties
    ISTATIC_SetRect(pIStatic, &StaticRect);
    ISTATIC_SetActive(pIStatic, FALSE);
    ISTATIC_SetProperties(pIStatic, ST_MIDDLETEXT | ST_UNDERLINE | ST_CENTERTITLE | ST_CENTERTEXT | ST_NOSCROLL);
    (void) ISTATIC_SetText(pIStatic, pszTitle, NULL, AEE_FONT_BOLD,
                           AEE_FONT_NORMAL);

    (void) IDIALOG_SetFocus(pActiveDlg, IDC_SK_CALLING);

    // set timer for emergency calls "searching"
    if(CheckAEEReturnStatus(ICM_GetCallInfo(pMe->m_pICM, pMe->m_byCurrOrigCall, &(pMe->m_CallInfo), sizeof(AEECMCallInfo))) == TRUE)
    {
        if(pMe->m_CallInfo.call_type == AEECM_CALL_TYPE_EMERGENCY)
        {
            (void) ISHELL_SetTimer(pMe->a.m_pIShell, 1000,
                                   (PFNNOTIFY) CDialerApp_CallingDlg_DisplayRefresh, (void*) pMe);
        }
    }

    FREE(pszTitle);

#ifdef FEATURE_UI_SECONDARY_DISP_SUPPORT
#error code not present
#endif

    return CDialerApp_CallingDlg_DisplayRefresh(pMe);
}
Esempio n. 10
0
/*=============================================================================
FUNCTION: CDialerApp_SSRequestDlg_Init

DESCRIPTION: Initializes the controls for SS Request dialog

PARAMETERS:
  *pMe: CDialerApp object pointer

RETURN VALUE:
  boolean: Returns TRUE if successful

COMMENTS:

SIDE EFFECTS:

SEE ALSO:

=============================================================================*/
boolean CDialerApp_SSRequestDlg_Init(CDialerApp *pMe)
{
#if defined(FEATURE_WCDMA) || defined(FEATURE_GSM)
    IDialog *pActiveDlg;
    IStatic *pIStatic;
    IMenuCtl *pISoftKeyMenu;
    AEERect StaticRect;
    AEERect MenuRect;
    AECHAR *pszStrBeg = NULL;
    AECHAR *pszStrEnd = NULL;
    AECHAR *pszBuf = NULL;
    AECHAR szFormat[] = {'%','s',' ','%','s','\0'};
    CSSRequestDlgInfo *pDlgInfo = NULL;
    uint16 wIDSOp;


    PRINT_FUNCTION_NAME();
    // error checking
    if(pMe == NULL)
    {
        return FALSE;
    }

    pActiveDlg = CDialerApp_GetActiveDlg(pMe);

    // error checking
    if (pActiveDlg == NULL)
    {
        DIALER_ERR("Null pointer", 0,0,0);
        return FALSE;
    }

    pDlgInfo = (CSSRequestDlgInfo*) CDialerApp_GetActiveDlgInfo(pMe);
    if(pDlgInfo == NULL)
    {
        DIALER_ERR("NULL Pointer", 0,0,0);
        return FALSE;
    }


    // Get controls in dialog
    pIStatic = (IStatic*) IDIALOG_GetControl(pActiveDlg,
               IDC_STATIC_SSREQUEST);
    pISoftKeyMenu = (IMenuCtl*)IDIALOG_GetControl(pActiveDlg,
                    IDC_SK_SSREQUEST);
    if((pIStatic == NULL) || (pISoftKeyMenu == NULL))
    {
        DIALER_ERR("Null pointer", 0,0,0);
        return FALSE; // error
    }

    // init buffer
    pszBuf = (AECHAR*) MALLOC ((DIALERAPP_MAX_STR_SIZE+DIALERAPP_MAX_NOTIF_BUFFER_SIZE)*sizeof(AECHAR));
    pszStrBeg = (AECHAR*) MALLOC ((DIALERAPP_MAX_NOTIF_BUFFER_SIZE)*sizeof(AECHAR));
    pszStrEnd = (AECHAR*) MALLOC ((DIALERAPP_MAX_STR_SIZE)*sizeof(AECHAR));
    if((pszBuf == NULL) || (pszStrBeg == NULL) || (pszStrEnd == NULL))
    {
        DIALER_ERR("No memory", 0,0,0);
        FREEIF(pszBuf);
        FREEIF(pszStrBeg);
        FREEIF(pszStrEnd);
        return FALSE;
    }

    switch(pDlgInfo->ssCode)
    {
    case AEESUPPSVC_CLIP:
        wIDSOp = IDS_SUPPSYS_SS_CODE_E_TYPE_CLIP;
        break;

    case AEESUPPSVC_CLIR:
        wIDSOp = IDS_SUPPSYS_SS_CODE_E_TYPE_CLIR;
        break;

    case AEESUPPSVC_COLP:
        wIDSOp = IDS_SUPPSYS_SS_CODE_E_TYPE_COLP;
        break;

    case AEESUPPSVC_COLR:
        wIDSOp = IDS_SUPPSYS_SS_CODE_E_TYPE_COLR;
        break;

    case AEESUPPSVC_ALL_FORWARDING_SS:
        wIDSOp = IDS_SUPPSYS_SS_CODE_E_TYPE_ALL_FORWARDING_SS;
        break;

    case AEESUPPSVC_CFU:
        wIDSOp = IDS_SUPPSYS_SS_CODE_E_TYPE_CFU;
        break;

    case AEESUPPSVC_ALL_CONDFWD_SS:
        wIDSOp = IDS_SUPPSYS_SS_CODE_E_TYPE_ALL_CONDFWD_SS;
        break;

    case AEESUPPSVC_CFB:
        wIDSOp = IDS_SUPPSYS_SS_CODE_E_TYPE_CFB;
        break;

    case AEESUPPSVC_CFNRY:
        wIDSOp = IDS_SUPPSYS_SS_CODE_E_TYPE_CFNRY;
        break;

    case AEESUPPSVC_CFNRC:
        wIDSOp = IDS_SUPPSYS_SS_CODE_E_TYPE_CFNRC;
        break;

    case AEESUPPSVC_CW:
        wIDSOp = IDS_SUPPSYS_SS_CODE_E_TYPE_CW;
        break;

    case AEESUPPSVC_ALL_CALL_RSTRCT_SS:
        wIDSOp = IDS_SUPPSYS_SS_CODE_E_TYPE_ALL_CALL_RSTRCT_SS;
        break;

    case AEESUPPSVC_BARRING_OUTGOING_CALLS:
        wIDSOp = IDS_SUPPSYS_SS_CODE_E_TYPE_BARRING_OUTGOING_CALLS;
        break;

    case AEESUPPSVC_BAOC:
        wIDSOp = IDS_SUPPSYS_SS_CODE_E_TYPE_BAOC;
        break;

    case AEESUPPSVC_BOIC:
        wIDSOp = IDS_SUPPSYS_SS_CODE_E_TYPE_BOIC;
        break;

    case AEESUPPSVC_BOIC_EXHC:
        wIDSOp = IDS_SUPPSYS_SS_CODE_E_TYPE_BOIC_EXHC;
        break;

    case AEESUPPSVC_BARRING_OF_INCOMING_CALLS:
        wIDSOp = IDS_SUPPSYS_SS_CODE_E_TYPE_BARRING_OF_INCOMING_CALLS;
        break;

    case AEESUPPSVC_BAIC:
        wIDSOp = IDS_SUPPSYS_SS_CODE_E_TYPE_BAIC;
        break;

    case AEESUPPSVC_BICROAM:
        wIDSOp = IDS_SUPPSYS_SS_CODE_E_TYPE_BICROAM;
        break;

    case AEESUPPSVC_CCBS:
        wIDSOp = IDS_SUPPSYS_SS_CODE_E_TYPE_CCBS;
        break;

    default:
        wIDSOp = IDS_SS;
        break;
    }

    (void) ISHELL_LoadResString(pMe->a.m_pIShell, DIALERAPP_RES_FILE, wIDSOp, pszStrBeg,
                                ((DIALERAPP_MAX_NOTIF_BUFFER_SIZE)*sizeof(AECHAR)));
    (void) ISHELL_LoadResString(pMe->a.m_pIShell, DIALERAPP_RES_FILE, IDS_REQUESTING, pszStrEnd,
                                ((DIALERAPP_MAX_STR_SIZE)*sizeof(AECHAR)));
    WSPRINTF(pszBuf, (sizeof(AECHAR)*(DIALERAPP_MAX_NOTIF_BUFFER_SIZE+DIALERAPP_MAX_STR_SIZE)), szFormat, pszStrBeg, pszStrEnd);

    // Update the softkey menu
    (void) IMENUCTL_DeleteAll(pISoftKeyMenu);
    (void) IMENUCTL_AddItem(pISoftKeyMenu, DIALERAPP_RES_FILE, IDS_CANCELSSREQUEST,
                            IDL_SK_SSREQUEST_CANCEL, NULL, 0);
    SetDefaultSoftkeyLook(pMe->a.m_pIShell, pISoftKeyMenu);


    // Set Static control size
    ISTATIC_GetRect(pIStatic, &StaticRect);
    IMENUCTL_GetRect(pISoftKeyMenu, &MenuRect);
    SETAEERECT(&StaticRect, 10, 10, pMe->m_rc.dx-20, pMe->m_rc.dy-MenuRect.dy-20);

    // Static Info Properties
    ISTATIC_SetRect(pIStatic, &StaticRect);
    ISTATIC_SetActive(pIStatic, FALSE);
    ISTATIC_SetProperties(pIStatic, ST_MIDDLETEXT | ST_CENTERTEXT | ST_NOSCROLL);

    // check if alpha should be displayed
    if(WSTRLEN(pDlgInfo->szAlpha) > 0)
    {
        (void) ISTATIC_SetText(pIStatic, NULL, pDlgInfo->szAlpha, AEE_FONT_BOLD,
                               AEE_FONT_BOLD);
    }
    else
    {
        (void) ISTATIC_SetText(pIStatic, NULL, pszBuf, AEE_FONT_BOLD,
                               AEE_FONT_BOLD);
    }

    (void) IDIALOG_SetFocus(pActiveDlg, IDC_SK_SSREQUEST);

    FREE(pszBuf);
    FREE(pszStrBeg);
    FREE(pszStrEnd);

    return TRUE;
#else
    return FALSE;
#endif /* defined(FEATURE_WCDMA) || defined(FEATURE_GSM) */
}
Esempio n. 11
0
/*===========================================================================
   This function redraws the main window.
===========================================================================*/
static void CWhereDetailsWin_Redraw(IWindow * po)
{
   CWhereDetailsWin *  pme = (CWhereDetailsWin *)po;

   if (!pme->m_bActive)
      return;

   
   //XXX __begin
   IDISPLAY_ClearScreen(pme->m_pIDisplay);

   TS_DrawBackgroud(po);
   
   {
		AECHAR bufRes[MP_MAX_STRLEN];
		int a = 0, b = 0;
		int h = 0, xx = 0, yy = 0, dxx = 0, dyy = 0;
		AEERect rect;
		int xMargin = 0;

		ISHELL_LoadResString(pme->m_pOwner->a.m_pIShell,NAVIGATE_RES_FILE,IDS_STRING_WHERE_DETAILS_0, bufRes, sizeof(bufRes));
		h = IDISPLAY_GetFontMetrics(pme->m_pIDisplay, WIN_FONT, &a, &b) + 12;
		xx = xMargin;
		yy = 64;
		dxx = pme->m_pOwner->m_cxWidth - 2;
		dyy = h;
		SETAEERECT(&rect, xx, yy, dxx, dyy);
		TS_DrawText(pme->m_pIDisplay, WIN_FONT, bufRes, &rect);

		ISHELL_LoadResString(pme->m_pOwner->a.m_pIShell,NAVIGATE_RES_FILE,IDS_STRING_WHERE_DETAILS_1, bufRes, sizeof(bufRes));
		h = IDISPLAY_GetFontMetrics(pme->m_pIDisplay, WIN_FONT, &a, &b) + 12;
		xx = xMargin;
		yy += h;
		dxx = pme->m_pOwner->m_cxWidth - 2;
		dyy = h;
		SETAEERECT(&rect, xx, yy, dxx, dyy);
		TS_DrawText(pme->m_pIDisplay, WIN_FONT, bufRes, &rect);


		ISHELL_LoadResString(pme->m_pOwner->a.m_pIShell,NAVIGATE_RES_FILE,IDS_STRING_WHERE_DETAILS_2, bufRes, sizeof(bufRes));
		h = IDISPLAY_GetFontMetrics(pme->m_pIDisplay, WIN_FONT, &a, &b) + 12;
		xx = xMargin;
		yy += h;
		dxx = pme->m_pOwner->m_cxWidth - 2;
		dyy = h;
		SETAEERECT(&rect, xx, yy, dxx, dyy);
		TS_DrawText(pme->m_pIDisplay, WIN_FONT, bufRes, &rect);


		ISHELL_LoadResString(pme->m_pOwner->a.m_pIShell,NAVIGATE_RES_FILE,IDS_STRING_WHERE_DETAILS_3, bufRes, sizeof(bufRes));
		h = IDISPLAY_GetFontMetrics(pme->m_pIDisplay, WIN_FONT, &a, &b) + 12;
		xx = xMargin;
		yy += h;
		dxx = pme->m_pOwner->m_cxWidth - 2;
		dyy = h;
		SETAEERECT(&rect, xx, yy, dxx, dyy);
		TS_DrawText(pme->m_pIDisplay, WIN_FONT, bufRes, &rect);

		ISHELL_LoadResString(pme->m_pOwner->a.m_pIShell,NAVIGATE_RES_FILE,IDS_STRING_WHERE_DETAILS_4, bufRes, sizeof(bufRes));
		h = IDISPLAY_GetFontMetrics(pme->m_pIDisplay, WIN_FONT, &a, &b) + 12;
		xx = xMargin;
		yy += h;
		dxx = pme->m_pOwner->m_cxWidth - 2;
		dyy = h;
		SETAEERECT(&rect, xx, yy, dxx, dyy);
		TS_DrawText(pme->m_pIDisplay, WIN_FONT, bufRes, &rect);

		ISHELL_LoadResString(pme->m_pOwner->a.m_pIShell,NAVIGATE_RES_FILE,IDS_STRING_WHERE_DETAILS_5, bufRes, sizeof(bufRes));
		h = IDISPLAY_GetFontMetrics(pme->m_pIDisplay, WIN_FONT, &a, &b) + 12;
		xx = xMargin;
		yy += h;
		dxx = pme->m_pOwner->m_cxWidth - 2;
		dyy = h;
		SETAEERECT(&rect, xx, yy, dxx, dyy);
		TS_DrawText(pme->m_pIDisplay, WIN_FONT, bufRes, &rect);
   }

   IDISPLAY_Update(pme->m_pIDisplay);
   //XXX _end
}
Esempio n. 12
0
/*===========================================================================
FUNCTION SampleAppWizard_HandleEvent

DESCRIPTION
	This is the EventHandler for this app. All events to this app are handled in this
	function. All APPs must supply an Event Handler.

PROTOTYPE:
	boolean SampleAppWizard_HandleEvent(IApplet * pi, AEEEvent eCode, uint16 wParam, uint32 dwParam)

PARAMETERS:
	pi: Pointer to the AEEApplet structure. This structure contains information specific
	to this applet. It was initialized during the AEEClsCreateInstance() function.

	ecode: Specifies the Event sent to this applet

   wParam, dwParam: Event specific data.

DEPENDENCIES
  none

RETURN VALUE
  TRUE: If the app has processed the event
  FALSE: If the app did not process the event

SIDE EFFECTS
  none
===========================================================================*/
static boolean MemChecker_HandleEvent(MemChecker* pMe, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
#if 1
    // for debugging
    if (EVT_POINTER_DOWN == eCode)
    {
        AEERect rc;
        int x, y;
        AEE_POINTER_GET_XY((char *)dwParam, &x, &y);
        SETAEERECT(&rc, x, y, 2, 2);
        IDisplay_FillRect(pMe->a.m_pIDisplay, &rc, RGB_BLACK);
        IDisplay_Update(pMe->a.m_pIDisplay);
    }
#endif

    if (pMe->m_pIDesktopWindow 
        && IDesktopWindow_HandleEvent(pMe->m_pIDesktopWindow, eCode, wParam, dwParam))
    {
        return TRUE;
    }

    switch (eCode) 
    {
        // App is told it is starting up
    case EVT_APP_START:
        DBGPRINTF("##MemChecker_HandleEvent: EVT_APP_START ##############");

        if (pMe->m_bBackground)
        {
            pMe->m_bBackground = FALSE;
            IContainer_Invalidate((IContainer *)pMe->m_pIDesktopWindow, NULL, NULL);
            return TRUE;
        }

        ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_APPLETCTL, (void **)&pMe->m_pIAppletCtl);
        IniFileParser_LoadFile(pMe->a.m_pIShell, MemChecker_ParseLineCB, pMe);

        // ClassFactory & DestopWindow
        pMe->m_pIClassFactory = XClassFactory_New();
        IClassFactory_CreateInstance(pMe->m_pIClassFactory, XCLSID_DesktopWindow, (void **)&pMe->m_pIDesktopWindow);
        IWidget_SetName((IWidget*)pMe->m_pIDesktopWindow, "DesktopWindow");
        IDesktopWindow_SetDisplay(pMe->m_pIDesktopWindow, pMe->a.m_pIDisplay);
        IWidget_SetRectEx((IWidget*)pMe->m_pIDesktopWindow, 0, 0, pMe->DeviceInfo.cxScreen, pMe->DeviceInfo.cyScreen);

        MemChecker_CreateMainMenu(pMe);

        return(TRUE);


    // App is told it is exiting
    case EVT_APP_STOP:
        DBGPRINTF("##MemChecker_HandleEvent: EVT_APP_STOP ###################");

        if (pMe->m_bBackground)
        {
            *(boolean *)dwParam = FALSE;
            return TRUE;
        }

        CALLBACK_Cancel(&pMe->m_cbModUnload);
        CALLBACK_Cancel(&pMe->m_cbWaitForAppStartup);

        MemHook_Uninstall();

        RELEASEIF(pMe->m_pIClassFactory);
        RELEASEIF(pMe->m_pIDesktopWindow);

        RELEASEIF(pMe->m_pIAppletCtl);

        return(TRUE);


        // App is being suspended 
    case EVT_APP_SUSPEND:
        DBGPRINTF("##MemChecker_HandleEvent: EVT_APP_SUSPEND ################");

        return(TRUE);


        // App is being resumed
    case EVT_APP_RESUME:
        DBGPRINTF("##MemChecker_HandleEvent: EVT_APP_RESUME #################");
        IContainer_Invalidate((IContainer *)pMe->m_pIDesktopWindow, NULL, NULL);

        return(TRUE);


        // An SMS message has arrived for this app. Message is in the dwParam above as (char *)
        // sender simply uses this format "//BREW:ClassId:Message", example //BREW:0x00000001:Hello World
    case EVT_APP_MESSAGE:
        // Add your code here...

        return(TRUE);


        // If nothing fits up to this point then we'll just break out
    default:
        break;
    }

    return FALSE;
}
Esempio n. 13
0
/*===========================================================================

FUNCTION: CGMENUCTL_Redraw

DESCRIPTION:
Redraws the control on the device screen.  If the control currently has
focus, the control is drawn with a border.

PARAMETERS:
pCtl [in] - A pointer to a CGMeuCtl instance

DEPENDENCIES:
None

RETURN VALUE:
None

SIDE EFFECTS:
Updates the device screen.
===========================================================================*/
extern void CGMENUCTL_Redraw(CGMeuCtl* pMe)
{
	AEEApplet* pApp = (AEEApplet*)GETAPPINSTANCE();
	AEERect rRect;

	if (pMe)
	{
		int i, j, height, h, a, b;
		AEEImageInfo infSe, infIc;
		AEERect rec;
		int xx, yy, dxx, dyy;
		RGBVAL oldColor;

		GMenuItem * pData = NULL;
		TQueueList * p = pMe->m_pDataList;

		ZEROAT(&infSe);

		IDISPLAY_EraseRect(pApp->m_pIDisplay, &pMe->m_Rect);

		h = IDISPLAY_GetFontMetrics(pApp->m_pIDisplay, AEE_FONT_NORMAL, &a, &b);

		//绘制背景图
		if (pMe->m_pImageBk)
		{
			IIMAGE_SetDrawSize(pMe->m_pImageBk, pMe->m_Rect.dx, pMe->m_Rect.dy);
			IIMAGE_Draw(pMe->m_pImageBk, pMe->m_Rect.x, pMe->m_Rect.y);
		}

		//确定菜单高度
		if (pMe->m_pImageSe)
		{
			IIMAGE_GetInfo(pMe->m_pImageSe, &infSe);
			IIMAGE_SetDrawSize(pMe->m_pImageSe, pMe->m_Rect.dx, infSe.cy);
		}
		else
		{
			infSe.cx = pMe->m_Rect.dx;
			infSe.cy = h;
		}

		//绘制菜单项
		i = 0;
		j = 0;
		height = pMe->m_Rect.y + 5;
		while (p)
		{
			AECHAR	iTemText[256];

			if (i < pMe->m_startIndex)
			{
				p = p->pNext;
				i++;
				continue;
			}

			if (j >= pMe->m_pageSize)
			{
				break;
			}

			pData = (GMenuItem*)p->pData;

			//加载菜单ICON
			if (pData->pImage == NULL && pData->pszResImage != NULL && pData->wImage != 0)
			{
				pData->pImage = ISHELL_LoadResImage(pApp->m_pIShell, pData->pszResImage, pData->wImage);
			}

			//加载菜单Text
			if (pData->pszResText != NULL && pData->wText != 0)
			{
				MEMSET(iTemText, 0, sizeof(AECHAR)*256);
				
				ISHELL_LoadResString(pApp->m_pIShell, pData->pszResText, pData->wText, iTemText, sizeof(AECHAR)* 256);

				pData->pText = iTemText;
			}

			if (i == pMe->m_Index)
			{
				if (pMe->m_pImageSe)
					IIMAGE_Draw(pMe->m_pImageSe, pMe->m_Rect.x, height + 2);

				ZEROAT(&infIc);
				if (pData->pImage)
				{
					IIMAGE_GetInfo(pData->pImage, &infIc);
					IIMAGE_Draw(pData->pImage, pMe->m_Rect.x, height + (infSe.cy - infIc.cy) / 2);
				}

				xx = pMe->m_Rect.x + infIc.cx + 2;
				yy = height + (infSe.cy - h) / 2 + 2;
				dxx = pMe->m_Rect.x + pMe->m_Rect.dx - xx;
				dyy = h;
				SETAEERECT(&rec, xx, yy, dxx, dyy);

				oldColor = IDISPLAY_SetColor(pApp->m_pIDisplay, CLR_USER_TEXT, pMe->m_Colors.cSelText);
				if (pMe->m_Properties & 0x02)
					IDISPLAY_DrawText(pApp->m_pIDisplay, AEE_FONT_NORMAL, pData->pText + pMe->m_textPos, -1, xx + 1, yy, &rec, IDF_TEXT_TRANSPARENT);
				IDISPLAY_DrawText(pApp->m_pIDisplay, AEE_FONT_NORMAL, pData->pText + pMe->m_textPos, -1, xx, yy, &rec, IDF_TEXT_TRANSPARENT);

				if (pMe->m_isActive)
				{
					if (IDISPLAY_MeasureText(pApp->m_pIDisplay, AEE_FONT_NORMAL, pData->pText) > dxx)
					{
						if (IDISPLAY_MeasureText(pApp->m_pIDisplay, AEE_FONT_NORMAL, pData->pText + pMe->m_textPos) > dxx)
						{
							pMe->m_textPos++;
						}
						else
							pMe->m_textPos = 0;

						//单行太长的话,动态显示
						ISHELL_SetTimer(pApp->m_pIShell, 300, (PFNNOTIFY)CGMENUCTL_Redraw, (void*)pMe);
					}
				}

				height += infSe.cy;
				IDISPLAY_SetColor(pApp->m_pIDisplay, CLR_USER_TEXT, oldColor);
			}
			else
			{
				ZEROAT(&infIc);
				if (pData->pImage)
				{
					IIMAGE_GetInfo(pData->pImage, &infIc);
					IIMAGE_Draw(pData->pImage, pMe->m_Rect.x, height + (infSe.cy - infIc.cy) / 2);
				}

				xx = pMe->m_Rect.x + infIc.cx + 2;
				yy = height + (infSe.cy - h) / 2 + 2;
				dxx = pMe->m_Rect.x + pMe->m_Rect.dx - xx;
				dyy = h;
				SETAEERECT(&rec, xx, yy, dxx, dyy);

				oldColor = IDISPLAY_SetColor(pApp->m_pIDisplay, CLR_USER_TEXT, pMe->m_Colors.cText);
				if (pMe->m_Properties & 0x01)
					IDISPLAY_DrawText(pApp->m_pIDisplay, AEE_FONT_NORMAL, pData->pText, -1, xx + 1, yy, &rec, IDF_TEXT_TRANSPARENT);
				IDISPLAY_DrawText(pApp->m_pIDisplay, AEE_FONT_NORMAL, pData->pText, -1, xx, yy, &rec, IDF_TEXT_TRANSPARENT);

				height += infSe.cy;
				IDISPLAY_SetColor(pApp->m_pIDisplay, CLR_USER_TEXT, oldColor);
			}

			p = p->pNext;
			i++;
			j++;
		}

		IDISPLAY_Update(pApp->m_pIDisplay);
		return ;
	}
}