plxmms_setting.c

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

C
1,973
字号
/***************************************************************************
 *
 *                      Pollex Mobile Platform
 *
 * Copyright (c) 2004 by Pollex Mobile Software Co., Ltd. 
 *                       All Rights Reserved 
 *
 * Module   : 
 *
 * Purpose  : 
 *
\**************************************************************************/
#include "PlxMms_Setting.h"
#include "PlxMms_Util.h"
#include "gdi_include.h"
#include "Wgui_categories_multimedia.h"
#include "..\public\PlxPublic.h"
#include "wgui_categories_inputs.h"

#if defined(MMS_SAVEONCARD) && defined(MMI_ON_HARDWARE_P)
#include "Kal_release.h"
#include "msdc_def.h"
#endif

#ifdef MMS_UISETTINGFILE
#include "Fs_type.h"
#include "Fs_func.h"
#include "Fs_errcode.h"

#define MMS_SETTING_FILE     L"plxmmssetting"
#define MMS_SETTING_PATH_LEN 64
WCHAR* gSettingPath[MMS_SETTING_PATH_LEN];
extern MmsUIOption g_default_option;
#endif

#ifdef MMS_SAVEONCARD
extern BOOL IsCardInsert(void);
#endif

extern void handle_inline_text_edit_complete(void);
extern void handle_inline_IP4_edit_complete(void);
extern void CloseCategory57Screen(void);
extern void ClearMainMMSE(void);
extern void PlxMmsInit(char* path);

static void EmptyMenuEntry(void);

////////////////////////////////////////////////////////////////////////////
//setting
#define MMS_SETTING_STR_SETTING         STR_ID_PLX_MMS_SETTING_SETTING//(U8*)(L"Setting")
#define MMS_SETTING_STR_SENDSETTING     STR_ID_PLX_MMS_SETTING_SENDSETTING//(U8*)(L"Send Setting")
#define MMS_SETTING_STR_RECVSETTING     STR_ID_PLX_MMS_SETTING_RECVSETTING//(U8*)(L"Receive Setting")
#define MMS_SETTING_STR_FILTERSETTING   STR_ID_PLX_MMS_SETTING_FILTERSETTING//(U8*)(L"Filter")
#define MMS_SETTING_STR_NETSETTING      STR_ID_PLX_MMS_SETTING_NETSETTING//(U8*)(L"Network")
#define MMS_SETTING_STR_MEMSETTING      STR_ID_PLX_MMS_SETTING_MEMSETTING//(U8*)(L"Storage")

typedef enum
{
    MMS_SETTING_SEND = 0,
    MMS_SETTING_RECV,
    MMS_SETTING_FILTER,
    MMS_SETTING_NET,
    MMS_SETTING_MEM,
#ifdef MMS_SELECTSTOREPATH
    MMS_SETTING_SELPATH,
#endif
    MMS_SETTING_COUNT
}MMSSETTINGINDEX;

typedef struct tagMmsSettingEntryItem
{
    U8 id;
    U16 string;
    U16 icon;
    PlxMmsEntryPtr entry;
}MmsSettingEntryItem;

typedef struct tagMmsSettingData
{
    void* mmse;
    U8 cur_id;
}MmsSettingData;

static void EnterSend(void);
static void EnterRecv(void);
static void EnterFilterSetting(void);
static void EnterNet(void);
static void EnterMem(void);
#ifdef MMS_SELECTSTOREPATH
static void EnterSelPath(void);
#endif
static const MmsSettingEntryItem g_setting_entry_table[MMS_SETTING_COUNT] = 
{
    {MMS_SETTING_SEND,      MMS_SETTING_STR_SENDSETTING,    IMG_GLOBAL_L1, EnterSend},
    {MMS_SETTING_RECV,      MMS_SETTING_STR_RECVSETTING,    IMG_GLOBAL_L2, EnterRecv},
    {MMS_SETTING_FILTER,    MMS_SETTING_STR_FILTERSETTING,  IMG_GLOBAL_L3, EnterFilterSetting},
    {MMS_SETTING_NET,       MMS_SETTING_STR_NETSETTING,     IMG_GLOBAL_L4, EnterNet},
    {MMS_SETTING_MEM,       MMS_SETTING_STR_MEMSETTING,     IMG_GLOBAL_L5, EnterMem}
#ifdef MMS_SELECTSTOREPATH
    ,
    {MMS_SETTING_SELPATH,   STR_ID_PLX_MMS_SELPATH_TITLE,   IMG_GLOBAL_L6, EnterSelPath}
#endif
};

static MmsSettingData g_setting_data;

static void EnterSetting(void);
static void MmsSettingHiliteHandler(S32 index);
static void EnterSubSetting(void);
static void ExitSetting(void);

////////////////////////////////////////////////////////////////////////////
//send setting
//validity
#define MMS_SENDSETTING_STR_VALID       STR_ID_PLX_MMS_SENDSET_VALID//(U8*)(L"Validity period")
#define MMS_SENDSETTING_STR_1HOUR       STR_ID_PLX_MMS_SENDSET_1HOUR//(U8*)(L"1 Hour")
#define MMS_SENDSETTING_STR_12HOUR      STR_ID_PLX_MMS_SENDSET_12HOUR//(U8*)(L"12 Hours")
#define MMS_SENDSETTING_STR_1DAY        STR_ID_PLX_MMS_SENDSET_1DAY//(U8*)(L"1 Day")
#define MMS_SENDSETTING_STR_2DAY        STR_ID_PLX_MMS_SENDSET_2DAY//(U8*)(L"2 Days")
#define MMS_SENDSETTING_STR_1WEEK       STR_ID_PLX_MMS_SENDSET_1WEEK//(U8*)(L"1 Week")
#define MMS_SENDSETTING_STR_MAX         STR_ID_PLX_MMS_SENDSET_MAX//(U8*)(L"Max")
//priority
#define MMS_SENDSETTING_STR_PRI         STR_ID_PLX_MMS_SENDSET_PRI//(U8*)(L"Priority")
#define MMS_SENDSETTING_STR_LOW         STR_ID_PLX_MMS_SENDSET_LOW//(U8*)(L"Low")
#define MMS_SENDSETTING_STR_NORMAL      STR_ID_PLX_MMS_SENDSET_NORMAL//(U8*)(L"Normal")
#define MMS_SENDSETTING_STR_HIGH        STR_ID_PLX_MMS_SENDSET_HIGH//(U8*)(L"High")
//report
#define MMS_SENDSETTING_STR_SENDREPORT  STR_ID_PLX_MMS_SENDSET_SENDREPORT//(U8*)(L"Send Report")
#define MMS_SENDSETTING_STR_READREPORT  STR_ID_PLX_MMS_SENDSET_READREPORT//(U8*)(L"Read Report")
#define MMS_SENDSETTING_STR_ON          STR_ID_PLX_MMS_SENDSET_ON//(U8*)(L"On")
#define MMS_SENDSETTING_STR_OFF         STR_ID_PLX_MMS_SENDSET_OFF//(U8*)(L"Off")
//duration
#define MMS_SENDSETTING_STR_SLIDEDUR    STR_ID_PLX_MMS_SENDSET_SLIDEDUR//(U8*)(L"Slide Duration")

#define DUR_LEN 3

typedef enum
{
    MMS_SENDSETTING_VALID = 0,
    MMS_SENDSETTING_VALIDCTRL,
    MMS_SENDSETTING_PRI,
    MMS_SENDSETTING_PRICTRL,
    MMS_SENDSETTING_SENDREPORT,
    MMS_SENDSETTING_SENDREPORTCTRL,
    MMS_SENDSETTING_READREPORT,
    MMS_SENDSETTING_READREPORTCTRL,
    MMS_SENDSETTING_DUR,
    MMS_SENDSETTING_DURCTRL,
    MMS_SENDSETTING_COUNT
}MMSSENDSETTINGINDEX;

typedef struct tabMmsSendSettingEntryItem
{
    U8 id;
    U16 icon;
    U16 string;
    U8** item_string;
    U8   item_count;
}MmsSendSettingEntryItem;

typedef struct tagMmsSendSettingData
{
    void* mmse;
    U8 cur_id;
#ifdef MMS_UISETTINGFILE
    MmsUIOption option;
#else
    MMSEOPTION option;
#endif
    int valid_index;
    int pri_index;
    int send_index;
    int read_index;
    int cur_item;
	U8 dur[DUR_LEN*2];
//    U8 dur_temp[DUR_LEN];
}MmsSendSettingData;

static const U8* g_valid_string[6];
static const U8* g_pri_string[3];
static const U8* g_report_string[2];

static const MmsSendSettingEntryItem g_sendsetting_entry_table[MMS_SENDSETTING_COUNT] = 
{
    {MMS_SENDSETTING_VALID,             0, MMS_SENDSETTING_STR_VALID, NULL, 0},
    {MMS_SENDSETTING_VALIDCTRL,         0, 0,                      (U8**)g_valid_string, 6},
    {MMS_SENDSETTING_PRI,               0, MMS_SENDSETTING_STR_PRI,   NULL, 0},
    {MMS_SENDSETTING_PRICTRL,           0, 0,                      (U8**)g_pri_string,   3},
    {MMS_SENDSETTING_SENDREPORT,        0, MMS_SENDSETTING_STR_SENDREPORT, NULL, 0},
    {MMS_SENDSETTING_SENDREPORTCTRL,    0, 0,                      (U8**)g_report_string, 2},
    {MMS_SENDSETTING_READREPORT,        0, MMS_SENDSETTING_STR_READREPORT, NULL, 0},
    {MMS_SENDSETTING_READREPORTCTRL,    0, 0,                      (U8**)g_report_string, 2},
    {MMS_SENDSETTING_DUR,               0, MMS_SENDSETTING_STR_SLIDEDUR, NULL, 0},
    {MMS_SENDSETTING_DURCTRL,           0, 0,                      NULL, 0}
};

static MmsSendSettingData g_sendsetting_data;

static BOOL CreateSendSetting(void* mmse);

static void EnterSendSetting(void);
static void LeaveSendSetting(void);
static void InitSendInlineListStruct(void);
static void ExitSendSetting(void);
static void SaveSendSetting(void);
static void SendSettingHiliteHandler(S32 index);
static void MmsSetCancelConfirm(void);
static void SendSetDurEmpty(void);
static void SendSetDurNotEmpty(void);

////////////////////////////////////////////////////////////////////////////
//receive setting
#define MMS_RECVSETTING_STR_RECV STR_ID_PLX_MMS_RECVSET_RECV//(U8*)(L"Receive")
#define MMS_RECVSETTING_STR_IMM STR_ID_PLX_MMS_RECVSET_IMM//(U8*)(L"Immediately")
#define MMS_RECVSETTING_STR_DELAY STR_ID_PLX_MMS_RECVSET_DELAY//(U8*)(L"Delay")
#define MMS_RECVSETTING_STR_DENY STR_ID_PLX_MMS_RECVSET_DENY//(U8*)(L"Deny")
#define MMS_RECVSETTING_STR_AD STR_ID_PLX_MMS_RECVSET_AD//(U8*)(L"Ad")
#define MMS_RECVSETTING_STR_ALLOW STR_ID_PLX_MMS_RECVSET_ALLOW//(U8*)(L"Allow")
#define MMS_RECVSETTING_STR_READREPORT STR_ID_PLX_MMS_RECVSET_READREPORT//(U8*)(L"Read Report")
#define MMS_RECVSETTING_STR_SENDREPORT STR_ID_PLX_MMS_RECVSET_SENDREPORT//(U8*)(L"Send Report")
#define MMS_RECVSETTING_STR_ON MMS_SENDSETTING_STR_ON//(U8*)(L"On")
#define MMS_RECVSETTING_STR_OFF MMS_SENDSETTING_STR_OFF//(U8*)(L"Off")
#define MMS_RECVSETTING_STR_MAXSIZE STR_ID_PLX_MMS_RECVSET_MAXSIZE//(U8*)(L"Max Size")

#define SIZE_LEN 4

typedef enum
{
    MMS_RECVSETTING_RECV = 0,
    MMS_RECVSETTING_RECVCTRL,
    MMS_RECVSETTING_AD,
    MMS_RECVSETTING_ADCTRL,
    MMS_RECVSETTING_SENDREPORT,
    MMS_RECVSETTING_SENDREPORTCTRL,
    MMS_RECVSETTING_READREPORT,
    MMS_RECVSETTING_READREPORTCTRL,
    MMS_RECVSETTING_MAXSIZE,
    MMS_RECVSETTING_MAXSIZECTRL,
    MMS_RECVSETTING_COUNT
}MMSRECVSETTINGINDEX;

typedef struct tagMmsRecvSettingData
{
    void* mmse;
    U8    cur_id;
#ifdef MMS_UISETTINGFILE
    MmsUIOption option;
#else
    MMSEOPTION option;
#endif
    int   recv_index;
    int   ad_index;
    int   send_index;
    int   read_index;
    int   cur_item;
	U8    max_size[SIZE_LEN*2];
}MmsRecvSettingData;

static const U8* g_recv_string[3];
static const U8* g_ad_string[2];

static const MmsSendSettingEntryItem g_recvsetting_entry_table[MMS_RECVSETTING_COUNT] = 
{
    {MMS_RECVSETTING_RECV,             0, MMS_RECVSETTING_STR_RECV, NULL, 0},
    {MMS_RECVSETTING_RECVCTRL,         0, 0,                      (U8**)g_recv_string, 3},
    {MMS_RECVSETTING_AD,               0, MMS_RECVSETTING_STR_AD,   NULL, 0},
    {MMS_RECVSETTING_ADCTRL,           0, 0,                      (U8**)g_ad_string,   2},
    {MMS_RECVSETTING_SENDREPORT,        0, MMS_RECVSETTING_STR_SENDREPORT, NULL, 0},
    {MMS_RECVSETTING_SENDREPORTCTRL,    0, 0,                      (U8**)g_report_string, 2},
    {MMS_RECVSETTING_READREPORT,        0, MMS_RECVSETTING_STR_READREPORT, NULL, 0},
    {MMS_RECVSETTING_READREPORTCTRL,    0, 0,                      (U8**)g_report_string, 2},
    {MMS_RECVSETTING_MAXSIZE,               0, MMS_RECVSETTING_STR_MAXSIZE, NULL, 0},
    {MMS_RECVSETTING_MAXSIZECTRL,           0, 0,                      NULL, 0}
};

static MmsRecvSettingData g_recvsetting_data;

//static BOOL CreateSendSetting(void* mmse);
static BOOL CreateRecvSetting(void* mmse);
static void EnterRecvSetting(void);
static void LeaveRecvSetting(void);
static void InitRecvInlineListStruct(void);
static void SaveRecvSetting(void);
static void ExitRecvSetting(void);
static void RecvSettingHiliteHandler(S32 index);
static void IfSaveRecvSetCallback(PLIBEVENT event);
static void RecvSetMaxSizeEmpty(void);
static void RecvSetMaxSizeNotEmpty(void);
static void RecvConfirmOk(void);

////////////////////////////////////////////////////////////////////////////
//filter setting
#define MMS_FILTER_STR_EDIT STR_ID_PLX_MMS_EDITRECV_EDIT//(U8*)(L"Edit")
#define MMS_FILTER_STR_SAVE STR_ID_PLX_MMS_EDIT_MAINMENUMENU_SAVE//(U8*)(L"Save")
#define MMS_FILTER_STR_DEL STR_ID_PLX_MMS_OBJ_DEL//(U8*)(L"Delete")
#define MMS_FILTER_STR_DELALL STR_ID_PLX_MMS_BOX_DELALL//(U8*)(L"Delete All")

#define MMS_FILTER_STR_SAVED STR_ID_PLX_MMS_EDIT_SAVEOK//(U8*)(L"Saved")
#define MMS_FILTER_STR_SAVEFAIL STR_ID_PLX_MMS_EDIT_SAVEFAIL//(U8*)(L"Saved Failed")
#define MMS_FILTER_STR_DELETED STR_ID_PLX_MMS_BOX_DELOK//(U8*)(L"Deleted")
#define MMS_FILTER_STR_ALLDELETED STR_ID_PLX_MMS_BOX_DELOK//(U8*)(L"All Deleted")

#define MMS_FILTER_ITEM_COUNT 20
#define MAX_FILTER_ITEM_LEN   41

typedef enum
{
    MMS_FILTER_EDIT = 0,
//    MMS_FILTER_SAVE,
    MMS_FILTER_DEL,
    MMS_FILTER_DELALL,
    MMS_FILTER_COUNT
}MMSFILTERSETTINGINDEX;

typedef struct tagMmsFilterEntryItem
{
    U8 id;
    U16 string;
    U16 icon;
    PlxMmsEntryPtr entry;
}MmsFilterEntryItem;

typedef struct tagMmsFilterData
{
    void*  mmse;
    HDMENU hMenu;
    U8*    num[MMS_FILTER_ITEM_COUNT];
    int    count;
    int    cur_index;
	U8     temp[MAX_FILTER_ITEM_LEN*2];
    BOOL   bFromPb;
}MmsFilterData;

static void OnEditFilter(void);
static void OnSaveFilter(void);
static void OnDelFilter(void);
static void OnDelAllFilter(void);

static const MmsFilterEntryItem g_filter_entry_table[MMS_FILTER_COUNT] = 
{
    {MMS_FILTER_EDIT,   MMS_FILTER_STR_EDIT,    IMG_GLOBAL_L1, OnEditFilter},
//    {MMS_FILTER_SAVE,   MMS_FILTER_STR_SAVE,    IMG_GLOBAL_L2, OnSaveFilter},
    {MMS_FILTER_DEL,    MMS_FILTER_STR_DEL,     IMG_GLOBAL_L2, OnDelFilter},
    {MMS_FILTER_DELALL, MMS_FILTER_STR_DELALL,  IMG_GLOBAL_L3, OnDelAllFilter}
};

static MmsFilterData g_filter_data;

static BOOL CreateFilter(void* mmse);
static void EnterFilter(void);
static void ExitFilter(void);
static void FilterHiliteHandler(S32 index);
static pBOOL FilterGetItemText(S32 item_index, UI_string_type str_buff, 
                         UI_image_type* img_buff_p, U8 str_img_mask);
static void EnterFilterMenu(void);
static BOOL CreateFilterMenu(void);
static int  FilterMenuCallback(HDMENU hDmenu, unsigned long id, unsigned long event);
static void SaveEditFilter(void);
static void EnterFilterEdit(void);
static void FilterGoBack(void);
static void IfSaveSendSetCallback(PLIBEVENT event);
static void MmsEditFilterOnOk(void);
static void IfDelFilterCallback(PLIBEVENT event);
static void IfDelAllFilterCallback(PLIBEVENT event);
static void FilterEditLeftEmptyText(void);
static void FilterEditLeftNotEmptyText(void);
static void CallPb(void);
static void PBCallback(void * info, int count);

////////////////////////////////////////////////////////////////////////////
//network setting
#define MMS_NET_STR_MMSC STR_ID_PLX_MMS_NET_MMSC//(U8*)(L"MMSC")
#define MMS_NET_STR_GATE STR_ID_PLX_MMS_NET_GATE//(U8*)(L"Gateway")
#define MMS_NET_STR_PORT STR_ID_PLX_MMS_NET_PORT//(U8*)(L"Port")
#define MMS_NET_STR_ACNT STR_ID_PLX_MMS_NET_ACNT//(U8*)(L"Acount")
#define MMS_NET_STR_GSM  STR_ID_PLX_MMS_NET_GSM
#define MMS_NET_STR_GPRS STR_ID_PLX_MMS_NET_GPRS

#define MMS_NET_MMSC_LEN MMSE_MAX_MMSC //128
#define MMS_NET_GATE_LEN 4//16
#define MMS_NET_PORT_LEN 6

typedef enum
{
    MMS_NET_MMSC = 0,
    MMS_NET_MMSCCTRL,
    MMS_NET_GATE,
    MMS_NET_GATECTRL,
    MMS_NET_PORT,
    MMS_NET_PORTCTRL,
    MMS_NET_ACNT,
    MMS_NET_ACNTCTRL,
    MMS_NET_COUNT
}MMSNETINDEX;

⌨️ 快捷键说明

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