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 + -
显示快捷键?