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

📄 mmismsmenu.c

📁 GSM手机设计软件代码
💻 C
📖 第 1 页 / 共 4 页
字号:
    TRACE_FUNCTION ("M_callVoice()");

    win = V_create (parent_win);

    if (win NEQ NULL)
  {
      SEND_EVENT (win, E_INIT, V_ID_CALL, 0);
  }

  return 1;
}


/*******************************************************************************

 $Function:     M_exeBroadcast

 $Description:  This function is called when the user press Cell Broadcast
          in the main SMS menu.

 $Returns:    Execution status

 $Arguments:  m - menu handler
        i - Menu item selected

*******************************************************************************/

int M_exeBroadcast(MfwMnu* m, MfwMnuItem* i)
{
    T_MFW_HND       win  = mfwParent(mfw_header());

  smscb_M_CB_start(win, 0);

  return 1;
}


/*******************************************************************************

 $Function:     ExeSms_sendM_SND_SAV

 $Description:  Called when the user press Saved SMS from the Send SMS menu

 $Returns:    Execution status

 $Arguments:  m - menu handler
        i - Menu item selected

*******************************************************************************/

static int ExeSms_sendM_SND_SAV(MfwMnu* m, MfwMnuItem* i)
{
    T_MFW_HND       win  = mfwParent(mfw_header());

    return 1;
}

/*******************************************************************************

 $Function:     M_SND_SAV_start

 $Description:  Start the creation of the saved SMS menu window

 $Returns:    Execution status

 $Arguments:  parent_window - parent window
        menuAttr - Menu attributes.

*******************************************************************************/

T_MFW_HND M_SND_SAV_start(T_MFW_HND parent_window, MfwMnuAttr *menuAttr)
{
    T_MFW_HND win;

    TRACE_FUNCTION ("M_SND_SAV_start()");

    win = M_SND_SAV_create (parent_window);

    if (win NEQ NULL)
  {
      SEND_EVENT (win, E_INIT, M_SND_SAV_ID, (void *)menuAttr);
  }
    return win;
}

/*******************************************************************************

 $Function:     M_SND_SAV_create

 $Description:  Create the saved SMS menu window

 $Returns:    Execution status

 $Arguments:  parent_window - parent window

*******************************************************************************/

static T_MFW_HND M_SND_SAV_create(MfwHnd parent_window)
{
    T_M_SND_SAV      * data = (T_M_SND_SAV *)ALLOC_MEMORY (sizeof (T_M_SND_SAV));
    T_MFW_WIN  * win;

    TRACE_FUNCTION ("M_SND_SAV_create()");

    /*
     * Create window handler
     */

    data->win =
  win_create (parent_window, 0, E_WIN_VISIBLE, (T_MFW_CB)M_SND_SAV_win_cb);
    if (data->win EQ NULL)
  {
      return NULL;
  }
    /*
     * connect the dialog data to the MFW-window
     */

    data->mmi_control.dialog = (T_DIALOG_FUNC)M_SND_SAV_exec_cb;
    data->mmi_control.data   = data;
    win                      = ((T_MFW_HDR *)data->win)->data;
    win->user                = (void *)data;
    data->parent             = parent_window;

    /*
     * return window handle
     */

    return data->win;
}

/*******************************************************************************

 $Function:     M_SND_SAV_destroy

 $Description:  Destroy the saved SMS menu window

 $Returns:    none

 $Arguments:  own_window - current window

*******************************************************************************/

static void M_SND_SAV_destroy(MfwHnd own_window)
{
    T_MFW_WIN * win_data;
    T_M_SND_SAV     * data;

    TRACE_FUNCTION ("M_SND_SAV_destroy()");

    if (own_window)
  {
      win_data = ((T_MFW_HDR *)own_window)->data;
      data = (T_M_SND_SAV *)win_data->user;

      if (data)
    {
        /*
         * Delete WIN handler
         */
        win_delete (data->win);

        /*
         * Free Memory
         */
        FREE_MEMORY ((void *)data->user_data, sizeof (T_SmsUserData));
      FREE_MEMORY ((void *)data, sizeof (T_M_SND_SAV));
    }
      else
    {
        TRACE_EVENT ("M_SND_SAV_destroy() called twice");
    }
  }
}

/*******************************************************************************

 $Function:     M_SND_SAV_exec_cb

 $Description:  Exec callback for the saved SMS menu window

 $Returns:    none

 $Arguments:  win - current window
        event - window event id
        value - Unique Id
        parameter - optional data.

*******************************************************************************/

void M_SND_SAV_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter)
    /* callback handler for events sent to to trigger execution */
{
    T_MFW_WIN      * win_data = ((T_MFW_HDR *) win)->data;
    T_M_SND_SAV          * data = (T_M_SND_SAV *)win_data->user;
    T_MFW_HND      * l_parent;
    SHORT            l_id;

    TRACE_FUNCTION ("M_SND_SAV_exec_cb()");

    switch (event)
  {
  case E_INIT:
      /* initialization of administrative data */
      data->id = value;
    data->user_data = (T_SmsUserData *)ALLOC_MEMORY (sizeof (T_SmsUserData));
    /*MC SPR 1257, clear whole buffer in case of Unicode entry*/
 	if(FFS_flashData.ConcatenateStatus == TRUE)
 		memset( data->user_data->TextBuffer, '\0', MAX_MSG_LEN_SGL);
    else
    	memset( data->user_data->TextBuffer, '\0', MAX_MSG_LEN);
    data->user_data->NumberBuffer[0] = '\0';

      /* initialization of the dialog data */

      /* create the dialog handler */
      data->kbd =      kbdCreate(data->win,KEY_ALL,         (MfwCb)M_SND_SAV_kbd_cb);
      data->kbd_long = kbdCreate(data->win,KEY_ALL|KEY_LONG,(MfwCb)M_SND_SAV_kbd_cb);

      /* put the (new) dialog window on top of the window stack */
      mnuUnhide(data->menu);
        winShow(win);
      break;
  case E_ABORT:
  case E_EXIT:
      l_parent = data->parent;
      l_id = data->id;
      M_SND_SAV_destroy(data->win);
      SEND_EVENT (l_parent, event, l_id, NULL); /* forward event to parent */
      break;

  case E_RETURN:
  default:
      return;
  }
}

/*******************************************************************************

 $Function:     M_SND_SAV_mnu_cb

 $Description:  Menu callback for the saved SMS menu window

 $Returns:    Execution status

 $Arguments:  e - event id
        m - menu handle

*******************************************************************************/

static int M_SND_SAV_mnu_cb (MfwEvt e, MfwMnu *m)
    /* M_SND_SAV menu event handler */
{
    T_MFW_HND    win  = mfwParent(mfw_header());
    T_MFW_WIN  * win_data = ((T_MFW_HDR *)win)->data;
    T_M_SND_SAV      * data = (T_M_SND_SAV *)win_data->user;
    T_MFW_HND  * l_parent;
    SHORT        l_id;

    TRACE_FUNCTION ("M_SND_SAV_mnu_cb()");

    switch (e)
        {
  case E_MNU_ESCAPE: /* back to previous menu */
      l_parent = data->parent;
      l_id = data->id;
      M_SND_SAV_destroy(data->win);
      SEND_EVENT (data->parent, E_RETURN, data->id, NULL);
      break;
  default: /* in mnuCreate() only E_MNU_ESCAPE has been enabled! */
      return MFW_EVENT_REJECTED;
        }
    return MFW_EVENT_CONSUMED;
}

/*******************************************************************************

 $Function:     M_SND_SAV_win_cb

 $Description:  Window callback for the saved SMS menu window

 $Returns:    Execution status

 $Arguments:  e - event id
        m - window handle

*******************************************************************************/

static int M_SND_SAV_win_cb (MfwEvt e, MfwWin *w)
    /* M_SND_SAV window event handler */
{
    TRACE_FUNCTION ("M_SND_SAV_win_cb()");

    switch (e)
  {
        case MfwWinVisible:  /* window is visible  */
      displaySoftKeys(TxtSoftSelect,TxtSoftBack);
      break;
  case MfwWinFocussed: /* input focus / selected   */
  case MfwWinDelete:   /* window will be deleted   */
        default:
      return MFW_EVENT_REJECTED;
  }
    return MFW_EVENT_CONSUMED;
}

/*******************************************************************************

 $Function:     M_SND_SAV_kbd_cb

 $Description:  Keyboard callback for the saved SMS menu window

 $Returns:    Execution status

 $Arguments:  e - event id
        k - keyboard info

*******************************************************************************/

static int M_SND_SAV_kbd_cb (MfwEvt e, MfwKbd *k)
    /* M_SND_SAV keyboard event handler */
{
    T_MFW_HND    win  = mfwParent(mfw_header());
    T_MFW_WIN  * win_data = ((T_MFW_HDR *)win)->data;
    T_M_SND_SAV      * data = (T_M_SND_SAV *)win_data->user;

    TRACE_FUNCTION ("M_SND_SAV_kbd_cb()");

    if (e & KEY_LONG)
  {
      switch (k->code)
    {
    case KCD_HUP: /* back to previous menu */
        mnuEscape(data->menu);
        break;
    case KCD_RIGHT: /* Power Down */
        return MFW_EVENT_REJECTED; /* handled by idle */
    default: /* no response to all other keys */
        return MFW_EVENT_CONSUMED;
    }
  }
    else
  {
      switch (k->code)
    {
    case KCD_MNUUP: /* highlight previous entry */
        mnuUp(data->menu);
        winShow(win);
        break;
    case KCD_MNUDOWN: /* highlight next entry */
        mnuDown(data->menu);
        winShow(win);
        break;
    case KCD_LEFT: /* activate this entry */
        mnuSelect(data->menu);
        break;
    case KCD_HUP: /* back to previous menu */
    case KCD_RIGHT: /* back to previous menu */
        mnuEscape(data->menu);
        break;
    default: /* no response to all other keys */
        return MFW_EVENT_CONSUMED;
    }
  }
    return MFW_EVENT_CONSUMED;
}


/*******************************************************************************

 $Function:     M_DEL_ALL_start

 $Description:  Start the delete all window dialog.

 $Returns:    window handler

 $Arguments:  parent_window - parent window
        menuAttr - Menu attributes.

*******************************************************************************/

T_MFW_HND M_DEL_ALL_start(T_MFW_HND parent_window, MfwMnuAttr *menuAttr)
{
    T_MFW_HND win;

    TRACE_FUNCTION ("M_DEL_ALL_start()");

    win = M_DEL_ALL_create (parent_window);

    if (win NEQ NULL)
  {
      SEND_EVENT (win, E_INIT, M_DEL_ALL_ID, (void *)menuAttr);
  }
    return win;
}

/*******************************************************************************

 $Function:     M_DEL_ALL_create

 $Description:  Create the delete all window

 $Returns:    window handler

 $Arguments:  parent_window - parent window

*******************************************************************************/

static T_MFW_HND M_DEL_ALL_create(MfwHnd parent_window)
{
    T_M_DEL_ALL      * data = (T_M_DEL_ALL *)ALLOC_MEMORY (sizeof (T_M_DEL_ALL));
    T_MFW_WIN  * win;

    TRACE_FUNCTION ("M_DEL_ALL_create()");

    /*
     * Create window handler
     */

    data->win =
  win_create (parent_window, 0, E_WIN_VISIBLE, (T_MFW_CB)M_DEL_ALL_win_cb);
    if (data->win EQ NULL)
  {
      return NULL;
  }
    /*
     * connect the dialog data to the MFW-window
     */

    data->mmi_control.dialog = (T_DIALOG_FUNC)M_DEL_ALL_exec_cb;
    data->mmi_control.data   = data;
    win                      = ((T_MFW_HDR *)data->win)->data;
    win->user                = (void *)data;
    data->parent             = parent_window;

    /*
     * return window handle
     */

    return data->win;
}

/*******************************************************************************

 $Function:     M_DEL_ALL_destroy

 $Description:  Destroy the delete all window

 $Returns:    none

 $Arguments:  own_window - current window

*******************************************************************************/

static void M_DEL_ALL_destroy(MfwHnd own_window)
{
    T_MFW_WIN * win_data;
    T_M_DEL_ALL     * data;

    TRACE_FUNCTION ("M_DEL_ALL_destroy()");

    if (own_window)
  {
      win_data = ((T_MFW_HDR *)own_window)->data;
      data = (T_M_DEL_ALL *)win_data->user;

      if (data)
    {
        /*
         * Delete WIN handler
         */

      if  (data->waiting_win)

⌨️ 快捷键说明

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