plxmms_setting.c

来自「mtk wap和mms代码。。适应mtk 25。26平台」· C语言 代码 · 共 1,973 行 · 第 1/5 页

C
1,973
字号
{
//    set_wgui_inline_list_menu_status(1);
    g_sendsetting_data.cur_item = index;
    
    ChangeLeftSoftkey(STR_GLOBAL_OK, IMG_GLOBAL_OK);
    SetLeftSoftkeyFunction(SaveSendSetting, KEY_EVENT_UP);
    SetKeyHandler(SaveSendSetting, KEY_ENTER, KEY_EVENT_DOWN);
    SetKeyHandler(PlxMmsGoBackToIdle, KEY_END, KEY_EVENT_DOWN);

    if(index == MMS_SENDSETTING_DURCTRL)
    {
#ifdef __MMI_WITH_C_KEY__
/*        if(pfnUnicodeStrlen((S8*)g_sendsetting_data.dur) == 0)
        {
            ChangeRightSoftkey(STR_GLOBAL_BACK, IMG_GLOBAL_BACK);
            SetRightSoftkeyFunction(ExitSendSetting, KEY_EVENT_UP);
        }

        RegisterInputBoxEmptyFunction(SendSetDurEmpty);
    	RegisterInputBoxNotEmptyFunction(SendSetDurNotEmpty);
*/

//        if(get_wgui_inline_list_menu_status())
//            SetCategory57RightSoftkeyFunctions(NULL, NULL);
        ChangeRightSoftkey(STR_GLOBAL_BACK, IMG_GLOBAL_BACK);
        SetRightSoftkeyFunction(ExitSendSetting, KEY_EVENT_DOWN);
#endif
    }
    else
    {
        ChangeRightSoftkey(STR_GLOBAL_BACK, IMG_GLOBAL_BACK);
        SetRightSoftkeyFunction(ExitSendSetting, KEY_EVENT_DOWN);
    }
}

void SendSetDurEmpty(void)
{
    ChangeRightSoftkey(STR_GLOBAL_BACK, IMG_GLOBAL_BACK);
	SetRightSoftkeyFunction(ExitSendSetting, KEY_EVENT_UP);
}

void SendSetDurNotEmpty(void)
{
#ifdef __MMI_WITH_C_KEY__
	SendSetDurEmpty();
#endif
}

////////////////////////////////////////////////////////////////////////////
//receive setting
/***************************************************************************
* Function	CreateRecvSetting
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
BOOL CreateRecvSetting(void* mmse)
{
    char size[SIZE_LEN];

#ifdef MMS_DEBUG
    PlxTrace("CreateRecvSetting\r\n");
#endif

    //get option
    if(!mmse)
        return FALSE;

    MMS_Memset((void*)&g_recvsetting_data, 0, sizeof(MmsRecvSettingData));
    g_recvsetting_data.mmse = mmse;

#ifdef MMS_UISETTINGFILE
    g_recvsetting_data.option.option.mask = MMOM_RECEIVEFLAG | MMOM_MAXSIZE;
#else
    g_recvsetting_data.option.mask = MMOM_RECEIVEFLAG | MMOM_MAXSIZE;
#endif

#ifdef MMS_UISETTINGFILE
    if(ReadSettingFromFile(&g_recvsetting_data.option) < 0)
#else
    if(MMSE_GetOption(mmse, (PMMSEOPTION)&(g_recvsetting_data.option)) < 0)
#endif
    {
        MMS_Memset((void*)&g_recvsetting_data, 0, sizeof(MmsRecvSettingData));
        return FALSE;
    }

#ifdef MMS_DEBUG
{
/*
    PlxTrace(" MMSUI: ~~~~~~~~~~~~~~~~ enter recv setting, check settings\r\n");

    PlxTrace(" MMSUI: mmsc = %s\r\n", g_recvsetting_data.option.mmsc);
    PlxTrace(" MMSUI: gateway = %s\r\n", g_recvsetting_data.option.gateway);
    PlxTrace(" MMSUI: port = %d\r\n", g_recvsetting_data.option.port);
    PlxTrace(" MMSUI: expire = %x\r\n", g_recvsetting_data.option.expire);
    PlxTrace(" MMSUI: send flag = %x\r\n", g_recvsetting_data.option.SendFlag);
    PlxTrace(" MMSUI: receive flag = %x\r\n", g_recvsetting_data.option.ReceiveFlag);
    PlxTrace(" MMSUI: max receive size = %ld\r\n", g_recvsetting_data.option.MaxSize);
    PlxTrace(" MMSUI: max send size = %ld\r\n", g_recvsetting_data.option.MaxSendSize);
    PlxTrace(" MMSUI: max num = %d\r\n", g_recvsetting_data.option.MaxNum);
    PlxTrace(" MMSUI: slide duration = %d\r\n", (int)g_recvsetting_data.option.SlideDuration);
    PlxTrace(" MMSUI: dail id = %d\r\n", g_recvsetting_data.option.DialID);
*/
}
#endif

    //recv string
    g_recvsetting_entry_table[MMS_RECVSETTING_RECVCTRL].item_string[0] = 
        (U8*)GetString(MMS_RECVSETTING_STR_IMM);
    g_recvsetting_entry_table[MMS_RECVSETTING_RECVCTRL].item_string[1] = 
        (U8*)GetString(MMS_RECVSETTING_STR_DELAY);
    g_recvsetting_entry_table[MMS_RECVSETTING_RECVCTRL].item_string[2] = 
        (U8*)GetString(MMS_RECVSETTING_STR_DENY);

    //ad string
    g_recvsetting_entry_table[MMS_RECVSETTING_ADCTRL].item_string[0] = 
        (U8*)GetString(MMS_RECVSETTING_STR_ALLOW);
    g_recvsetting_entry_table[MMS_RECVSETTING_ADCTRL].item_string[1] = 
        (U8*)GetString(MMS_RECVSETTING_STR_DENY);

    //send string
    g_sendsetting_entry_table[MMS_RECVSETTING_SENDREPORTCTRL].item_string[0] = 
        (U8*)GetString(MMS_RECVSETTING_STR_ON);
    g_sendsetting_entry_table[MMS_RECVSETTING_SENDREPORTCTRL].item_string[1] = 
        (U8*)GetString(MMS_RECVSETTING_STR_OFF);

    //read string
    g_sendsetting_entry_table[MMS_RECVSETTING_READREPORTCTRL].item_string[0] = 
        (U8*)GetString(MMS_RECVSETTING_STR_ON);
    g_sendsetting_entry_table[MMS_RECVSETTING_READREPORTCTRL].item_string[1] = 
        (U8*)GetString(MMS_RECVSETTING_STR_OFF);
    
#ifdef MMS_UISETTINGFILE
    sprintf(size, "%d", g_recvsetting_data.option.option.MaxSize);
#else
    sprintf(size, "%d", g_recvsetting_data.option.MaxSize);
#endif
    AnsiiToUnicodeString((S8*)g_recvsetting_data.max_size, (S8*)size);

    //enter
    EnterRecvSetting();

    return TRUE;
}

/***************************************************************************
* Function	EnterRecvSetting
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
void EnterRecvSetting(void)
{
    int i;
    U16 icon;
	U8* guiBuffer=NULL;
	U16 itemicon[MAX_SUB_MENUS];
	
    if(GetActiveScreenId() != SCR_ID_PLX_MMS_SENDSETTING)
    {
	    EntryNewScreen(SCR_ID_PLX_MMS_SENDSETTING, LeaveRecvSetting, EnterRecvSetting, NULL);
#ifndef __MMI_WITH_C_KEY__
        guiBuffer = GetCurrGuiBuffer(SCR_ID_PLX_MMS_SENDSETTING);
#endif
    }

    RegisterHighlightHandler(RecvSettingHiliteHandler);
    //set item
    InitializeCategory57Screen();
    InitRecvInlineListStruct();

    icon = IMG_GLOBAL_L1;
    for(i = 0; i < MMS_RECVSETTING_COUNT; i++)
    {
        if(i % 2)
        {
            itemicon[i] = 0;
        }
        else
        {
            itemicon[i] = (U16)icon;
            icon++;
        }
    }

    ShowCategory57Screen(STR_ID_PLX_MMS_SETTING_RECVSETTING, IMG_ID_PLX_MMS, 
						STR_GLOBAL_OK, 0,
						STR_GLOBAL_BACK, 0,
						MMS_RECVSETTING_COUNT,
						itemicon, wgui_inline_items, g_recvsetting_data.cur_item, guiBuffer);
    set_wgui_inline_list_menu_status(1);
    ChangeLeftSoftkey(STR_GLOBAL_OK, IMG_GLOBAL_OK);
    //ChangeRightSoftkey(STR_GLOBAL_BACK, IMG_GLOBAL_BACK);
    SetLeftSoftkeyFunction(SaveRecvSetting, KEY_EVENT_UP);
    SetKeyHandler(SaveRecvSetting, KEY_ENTER, KEY_EVENT_DOWN);
    SetKeyHandler(PlxMmsGoBackToIdle, KEY_END, KEY_EVENT_DOWN);
#ifdef __MMI_WITH_C_KEY__
//    SetCategory57RightSoftkeyFunctions(SaveRecvSetting, ExitRecvSetting);
	DisableCategory57ScreenDone();
#endif

}

void LeaveRecvSetting(void)
{
	CloseCategory57Screen();
}

/***************************************************************************
* Function	InitRecvInlineListStruct
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
void InitRecvInlineListStruct(void)
{
    //recv
    //text item
    SetInlineItemCaption(&wgui_inline_items[MMS_RECVSETTING_RECV],
        (U8*)GetString(g_recvsetting_entry_table[MMS_RECVSETTING_RECV].string));
//    RegisterInlineSelectHighlightHandler(&wgui_inline_items[MMS_SENDSETTING_VALID], 
//        SendSettingHiliteHandler);

    //ctrl item
    SetInlineItemActivation(&wgui_inline_items[MMS_RECVSETTING_RECVCTRL], 
        INLINE_ITEM_ACTIVATE_WITHOUT_KEY_EVENT, KEY_EVENT_UP);

#ifdef MMS_UISETTINGFILE
    if( (g_recvsetting_data.option.option.ReceiveFlag & MMRF_RECEIVE) == MMRF_RECEIVE )
#else
    if( (g_recvsetting_data.option.ReceiveFlag & MMRF_RECEIVE) == MMRF_RECEIVE ) //receive on
#endif
    {
#ifdef MMS_UISETTINGFILE
        if( (g_recvsetting_data.option.option.ReceiveFlag & MMRF_AUTORETRIEVE) == MMRF_AUTORETRIEVE )
#else
        if( (g_recvsetting_data.option.ReceiveFlag & MMRF_AUTORETRIEVE) == MMRF_AUTORETRIEVE ) //imm
#endif
        {
            g_recvsetting_data.recv_index = 0;
        }
        else
        {
            g_recvsetting_data.recv_index = 1;
        }
    }
    else //receive off
    {
        g_recvsetting_data.recv_index = 2;
    }

	SetInlineItemSelect(&wgui_inline_items[MMS_RECVSETTING_RECVCTRL], 
        g_recvsetting_entry_table[MMS_RECVSETTING_RECVCTRL].item_count,
        g_recvsetting_entry_table[MMS_RECVSETTING_RECVCTRL].item_string, 
        &(g_recvsetting_data.recv_index));
	CenterJustifyInlineItem(&wgui_inline_items[MMS_RECVSETTING_RECVCTRL]);
//    RegisterInlineSelectHighlightHandler(&wgui_inline_items[MMS_RECVSETTING_RECVCTRL], 
//        RecvSettingHiliteHandler);

    //ad
    //text item
    SetInlineItemCaption(&wgui_inline_items[MMS_RECVSETTING_AD],
        (U8*)GetString(g_recvsetting_entry_table[MMS_RECVSETTING_AD].string));
//    RegisterInlineSelectHighlightHandler(&wgui_inline_items[MMS_SENDSETTING_PRI], 
//        SendSettingHiliteHandler);
    //ctrl item
    SetInlineItemActivation(&wgui_inline_items[MMS_RECVSETTING_ADCTRL], 
        INLINE_ITEM_ACTIVATE_WITHOUT_KEY_EVENT, KEY_EVENT_UP);

#ifdef MMS_UISETTINGFILE
    if( (g_recvsetting_data.option.option.ReceiveFlag & MMRF_RECEIVEADVERT) == MMRF_RECEIVEADVERT )
#else
    if( (g_recvsetting_data.option.ReceiveFlag & MMRF_RECEIVEADVERT) == MMRF_RECEIVEADVERT )
#endif
        g_recvsetting_data.ad_index = 0;
    else
        g_recvsetting_data.ad_index = 1;
    SetInlineItemSelect(&wgui_inline_items[MMS_RECVSETTING_ADCTRL], 
        g_recvsetting_entry_table[MMS_RECVSETTING_ADCTRL].item_count,
        g_recvsetting_entry_table[MMS_RECVSETTING_ADCTRL].item_string, &(g_recvsetting_data.ad_index));
	CenterJustifyInlineItem(&wgui_inline_items[MMS_RECVSETTING_ADCTRL]);
//    RegisterInlineSelectHighlightHandler(&wgui_inline_items[MMS_RECVSETTING_ADCTRL], 
//        RecvSettingHiliteHandler);

    //send report
    //text item
    SetInlineItemCaption(&wgui_inline_items[MMS_RECVSETTING_SENDREPORT],
        (U8*)GetString(g_recvsetting_entry_table[MMS_RECVSETTING_SENDREPORT].string));
//    RegisterInlineSelectHighlightHandler(&wgui_inline_items[MMS_SENDSETTING_SENDREPORT], 
//        SendSettingHiliteHandler);
    //ctrl item
    SetInlineItemActivation(&wgui_inline_items[MMS_RECVSETTING_SENDREPORTCTRL], 
        INLINE_ITEM_ACTIVATE_WITHOUT_KEY_EVENT, KEY_EVENT_UP);

#ifdef MMS_UISETTINGFILE
    if( (g_recvsetting_data.option.option.ReceiveFlag & MMRF_DELIVERYNOTIFICATION) == MMRF_DELIVERYNOTIFICATION )
#else
    if( (g_recvsetting_data.option.ReceiveFlag & MMRF_DELIVERYNOTIFICATION) == MMRF_DELIVERYNOTIFICATION )
#endif
        g_recvsetting_data.send_index = 0; //on
    else
        g_recvsetting_data.send_index = 1; //off
    SetInlineItemSelect(&wgui_inline_items[MMS_RECVSETTING_SENDREPORTCTRL], 
        g_recvsetting_entry_table[MMS_RECVSETTING_SENDREPORTCTRL].item_count,
        g_recvsetting_entry_table[MMS_RECVSETTING_SENDREPORTCTRL].item_string, &(g_recvsetting_data.send_index));
	CenterJustifyInlineItem(&wgui_inline_items[MMS_RECVSETTING_SENDREPORTCTRL]);
//    RegisterInlineSelectHighlightHandler(&wgui_inline_items[MMS_RECVSETTING_SENDREPORTCTRL], 
//        RecvSettingHiliteHandler);

    //read report
    SetInlineItemCaption(&wgui_inline_items[MMS_RECVSETTING_READREPORT],
        (U8*)GetString(g_recvsetting_entry_table[MMS_RECVSETTING_READREPORT].string));
//    RegisterInlineSelectHighlightHandler(&wgui_inline_items[MMS_SENDSETTING_READREPORT], 
//        SendSettingHiliteHandler);
    //ctrl item
    SetInlineItemActivation(&wgui_inline_items[MMS_RECVSETTING_READREPORTCTRL], 
        INLINE_ITEM_ACTIVATE_WITHOUT_KEY_EVENT, KEY_EVENT_UP);
    
#ifdef MMS_UISETTINGFILE
    if( (g_recvsetting_data.option.option.ReceiveFlag & MMRF_READNOTIFICATION) == MMRF_READNOTIFICATION )
#else
    if( (g_recvsetting_data.option.ReceiveFlag & MMRF_READNOTIFICATION) == MMRF_READNOTIFICATION )
#endif
        g_recvsetting_data.read_index = 0; //on
    else
        g_recvsetting_data.read_index = 1; //off
    SetInlineItemSelect(&wgui_inline_items[MMS_RECVSETTING_READREPORTCTRL], 
        g_recvsetting_entry_table[MMS_RECVSETTING_READREPORTCTRL].item_count,
        g_recvsetting_entry_table[MMS_RECVSETTING_READREPORTCTRL].item_string, &(g_recvsetting_data.read_index));
	CenterJustifyInlineItem(&wgui_inline_items[MMS_RECVSETTING_READREPORTCTRL]);
//    RegisterInlineSelectHighlightHandler(&wgui_inline_items[MMS_RECVSETTING_READREPORTCTRL], 
//        RecvSettingHiliteHandler);

    //max size
    //text item
    SetInlineItemCaption(&wgui_inline_items[MMS_RECVSETTING_MAXSIZE],
        (U8*)GetString(g_recvsetting_entry_table[MMS_RECVSETTING_MAXSIZE].string));
//    RegisterInlineSelectHighlightHandler(&wgui_inline_items[MMS_SENDSETTING_DUR], 
//        SendSettingHiliteHandler);
    //ctrl item
    SetInlineItemActivation(&wgui_inline_items[MMS_RECVSETTING_MAXSIZECTRL], 
        INLINE_ITEM_ACTIVATE_WITHOUT_KEY_EVENT, KEY_EVENT_UP);
    SetInlineItemTextEdit(&wgui_inline_items[MMS_RECVSETTING_MAXSIZECTRL],
        (U8*)g_recvsetting_data.max_size, SIZE_LEN, INPUT_TYPE_NUMERIC);
    CenterJustifyInlineItem(&wgui_inline_items[MMS_RECVSETTING_MAXSIZECTRL]);
//    RegisterInlineSelectHighlightHandler(&wgui_inline_items[MMS_RECVSETTING_MAXSIZECTRL], 
//        RecvSettingHiliteHandler);
/*
    //dur
    //text item
    SetInlineItemCaption(&wgui_inline_items[MMS_SENDSETTING_DUR],
        (U8*)GetString(g_sendsetting_entry_table[MMS_SENDSETTING_DUR].string));
//    RegisterInlineSelectHighlightHandler(&wgui_inline_items[MMS_SENDSETTING_DUR], 
//        SendSettingHiliteHandler);
    //ctrl item
    SetInlineItemActivation(&wgui_inline_items[MMS_SENDSETTING_DURCTRL], 
        INLINE_ITEM_ACTIVATE_WITHOUT_KEY_EVENT, KEY_EVENT_UP);
    SetInlineItemTextEdit(&wgui_inline_items[MMS_SENDSETTING_DURCTRL],
        g_sendsetting_data.dur, DUR_LEN, INPUT_TYPE_NUMERIC);
    CenterJustifyInlineItem(&wgui_inline_items[MMS_SENDSETTING_DURCTRL]);
*/
}

/***************************************************************************
* Function	SaveRecvSetting
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
void SaveRecvSetting(void)
{
//    int  i = 0;
    char size[SIZE_LEN];
	unsigned short  ReceiveFlag;
    unsigned short  MaxSize;

    if(!g_recvsetting_data.mmse)
        return;

    if(g_recvsetting_data.cur_item == MMS_RECVSETTING_MAXSIZECTRL)
        handle_inline_text_edit_complete();

        //max size
    UnicodeToAnsii((S8*)size, (S8*)g_recvsetting_data.max_size);
    MaxSize = (unsigned short)atoi((char*)size);

	//invalid size
	if(pfnUnicodeStrlen(

⌨️ 快捷键说明

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