Esempio n. 1
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. 2
0
/*===========================================================================

FUNCTION: BuildMainMenu

DESCRIPTION
    This function constructs the menu control that allows the user to
  select a usage example to execute.  The command ID for each menu item
  is passed to the usage example function above when the user selects the
  menu item for that example.
    
PROTOTYPE:
   static void BuildMainMenu(CallDemoApp * pMe)

PARAMETERS:
   pMe:   [in]: Contains a pointer to the usage app data structure.

DEPENDENCIES
  None

RETURN VALUE
  None

SIDE EFFECTS
  None

===========================================================================*/
static void BuildMainMenu(CallDemoApp *pMe)
{
  AEERect qrc;
  AEEDeviceInfo di;
  AECHAR * szBuf;

  // Make sure the pointers we'll be using are valid
  if (pMe == NULL || pMe->a.m_pIShell == NULL || pMe->m_pIMenu == NULL)
  {
    return;
  }
  
  if ((szBuf = (AECHAR *) MALLOC(TEXT_BUFFER_SIZE)) == NULL)
  {
     return;
  }
  
  // Set Title
  STR_TO_WSTR("CALLDEMO & CALLDEMOMsg Example", szBuf, TEXT_BUFFER_SIZE);
  IMENUCTL_SetTitle(pMe->m_pIMenu, NULL, 0, szBuf);

  //Set the Rectangle for the Menu
  ISHELL_GetDeviceInfo(pMe->a.m_pIShell,&di);
  qrc.x = 0;
  qrc.y = 0;
  qrc.dx = di.cxScreen;
  qrc.dy = di.cyScreen;
  IMENUCTL_SetRect(pMe->m_pIMenu, &qrc);  

  //Add individual entries to the Menu

  // Add originate call to menu
  STR_TO_WSTR("1. Originate Call", szBuf, TEXT_BUFFER_SIZE);
  IMENUCTL_AddItem(pMe->m_pIMenu, 0, 0, USAGE_CALL_ORIG, szBuf, 0);

  STR_TO_WSTR("2. End OutGoing Call", szBuf, TEXT_BUFFER_SIZE);
  IMENUCTL_AddItem(pMe->m_pIMenu, 0, 0, USAGE_CALL_OUTGOING_END, szBuf, 0);

  STR_TO_WSTR("3. End Incoming Call", szBuf, TEXT_BUFFER_SIZE);
  IMENUCTL_AddItem(pMe->m_pIMenu, 0, 0, USAGE_CALL_INCOMING_END, szBuf, 0);

  STR_TO_WSTR("4. Call and DTMF", szBuf, TEXT_BUFFER_SIZE);
  IMENUCTL_AddItem(pMe->m_pIMenu, 0, 0, USAGE_CALL_DTMF, szBuf, 0);

  STR_TO_WSTR("5. Call Party", szBuf, TEXT_BUFFER_SIZE);
  IMENUCTL_AddItem(pMe->m_pIMenu, 0, 0, USAGE_CALL_PARTY3, szBuf, 0);

  STR_TO_WSTR("6. Call answer", szBuf, TEXT_BUFFER_SIZE);
  IMENUCTL_AddItem(pMe->m_pIMenu, 0, 0, USAGE_CALL_ANSWER, szBuf, 0);

  STR_TO_WSTR("7. Call redirect", szBuf, TEXT_BUFFER_SIZE);
  IMENUCTL_AddItem(pMe->m_pIMenu, 0, 0, USAGE_CALL_REDIRECT, szBuf, 0);

  // Activate menu
  IMENUCTL_SetActive(pMe->m_pIMenu,TRUE);

  FREE(szBuf);
}
Esempio n. 3
0
/*===========================================================================

FUNCTION: BuildMainMenu

DESCRIPTION
    This function constructs the menu control that allows the user to
  select a usage example to execute.  The command ID for each menu item
  is passed to the usage example function above when the user selects the
  menu item for that example.

PROTOTYPE:
   static void BuildMainMenu(ISmsApp * pMe)

PARAMETERS:
   pMe:   [in]: Contains a pointer to the usage app data structure.

DEPENDENCIES
  None

RETURN VALUE
  None

SIDE EFFECTS
  None

===========================================================================*/
static void BuildMainMenu(ISmsApp *pMe)
{
    AEERect qrc;
    AEEDeviceInfo di;
    AECHAR * szBuf;

    // Make sure the pointers we'll be using are valid
    if (pMe == NULL || pMe->a.m_pIShell == NULL || pMe->m_pIMenu == NULL)
        return;

    if ((szBuf = (AECHAR *) MALLOC(TEXT_BUFFER_SIZE)) == NULL)
        return;

    // Set Title
    STR_TO_WSTR("ISMS & ISMSMsg Example", szBuf, TEXT_BUFFER_SIZE);
    IMENUCTL_SetTitle(pMe->m_pIMenu, NULL, 0, szBuf);

    //Set the Rectangle for the Menu
    ISHELL_GetDeviceInfo(pMe->a.m_pIShell,&di);
    qrc.x = 0;
    qrc.y = 0;
    qrc.dx = di.cxScreen;
    qrc.dy = di.cyScreen;
    IMENUCTL_SetRect(pMe->m_pIMenu, &qrc);

    //Add individual entries to the Menu

    // Add SMS Sending to menu
    STR_TO_WSTR("1. SMS Tx ASCII", szBuf, TEXT_BUFFER_SIZE);
    IMENUCTL_AddItem(pMe->m_pIMenu, 0, 0, USAGE_SMS_TX_ASCII, szBuf, 0);

    STR_TO_WSTR("2. SMS Tx UNICODE", szBuf, TEXT_BUFFER_SIZE);
    IMENUCTL_AddItem(pMe->m_pIMenu, 0, 0, USAGE_SMS_TX_UNICODE, szBuf, 0);

    STR_TO_WSTR("3. SMS Tx UTF-8", szBuf, TEXT_BUFFER_SIZE);
    IMENUCTL_AddItem(pMe->m_pIMenu, 0, 0, USAGE_SMS_TX_UTF8, szBuf, 0);

    // Add SMS Receive  in TAPI method to menu
    STR_TO_WSTR("4. Rx SMS in method TAPI ", szBuf, TEXT_BUFFER_SIZE);
    IMENUCTL_AddItem(pMe->m_pIMenu, 0, 0, USAGE_SMS_RX_TAPI_METHOD, szBuf, 0);

    // Add SMS Receive  in ISMS method to menu
    STR_TO_WSTR("5. Rx SMS in method ISMSNotifier", szBuf, TEXT_BUFFER_SIZE);
    IMENUCTL_AddItem(pMe->m_pIMenu, 0, 0, USAGE_SMS_RX_ISMS_METHOD, szBuf, 0);

    // SMS storage status
    STR_TO_WSTR("6. SMS storage status", szBuf, TEXT_BUFFER_SIZE);
    IMENUCTL_AddItem(pMe->m_pIMenu, 0, 0, USAGE_SMS_STORE_STATUS, szBuf, 0);

    // read SMS from store
    STR_TO_WSTR("7. SMS store read", szBuf, TEXT_BUFFER_SIZE);
    IMENUCTL_AddItem(pMe->m_pIMenu, 0, 0, USAGE_SMS_STORE_ENUM_READ, szBuf, 0);

    // Activate menu
    IMENUCTL_SetActive(pMe->m_pIMenu,TRUE);

    FREE(szBuf);
}
Esempio n. 4
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. 5
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. 6
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. 7
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. 8
0
/*===========================================================================

FUNCTION: ABR_GetContactRec

DESCRIPTION:
  This function get all record from address book and show every record as a manu item

PARAMETERS:
  pMe [in] - Pointer to the CAddrBookRuim structure. This structure contains 
    information specific to this applet. 
  pMenu[out] - menu show all address book menu  
  pnTotal[out] - all records count of address book

DEPENDENCIES:
   None

RETURN VALUE:
  AEE_SUCCESS -  successfully enumate all record in address book
  other - fail


SIDE EFFECTS:
   None
===========================================================================*/
int32 ABR_GetContactRec( CAddrBookRuim * pMe, AEECLSID ContactCLS, IMenuCtl* pMenu, uint32* pnTotal)
{
    IAddrBook *pb;
    IAddrRec *pR;
    int nRet = 0;
    uint32 nTempTotal;
    boolean bFlgNameGet;
    boolean bFlgNumGet;

    AECHAR *aszNum, *aszName;


    if(pMe==NULL || pMe->pIShell==NULL || pMenu==NULL || pnTotal==NULL)
    {
        return (-1);
    }

    aszNum = (AECHAR *)MALLOC(MAX_CONTACT_NUM_SIZE*sizeof(AECHAR));
    aszName = (AECHAR *)MALLOC(MAX_CONTACT_NAME_SIZE*sizeof(AECHAR));

    
    if(aszNum==NULL ||  aszName==NULL)
    {
        return (-2);
    }

    // Clear any items from the IMenuCtl
    IMENUCTL_Reset( pMenu );
    IMENUCTL_SetRect( pMenu, &pMe->m_rScreenRect );
    IMENUCTL_SetTitle( pMenu, ADDRBOOKRUIM_RES_FILE, IDS_VIEW_MENU, NULL);

    nTempTotal = 0;

    if(!ISHELL_CreateInstance(pMe->pIShell, ContactCLS, (void **)&pb))
    {
        nRet = IADDRBOOK_EnumRecInit(pb,  AEE_ADDR_CAT_NONE, AEE_ADDRFIELD_NONE, NULL, 0);
        if(nRet == AEE_SUCCESS)
        {
            while((pR = IADDRBOOK_EnumNextRec(pb)) != NULL)
            {
                AEEAddrField *ptr = NULL;
                int i;
                int nFields;

                bFlgNameGet = FALSE;
                bFlgNumGet = FALSE;
                MEMSET( aszName, 0, MAX_CONTACT_NAME_SIZE*sizeof(AECHAR));
                MEMSET( aszNum,  0, MAX_CONTACT_NUM_SIZE*sizeof(AECHAR));
                nFields= IADDRREC_GetFieldCount(pR);
                for(i = 0; i < nFields; i++)
                {
                    ptr = IADDRREC_GetField(pR,i);
                    DBGPRINTF("lintao fID   =%d", ptr->fID);
                    // find name field and save it;
                    if (   ptr->fID == AEE_ADDRFIELD_NAME  
                       ||ptr->fID == AEE_ADDRFIELD_FIRSTNAME
                       ||ptr->fID == AEE_ADDRFIELD_LASTNAME
                       ||ptr->fID == AEE_ADDRFIELD_NICKNAME)
                    { 
                        if(bFlgNameGet==FALSE)
                        {
                            bFlgNameGet = TRUE;
                            WSTRCPY(aszName, ptr->pBuffer);
                        }
                    }

                    // find number field and save it;
                    if (    ptr->fID >= AEE_ADDRFIELD_PHONE_WORK
                        && ptr->fID <= AEE_ADDRFIELD_PHONE_OTHER)
                    { 
                        if(bFlgNumGet==FALSE)
                        {
                            bFlgNumGet = TRUE;
                            WSTRCPY(aszNum, ptr->pBuffer);
                        }
                    }

                }

                if(bFlgNameGet && bFlgNumGet) 
                {
                    nTempTotal++;
                    IMENUCTL_AddItem(pMenu, 
                                     NULL, 
                                     0,  
                                     ABR_REC_LIST_ID + IADDRREC_GetRecID(pR), 
                                     aszName, 
                                     NULL);
                }
            }                  
        }

        IADDRBOOK_Release(pb);
    }
    else
    {
        nRet=1; // error : ISHELL_CreateInstance fail
    }

    *pnTotal = nTempTotal;
    IMENUCTL_SetActive( pMenu, TRUE );

    FREEIF(aszNum);
    FREEIF(aszName);
    return nRet;
}
Esempio n. 9
0
/*======================================================================= 
Function: SamplePosDet_OptimSettings_HandleEvent()

Description: 
   Event handler function for the optimization mode settings menu.

Prototype:

   boolean SamplePosDet_OptimSettings_HandleEvent(CSamplePosDet *pMe, AEEEvent eCode,
                                                 uint16 wParam, uint32 dwParam)

Parameters:
   pMe: [in]. CSamplePosDet instance.
   eCode: [in]. Event code.
   wParam: [in]. Event wParam.
   dwParam: [in]. Event dwParam.

Return Value:

   TRUE - If the event was handled by this menu.
   FALSE - If the event was not handled.
 
Comments:  
   None

Side Effects: 
   None

See Also:
   None
=======================================================================*/
boolean SamplePosDet_OptimSettings_HandleEvent(CSamplePosDet *pMe, AEEEvent eCode,
                                                 uint16 wParam, uint32 dwParam)
{
   boolean bHandled = FALSE;
   IMenuCtl *pMenuCtl = SamplePosDet_GetScreenData( pMe );

   switch( eCode ) {
   case EVT_SCREEN:
      if( wParam == SCREEN_PARAM_INIT ) {
         if( pMenuCtl ) {  /* This is not expected to happen */
            SamplePosDet_DrawScreen( pMe, 0 );
            bHandled = TRUE;
         }
         else {
            if( ISHELL_CreateInstance( pMe->theApp.m_pIShell, AEECLSID_MENUCTL, 
               (void **)&pMenuCtl ) == SUCCESS ) {

               //IMENUCTL_AddItem( pMenuCtl, SAMPLEPOSDET_RES_FILE, IDS_OPT_NONE,
               //   AEEGPS_OPT_NONE, NULL, (uint32)pMenuCtl );

               IMENUCTL_AddItem( pMenuCtl, SAMPLEPOSDET_RES_FILE, IDS_OPT_SPEED,
                  AEEGPS_OPT_SPEED, NULL, (uint32)pMenuCtl );

               IMENUCTL_AddItem( pMenuCtl, SAMPLEPOSDET_RES_FILE, IDS_OPT_ACCURACY,
                  AEEGPS_OPT_ACCURACY, NULL, (uint32)pMenuCtl );

               //IMENUCTL_AddItem( pMenuCtl, SAMPLEPOSDET_RES_FILE, IDS_OPT_PAYLOAD,
               //   AEEGPS_OPT_PAYLOAD, NULL, (uint32)pMenuCtl );

               IMENUCTL_AddItem( pMenuCtl, SAMPLEPOSDET_RES_FILE, IDS_OPT_DEFAULT,
                  AEEGPS_OPT_DEFAULT, NULL, (uint32)pMenuCtl );

               IMENUCTL_SetTitle( pMenuCtl, SAMPLEPOSDET_RES_FILE, IDS_OPT_SETTINGS_TITLE, NULL );
               SamplePosDet_SetScreenData( pMe, (void *)pMenuCtl );
               SamplePosDet_DrawScreen( pMe, 0 );
               bHandled = TRUE;
            }
         }
      }
      else if( wParam == SCREEN_PARAM_CLOSE ) {
         IMENUCTL_Release( pMenuCtl );
         SamplePosDet_SetScreenData( pMe, 0 );
         pMe->currentHandler = 0;
         bHandled = TRUE;
      }
      else if( wParam == SCREEN_PARAM_PAINT ) {
         if( IMENUCTL_IsActive( pMenuCtl ) ) {
            IMENUCTL_Redraw( pMenuCtl );
         }
         else {
            IMENUCTL_SetActive( pMenuCtl, TRUE );  /* Also causes a menu draw */
         }
      }
      break;

   case EVT_KEY:
      if( wParam == AVK_CLR ) {
         SamplePosDet_GotoScreen( pMe, SCREENID_CONFIG, 0 );
         bHandled = TRUE;
         break;
      }
   case EVT_KEY_PRESS:
   case EVT_KEY_RELEASE:
      bHandled = IMENUCTL_HandleEvent( pMenuCtl, eCode, wParam, dwParam );
      break;

   case EVT_COMMAND:
      if( dwParam == (uint32)pMenuCtl ) {
         switch( wParam ) {
         case AEEGPS_OPT_SPEED:
         case AEEGPS_OPT_ACCURACY:
            // Set the optimization mode and save the settings
            pMe->gpsSettings.optim = (AEEGPSOpt)wParam;
            SamplePosDet_SaveGPSSettings(pMe);
            SamplePosDet_GotoScreen( pMe, SCREENID_CONFIG, 0 );
            bHandled = TRUE;
            break;
         default:
            break;
         }
      }
      break;
   }
   return bHandled;
}
Esempio n. 10
0
/*======================================================================= 
Function: SamplePosDet_QosSettings_HandleEvent()

Description: 
   Event handler function for the QoS settings menu.

Prototype:

   boolean SamplePosDet_QosSettings_HandleEvent(CSamplePosDet *pMe, AEEEvent eCode,
                                                 uint16 wParam, uint32 dwParam)

Parameters:
   pMe: [in]. CSamplePosDet instance.
   eCode: [in]. Event code.
   wParam: [in]. Event wParam.
   dwParam: [in]. Event dwParam.

Return Value:

   TRUE - If the event was handled by this menu.
   FALSE - If the event was not handled.
 
Comments:  
   None

Side Effects: 
   None

See Also:
   None
=======================================================================*/
boolean SamplePosDet_QosSettings_HandleEvent(CSamplePosDet *pMe, AEEEvent eCode,
                                                 uint16 wParam, uint32 dwParam)
{
   boolean bHandled = FALSE;
   CTextCtlData *ptcd = SamplePosDet_GetScreenData( pMe );
   ITextCtl *pTextCtl = NULL;
   IMenuCtl *pSoftKeyMenu = NULL;
   char * pszStr;
   AECHAR * pQos;
   uint32 nResult;

   if (ptcd) {
      pSoftKeyMenu = ptcd->pSoftKey;
      pTextCtl = ptcd->pTextCtl;
   }

   switch( eCode ) {
   case EVT_SCREEN:
      if( wParam == SCREEN_PARAM_INIT ) {
         if( pTextCtl ) {  /* This is not expected to happen */
            SamplePosDet_DrawScreen( pMe, 0 );
            bHandled = TRUE;
         }
         else {
            if( ISHELL_CreateInstance( pMe->theApp.m_pIShell, AEECLSID_TEXTCTL, 
               (void **)&pTextCtl ) == SUCCESS ) {
               if (ISHELL_CreateInstance(pMe->theApp.m_pIShell, AEECLSID_SOFTKEYCTL,
                  (void **)&pSoftKeyMenu) == SUCCESS) {

                  IMENUCTL_AddItem( pSoftKeyMenu, SAMPLEPOSDET_RES_FILE, IDS_SOFTKEY_SAVE,
                     IDS_SOFTKEY_SAVE, NULL, (uint32)pSoftKeyMenu );

                  ITEXTCTL_SetSoftKeyMenu( pTextCtl, pSoftKeyMenu );
                  ITEXTCTL_SetTitle( pTextCtl, SAMPLEPOSDET_RES_FILE, IDS_QOS_SETTINGS_TITLE, NULL );
                  ITEXTCTL_SetInputMode( pTextCtl, AEE_TM_NUMBERS );

                  // Load the current QoS value, if it exists
                  pszStr = MALLOC(50);
                  pQos = MALLOC(100);
                  SPRINTF(pszStr, "%d", pMe->gpsSettings.qos);
                  STRTOWSTR(pszStr, pQos, 100);
                  ITEXTCTL_SetText(pTextCtl, pQos, -1);
                  FREE(pszStr);
                  FREE(pQos);

                  ptcd = MALLOC( sizeof(CTextCtlData) );

                  ptcd->pSoftKey = pSoftKeyMenu;
                  ptcd->pTextCtl = pTextCtl;
                  SamplePosDet_SetScreenData( pMe, (void *)ptcd );
                  SamplePosDet_DrawScreen( pMe, 0 );
                  bHandled = TRUE;
               }
            }
         }
      }
      else if( wParam == SCREEN_PARAM_CLOSE ) {
         ITEXTCTL_Release( pTextCtl );
         IMENUCTL_Release( pSoftKeyMenu );
         FREE( ptcd );
         SamplePosDet_SetScreenData( pMe, 0 );
         pMe->currentHandler = 0;
         bHandled = TRUE;
      }
      else if( wParam == SCREEN_PARAM_PAINT ) {
         if( ITEXTCTL_IsActive( pTextCtl ) ) {
            ITEXTCTL_Redraw( pTextCtl );
         }
         else {
            ITEXTCTL_SetActive( pTextCtl, TRUE );  /* Also causes a menu draw */
         }
      }
      break;

   case EVT_KEY:
   case EVT_KEY_PRESS:
   case EVT_KEY_RELEASE:
      bHandled = ITEXTCTL_HandleEvent( pTextCtl, eCode, wParam, dwParam );
      if (!bHandled) {
         bHandled = IMENUCTL_HandleEvent( pSoftKeyMenu, eCode, wParam, dwParam );
         
         if(!bHandled && wParam == AVK_CLR && eCode == EVT_KEY) {
            SamplePosDet_GotoScreen( pMe, SCREENID_CONFIG, 0 );
            bHandled = TRUE;
         }
      }
      break;
   case EVT_COMMAND:
      bHandled = ITEXTCTL_HandleEvent( pTextCtl, eCode, wParam, dwParam );
      if (!bHandled) {
         if (IDS_SOFTKEY_SAVE == wParam) {
            // Need to validate and save the Port settings here
            pQos = ITEXTCTL_GetTextPtr(pTextCtl);
            pszStr = MALLOC(50);
            WSTRTOSTR(pQos, pszStr, 50);
            nResult = STRTOUL(pszStr, NULL, 10);
            if (nResult >= 0 && nResult <= 255) {
               pMe->gpsSettings.qos = (AEEGPSQos)nResult;
               SamplePosDet_SaveGPSSettings(pMe);
               SamplePosDet_GotoScreen(pMe, SCREENID_CONFIG, 0);
            }
            else {
               ITEXTCTL_SetTitle(pTextCtl, SAMPLEPOSDET_RES_FILE, IDS_QOS_SETTINGS_INVALID, NULL);
               ITEXTCTL_Redraw(pTextCtl);
            }
            FREE(pszStr);
            bHandled = TRUE;
         }
      }
      break;
   }
   return bHandled;
}
Esempio n. 11
0
/*======================================================================= 
Function: SamplePosDet_ConfigMenu_HandleEvent()

Description: 
   Event handler function for the configuration menu.

Prototype:

   boolean SamplePosDet_ConfigMenu_HandleEvent(CSamplePosDet *pMe, AEEEvent eCode,
                                                 uint16 wParam, uint32 dwParam)

Parameters:
   pMe: [in]. CSamplePosDet instance.
   eCode: [in]. Event code.
   wParam: [in]. Event wParam.
   dwParam: [in]. Event dwParam.

Return Value:

   TRUE - If the event was handled by this menu.
   FALSE - If the event was not handled.
 
Comments:  
   None

Side Effects: 
   None

See Also:
   None
=======================================================================*/
boolean SamplePosDet_ConfigMenu_HandleEvent(CSamplePosDet *pMe, AEEEvent eCode,
                                                 uint16 wParam, uint32 dwParam)
{
   boolean bHandled = FALSE;
   IMenuCtl *pMenuCtl = SamplePosDet_GetScreenData( pMe );

   switch( eCode ) {
   case EVT_SCREEN:
      if( wParam == SCREEN_PARAM_INIT ) {
         if( pMenuCtl ) {  /* This is not expected to happen */
            SamplePosDet_DrawScreen( pMe, 0 );
            bHandled = TRUE;
         }
         else {
            if( ISHELL_CreateInstance( pMe->theApp.m_pIShell, AEECLSID_MENUCTL, 
               (void **)&pMenuCtl ) == SUCCESS ) {

               IMENUCTL_AddItem( pMenuCtl, SAMPLEPOSDET_RES_FILE, IDS_CONFIG_SERVER,
                  IDS_CONFIG_SERVER, NULL, (uint32)pMenuCtl );

               IMENUCTL_AddItem( pMenuCtl, SAMPLEPOSDET_RES_FILE, IDS_CONFIG_QOS,
                  IDS_CONFIG_QOS, NULL, (uint32)pMenuCtl );

               IMENUCTL_AddItem( pMenuCtl, SAMPLEPOSDET_RES_FILE, IDS_CONFIG_OPT,
                  IDS_CONFIG_OPT, NULL, (uint32)pMenuCtl );

               IMENUCTL_SetTitle( pMenuCtl, SAMPLEPOSDET_RES_FILE, IDS_CONFIG_TITLE, NULL );
               SamplePosDet_SetScreenData( pMe, (void *)pMenuCtl );
               SamplePosDet_DrawScreen( pMe, 0 );
               bHandled = TRUE;
            }
         }
      }
      else if( wParam == SCREEN_PARAM_CLOSE ) {
         IMENUCTL_Release( pMenuCtl );
         SamplePosDet_SetScreenData( pMe, 0 );
         pMe->currentHandler = 0;
         bHandled = TRUE;
      }
      else if( wParam == SCREEN_PARAM_PAINT ) {
         if( IMENUCTL_IsActive( pMenuCtl ) ) {
            IMENUCTL_Redraw( pMenuCtl );
         }
         else {
            IMENUCTL_SetActive( pMenuCtl, TRUE );  /* Also causes a menu draw */
         }
      }
      break;

   case EVT_KEY:
      if( wParam == AVK_CLR ) {
         SamplePosDet_GotoScreen( pMe, SCREENID_MAINMENU, 0 );
         bHandled = TRUE;
         break;
      }
   case EVT_KEY_PRESS:
   case EVT_KEY_RELEASE:
      bHandled = IMENUCTL_HandleEvent( pMenuCtl, eCode, wParam, dwParam );
      break;

   case EVT_COMMAND:
      if( dwParam == (uint32)pMenuCtl ) {
         switch( wParam ) {
         case IDS_CONFIG_SERVER:
            SamplePosDet_GotoScreen( pMe, SCREENID_SERVER_SETTINGS, 0 );
            bHandled = TRUE;
            break;
         case IDS_CONFIG_QOS:
            SamplePosDet_GotoScreen( pMe, SCREENID_QOS_SETTINGS, 0 );
            bHandled = TRUE;
            break;
         case IDS_CONFIG_OPT:
            SamplePosDet_GotoScreen( pMe, SCREENID_OPTIM_SETTINGS, 0 );
         default:
            break;
         }
      }
      break;
   }
   return bHandled;
}
Esempio n. 12
0
/*======================================================================= 
Function: SamplePosDet_PDESettings_HandleEvent()

Description: 
   Event handler function for the PDE settings menu.

Prototype:

   boolean SamplePosDet_PDESettings_HandleEvent(CSamplePosDet *pMe, AEEEvent eCode,
                                                 uint16 wParam, uint32 dwParam)

Parameters:
   pMe: [in]. CSamplePosDet instance.
   eCode: [in]. Event code.
   wParam: [in]. Event wParam.
   dwParam: [in]. Event dwParam.

Return Value:

   TRUE - If the event was handled by this menu.
   FALSE - If the event was not handled.
 
Comments:  
   None

Side Effects: 
   None

See Also:
   None
=======================================================================*/
boolean SamplePosDet_PDESettings_HandleEvent(CSamplePosDet *pMe, AEEEvent eCode,
                                                 uint16 wParam, uint32 dwParam)
{
   AECHAR * pServer;
   uint32 nResult;
   boolean bHandled = FALSE;
   CTextCtlData *ptcd = SamplePosDet_GetScreenData( pMe );
   ITextCtl *pTextCtl = NULL;
   IMenuCtl *pSoftKeyMenu = NULL;
   char * pszStr;

   if (ptcd) {
      pSoftKeyMenu = ptcd->pSoftKey;
      pTextCtl = ptcd->pTextCtl;
   }

   switch( eCode ) {
   case EVT_SCREEN:
      if( wParam == SCREEN_PARAM_INIT ) {
         if( pTextCtl ) {  /* This is not expected to happen */
            SamplePosDet_DrawScreen( pMe, 0 );
            bHandled = TRUE;
         }
         else {
            if( ISHELL_CreateInstance( pMe->theApp.m_pIShell, AEECLSID_TEXTCTL, 
               (void **)&pTextCtl ) == SUCCESS ) {
               if (ISHELL_CreateInstance(pMe->theApp.m_pIShell, AEECLSID_SOFTKEYCTL,
                  (void **)&pSoftKeyMenu) == SUCCESS) {

                  IMENUCTL_AddItem( pSoftKeyMenu, SAMPLEPOSDET_RES_FILE, IDS_SOFTKEY_SAVE,
                     IDS_SOFTKEY_SAVE, NULL, (uint32)pSoftKeyMenu );

                  ITEXTCTL_SetSoftKeyMenu( pTextCtl, pSoftKeyMenu );
                  ITEXTCTL_SetTitle( pTextCtl, SAMPLEPOSDET_RES_FILE, IDS_PDE_SETTINGS_TITLE, NULL );
                  ITEXTCTL_SetInputMode( pTextCtl, AEE_TM_NUMBERS );

                  // Load the current IP address, if it exists
                  if (AEEGPS_SERVER_IP == pMe->gpsSettings.server.svrType) {
                     pszStr = MALLOC(50);
                     INET_NTOA(pMe->gpsSettings.server.svr.ipsvr.addr, pszStr, 50);
                     pServer = MALLOC(100);
                     STRTOWSTR(pszStr, pServer, 100);
                     ITEXTCTL_SetText(pTextCtl, pServer, -1);
                     FREE(pszStr);
                     FREE(pServer);
                  }

                  ptcd = MALLOC( sizeof(CTextCtlData) );
                  
                  ptcd->pSoftKey = pSoftKeyMenu;
                  ptcd->pTextCtl = pTextCtl;
                  SamplePosDet_SetScreenData( pMe, (void *)ptcd );
                  SamplePosDet_DrawScreen( pMe, 0 );
                  bHandled = TRUE;
               }
            }
         }
      }
      else if( wParam == SCREEN_PARAM_CLOSE ) {
         ITEXTCTL_Release( pTextCtl );
         IMENUCTL_Release( pSoftKeyMenu );
         FREE( ptcd );
         SamplePosDet_SetScreenData( pMe, 0 );
         pMe->currentHandler = 0;
         bHandled = TRUE;
      }
      else if( wParam == SCREEN_PARAM_PAINT ) {
         if( ITEXTCTL_IsActive( pTextCtl ) ) {
            ITEXTCTL_Redraw( pTextCtl );
         }
         else {
            ITEXTCTL_SetActive( pTextCtl, TRUE );  /* Also causes a menu draw */
         }
      }
      break;

   case EVT_KEY:
   case EVT_KEY_PRESS:
   case EVT_KEY_RELEASE:
      bHandled = ITEXTCTL_HandleEvent( pTextCtl, eCode, wParam, dwParam );
      if (!bHandled) {
         bHandled = IMENUCTL_HandleEvent( pSoftKeyMenu, eCode, wParam, dwParam );
         
         if(!bHandled && wParam == AVK_CLR && eCode == EVT_KEY) {
            SamplePosDet_GotoScreen( pMe, SCREENID_SERVER_SETTINGS, 0 );
            bHandled = TRUE;
         }
      }
      break;

   case EVT_COMMAND:
      bHandled = ITEXTCTL_HandleEvent( pTextCtl, eCode, wParam, dwParam );
      if (!bHandled) {
         if (IDS_SOFTKEY_SAVE == wParam) {   // Save the new IP address
            pServer = ITEXTCTL_GetTextPtr(pTextCtl);
            pszStr = MALLOC(50);
            WSTRTOSTR(pServer, pszStr, 50);
            if (INET_ATON(pszStr, &nResult)) {
               pMe->gpsSettings.server.svrType = AEEGPS_SERVER_IP;
               pMe->gpsSettings.server.svr.ipsvr.addr = nResult;
               SamplePosDet_SaveGPSSettings(pMe);
               SamplePosDet_GotoScreen(pMe, SCREENID_PORT_SETTINGS, 0);
            }
            else {
               ITEXTCTL_SetTitle(pTextCtl, SAMPLEPOSDET_RES_FILE, IDS_PDE_SETTINGS_INVALID, NULL);
               ITEXTCTL_Redraw(pTextCtl);
            }
            FREE(pszStr);
            // add code to save the new PDE IP address
            bHandled = TRUE;
         }
      }
      break;
   }
   return bHandled;
}