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

📄 jmmswritemmsui.c

📁 MTK_MMI的部分源代码,从code中大致了解到MMI的执行流程
💻 C
📖 第 1 页 / 共 5 页
字号:
        }

        if (index == E_WRITE_MMS_CC || index == E_WRITE_MMS_TO || index == E_WRITE_MMS_BCC ||
            index == E_WRITE_MMS_EDIT_CONTENT)
        {
            if (g_jmms_context->g_write_mms_right_soft_key == STR_GLOBAL_DONE)
            {
                SetRightSoftkeyFunction(mmi_jmms_done_write_mms, KEY_EVENT_UP);
                ChangeRightSoftkey(STR_GLOBAL_DONE, NULL);
            }

        }
    }

}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_exit_write_message
 * DESCRIPTION
 *  Exit fn of write mms
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_exit_write_message(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    history history_buff;
    U16 inputBufferSize;    /* added for inline edit history */
    S16 nhistory = 0;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    set_leading_zero(TRUE);
    CloseCategory57Screen();
    history_buff.scrnID = SCR_ID_JMMS_WRITE_MMS;
    history_buff.entryFuncPtr = mmi_jmms_entry_write_message_screen;
    pfnUnicodeStrcpy((S8*) history_buff.inputBuffer, (S8*) & nhistory);
    GetCategory57History(history_buff.guiBuffer);
    inputBufferSize = (U16) GetCategory57DataSize();    /* added for inline edit history */
    GetCategory57Data((U8*) history_buff.inputBuffer);  /* added for inline edit history */
    AddNHistory(history_buff, inputBufferSize);
}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_entry_address_option
 * DESCRIPTION
 *  pre entry fn for addresses options
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_entry_address_option(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (g_jmms_context->address_list_flag == E_TO_ADDRESSES)
    {
        if (g_jmms_context->num_to_addresses == 0)
        {
            mmi_jmms_entry_addresses_option_screen();
        }
        else
        {
            g_hilite_address_item = 0;
            g_address_list_right_soft_key = STR_GLOBAL_BACK;
            mmi_jmms_entry_addresses_list_screen();
        }
    }
    else if (g_jmms_context->address_list_flag == E_CC_ADDRESSES)
    {
        if (g_jmms_context->num_cc_addresses == 0)
        {
            mmi_jmms_entry_addresses_option_screen();
        }
        else
        {
            g_hilite_address_item = 0;
            g_address_list_right_soft_key = STR_GLOBAL_BACK;
            mmi_jmms_entry_addresses_list_screen();
        }

    }
    else if (g_jmms_context->address_list_flag == E_BCC_ADDRESSES)
    {
        if (g_jmms_context->num_bcc_addresses == 0)
        {
            mmi_jmms_entry_addresses_option_screen();
        }
        else
        {
            g_hilite_address_item = 0;
            g_address_list_right_soft_key = STR_GLOBAL_BACK;
            mmi_jmms_entry_addresses_list_screen();
        }
    }

}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_entry_addresses_option_screen
 * DESCRIPTION
 *  Entry fn for addresses option screeen
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_entry_addresses_option_screen(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    PU8 guiBuffer;  /* Buffer holding history data */
    U16 nStrItemList[MAX_SUB_MENUS];
    U16 nNumofItem;
    U8 temp_num_items;
    U16 titleid;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (g_jmms_context->address_list_flag == E_TO_ADDRESSES)
    {
        temp_num_items = g_jmms_context->num_to_addresses;
        titleid = STR_ID_WRITE_MMS_TO;
    }
    else if (g_jmms_context->address_list_flag == E_CC_ADDRESSES)
    {
        temp_num_items = g_jmms_context->num_cc_addresses;
        titleid = STR_ID_WRITE_MMS_CC;
    }
    else if (g_jmms_context->address_list_flag == E_BCC_ADDRESSES)
    {
        temp_num_items = g_jmms_context->num_bcc_addresses;
        titleid = STR_ID_WRITE_MMS_BCC;
    }
    else
    {
        return;
    }

    EntryNewScreen(SCR_ID_WRITE_MMS_ADDRESSES_OPTION, NULL, mmi_jmms_entry_addresses_option_screen, NULL);
    guiBuffer = GetCurrGuiBuffer(SCR_ID_WRITE_MMS_ADDRESSES_OPTION);

    SetParentHandler(MENU_ID_JMMS_WRITE_MMS_ADDRESSES_OPTIONS);
    RegisterHighlightHandler(ExecuteCurrHiliteHandler);

    if (temp_num_items == 0)
    {
        mmi_frm_hide_menu_item(MENU_ID_JMMS_WRITE_MMS_EDIT);
    }
    else
    {
        mmi_frm_unhide_menu_item(MENU_ID_JMMS_WRITE_MMS_EDIT);
    }

    if (temp_num_items == 0)
    {
        mmi_frm_hide_menu_item(MENU_ID_JMMS_WRITE_MMS_DELETE);
    }
    else
    {
        mmi_frm_unhide_menu_item(MENU_ID_JMMS_WRITE_MMS_DELETE);
    }

    if (temp_num_items <= 1)
    {
        mmi_frm_hide_menu_item(MENU_ID_JMMS_WRITE_MMS_DELETE_ALL);
    }
    else
    {
        mmi_frm_unhide_menu_item(MENU_ID_JMMS_WRITE_MMS_DELETE_ALL);
    }

    nNumofItem = GetNumOfChild_Ext(MENU_ID_JMMS_WRITE_MMS_ADDRESSES_OPTIONS);

    GetSequenceStringIds_Ext(MENU_ID_JMMS_WRITE_MMS_ADDRESSES_OPTIONS, nStrItemList);

    ShowCategory52Screen(
        titleid,
        GetRootTitleIcon(MAIN_MENU_MESSAGES_MENUID),
        STR_GLOBAL_OK,
        IMG_GLOBAL_OK,
        STR_GLOBAL_BACK,
        IMG_GLOBAL_BACK,
        nNumofItem,
        nStrItemList,
        (U16*) gIndexIconsImageList,
        NULL,
        0,
        0,
        guiBuffer);

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

//    SetKeyHandler(mmi_jmms_free_addresses_list_on_end, KEY_END, KEY_EVENT_DOWN);

}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_highlight_write_mms_add_number
 * DESCRIPTION
 *  highligh handler of Add Number menu item
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_highlight_write_mms_add_number(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_address_option_index = E_ADD_NUMBER;
    ChangeLeftSoftkey(STR_GLOBAL_OK, IMG_GLOBAL_OK);
    SetLeftSoftkeyFunction(mmi_jmms_entry_write_message_add_number, KEY_EVENT_UP);
    SetKeyHandler(mmi_jmms_entry_write_message_add_number, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
    SetKeyHandler(mmi_jmms_entry_write_message_add_number, KEY_WAP, KEY_EVENT_DOWN);

}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_entry_write_message_add_number
 * DESCRIPTION
 *  Pre Entry fn for add number option
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_entry_write_message_add_number(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (g_jmms_context->num_total_addresses >= 20)
    {
        DisplayPopup((U8*) GetString(STR_ID_MAX_ADDRESS_LIMIT), IMG_GLOBAL_ERROR, 1, JMMS_POPUP_TIME, ERROR_TONE);
    }
    else
    {
        memset(g_jmms_context->g_jmms_add_number_buffer, 0x00, (MAX_POSSIBLE_NUMBER_LENGHT_SENT + 1) * ENCODING_LENGTH);
        mmi_jmms_entry_write_message_add_number_screen();
    }

}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_entry_write_message_add_number_screen
 * DESCRIPTION
 *  Entry fn for add number editor screeen
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_entry_write_message_add_number_screen(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U8 *guiBuffer;
    U16 left_softkey;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/    
    EntryNewScreen(SCR_ID_JMMS_WRITE_MMS_ADD_NUMBER_EDITOR, NULL, mmi_jmms_entry_write_message_add_number_screen, NULL);

    SetParentHandler(MENU_ID_JMMS_WRITE_MMS_ADD_NUMBER);
    RegisterHighlightHandler(ExecuteCurrHiliteHandler);

    guiBuffer = GetCurrGuiBuffer(SCR_ID_JMMS_WRITE_MMS_ADD_NUMBER_EDITOR);

    if (pfnUnicodeStrncmp
        ((S8*) (g_jmms_context->g_jmms_add_number_buffer), "\0",
         MAX_POSSIBLE_NUMBER_LENGHT_SENT * ENCODING_LENGTH) == 0)
    {
        left_softkey = STR_ID_JMMS_SEARCH;
    }
    else
    {
        left_softkey = STR_GLOBAL_OK;
    }

    ShowCategory5Screen(
        STR_ID_WRITE_MMS_ADD_NUMBER,
        GetRootTitleIcon(MAIN_MENU_MESSAGES_MENUID),
        left_softkey,
        0,
        STR_GLOBAL_BACK,
        0,
        INPUT_TYPE_PHONE_NUMBER,
        (U8*) (g_jmms_context->g_jmms_add_number_buffer),
        MAX_POSSIBLE_NUMBER_LENGHT_SENT + 1,
        guiBuffer);

    RegisterInputBoxEmptyFunction(mmi_jmms_address_fullscreen_editor_on_empty);
    RegisterInputBoxNotEmptyFunction(mmi_jmms_address_fullscreen_editor_on_not_empty);

    SetKeyHandler(mmi_jmms_address_search_phonebook_or_ok, KEY_WAP, KEY_EVENT_DOWN);
    SetLeftSoftkeyFunction(mmi_jmms_address_search_phonebook_or_ok, KEY_EVENT_UP);
    SetCategory5RightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
    SetKeyHandler((FuncPtr) mmi_jmms_address_editor_insert_character_plus, KEY_STAR, KEY_EVENT_DOWN);

 //   SetKeyHandler(mmi_jmms_free_addresses_list_on_end, KEY_END, KEY_EVENT_DOWN);
}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_address_fullscreen_editor_on_empty
 * DESCRIPTION
 *  Fn called when editor screen is empty
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_address_fullscreen_editor_on_empty(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U16 currScrenID = 0;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    currScrenID = GetActiveScreenId();
    if (currScrenID == SCR_ID_JMMS_WRITE_MMS_ADD_NUMBER_EDITOR)
    {
        ChangeLeftSoftkey(STR_ID_JMMS_SEARCH, 0);
    }
    else if(currScrenID == SCR_ID_JMMS_WRITE_MMS_ADD_EMAIL_EDITOR)
    {
        ChangeLeftSoftkey(STR_ID_JMMS_SEARCH, 0);
    }
    else
    {
        ChangeLeftSoftkey(NULL, 0);
    }
}


⌨️ 快捷键说明

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