Пример #1
0
/*!\brief Creates a new action, binds the action to a window and register the
 *        action in the signal dispatcher for widget actions.
 *
 * \param winHandle The window to bind the action to.
 * \param action    The action to bind.
 * \param callback  A callback function that is called when an action is 
 *                  generated or NULL if no callback is used.
 * \param fsm       The fsm to send a signal. The fsm is only valid if callback
 *                  is NULL.
 * \param signal    The signal to send. The signal is only valid if callback is 
 *                  NULL.
 * \param strId     The label for the action.
 * \return          The new action handle or 0 if something went wrong.
 *****************************************************************************/
MsfActionHandle smaCreateAction(MsfWindowHandle winHandle, 
    MsfActionType action, SmaActionCallBack callback, int fsm, int signal, 
    MSF_UINT32 strId)
{
    MsfActionHandle actionHandle;
    actionHandle = MSF_WIDGET_ACTION_CREATE(MSF_MODID_SMA,
        SMA_GET_STR_ID(strId), action, 0, MSF_ACTION_PROPERTY_ENABLED);
    if (0 == actionHandle)
    {
        return 0;
    }
    if (0 > MSF_WIDGET_ADD_ACTION(winHandle, actionHandle))
    {
        (void)MSF_WIDGET_RELEASE(actionHandle);
        return 0;
    }
    if (smaRegisterAction(winHandle, actionHandle, callback, fsm, signal))
    {
        return actionHandle;
    }
    else
    {
        (void)MSF_WIDGET_RELEASE(actionHandle);
        return 0;
    }
}
Пример #2
0
/*!\brief Delete a window and its actions.
 *
 * \param winHandle The handle of the window (with attached actions) to delete.
 * \return TRUE if successful, otherwise FALSE.
 *****************************************************************************/
MSF_BOOL smaDeleteWindow(MsfWindowHandle winHandle)
{
    unsigned int i;
    unsigned int j;

    if (0 == winHandle)
    {
        return TRUE;
    }
    for (i = 0; i < widgetItemCount; i++)
    {
        if (winHandle == widgetList[i].handle)
        {
            /* Delete window */
            (void)MSF_WIDGET_REMOVE(smaGetScreenHandle(), 
                widgetList[i].handle);
            (void)MSF_WIDGET_RELEASE(widgetList[i].handle);
            /* Delete all actions */
            for (j = 0; j < SMA_MAX_ACTIVE_ACTIONS; j++)
            {
                if (SMA_ACTION_EVENT == widgetList[i].eventList[j].eventType &&
                    0 != widgetList[i].eventList[j].identifier.actionHandle)
                {
                    (void)MSF_WIDGET_RELEASE(
                        widgetList[i].eventList[j].identifier.actionHandle);
                }
            }
            /* Delete obsolete data*/
            memset(&widgetList[i], 0, sizeof(SmaWidgetItem));
            return TRUE;
        }
    }
    return FALSE;
}
Пример #3
0
/*!
 * \brief Deallocates a #SmtrInstance struct.
 * 
 * \param inst The instance to free. If inst is NULL then all instances will
 * be removed.
 *****************************************************************************/
static void deleteInstance(SmtrInstance **inst)
{
    int i;
    if (inst) 
    {
        if (*inst)
        {
            if ((*inst)->gadgetHandle > 0) 
            {
                (void)MSF_WIDGET_RELEASE((*inst)->gadgetHandle);
            }
            
            if ((*inst)->stringHandle > 0)
            {
                (void)MSF_WIDGET_RELEASE((*inst)->stringHandle);
            }
            
            smtrFreeParseResult(&((*inst)->parse));
            if ((*inst)->charBuffer) 
            {
                SMTR_FREE((*inst)->charBuffer);
            }
            SMTR_FREE(*inst);
            *inst = NULL;
        }
    }
    else
    {
        /* Remove all instances */
        for(i = 0; i < SMTR_MAX_INSTANCES; i++)
        {
            deleteInstance(&mtrTextBoxes[i]);
        }        
    }
}
Пример #4
0
static void
bra_delete_mem_logging_menu (bra_win_t *win)
{
  extern void wap_mem_debug_dump_catcher(void);
#ifndef __MTK_TARGET__
  extern void wap_mem_debug_dump_file(void);
#endif
  bra_mem_logging_menu_t *p;

  p = (bra_mem_logging_menu_t *)(win);

  MSF_WIDGET_REMOVE (bra_win_get_screen (), p->windowHandle); 

	MSF_WIDGET_RELEASE (p->windowHandle); 
	MSF_WIDGET_RELEASE (p->selectActionHandle);
	MSF_WIDGET_RELEASE (p->backActionHandle);

  BRA_FREE (p);

  if(dump == 0)
     wap_mem_debug_dump_catcher();
#ifndef __MTK_TARGET__
  else if(dump == 1)
     wap_mem_debug_dump_file();
#endif     
}
Пример #5
0
static void
bra_cch_delete_cch_menu (bra_win_t *win)
{
  bra_cch_menu_t *p;
  p = (bra_cch_menu_t *)(win);

 	MSF_WIDGET_REMOVE (bra_win_get_screen (), p->window); 

	MSF_WIDGET_RELEASE (p->window); 
	MSF_WIDGET_RELEASE (p->accept);
	MSF_WIDGET_RELEASE (p->back);

  BRA_FREE (p);

}
Пример #6
0
static void
bra_delete_mem_status_menu (bra_win_t *win)
{
  bra_mem_logging_menu_t *p;

  p = (bra_mem_logging_menu_t *)(win);

  MSF_WIDGET_REMOVE (bra_win_get_screen (), p->windowHandle); 

	MSF_WIDGET_RELEASE (p->windowHandle); 
	MSF_WIDGET_RELEASE (p->selectActionHandle);
	MSF_WIDGET_RELEASE (p->backActionHandle);

  BRA_FREE (p);
}
Пример #7
0
static int
brs_dlg_create_object_load_confirm_dialog (brs_dlg_t *dlg, const char *mime_type,
                                           const char *url)
{
  int         len;
  char       *message;
  int         result = 0;
  const char *string;

  MsfStringHandle sh1 = MSF_WIDGET_STRING_GET_PREDEFINED (BRS_STR_ID_NO_MIME_MSG);

  string = BRS_MEM_ALLOC (MSF_WIDGET_STRING_GET_LENGTH (sh1, 1, MsfUtf8));
  MSF_WIDGET_STRING_GET_DATA (sh1, (char *)string, MsfUtf8);
  MSF_WIDGET_RELEASE (sh1);
  
  len = strlen (string);
  message = BRS_MEM_ALLOC (len + 1);
  sprintf (message, "%s", string);
  
  brs_dlg_create_wmls_confirm_dialog (dlg, message, NULL, NULL);
  BRS_MEM_FREE (message);

  BRS_MEM_FREE ((char *)string);
  return result;
}
Пример #8
0
/*!\brief Deletes a specific action.
 *
 * \param actionHandle The action to delete.
 * \return TRUE if successful, otherwise FALSE.
 *****************************************************************************/
MSF_BOOL smaDeleteAction(MsfActionHandle actionHandle)
{
    unsigned int i, j;
    for (i = 0; i < widgetItemCount; i++)
    {
        if (0 != widgetList[i].handle)
        {
            for (j = 0; j < SMA_MAX_ACTIVE_ACTIONS; j++)
            {
                if (SMA_ACTION_EVENT == widgetList[i].eventList[j].eventType &&
                    actionHandle == 
                    widgetList[i].eventList[j].identifier.actionHandle)
                {
                    (void)MSF_WIDGET_RELEASE(
                        widgetList[i].eventList[j].identifier.actionHandle);
                    /* Delete obsolete data */
                    memset(&widgetList[i].eventList[j], 0, 
                        sizeof(SmaEventItem));
                    return TRUE;
                }

            }
        }
    }
    return FALSE;
}
Пример #9
0
static void
free_sas_window(msf_sas_handle_t *handle, msf_sas_op_t *op, msf_sas_window_t *window)
{
    msf_sas_window_t *temp_window = op->window;
    msf_sas_window_t *prev_window = NULL;

    /*Remove window*/

    while (temp_window != window) {
        prev_window = temp_window;
        temp_window = temp_window->next;
    }
    if (prev_window)
        prev_window->next = window->next;
    else
        op->window = window->next;

    /*Free window*/

    while (window->action)
        free_sas_action(handle, window, window->action);

    MSF_WIDGET_REMOVE (op->screen, window->handle); 
    MSF_WIDGET_RELEASE(window->handle);
    MSF_MEM_FREE(handle->modid, window);

}
Пример #10
0
/*! \brief Deletes the panic dialog.
 *
 * \param windowHandle The handle of the 
 * \return TRUE if successful, otherwise FALSE.
 *****************************************************************************/
MSF_BOOL meaDeletePanicDialog(MsfWindowHandle windowHandle)
{
    if (windowHandle == meaPanicDialog)
    {
        (void)MSF_WIDGET_RELEASE(meaPanicDialog);
        return TRUE;
    }
    return FALSE;
}
Пример #11
0
/*
 * Delete a dialog. Should be called when the user
 * has responded and all information has been extracted.
 */
void
brs_dlgDelete (brs_dlg_t *dlg)
{
  int i;

  /* NOTE: first the Dialog window must be removed from the Screen.
   * Then we release the Dialog window. This will cause all other
   * widgets that are attached to the Dialog to be removed from
   * the Dialog window.
   * Also, we must take care not to delete the Screen Handle! */
  MSF_WIDGET_REMOVE (dlg->handle[BRS_DLG_SCREEN_HANDLE],
                     dlg->handle[BRS_DLG_DIALOG_HANDLE]);
  MSF_WIDGET_RELEASE (dlg->handle[BRS_DLG_DIALOG_HANDLE]);
  for (i = dlg->num_handles - 1; i > 1; i--) {
    MSF_WIDGET_RELEASE (dlg->handle[i]);
  }
  BRS_MEM_FREE (dlg);
}
Пример #12
0
/*!
 * \brief Deletes the dialog with dialogHandle .
 *
 * \param dialogHandle The handle of the window that is to be deleted.
 * \return TRUE if the window has been deleted, otherwise FALSE.
 *****************************************************************************/
MSF_BOOL meaDeleteDialog(MsfWindowHandle dialogHandle)
{
    /* Check all the global dialogs */
    if (0 == dialogHandle)
    {
        return TRUE;
    }
    else if (meaConfirmDialog.dialogHandle == dialogHandle)
    {
        /* Confirm dialog */
        (void)MSF_WIDGET_REMOVE(meaGetScreenHandle(), 
            meaConfirmDialog.dialogHandle);
        (void)MSF_WIDGET_RELEASE(meaConfirmDialog.dialogHandle);
        (void)MSF_WIDGET_RELEASE(meaConfirmDialog.okActionHandle);
        (void)MSF_WIDGET_RELEASE(meaConfirmDialog.cancelActionHandle);
        memset(&meaConfirmDialog, 0, sizeof(MeaConfirmDialog));
        return TRUE;
    }
    else if (meaDialog.dialogHandle == dialogHandle)
    {
        (void)MSF_WIDGET_RELEASE(meaDialog.dialogHandle);
        
        /* inform about removal of dialog, if requested */
        if (MEA_NOTUSED_FSM != meaDialog.fsm)
        {
            (void)MEA_SIGNAL_SENDTO(meaDialog.fsm, meaDialog.signal);
        }

        memset(&meaDialog, 0, sizeof(MeaDialog));

        /* Show the next dialog in the list */
        if (!showDialog() && terminating)
        {
            /* Terminate */
#ifdef __UNIFIED_MSG_SUPPORT__
            (void)MEA_SIGNAL_SENDTO(MEA_CORE_FSM, MEA_SIG_CORE_ABNORMAL_TERMINATE_APP);
#else
            (void)MEA_SIGNAL_SENDTO(MEA_CORE_FSM, MEA_SIG_CORE_TERMINATE_APP);
#endif
        }
        return TRUE;
    }
    return FALSE;
}
Пример #13
0
static void
bra_cch_action_cch_menu (bra_win_t *win, MSF_UINT32 bra_action)
{
  bra_cch_menu_t *p;
  int on_off_list[2] = {BRA_STR_ID_OFF, BRA_STR_ID_ON};
#ifdef BRA_CONFIG_TEST
  char *s;
  MsfStringHandle ms;
#endif
  p = (bra_cch_menu_t *)(win);

  if (bra_action == p->back)
  {
    bra_win_close_window (BRA_WIN_CLOSE_CURRENT, 0);
  }
  else if (bra_action == p->accept)
  {
    if (MSF_WIDGET_CHOICE_GET_ELEM_STATE (p->window, 0) & MSF_CHOICE_ELEMENT_SELECTED)
    {
      bra_dlg_create_opt_menu (BRA_STR_CACHE_MODE, 
                               2, 
                               on_off_list,
                               bra_prof_get_key_int_value (BRA_PROF_ID_CMN, BRA_CMN_KEY_CACHEON),
                               bra_cch_enable_cache_confirmation);

    }
    else if (MSF_WIDGET_CHOICE_GET_ELEM_STATE (p->window, 1) & MSF_CHOICE_ELEMENT_SELECTED)
    {
      /*Confirmation dialog*/
      bra_dlg_create_dlg (MsfConfirmation,
                          BRA_STR_CLEAR_CACHE, 
                          BRA_STR_OK, 
                          BRA_STR_CANCEL,
                          0, 
                          bra_cch_delete_confirmation);

    }
#ifdef BRA_CONFIG_TEST
    else if (MSF_WIDGET_CHOICE_GET_ELEM_STATE (p->window, 2) & MSF_CHOICE_ELEMENT_SELECTED)
    {
      s = bra_cmn_int_to_str (bra_prof_get_key_int_value (BRA_PROF_ID_BRA, BRA_PROF_KEY_CASHSIZE));
      
      ms = BRA_STRCONV (s);
      bra_dlg_create_input_form(BRA_STR_CACHE_SIZE, 
                                MsfNumber, 
                                ms,
                                7, 
                                bra_cch_cache_size_response);
      MSF_WIDGET_RELEASE (ms);
      BRA_FREE (s);
      
    }
#endif
  }  
}
Пример #14
0
/*
 * Delete a dialog. Should be called when the user
 * has responded and all information has been extracted.
 */
void
msf_drcDelete (msf_drc_t *dlg)
{
  int i;

  /* NOTE: first the Dialog window must be removed from the Screen.
   * Then we release the Dialog window. This will cause all other
   * widgets that are attached to the Dialog to be removed from
   * the Dialog window.
   * Also, we must take care not to delete the Screen Handle! */
  for (i = MSF_DRC_MAX_NR_OF_HANDLES - 1; i > 1; i--) {
    if (dlg->handle[i] != 0) {
      MSF_WIDGET_REMOVE (dlg->handle[MSF_DRC_DIALOG_HANDLE], dlg->handle[i]);
      MSF_WIDGET_RELEASE (dlg->handle[i]);
    }
  }
  MSF_WIDGET_REMOVE (dlg->handle[MSF_DRC_SCREEN_HANDLE],
                     dlg->handle[MSF_DRC_DIALOG_HANDLE]);
  MSF_WIDGET_RELEASE (dlg->handle[MSF_DRC_DIALOG_HANDLE]);
  MSF_MEM_FREE(dlg->client_modid, dlg);
}
Пример #15
0
/*!
 * \brief De-allocates resources allocated for the dialog handling.
 *****************************************************************************/
void meaTerminateDia(void)
{
    /* Delete panic dialog */
    if (0 != meaPanicDialog)
    {
       (void)MSF_WIDGET_RELEASE(meaPanicDialog);
        meaPanicDialog = 0;
    }
    terminating = FALSE;
    memset(meaDialogQueue, 0, sizeof(meaDialogQueue));
    (void)meaDeleteDialog(meaDialog.dialogHandle);
    (void)meaDeleteDialog(meaConfirmDialog.dialogHandle);
}
Пример #16
0
/*!
 * \brief Deletes the property view.
 *
 *****************************************************************************/
void meaDeleteMvStatusView(void)
{
    /* Delete form and actions */
    (void)meaDeleteWindow(meaMvStatusView.formHandle);
#ifndef WAP_SUPPORT
    /* Delete gadgets */
    if (0 != meaMvStatusView.status)
    {
        (void)MSF_WIDGET_RELEASE(meaMvStatusView.status);
    }
    if (0 != meaMvStatusView.ntt)
    {
        (void)MSF_WIDGET_RELEASE(meaMvStatusView.ntt);
    }
    if (0 != meaMvStatusView.quota)
    {
        (void)MSF_WIDGET_RELEASE(meaMvStatusView.quota);
    }
#endif /* WAP_SUPPORT */
    /* Delete obsolete handles */
    memset(&meaMvStatusView, 0, sizeof(MeaMvStatusView));
}
Пример #17
0
/*!\brief Creates the data-structures for a context sensitive menu.
 *
 * \param titleStrHandle The title of the menu, if 0 no title is displayed.
 * \param signalHandler The navigation callback function 
 *****************************************************************************/
MSF_BOOL meaCreateNavMenu(MsfStringHandle titleStrHandle, 
    MeaNavCallBack signalHandler)
{
    MsfActionHandle actionHandle;
    if (0 != meaNavMenu.menuHandle)
    {
        MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_MEA,
            MAUIMENU_B308D4280296A2DC7B04F7DE3E738342, "(%s) (%d) instance is busy!\n", __FILE__, __LINE__));
        return FALSE;
    }

    memset(&meaNavMenu, 0, sizeof(MeaNavMenu));
    /* Set destination signal converter */
    meaNavMenu.signalHandler = signalHandler;
    /* Create the menu */
    actionHandle = MSF_WIDGET_ACTION_CREATE(MSF_MODID_MEA,
        MEA_GET_STR_ID(MEA_STR_ID_OK), MsfSelect, 0, 
        MSF_ACTION_PROPERTY_ENABLED);

    if (0 == (meaNavMenu.menuHandle = MSF_WIDGET_MENU_APP_CREATE(MSF_MODID_MEA,
        actionHandle, NULL, MSF_CHOICE_ELEMENT_STRING_1, 0, 0)))
    {
        return FALSE;
    }
    /* Actions */

    /*  We couldn't register the action until we had a window handle.
     *  Now we have it so rock'n'roll. 
     */
    if (!meaRegisterAction(meaNavMenu.menuHandle, actionHandle, handleOkAction, 
        0, 0))
    {
        (void)MSF_WIDGET_RELEASE(actionHandle);
        return FALSE;
    }
    
    if (!meaCreateAction(meaNavMenu.menuHandle, MsfBack, handleBackAction, 0, 
        0, MEA_STR_ID_BACK))
    {
        return FALSE;
    }

    /* Add title only if titleStrId is valid */
    if (0 != titleStrHandle)
    {
        (void)meaSetTitle(meaNavMenu.menuHandle, titleStrHandle, 0);
    }

    return TRUE;
}
Пример #18
0
/*!
 * \brief Displays an error dialog from a string.
 *
 * \param str The string to show in the dialog.
 * \return TRUE on success, else FALSE.
 *****************************************************************************/
MSF_BOOL showErrorDlg(const char *str)
{
    MsfStringHandle strHandle;

    if (NULL == str)
    {
        return FALSE;
    }
    if (0 == (strHandle = MSF_WIDGET_STRING_CREATE(MSF_MODID_MEA, 
        str, MsfUtf8, (int)strlen(str) + 1, 0)))
    {
        return FALSE;
    }
    (void)meaShowDialog(strHandle, MEA_DIALOG_ERROR);
    (void)MSF_WIDGET_RELEASE(strHandle);
    return TRUE;
}
Пример #19
0
/*!
 * \brief Deletes the property view.
 *
 *****************************************************************************/
void meaDeleteMvPropView(void)
{
    /* Delete form and actions */
    (void)meaDeleteWindow(meaMvPropView.formHandle);
#ifndef WAP_SUPPORT
    /* Delete gadgets */
    if (0 != meaMvPropView.fromHandle)
    {
        (void)MSF_WIDGET_RELEASE(meaMvPropView.fromHandle);
    }
    if (0 != meaMvPropView.toHandle)
    {
        (void)MSF_WIDGET_RELEASE(meaMvPropView.toHandle);
    }
    if (0 != meaMvPropView.ccHandle)
    {
        (void)MSF_WIDGET_RELEASE(meaMvPropView.ccHandle);
    }
    if (0 != meaMvPropView.subjectHandle)
    {
        (void)MSF_WIDGET_RELEASE(meaMvPropView.subjectHandle);
    }
    if (0 != meaMvPropView.fromTitleHandle)
    {
        (void)MSF_WIDGET_RELEASE(meaMvPropView.fromTitleHandle);
    }
    if (0 != meaMvPropView.toTitleHandle)
    {
        (void)MSF_WIDGET_RELEASE(meaMvPropView.toTitleHandle);
    }
    if (0 != meaMvPropView.ccTitleHandle)
    {
        (void)MSF_WIDGET_RELEASE(meaMvPropView.ccTitleHandle);
    }
    if (0 != meaMvPropView.subjectTitleHandle)
    {
        (void)MSF_WIDGET_RELEASE(meaMvPropView.subjectTitleHandle);
    }
#endif /* WAP_SUPPORT */
    /* Delete obsolete handles */
    memset(&meaMvPropView, 0, sizeof(MeaMvPropView));
}
Пример #20
0
/*!
 * \brief Deletes the read/delivery report view.
 *
 *****************************************************************************/
void meaDeleteMvRrDrView()
{
    /* Delete form and actions */
    (void)meaDeleteWindow(meaMvRrDrView.formHandle);
    /* Delete gadgets */
    if (0 != meaMvRrDrView.fromHandle)
    {
        (void)MSF_WIDGET_RELEASE(meaMvRrDrView.fromHandle);
    }
    if (0 != meaMvRrDrView.dateHandle)
    {
        (void)MSF_WIDGET_RELEASE(meaMvRrDrView.dateHandle);
    }
    if (0 != meaMvRrDrView.subjectHandle)
    {
        (void)MSF_WIDGET_RELEASE(meaMvRrDrView.subjectHandle);
    }
    if (0 != meaMvRrDrView.statusHandle)
    {
        (void)MSF_WIDGET_RELEASE(meaMvRrDrView.statusHandle);
    }
    if (0 != meaMvRrDrView.fromTitleHandle)
    {
        (void)MSF_WIDGET_RELEASE(meaMvRrDrView.fromTitleHandle);
    }
    if (0 != meaMvRrDrView.dateTitleHandle)
    {
        (void)MSF_WIDGET_RELEASE(meaMvRrDrView.dateTitleHandle);
    }
    if (0 != meaMvRrDrView.subjectTitleHandle)
    {
        (void)MSF_WIDGET_RELEASE(meaMvRrDrView.subjectTitleHandle);
    }
    if (0 != meaMvRrDrView.statusTitleHandle)
    {
        (void)MSF_WIDGET_RELEASE(meaMvRrDrView.statusTitleHandle);
    }
    /* Delete obsolete handles */
    memset(&meaMvRrDrView, 0, sizeof(MeaMvRrDrView));
}
Пример #21
0
/*
 * Return the input string from one of the input fields of
 * this dialog. The index of the requested input field is given
 * as 'idx', with indices starting at 0.
 * Returns NULL on error.
 * NOTE: it is the responsibility of the caller to deallocate
 * the returned string.
 */
char *
brs_dlgGetInput (brs_dlg_t *dlg, int idx)
{
  MsfStringHandle  input;
  char            *buf = NULL;
  int              len;

  if ((dlg != NULL) && (dlg->type == BRS_DLG_WMLS_PROMPT) && (idx == 0) &&
      (dlg->response == BRS_DLG_RESPONSE_POSITIVE)) {
    input = MSF_WIDGET_STRING_CREATE_TEXT (MSF_MODID_BRS,
                                           dlg->handle[BRS_DLG_DIALOG_HANDLE], 0);
    len = MSF_WIDGET_STRING_GET_LENGTH (input, 1, MsfUtf8);
    buf = BRS_MEM_ALLOC (len + 1);
    if (MSF_WIDGET_STRING_GET_DATA (input, buf, MsfUtf8) < 0) {
      BRS_MEM_FREE (buf);
      buf = NULL;
    }
    MSF_WIDGET_RELEASE (input);
  }

  return buf;
}
Пример #22
0
static void
free_sas_action(msf_sas_handle_t *handle, msf_sas_window_t *window, msf_sas_action_t *action)
{
    msf_sas_action_t *temp_action = window->action;
    msf_sas_action_t *prev_action = NULL;

    /*Remove action*/
    while (temp_action != action) {
        prev_action = temp_action;
        temp_action = temp_action->next;
    }
    if (prev_action)
        prev_action->next = action->next;
    else
        window->action = action->next;

    /* Free action*/
    MSF_WIDGET_REMOVE (window->handle, action->handle); 
    MSF_WIDGET_RELEASE(action->handle); 
    MSF_MEM_FREE(handle->modid, action);

}
Пример #23
0
void
bra_create_mem_status_menu (int type)
{
  bra_mem_logging_menu_t *win;
  MsfPosition pos = BRA_CFG_MENU_POS;
  MsfDeviceProperties prop;
  MSF_UINT8 i = 0;
  MsfStringHandle ms;
  extern unsigned int wapadp_alloc_mem[WAP_MEM_POOL_NUM];
  extern unsigned int wapadp_alloc_bytes[MSF_NUMBER_OF_MODULES];
  extern unsigned int wapadp_max_bytes[MSF_NUMBER_OF_MODULES];
  unsigned int alloc_mem = wapadp_alloc_mem[WAP_MEM_POOL];
  unsigned int msf_alloc_mem = 0;
  unsigned int other_max_mem = 0;
  unsigned int alloc_bytes[MSF_NUMBER_OF_MODULES];
  unsigned int max_bytes[MSF_NUMBER_OF_MODULES];
  unsigned int msf_alloc_bytes[MSF_NUMBER_OF_MODULES];
  char s[64];

  for(i = 0;i < MSF_NUMBER_OF_MODULES;i++)
  {
    msf_alloc_bytes[i] = msf_mem_allocated_bytes(i);
    msf_alloc_mem += msf_alloc_bytes[i];
    alloc_bytes[i] = wapadp_alloc_bytes[i];
    max_bytes[i] = wapadp_max_bytes[i];
    if(i == MSF_MODID_BRS || i == MSF_MODID_WIDGET)
      continue;
    other_max_mem += max_bytes[i];
  }

  i = 0;

  MSF_WIDGET_DEVICE_GET_PROPERTIES(&prop);
	
  /*remove menu key action from screen*/
  bra_view_disable ();

  win = BRA_ALLOCTYPE (bra_mem_logging_menu_t);
  
	win->selectActionHandle = MSF_WIDGET_ACTION_CREATE(MSF_MODID_BRA, BRA_STR_OK,MsfSelect,1, 0x8000);
	win->backActionHandle = MSF_WIDGET_ACTION_CREATE(MSF_MODID_BRA, BRA_STR_BACK,MsfBack,1, 0x8000);
	win->windowHandle = MSF_WIDGET_MENU_CREATE(MSF_MODID_BRA,
                                             MsfImplicitChoice,
                                             &prop.displaySize,
                                             win->selectActionHandle,
                                             0, /*Element Position*/
                                             MSF_CHOICE_ELEMENT_STRING_1, /*Bit Mask*/
                                             0x8000, /*Property Mask*/
                                             0 /*Default Style*/);

   if(type == 0)
     sprintf(s, "BW:%d(%d)", 
             alloc_bytes[MSF_MODID_BRS]+alloc_bytes[MSF_MODID_WIDGET],
             msf_alloc_bytes[MSF_MODID_BRS]+msf_alloc_bytes[MSF_MODID_WIDGET]);
   else
     sprintf(s, "BW:%d", max_bytes[MSF_MODID_BRS]+max_bytes[MSF_MODID_WIDGET]);
   ms = BRA_STRCONV(s);
   MSF_WIDGET_CHOICE_SET_ELEMENT (win->windowHandle, i++, ms,  0, 0, 0, TRUE);   
   MSF_WIDGET_RELEASE (ms);   

   if(type == 0)
#ifdef WAP_USE_ASM
     sprintf(s, "OT:%d(%d)", 
             alloc_mem,
             msf_alloc_mem - (msf_alloc_bytes[MSF_MODID_BRS]+msf_alloc_bytes[MSF_MODID_WIDGET]));
#else   
     sprintf(s, "OT:%d(%d)", 
             alloc_mem - (alloc_bytes[MSF_MODID_BRS]+alloc_bytes[MSF_MODID_WIDGET]),
             msf_alloc_mem - (msf_alloc_bytes[MSF_MODID_BRS]+msf_alloc_bytes[MSF_MODID_WIDGET]));
#endif             
   else
Пример #24
0
/*!
 * \brief Creates a input form.
 *
 * \param item The type of input form to create.
 * \param titleStrHandle The title of the form.
 * \return TRUE of successful, otherwise FALSE:
 *****************************************************************************/
MSF_BOOL meaCreateInputForm(const MeaInputItem *item, 
    MSF_UINT32 titleStrHandle)
{
    int i;
    MsfStringHandle strHandle;
    MeaInputForm *inst;
    MsfActionHandle actionHandle;
    const MsfSize maxSize = {MEA_GADGET_DEF_HEIGHT, MEA_GADGET_DEF_WIDTH};
    MsfSize newSize = {0, 0};
    
    actionHandle = 0;
    
    if (NULL == (inst = createInstance(item)))
    {
        MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_MEA,
            MAUIFORM_46E7974CE7354600D97E60808E9536EF, "(%s) (%d) Input form instance is busy!\n", __FILE__, __LINE__));
        return FALSE;
    }
    /* Do not copy the list of elements */
    inst->item.items = NULL;
    /* Create gadget */
    switch(item->type)
    {
    case MEA_SINGLE_LINE_INPUT:
        /* Create string handle */
        if (NULL != item->text)
        {
            if (0 == (strHandle = MSF_WIDGET_STRING_CREATE(MSF_MODID_MEA, 
                item->text, MsfUtf8, strlen(item->text) + 1, 0)))
            {
                return FALSE;
            }
        }
        else
        {
            if (0 == (strHandle = MSF_WIDGET_STRING_CREATE(MSF_MODID_MEA, 
                "", MsfUtf8, 1, 0)))
            {
                return FALSE;
            }
        }
        if (0 == (inst->winHandle = MSF_WIDGET_FORM_CREATE(
            MSF_MODID_MEA, NULL, 0, 0)))
        {
            (void)MSF_WIDGET_RELEASE(strHandle);
            return FALSE;
        }
        if (0 == (inst->gadgetHandle = 
            MSF_WIDGET_TEXT_INPUT_CREATE(MSF_MODID_MEA, 
            meaGetEmptyStringHandle(), strHandle, item->textType, 
            (int)item->maxTextSize, TRUE, NULL, MSF_GADGET_PROPERTY_FOCUS, 0)))
        {
            (void)MSF_WIDGET_RELEASE(strHandle);
            (void)MSF_WIDGET_RELEASE(inst->winHandle);
            inst->winHandle = 0;
        }
        /* Calculate optimal size of gadget */
        meaCalculateStringGadgetSize(inst->winHandle, inst->gadgetHandle,
            strHandle, (MsfPosition*)&meaInputPos, (MsfSize*)&maxSize, 
            &newSize, FALSE);
        (void)MSF_WIDGET_SET_SIZE(inst->gadgetHandle, &newSize);

        (void)MSF_WIDGET_RELEASE(strHandle);
        if (0 > MSF_WIDGET_WINDOW_ADD_GADGET(inst->winHandle, 
            inst->gadgetHandle, NULL, (MsfAlignment *)&meaInputPos))
        {
            (void)MSF_WIDGET_RELEASE(inst->winHandle);
            inst->winHandle = 0;
            (void)MSF_WIDGET_RELEASE(inst->gadgetHandle);
            inst->gadgetHandle = 0;
            return FALSE;
        }
        break;
    case MEA_TEXT_INPUT:
        /* Create string handle */
        if (NULL != item->text)
        {
            if (0 == (strHandle = MSF_WIDGET_STRING_CREATE(MSF_MODID_MEA, 
                item->text, MsfUtf8, strlen(item->text) + 1, 0)))
            {
                return FALSE;
            }
        }
        else
        {
            if (0 == (strHandle = MSF_WIDGET_STRING_CREATE(MSF_MODID_MEA, 
                "", MsfUtf8, 1, 0)))
            {
                return FALSE;
            }
        }
        /* Create editor */
        if (0 == (inst->winHandle = MSF_WIDGET_EDITOR_CREATE(
            MSF_MODID_MEA, meaGetEmptyStringHandle(), strHandle,
            item->textType, (int)item->maxTextSize, 
            (MEA_TEXT_INPUT == item->type), NULL, 0, 0)))
        {
            (void)MSF_WIDGET_RELEASE(strHandle);
            return FALSE;
        }
        (void)MSF_WIDGET_RELEASE(strHandle);
        break;
    case MEA_RADIO_BUTTON_INPUT:
        /* Create radio button list */
        if (0 == (inst->winHandle = MSF_WIDGET_MENU_CREATE(
            MSF_MODID_MEA, MsfExclusiveChoice, NULL, 0, NULL,
            MSF_CHOICE_ELEMENT_STRING_1 | MSF_CHOICE_ELEMENT_ICON, 0, 0)))
        {
            return FALSE;
        }
        /* Add items to the list */
        for(i = 0; 0 != item->items[i]; i++)
        {
            if (0 > MSF_WIDGET_CHOICE_SET_ELEMENT(inst->winHandle,
                i, item->items[i], 0, 0, 0, TRUE))
            {
                (void)MSF_WIDGET_RELEASE(inst->winHandle);
                return FALSE;
            }
        }
        /* Set selected index */
        if ((inst->item.selectedItem < i) && (i >= 0))
        {
            (void)MSF_WIDGET_CHOICE_SET_ELEM_STATE(inst->winHandle, 
                    inst->item.selectedItem, MSF_CHOICE_ELEMENT_SELECTED);
        }
        else
        {
            MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_MEA,
                MAUIFORM_7C3400E063A6C6DC06716EB479BBE41B, "(%s) (%d) erroneous selected index!\n", __FILE__, __LINE__));
        }
        break;
    case MEA_SELECT_INPUT:
        actionHandle = MSF_WIDGET_ACTION_CREATE(MSF_MODID_MEA,
            MEA_GET_STR_ID(MEA_STR_ID_OK), MsfSelect, 0, 
            MSF_ACTION_PROPERTY_ENABLED);
        if (0 == (inst->winHandle = MSF_WIDGET_MENU_CREATE(
            MSF_MODID_MEA, MsfImplicitChoice, NULL, actionHandle, NULL,
            MSF_CHOICE_ELEMENT_STRING_1, 0, 0)))
        {
            return FALSE;
        }
        /* Add items to the list */
        for(i = 0; 0 != item->items[i]; i++)
        {
#ifdef WAP_SUPPORT
            if (0 > MSF_WIDGET_CHOICE_SET_ELEMENT(inst->winHandle,
                i, item->items[i], 0, meaGetListNumImage(i), 0, TRUE))
#else
            if (0 > MSF_WIDGET_CHOICE_SET_ELEMENT(inst->winHandle,
                i, item->items[i], 0, 0, 0, TRUE))
#endif /* WAP_SUPPORT */
            {
                (void)MSF_WIDGET_RELEASE(inst->winHandle);
                return FALSE;
            }
        }
        /* Set selected index */
        if ((inst->item.selectedItem < i) && (i >= 0))
        {
            (void)MSF_WIDGET_CHOICE_SET_ELEM_STATE(inst->winHandle, 
                    inst->item.selectedItem, MSF_CHOICE_ELEMENT_SELECTED);
        }
        else
        {
            MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_MEA,
                MAUIFORM_7C3400E063A6C6DC06716EB479BBE41B, "(%s) (%d) erroneous selected index!\n", __FILE__, __LINE__));
        }
        break;
    }
    /* Actions */
    if (MEA_SELECT_INPUT == item->type)
    {
        if (!meaRegisterAction(inst->winHandle, actionHandle, 
            meaHandleOkFormAction, 0, 0))
        {
            (void)MSF_WIDGET_RELEASE(actionHandle);
            return FALSE;
        }
        /* Back action */
        if (0 == meaCreateAction(inst->winHandle, MsfBack, meaHandleBackFormAction, 
            0, 0, MEA_STR_ID_BACK))
        {
            return FALSE;
        }
    }
    else
    {
        if (0 == meaCreateAction(inst->winHandle, MsfOk, meaHandleOkFormAction, 
            0, 0, MEA_STR_ID_OK))
        {
            return FALSE;
        }
        /* Cancel action */
        if (0 == meaCreateAction(inst->winHandle, MsfCancel, meaHandleBackFormAction, 
            0, 0, MEA_STR_ID_CANCEL))
        {
            return FALSE;
        }
    }

    /* Set title*/
    if (!meaSetTitle(inst->winHandle, titleStrHandle, 0))
    {
        return FALSE;
    }
#ifdef WAP_SUPPORT
    //MSF_WIDGET_WINDOW_SET_PROPERTIES(inst->winHandle, (int) MSF_WINDOW_PROPERTY_EXT_DISABLE_RIGHT_ARROW | MSF_WINDOW_PROPERTY_TITLE);
#endif /* WAP_SUPPORT */
    /* Display form */
    return meaDisplayWindow(inst->winHandle, meaGetPosLeftTop());
}
Пример #25
0
/*!
 *  \brief Deletes the current input form.
 *
 *  \param winHandle The window handle of the instance to delete or 0 to delete
 *                  all instances.
 *  \param action Tells the reason why the function was called. See
 *                #MeaInputFormAction for possible values.
 *****************************************************************************/
static void deleteInputForm(MsfWindowHandle winHandle, 
    MeaInputFormAction action)
{
    MeaInputForm *currItem;
    int i;
    void *ptr = NULL;
    unsigned int value = 0;
    MeaInputActionBackCallBack callback;

    /*lint -e{611} */
    callback = (MeaInputActionBackCallBack)NULL;

    if (0 != winHandle)
    {
        if (0 != (currItem = getInstance(winHandle)))
        {
            /*  Save values before we deallocates the instance in case 
             *  we need them later */
            callback = currItem->item.backCallback;
            value = currItem->item.uintValue;
            ptr = currItem->item.dataPtr;

            /* Remove the gadget if it has been created */
            if (0 != currItem->gadgetHandle)
            {
                (void)MSF_WIDGET_RELEASE(currItem->gadgetHandle);
            }
            /* Remove the window and its actions */
            (void)meaDeleteWindow(currItem->winHandle);
            /* Delete the instance */
            /*lint -e{774}*/
            MEA_FREE(currItem);
            for(i = 0; i < MEA_MAX_INPUT_FORMS; i++)
            {
                if (currItem == meaInputForm[i])
                {
                    meaInputForm[i] = NULL;
                    break;
                }
            }
        }
    }
    else
    {
        /* Delete all instances */
        for (i = 0; i < MEA_MAX_INPUT_FORMS; i++)
        {
            if (NULL != meaInputForm[i])
            {
                if (0 != meaInputForm[i]->gadgetHandle)
                {
                    (void)MSF_WIDGET_RELEASE(meaInputForm[i]->gadgetHandle);
                }
                /* Remove the window and its actions */
                (void)meaDeleteWindow(meaInputForm[i]->winHandle);
                MEA_FREE(meaInputForm[i]);
                meaInputForm[i] = NULL;
            }
        }
    }
    /* The window is closed, tell the user about it */
    if ((NULL != callback) && (MEA_INPUT_FORM_CANCEL == action))
    {
        /* Call callback, preserve original data parameters */
        callback(ptr, value);
    }
}
Пример #26
0
/*!
 * \brief Creates and displays a dialog.
 * 
 * \return TRUE if successful, otherwise FALSE.
 *****************************************************************************/
static MSF_BOOL showDialog()
{
    int i;
    MsfDialogType msfDialogType;
    
    if (0 != meaDialog.dialogHandle)
    {
        MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_MEA,
            MAUIDIA_5AA3B4FB841AC6A9C5FC4188FD141007, "(%s) (%d) instance busy!\n", __FILE__, __LINE__));
        return FALSE;
    }
    if (0 == meaDialogQueue[0].strHandle)
    {
#ifdef WAP_SUPPORT	// justin
		if (meaWindowToShowAfterDialog != 0)
		{
			meaDisplayWindow(meaWindowToShowAfterDialog, meaGetPosLeftTop());
			meaWindowToShowAfterDialog = 0;
		}
#endif /* WAP_SUPPORT */
        return FALSE;
    }
    msfDialogType = MsfWarning;
    switch (meaDialogQueue[0].dialogType)
    {
    case(MEA_DIALOG_ALERT):
        msfDialogType = MsfAlert;
        break;
    case(MEA_DIALOG_WARNING):
        msfDialogType = MsfWarning;
        break;
    case(MEA_DIALOG_INFO):
        msfDialogType = MsfInfo;
        break;
    case(MEA_DIALOG_ERROR):
        msfDialogType = MsfError;
        break;
#ifdef WAP_SUPPORT
    case(MEA_DIALOG_CONFIRMATION):
        msfDialogType = MsfConfirmation;
        break;
    case(MEA_DIALOG_PROMPT):
        msfDialogType = MsfPrompt;
        break;
    case(MEA_DIALOG_PROMPT_EMPTY):
        msfDialogType = (MsfDialogType)MsfPromptEmpty;
        break;
    case(MEA_DIALOG_PROMPT_DONE):
        msfDialogType = (MsfDialogType)MsfPromptSaveDone;
        break;
#endif /* WAP_SUPPORT */
    }
    
    /* Create dialog */
    meaDialog.dialogHandle = MSF_WIDGET_DIALOG_CREATE(MSF_MODID_MEA, 
        meaDialogQueue[0].strHandle, msfDialogType, 
        MEA_DIALOG_DEFAULT_TIME_OUT, MSF_WINDOW_PROPERTY_NOTIFY, 0);
    if (0 == meaDialog.dialogHandle)
    {
        return FALSE;
    }

    /* copy callback info for this dialog */
    meaDialog.fsm = meaDialogQueue[0].fsm;
    meaDialog.signal = meaDialogQueue[0].signal;

    /* Display the dialog */
    if (0 <= MSF_WIDGET_SCREEN_ADD_WINDOW(meaGetScreenHandle(), 
        meaDialog.dialogHandle, meaGetPosLeftTop(), meaGetScreenHandle(), 0))
    {
        (void)MSF_WIDGET_SET_IN_FOCUS(meaGetScreenHandle(), TRUE);
        (void)MSF_WIDGET_SET_IN_FOCUS(meaDialog.dialogHandle, TRUE);
        (void)meaRegisterNotification(meaDialog.dialogHandle,
            MsfNotifyLostFocus, meaDeleteDialogCb, 0, 0);
    }
    else
    {
        (void)MSF_WIDGET_RELEASE(meaDialog.dialogHandle);
        meaDialog.dialogHandle = 0;
        return FALSE;
    }
    /* Remove the item from the queue */
    for(i = 0; i < MEA_MAX_DIALOGS - 1; i++)
    {
        memcpy(&meaDialogQueue[i], &meaDialogQueue[i + 1], 
            sizeof(MeaDialogItem));
    }

    /* Set last item to zero */
    meaDialogQueue[MEA_MAX_DIALOGS - 1].dialogType = (MeaDialogType)0;
    meaDialogQueue[MEA_MAX_DIALOGS - 1].strHandle  = 0;
    return TRUE;
}
Пример #27
0
/*!
 * \brief Displays a dialog that requires End User actions to disappear.
 *
 * \param textStrId The text to be displayed or 0 if the str param is used 
 *                  instead.
 * \param str The text string to displayed if textStrId is 0
 * \param fsm The FSM to respond the result to.
 * \param signal The response signal.
 * \param id A optional id that is sent back in the response as u_param2.
 * \return  TRUE if successful, otherwise FALSE.
 *****************************************************************************/
MSF_BOOL meaShowDialogWithConfirm(MsfDialogType dlgType, MSF_UINT32 lskStrId, MSF_UINT32 rskStrId, 
    MSF_UINT32 textStrId, MeaStateMachine fsm, int signal, unsigned int id)
{
    if (0 != meaConfirmDialog.dialogHandle)
    {
        meaDeleteDialog(meaConfirmDialog.dialogHandle);
        MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_MEA, MAUIDIA_B308D4280296A2DC7B04F7DE3E738342, "(%s) (%d) instance is busy!\n", __FILE__, __LINE__));
        return FALSE;
    }
    meaConfirmDialog.fsm    = fsm;
    meaConfirmDialog.signal = signal;
    meaConfirmDialog.id     = id;

    /* Create string handle */
   if (0 == textStrId)
   {
       return FALSE;
   }

    /* Create dialog */
    if (0 == (meaConfirmDialog.dialogHandle = MSF_WIDGET_DIALOG_CREATE(MSF_MODID_MEA, MEA_GET_STR_ID(textStrId), dlgType, 0, MSF_WINDOW_PROPERTY_NOTIFY, 0)))
    {
        return FALSE;
    }

    /* Create LSK action */
    if(0 == lskStrId)
    {
        meaConfirmDialog.okActionHandle = 0;
    }
    else
    {
        meaConfirmDialog.okActionHandle = MSF_WIDGET_ACTION_CREATE(MSF_MODID_MEA, MEA_GET_STR_ID(lskStrId), MsfOk, 0, MSF_ACTION_PROPERTY_ENABLED);
    }
    
    if (meaConfirmDialog.okActionHandle > 0 && 0 > MSF_WIDGET_ADD_ACTION(meaConfirmDialog.dialogHandle, meaConfirmDialog.okActionHandle))
    {
        (void)MSF_WIDGET_RELEASE(meaConfirmDialog.dialogHandle);
        memset(&meaConfirmDialog, 0 , sizeof(MeaConfirmDialog));
        return FALSE;
    }
    
    /* Create RSK action */
    if(0 == rskStrId)
    {
        meaConfirmDialog.cancelActionHandle = 0;
    }
    else
    {
        meaConfirmDialog.cancelActionHandle = MSF_WIDGET_ACTION_CREATE(MSF_MODID_MEA, MEA_GET_STR_ID(rskStrId), MsfCancel, 0, MSF_ACTION_PROPERTY_ENABLED);
    }
    
    if (meaConfirmDialog.cancelActionHandle> 0 && 0 > MSF_WIDGET_ADD_ACTION(meaConfirmDialog.dialogHandle, meaConfirmDialog.cancelActionHandle))
    {
        (void)MSF_WIDGET_RELEASE(meaConfirmDialog.dialogHandle);
        if(meaConfirmDialog.okActionHandle != 0)
        {
            (void)MSF_WIDGET_RELEASE(meaConfirmDialog.okActionHandle);
        }
        memset(&meaConfirmDialog, 0 , sizeof(MeaConfirmDialog));
        return FALSE;
    }
    
    /* Display the dialog */
    if (0 <= MSF_WIDGET_SCREEN_ADD_WINDOW(meaGetScreenHandle(), meaConfirmDialog.dialogHandle, meaGetPosLeftTop(), meaGetScreenHandle(), 0))
    {
        (void)MSF_WIDGET_SET_IN_FOCUS(meaGetScreenHandle(), TRUE);
        (void)MSF_WIDGET_SET_IN_FOCUS(meaConfirmDialog.dialogHandle, TRUE);
    }
    else
    {
        (void)MSF_WIDGET_RELEASE(meaConfirmDialog.dialogHandle);
        if(meaConfirmDialog.okActionHandle != 0)
        {
            (void)MSF_WIDGET_RELEASE(meaConfirmDialog.okActionHandle);
        }

        if(meaConfirmDialog.cancelActionHandle != 0)
        {
            (void)MSF_WIDGET_RELEASE(meaConfirmDialog.cancelActionHandle);
        }
        
        memset(&meaConfirmDialog, 0 , sizeof(MeaConfirmDialog));
        return FALSE;
    }
    return TRUE;
}
Пример #28
0
/*!
 * \brief Displays a dialog that requires End User actions to disappear.
 *
 * \param textStrId The text to be displayed or 0 if the str param is used 
 *                  instead.
 * \param str The text string to displayed if textStrId is 0
 * \param fsm The FSM to respond the result to.
 * \param signal The response signal.
 * \param id A optional id that is sent back in the response as u_param2.
 * \return  TRUE if successful, otherwise FALSE.
 *****************************************************************************/
MSF_BOOL meaShowConfirmDialog(MSF_UINT32 textStrId, const char *str, 
    MeaStateMachine fsm, int signal, unsigned int id)
{
    MsfStringHandle strHandle;
    if (0 != meaConfirmDialog.dialogHandle)
    {
#ifdef WAP_SUPPORT
        meaDeleteDialog(meaConfirmDialog.dialogHandle);
#else
        MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_MEA,
            MAUIDIA_B308D4280296A2DC7B04F7DE3E738342, "(%s) (%d) instance is busy!\n", __FILE__, __LINE__));
        return FALSE;
#endif /* WAP_SUPPORT */
    }
    meaConfirmDialog.fsm    = fsm;
    meaConfirmDialog.signal = signal;
    meaConfirmDialog.id     = id;

    /* Create string handle */
    /*lint -e{539} */
   if (0 == textStrId)
   {
       if (0 == (strHandle = MSF_WIDGET_STRING_CREATE(MSF_MODID_MEA, str, 
           MsfUtf8, (int)strlen(str) + 1, 0)))
       {
           return FALSE;
       }
   }
   else
   {
       strHandle = MEA_GET_STR_ID(textStrId);
   }

    /* Create dialog */
    if (0 == (meaConfirmDialog.dialogHandle = MSF_WIDGET_DIALOG_CREATE(
        MSF_MODID_MEA, strHandle, MsfConfirmation, 0, 
        MSF_WINDOW_PROPERTY_NOTIFY, 0)))
    {
        if (0 == textStrId)
        {
            (void)MSF_WIDGET_RELEASE(strHandle);
        }
        return FALSE;
    }
    if (0 == textStrId)
    {
        (void)MSF_WIDGET_RELEASE(strHandle);
    }
    /* Create actions */
#ifdef WAP_SUPPORT	
    if (textStrId==MEA_STR_ID_NEW_MMS_MSG
#ifdef __MMS_DUAL_SIM_SUPPORT__
        || textStrId == WIDGET_STR_ID_RECEIVED_MMS_MSG_SIM_1 || textStrId == WIDGET_STR_ID_RECEIVED_MMS_MSG_SIM_2
#endif /*__MMS_DUAL_SIM_SUPPORT__*/
        )
        meaConfirmDialog.okActionHandle = MSF_WIDGET_ACTION_CREATE(MSF_MODID_MEA, 
            MEA_GET_STR_ID(MEA_STR_ID_LSK_READ), MsfOk, 0, MSF_ACTION_PROPERTY_ENABLED);
    else
        meaConfirmDialog.okActionHandle = MSF_WIDGET_ACTION_CREATE(MSF_MODID_MEA, 
            MEA_GET_STR_ID(MEA_STR_ID_LSK_YES), MsfOk, 0, MSF_ACTION_PROPERTY_ENABLED);
#else
    meaConfirmDialog.okActionHandle = MSF_WIDGET_ACTION_CREATE(MSF_MODID_MEA, 
        MEA_GET_STR_ID(MEA_STR_ID_OK), MsfOk, 0, MSF_ACTION_PROPERTY_ENABLED);
#endif /* WAP_SUPPORT */
    if (0 > MSF_WIDGET_ADD_ACTION(meaConfirmDialog.dialogHandle, 
        meaConfirmDialog.okActionHandle))
    {
        (void)MSF_WIDGET_RELEASE(meaConfirmDialog.dialogHandle);
        memset(&meaConfirmDialog, 0 , sizeof(MeaConfirmDialog));
        return FALSE;
    }
#ifdef WAP_SUPPORT	
    if (textStrId==MEA_STR_ID_NEW_MMS_MSG
#ifdef __MMS_DUAL_SIM_SUPPORT__
        || textStrId == WIDGET_STR_ID_RECEIVED_MMS_MSG_SIM_1 || textStrId == WIDGET_STR_ID_RECEIVED_MMS_MSG_SIM_2
#endif /*__MMS_DUAL_SIM_SUPPORT__*/
        )
        meaConfirmDialog.cancelActionHandle = MSF_WIDGET_ACTION_CREATE(MSF_MODID_MEA, 
            MEA_GET_STR_ID(MEA_STR_ID_BACK), MsfCancel, 0, MSF_ACTION_PROPERTY_ENABLED);
    else
        meaConfirmDialog.cancelActionHandle = MSF_WIDGET_ACTION_CREATE(
            MSF_MODID_MEA, MEA_GET_STR_ID(MEA_STR_ID_RSK_NO), MsfCancel, 0, 
            MSF_ACTION_PROPERTY_ENABLED);
#else
    meaConfirmDialog.cancelActionHandle = MSF_WIDGET_ACTION_CREATE(
        MSF_MODID_MEA, MEA_GET_STR_ID(MEA_STR_ID_CANCEL), MsfCancel, 0, 
        MSF_ACTION_PROPERTY_ENABLED);
#endif /* WAP_SUPPORT */
    if (0 > MSF_WIDGET_ADD_ACTION(meaConfirmDialog.dialogHandle, 
        meaConfirmDialog.cancelActionHandle))
    {
        (void)MSF_WIDGET_RELEASE(meaConfirmDialog.dialogHandle);
        (void)MSF_WIDGET_RELEASE(meaConfirmDialog.okActionHandle);
        memset(&meaConfirmDialog, 0 , sizeof(MeaConfirmDialog));
        return FALSE;
    }
    /* Display the dialog */
    if (0 <= MSF_WIDGET_SCREEN_ADD_WINDOW(meaGetScreenHandle(), 
        meaConfirmDialog.dialogHandle, meaGetPosLeftTop(), 
        meaGetScreenHandle(), 0))
    {
        (void)MSF_WIDGET_SET_IN_FOCUS(meaGetScreenHandle(), TRUE);
        (void)MSF_WIDGET_SET_IN_FOCUS(meaConfirmDialog.dialogHandle, TRUE);
    }
    else
    {
        (void)MSF_WIDGET_RELEASE(meaConfirmDialog.dialogHandle);
        (void)MSF_WIDGET_RELEASE(meaConfirmDialog.okActionHandle);
        (void)MSF_WIDGET_RELEASE(meaConfirmDialog.cancelActionHandle);
        memset(&meaConfirmDialog, 0 , sizeof(MeaConfirmDialog));
        return FALSE;
    }
    return TRUE;
}
Пример #29
0
void
bra_create_mem_logging_menu (void)
{
  bra_mem_logging_menu_t *win;
  MsfPosition pos = BRA_CFG_MENU_POS;
  MsfDeviceProperties prop;
  MSF_UINT8 i = 0;
  MsfStringHandle ms;
  extern unsigned int wapadp_alloc_mem[WAP_MEM_POOL_NUM];
  extern unsigned int wapadp_max_mem[WAP_MEM_POOL_NUM];
  char s[32];

  MSF_WIDGET_DEVICE_GET_PROPERTIES(&prop);
	
  /*remove menu key action from screen*/
  bra_view_disable ();

  win = BRA_ALLOCTYPE (bra_mem_logging_menu_t);
  
	win->selectActionHandle = MSF_WIDGET_ACTION_CREATE(MSF_MODID_BRA, BRA_STR_OK,MsfSelect,1, 0x8000);
	win->backActionHandle = MSF_WIDGET_ACTION_CREATE(MSF_MODID_BRA, BRA_STR_BACK,MsfBack,1, 0x8000);
	win->windowHandle = MSF_WIDGET_MENU_CREATE(MSF_MODID_BRA,
                                             MsfImplicitChoice,
                                             &prop.displaySize,
                                             win->selectActionHandle,
                                             0, /*Element Position*/
                                             MSF_CHOICE_ELEMENT_STRING_1, /*Bit Mask*/
                                             0x8000, /*Property Mask*/
                                             0 /*Default Style*/);

   ms = BRA_STRCONV("Dump to Catcher");
   MSF_WIDGET_CHOICE_SET_ELEMENT (win->windowHandle, i++, ms,  0, bra_cmn_get_list_num_image(i), 0, TRUE);
   MSF_WIDGET_RELEASE (ms);
#ifndef __MTK_TARGET__
   ms = BRA_STRCONV("Dump to File");
   MSF_WIDGET_CHOICE_SET_ELEMENT (win->windowHandle, i++, ms,  0, bra_cmn_get_list_num_image(i), 0, TRUE);
   MSF_WIDGET_RELEASE (ms);
#endif
   ms = BRA_STRCONV("Logging MSM");
	MSF_WIDGET_CHOICE_SET_ELEMENT (win->windowHandle, i++, ms,  0, bra_cmn_get_list_num_image(i), 0, TRUE);
   MSF_WIDGET_RELEASE (ms);
   ms = BRA_STRCONV("Logging STK");
   MSF_WIDGET_CHOICE_SET_ELEMENT (win->windowHandle, i++, ms,  0, bra_cmn_get_list_num_image(i), 0, TRUE);
   MSF_WIDGET_RELEASE (ms);
   ms = BRA_STRCONV("Logging BRS");
	MSF_WIDGET_CHOICE_SET_ELEMENT (win->windowHandle, i++, ms,  0, bra_cmn_get_list_num_image(i), 0, TRUE);
   MSF_WIDGET_RELEASE (ms);
   ms = BRA_STRCONV("Logging BRA");
	MSF_WIDGET_CHOICE_SET_ELEMENT (win->windowHandle, i++, ms,  0, bra_cmn_get_list_num_image(i), 0, TRUE);
   MSF_WIDGET_RELEASE (ms);
   ms = BRA_STRCONV("Logging PHS");
   MSF_WIDGET_CHOICE_SET_ELEMENT (win->windowHandle, i++, ms,  0, bra_cmn_get_list_num_image(i), 0, TRUE);
   MSF_WIDGET_RELEASE (ms);
   ms = BRA_STRCONV("Logging UIS");
   MSF_WIDGET_CHOICE_SET_ELEMENT (win->windowHandle, i++, ms,  0, bra_cmn_get_list_num_image(i), 0, TRUE);
   MSF_WIDGET_RELEASE (ms);
   ms = BRA_STRCONV("Logging PRS");
   MSF_WIDGET_CHOICE_SET_ELEMENT (win->windowHandle, i++, ms,  0, bra_cmn_get_list_num_image(i), 0, TRUE);
   MSF_WIDGET_RELEASE (ms);
#ifdef BRA_CONFIG_SECURITY   
   ms = BRA_STRCONV("Logging SEC");
   MSF_WIDGET_CHOICE_SET_ELEMENT (win->windowHandle, i++, ms,  0, bra_cmn_get_list_num_image(i), 0, TRUE);
   MSF_WIDGET_RELEASE (ms);
#endif   
#ifdef BRA_CONFIG_MMS
   ms = BRA_STRCONV("Logging MMS");
   MSF_WIDGET_CHOICE_SET_ELEMENT (win->windowHandle, i++, ms,  0, bra_cmn_get_list_num_image(i), 0, TRUE);
   MSF_WIDGET_RELEASE (ms);
   ms = BRA_STRCONV("Logging MEA");
   MSF_WIDGET_CHOICE_SET_ELEMENT (win->windowHandle, i++, ms,  0, bra_cmn_get_list_num_image(i), 0, TRUE);
   MSF_WIDGET_RELEASE (ms);
   ms = BRA_STRCONV("Logging SLS");
   MSF_WIDGET_CHOICE_SET_ELEMENT (win->windowHandle, i++, ms,  0, bra_cmn_get_list_num_image(i), 0, TRUE);
   MSF_WIDGET_RELEASE (ms);
   ms = BRA_STRCONV("Logging SMA");
   MSF_WIDGET_CHOICE_SET_ELEMENT (win->windowHandle, i++, ms,  0, bra_cmn_get_list_num_image(i), 0, TRUE);
   MSF_WIDGET_RELEASE (ms);
#endif
   ms = BRA_STRCONV("Logging WIDGET");
   MSF_WIDGET_CHOICE_SET_ELEMENT (win->windowHandle, i++, ms,  0, bra_cmn_get_list_num_image(i), 0, TRUE);
   MSF_WIDGET_RELEASE (ms);

   sprintf(s, "current:%d", wapadp_alloc_mem[WAP_MEM_POOL]);
   ms = BRA_STRCONV(s);
   MSF_WIDGET_CHOICE_SET_ELEMENT (win->windowHandle, i++, ms,  0, 0, 0, TRUE);   
   MSF_WIDGET_RELEASE (ms);   

#ifdef WAP_USE_ASM
   sprintf(s, "current(app):%d", wapadp_alloc_mem[WAP_APP_MEM_POOL]);
   ms = BRA_STRCONV(s);
   MSF_WIDGET_CHOICE_SET_ELEMENT (win->windowHandle, i++, ms,  0, 0, 0, TRUE);   
   MSF_WIDGET_RELEASE (ms);   
#endif   

   sprintf(s, "Maximum:%d", wapadp_max_mem[WAP_MEM_POOL]);
   ms = BRA_STRCONV(s);
   MSF_WIDGET_CHOICE_SET_ELEMENT (win->windowHandle, i++, ms,  0, 0, 0, TRUE);   
   MSF_WIDGET_RELEASE (ms);   
   
#ifdef WAP_USE_ASM
   sprintf(s, "Maximum(app):%d", wapadp_max_mem[WAP_APP_MEM_POOL]);
   ms = BRA_STRCONV(s);
   MSF_WIDGET_CHOICE_SET_ELEMENT (win->windowHandle, i++, ms,  0, 0, 0, TRUE);   
   MSF_WIDGET_RELEASE (ms);   
#endif      

   ms = BRA_STRCONV("Memory Logging"); 
	MSF_WIDGET_SET_TITLE(win->windowHandle, ms);
   MSF_WIDGET_RELEASE (ms);
	MSF_WIDGET_WINDOW_SET_PROPERTIES(win->windowHandle,MSF_WINDOW_PROPERTY_TITLE);

	MSF_WIDGET_ADD_ACTION(win->windowHandle, win->backActionHandle);
	
  bra_win_show_window (BRA_WIN_ID_INSE,  
                      (bra_win_t*)win, 
                      &pos, 
                      bra_delete_mem_logging_menu, 
                      NULL,
                      bra_widget_action_mem_logging_menu);
}