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

📄 jmmsoutboxui.c

📁 MTK_MMI的部分源代码,从code中大致了解到MMI的执行流程
💻 C
📖 第 1 页 / 共 5 页
字号:
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    PU8 gui_buffer; /* Buffer holding history data */
    U8 num_item;    /* Stores no of children in the submenu */
    JC_RETCODE eRet = JC_OK;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    eRet = mmi_mms_get_number_of_messages(MMI_JMMS_OUTBOX, &num_item);
    if (eRet != JC_OK)
    {
        ASSERT(0);
    }

    //if number of msga in fodelr is not same to as in global var then
    //it means some has been recieved as user was in inbox so need to update
    ///the msgs list
    if (g_jmms_context->store_context->update_nmsgs_in_current_folder)
    {
        mmi_jmms_entry_outbox();
        return;
    }

    EntryNewScreen(SCR_ID_JMMS_OUTBOX, NULL, mmi_jmms_entry_outbox_screen, NULL);

    gui_buffer = GetCurrGuiBuffer(SCR_ID_JMMS_OUTBOX);

    SetParentHandler(MENU_ID_JMMS_OUTBOX);
    RegisterHighlightHandler(mmi_jmms_folder_list_highlight_hdlr);

    /* reset the open msg status- for At delete */
    g_jmms_context->msg_open_status[0] = 0;
    g_jmms_context->msg_open_status[1] = 0;

    ShowCategory184Screen(
        STR_ID_JMMS_OUTBOX,
        GetRootTitleIcon(MAIN_MENU_MESSAGES_MENUID),
        STR_GLOBAL_OPTIONS,
        IMG_GLOBAL_OPTIONS,
        STR_GLOBAL_BACK,
        IMG_GLOBAL_BACK,
        g_jmms_context->store_context->nMsgs_in_Current_folder,
        mmi_jmms_get_item_data_outbox,
        mmi_jmms_get_item_hint_outbox,
        g_jmms_context->nCurr_scr_hilited_index,
        gui_buffer);

    SetLeftSoftkeyFunction(mmi_jmms_entry_outbox_options_scren, KEY_EVENT_UP);
    SetKeyHandler(mmi_jmms_entry_outbox_options_scren, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
    SetKeyHandler(mmi_jmms_entry_outbox_options_scren, KEY_WAP, KEY_EVENT_DOWN);

    SetRightSoftkeyFunction(mmi_jmms_back_from_msgs_list_screen, KEY_EVENT_UP);
    SetKeyHandler(mmi_jmms_back_from_msgs_list_screen, KEY_LEFT_ARROW, KEY_EVENT_DOWN);

}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_get_item_data_outbox
 * DESCRIPTION
 *  fn retrun the item data
 * PARAMETERS
 *  item_index          [IN]        (index of item to be drawn)
 *  str_buff            [IN]        (string of item)
 *  img_buff_p          [?]         [?]         [?]         (image corrsponding to item
 *  str_img_mask        [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
pBOOL mmi_jmms_get_item_data_outbox(S32 item_index, UI_string_type str_buff, PU8 *img_buff_p, U8 str_img_mask)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    S32 count = 0;
    jmms_folder_msgs_list *msgs_list_node = NULL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if ((item_index < 0) || (item_index > MAX_POSSIBLE_MESSAGES))
    {
        return FALSE;
    }

    msgs_list_node = g_jmms_context->store_context->messages_list;

    while (count != item_index && msgs_list_node != NULL)
    {
        msgs_list_node = msgs_list_node->next;
        count++;
    }

    if (msgs_list_node == NULL)
    {
        return FALSE;
    }

    pfnUnicodeStrcpy((S8*) str_buff, msgs_list_node->subject_as_caption);

    *img_buff_p = (PU8) GetImage((U16) (IMG_ID_JMMS_SENT));

    return TRUE;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_get_item_hint_outbox
 * DESCRIPTION
 *  Retrun the hint fot the item to be drawn
 * PARAMETERS
 *  item_index      [IN]        (index of item to be drawn)
 *  hint_array      [?]         [?]         [?]         (hint buufer for the item_index)
 * RETURNS
 *  void
 *****************************************************************************/
S32 mmi_jmms_get_item_hint_outbox(S32 item_index, UI_string_type *hint_array)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    S32 count = 0;
    jmms_folder_msgs_list *msgs_list_node = NULL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if ((item_index < 0) || (item_index > MAX_POSSIBLE_MESSAGES))
    {
        return FALSE;
    }

    msgs_list_node = g_jmms_context->store_context->messages_list;
    while (count != item_index && msgs_list_node != NULL)
    {
        msgs_list_node = msgs_list_node->next;
        count++;
    }

    if (msgs_list_node == NULL || msgs_list_node->address_as_hint == NULL)
    {
        return 0;
    }

    if (pfnUnicodeStrlen((S8*) (msgs_list_node->address_as_hint)))
    {
        pfnUnicodeStrcpy((S8*) hint_array[0], (S8*) (msgs_list_node->address_as_hint));
    }
    else
    {
        return 0;   /* No Hint Data */
    }

    return TRUE;

}
#endif /* __MMI_UNIFIED_MESSAGE__ */ 


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_entry_outbox_options_scren
 * DESCRIPTION
 *  Entry fn for outbox options screen
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_entry_outbox_options_scren(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    PU8 gui_buffer;                     /* Buffer holding history data */
    U16 str_item_list[MAX_SUB_MENUS];   /* Stores the strings id of submenus returned */
    U16 num_item;                       /* Stores no of children in the submenu */

#ifdef __MMI_UNIFIED_MESSAGE__
    U8 curr_page =0;
    MEDIA_INFO *image_info;
    U8 media_count = 0;
#endif 

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    EntryNewScreen(SCR_ID_JMMS_OUTBOX_OPTIONS, NULL, mmi_jmms_entry_outbox_options_scren, NULL);

    gui_buffer = GetCurrGuiBuffer(SCR_ID_JMMS_OUTBOX_OPTIONS);

#ifdef __MMI_UNIFIED_MESSAGE__
    DeleteScreenIfPresent(SCR_ID_JMMS_OUTBOX_OPTIONS);
#endif 
    num_item = GetNumOfChild(MENU_ID_JMMS_OUTBOX_OPTIONS);
#ifdef __MMI_UNIFIED_MESSAGE__
    mmi_jmms_jdi_get_media_count(g_jmms_context->msg_handle, 0, &media_count, E_TRUE);
    mmi_jmms_jdi_get_current_page_index(g_jmms_context->msg_handle, &curr_page);
    image_info = mmi_jmms_jdi_get_image_data(curr_page);

    if (g_jmms_context->view_context != NULL)
    {
        if (/*g_jmms_context->view_context->focus_object_type == E_MSG_FOCUS_IMAGE ||
            g_jmms_context->view_context->focus_object_type == E_MSG_FOCUS_AUDIO ||
            g_jmms_context->view_context->focus_object_type == E_MSG_FOCUS_VIDEO ||
            */
            media_count || g_jmms_context->view_context->view_audio_id || g_jmms_context->view_context->view_video_id || image_info != NULL)
        {
            mmi_frm_unhide_menu_item(MENU_ID_JMMS_OUTBOX_OPTIONS_SAVE_OBJECTS);
        }
        else
        {
            mmi_frm_hide_menu_item(MENU_ID_JMMS_OUTBOX_OPTIONS_SAVE_OBJECTS);
            num_item--;
        }
    }
    else
    {
        mmi_frm_hide_menu_item(MENU_ID_JMMS_OUTBOX_OPTIONS_SAVE_OBJECTS);
        num_item--;
    }
#endif /* __MMI_UNIFIED_MESSAGE__ */ 
    GetSequenceStringIds_Ext(MENU_ID_JMMS_OUTBOX_OPTIONS, str_item_list);

    SetParentHandler(MENU_ID_JMMS_OUTBOX_OPTIONS);
    RegisterHighlightHandler(ExecuteCurrHiliteHandler);

#ifndef __MMI_UNIFIED_MESSAGE__
    /* set the open msg status- for At delete */
    g_jmms_context->msg_open_status[0] = E_JMMS_OUTBOX;
    /* PMT HIMANSHU START 20060425 */
    g_jmms_context->msg_open_status[1] =
        (U32) mmi_jmms_get_message_id(
                MMI_JMMS_OUTBOX,
                (g_jmms_context->store_context->nMsgs_in_Current_folder - g_jmms_context->nCurr_scr_hilited_index));
    /* PMT HIMANSHU END 20060425 */
#endif

    ShowCategory52Screen(
        STR_GLOBAL_OPTIONS,
        GetRootTitleIcon(MAIN_MENU_MESSAGES_MENUID),
        STR_GLOBAL_OK,
        IMG_GLOBAL_OK,
        STR_GLOBAL_BACK,
        IMG_GLOBAL_BACK,
        num_item,
        str_item_list,
        (U16*) gIndexIconsImageList,
        NULL,
        0,
        0,
        gui_buffer);

    SetRightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
    SetKeyHandler(GoBackHistory, KEY_LEFT_ARROW, KEY_EVENT_DOWN);

}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_highlight_outbox_options_view
 * DESCRIPTION
 *  Highlight hdlr of Outbox option view
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_highlight_outbox_options_view(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    ChangeLeftSoftkey(STR_GLOBAL_OK, IMG_GLOBAL_OK);
#ifdef __MMI_UNIFIED_MESSAGE__					
	SetLeftSoftkeyFunction(mmi_jmms_pre_entry_view, KEY_EVENT_UP);
	SetKeyHandler(mmi_jmms_pre_entry_view, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);			
    SetKeyHandler(mmi_jmms_pre_entry_view, KEY_WAP, KEY_EVENT_DOWN);
#else
	SetLeftSoftkeyFunction(mmi_jmms_outbox_view, KEY_EVENT_UP);
/* MAUI_00018463 Start */
    //SetKeyHandler(mmi_jmms_outbox_view, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
/* MAUI_00018463 End */
    SetKeyHandler(mmi_jmms_outbox_view, KEY_WAP, KEY_EVENT_DOWN); 
#endif
}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_highlight_outbox_options_resend
 * DESCRIPTION
 *  Highlight hdlr of Outbox option resend
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_highlight_outbox_options_resend(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    ChangeLeftSoftkey(STR_GLOBAL_OK, IMG_GLOBAL_OK);
    SetLeftSoftkeyFunction(mmi_jmms_outbox_resend, KEY_EVENT_UP);
    SetKeyHandler(mmi_jmms_outbox_resend, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
    SetKeyHandler(mmi_jmms_outbox_resend, KEY_WAP, KEY_EVENT_DOWN);
}

#ifndef __MMI_UNIFIED_MESSAGE__


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_highlight_outbox_options_sent_to_others
 * DESCRIPTION
 *  Highlight hdlr of Outbox option sent to others
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_highlight_outbox_options_sent_to_others(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    ChangeLeftSoftkey(STR_GLOBAL_OK, IMG_GLOBAL_OK);
    SetLeftSoftkeyFunction(mmi_jmms_outbox_sent_to_others, KEY_EVENT_UP);
    SetKeyHandler(mmi_jmms_outbox_sent_to_others, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
    SetKeyHandler(mmi_jmms_outbox_sent_to_others, KEY_WAP, KEY_EVENT_DOWN);

}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_highlight_outbox_options_move_to_drafts
 * DESCRIPTION
 *  Highlight hdlr of Outbox option movr to drafts
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_highlight_outbox_options_move_to_drafts(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    ChangeLeftSoftkey(STR_GLOBAL_OK, IMG_GLOBAL_OK);
    SetLeftSoftkeyFunction(mmi_jmms_outbox_move_to_drafts, KEY_EVENT_UP);
    SetKeyHandler(NULL, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
    SetKeyHandler(mmi_jmms_outbox_move_to_drafts, KEY_WAP, KEY_EVENT_DOWN);
}

#endif /* __MMI_UNIFIED_MESSAGE__ */ 

⌨️ 快捷键说明

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