FreeCalypso > hg > fc-magnetite
view src/aci2/bmi/mmiEmsCreate.c @ 640:16eb1b9640dc
target gtm900 renamed to gtm900mgc2
This change reflects the fact that the build target in question supports
MGC2GSMT hardware only, and will NOT work on other hw that confusing bears
the same end user name of GTM900, neither the LoCosto-based GTM900-C
nor the Calypso-based MG01GSMT that has a different and incompatible RFFE.
If we ever get our hands on a piece of MG01GSMT hw and add support for it,
that other target will be named gtm900mg01.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 31 Jan 2020 00:46:07 +0000 |
parents | 3c2acfa1a72f |
children |
line wrap: on
line source
/******************************************************************************* TI (Shanghai) ******************************************************************************** This software product is the property of TI (Shanghai) Ltd and may not be disclosed to any third party without the express permission of the owner. ******************************************************************************** $Project name: TISHMMS Project $Project code: BMI (6349) $Module: MMS $File: MmiEMSCreate.c $Revision: 1.0 $Author: Pinghua create (pinghua-zhang@ti.com ) $Date: 26/08/03 ******************************************************************************** Description: This module provides definitions of the types and constants which are shared across the MMS application modules. ******************************************************************************** $History: MmiMMSCreate.h xrashmic 08 Feb, 2005 MMI-SPR-27853 Added more parameters to the information_dialog function MMI-SPR-27384 Dec-16-2004 - xreddymn Modifications for EMS inbox presentation xrashmic 9 Dec, 2004 MMI-SPR-27385 Description: No response on selecting the EMS preview option Solution: Removed the EMS preview option, since the editor itself acts as preview. xrashmic 7 Dec, 2004 MMI-SPR-23965 Description: Not able to extract the objects in EMS message Solution: Extract and store the objects in the Object Manager MMI-SPR-25278: Nov-29-2004 - xreddymn Implemented FFS limits for MMS/EMS storage CRR: 25302 - xpradipg 10 Nov 2004 Description: Should be able to select the number fro the phonebook while sending MMS/EMS. Solution: The new feature to select the number from phonebook while sending MMS/EMS is added CRR: 25329 - xpradipg 27 Oct 2004 Description: Delete option in EMS create does not work Solution: the option is removed since a Softkey is provided in the compose screen, that can be used to delete objects directly. MMI-SPR-25273: Oct-14-2004 - xreddymn Description: EMS forward not working Solution: Added changes to implement the EMS forward feature CRR: 25291 - xrashmic 14 Oct 2004 Description: The sent EMS is stored in unsent folder. Solution: The Outbox has been removed, instead we now have Sent folder for the sent EMS CRR: 24741 - xpradipg 17 Sept 2004 Description: Default values to be removed in text editor of MMS and EMS Solution: The buffer assigned to the text editor is reset. MMI-SPR-24735: Sep-16-2004 - xreddymn Added changes to reduce flickering of EMS editor screen when the user is deleting or navigating xrashmic 13 Sep, 2004 MMI-SPR-24744 Description: No indication of the EMS sent. Also after sending EMS, the option screen is displayed. Solution: Implemented the indication of EMS sent screen. MMI-SPR-23926 (TII_MMS12) and MMI-SPR-24115 (TII_MMS55): Aug-17-2004 - xreddymn Keep track of MMS/EMS display CRR: 23942 - xpradipg 26 Aug 2004 Description: Default values to be removed in text editor of MMS and EMS Solution: The buffer assigned to the text editor is reset. CRR: 23942 - xpradipg 26 Aug 2004 Description: Default values to be removed in number editor of MMS and EMS Solution: The strcpy() of the hardcoded numbers to the editor buffer are commented Bug Id 23 : 16 Aug, 2004 - xpradipg Description:Remove insert slide form options menu Solution: removed the insert slide item from the menu item array 17/01/04 Replace mfw edit with AUI edit. 26/08/03 Original TI(Shanghai) BMI version. $End *******************************************************************************/ #define MMI_MMSCREATE_C #define ENTITY_MFW /* includes */ #include <string.h> #include <stdio.h> #include <stdlib.h> #if defined (NEW_FRAME) #include "typedefs.h" #include "vsi.h" #include "pei.h" #include "custom.h" #include "gsm.h" #else #include "STDDEFS.H" #include "custom.h" #include "gsm.h" #include "vsi.h" #endif #include "prim.h" #include "mfw_mfw.h" #include "mfw_win.h" #include "mfw_kbd.h" //#include "mfw_edt.h" #include "mfw_tim.h" #include "mfw_phb.h" #include "ksd.h" #include "psa.h" #include "mfw_sms.h" #include "mfw_smsi.h" #include "mfw_icn.h" #include "mfw_mnu.h" #include "mfw_lng.h" #include "mfw_sat.h" #include "mfw_kbd.h" #include "mfw_nm.h" #include "psa_util.h" #include "dspl.h" // #include "unicode_types.h" #include "MmiMain.h" #include "MmiDummy.h" //#include "MmiLists.h" #include "MmiMmi.h" #include "mmiCall.h"//GW 29/11/01 for 'callNumber' #include "MmiDialogs.h" #include "MmiLists.h" #include "MmiMenu.h" #include "MmiSoftKeys.h" #ifdef NEW_EDITOR #include "ATBCommon.h" #include "ATBDisplay.h" #include "ATBEditor.h" #include "AUIEditor.h" #else /* NEW_EDITOR */ #ifdef EASY_TEXT_ENABLED #include "MmiLatinPredText.h" #endif /* EASY_TEXT_ENABLED */ #include "MmiEditor.h" #endif /* NEW_EDITOR */ #include "MmiBookShared.h" // MZ #include "mmimmsmenu.h" #include "mmiemscreate.h" // pinghua modify #include "mmimmscreate.h" #include "mmimmsom.h" #include "mmiwindow.h" #include "mfw_ffs.h" #include "cus_aci.h" #include "prim.h" #ifndef PCM_2_FFS #include "pcm.h" #endif #include "aci_cmh.h" //GW 29/11/01 added for types in aci_fd.h #include "aci_fd.h" //GW 29/11/01 added for types in 'cmh.h' #include "cmh.h" //GW 29/11/01 added for types in 'cmh_phb.h' #include "cmh_phb.h" //GW 29/11/01 added for cmhPHB_getAdrStr #include "mmiColours.h" // ronaldc 8-5 #include "mg4def.h" #include "evtdefs.h" #include "mg4stu.h" #include "Mg4Dal.h" #include "mg4devif.h" #include "dalevt.h" #include "evif.h" #include "mg4str.h" #include "mmif.h" #include "mg4mem.h" #include "AUIWapext.h" #include "ATBData.h" #include "dspl.h" // xrashmic 13 Sep, 2004 MMI-SPR-24744 // xreddymn Dec-16-2004 MMI-SPR-27384 #include "Mfw_td.h" UCS2 ems_g_insertString[128] = {'t','e','s','t',0}; MSafeString ems_g_safeString; UINT32 gEmsMsgId = MM_INVALID_MESSAGE_ID; // xreddymn Dec-16-2004 MMI-SPR-27384 MM_S_MESSAGE_HEADER *EmsMsgHeader=NULL; EVT_STRUCT g_EMS_event_struct; extern T_MFW_TIME current_time; extern T_MFW_DATE current_date; //GW 29/11/01 - added header file - removed extern void callNumber(UBYTE* number); MfwWin* getWinData( MfwHnd win); extern void M4_DebugMessage(unsigned long para); //xreddymn Aug-26-2004 extern UINT8 gucMmsTitleBarHeight; //xreddymn Aug-27-2004 MMI-SPR-23926 (TII_MMS12) and MMI-SPR-24115 (TII_MMS55): To keep track of MMS display extern BOOL g_M4_display_active; //xreddymn Oct-14-2004 MMI-SPR-25273: Used to maintain the state when forwarding an EMS message BOOL gEmsForward=FALSE; //xreddymn Nov-26-2004 extern T_MFW_HND g_inSaveModeWin; extern BOOL g_inSaveMode; //xrashmic 08 Feb, 2005 MMI-SPR-27853 extern T_MFW_HND information_dialog(USHORT TxtId1, USHORT TxtId2,char* Txt1, char* Txt2, USHORT SoftKeyTxtId1, USHORT SoftKeyTxtId2, int timer, T_MFW_EVENT keyEvents, T_VOID_FUNC callback); /********************************************************************* DYNAMIC MENU WINDOW. DECLARATION **********************************************************************/ static int EMSCreate_OPTexeSend(MfwMnu* m, MfwMnuItem* i); //xrashmic 7 Dec, 2004 MMI-SPR-23965 static int EMSCreate_OPTexeInsPreDefPicture(MfwMnu* m, MfwMnuItem* i); static int EMSCreate_OPTexeInsPicture(MfwMnu* m, MfwMnuItem* i); static int EMSCreate_OPTexeInsPreDefSound(MfwMnu* m, MfwMnuItem* i); static int EMSCreate_OPTexeInsSound(MfwMnu* m, MfwMnuItem* i); static int EMSCreate_OPTexeInsText(MfwMnu* m, MfwMnuItem* i); //static int MMSCreate_OPTexeInsSlide(MfwMnu* m, MfwMnuItem* i); static int EMSCreate_OPTexeDelPicture(MfwMnu* m, MfwMnuItem* i); static int EMSCreate_OPTexeDelSound(MfwMnu* m, MfwMnuItem* i); static int EMSCreate_OPTexeDelText(MfwMnu* m, MfwMnuItem* i); static int EMSCreate_OPTexeSave(MfwMnu* m, MfwMnuItem* i); static MfwMnuItem EMSCreate_OPTDeleteItems [] = { {0,0,0,(char *)TxtMMSDeletePicture,0,(MenuFunc)EMSCreate_OPTexeDelPicture,item_flag_none}, {0,0,0,(char *)TxtMMSDeleteSound,0,(MenuFunc)EMSCreate_OPTexeDelSound,item_flag_none}, {0,0,0,(char *)TxtMMSDeleteText,0,(MenuFunc)EMSCreate_OPTexeDelText,item_flag_none} }; static MfwMnuAttr MMSCreate_OPTDeleteAttrib = { &SmsRead_R_OPTArea, MNU_LEFT | MNU_LIST | MNU_CUR_LINE, /* centered page menu */ -1, /* use default font */ EMSCreate_OPTDeleteItems, /* with these items */ sizeof(EMSCreate_OPTDeleteItems)/sizeof(MfwMnuItem), /* number of items */ COLOUR_LIST_SMS, TxtNull, MNUATTRSPARE }; static MfwMnuItem EMSCreate_OPTItems [] = { {0,0,0,(char *)TxtSend,0,(MenuFunc)EMSCreate_OPTexeSend,item_flag_none}, {0,0,0,(char *)TxtMMSInsertPrePicture,0,(MenuFunc)EMSCreate_OPTexeInsPreDefPicture,item_flag_none}, {0,0,0,(char *)TxtMMSInsertPicture,0,(MenuFunc)EMSCreate_OPTexeInsPicture,item_flag_none}, {0,0,0,(char *)TxtMMSInsertPreSound,0,(MenuFunc)EMSCreate_OPTexeInsPreDefSound,item_flag_none}, {0,0,0,(char *)TxtMMSInsertSound,0,(MenuFunc)EMSCreate_OPTexeInsSound,item_flag_none}, {0,0,0,(char *)TxtMMSInsertText,0,(MenuFunc)EMSCreate_OPTexeInsText,item_flag_none}, //Bug Id 23 : 16 Aug, 2004 - xpradipg //Description:Remove insert slide form options menu // {0,0,0,(char *)TxtMMSInsertSlide,0,(MenuFunc)EMSCreate_OPTexeInsSlide,item_flag_none}, {0,0,0,(char *)TxtSave,0,(MenuFunc)EMSCreate_OPTexeSave,item_flag_none}, //CRR: 25329 - xpradipg 25 Oct 2004 // {0,0,0,(char *)TxtMMSDelete,&MMSCreate_OPTDeleteAttrib,0,item_flag_none}, //xrashmic 9 Dec, 2004 MMI-SPR-27385 //Removed the EMS preview option, since the editor itself acts as preview. // {0,0,0,(char *)TxtMMSPreview,0,(MenuFunc)NULL,item_flag_none} }; static MfwMnuAttr EMSCreate_OPTAttrib = { &SmsRead_R_OPTArea, MNU_LEFT | MNU_LIST | MNU_CUR_LINE, /* centered page menu */ -1, /* use default font */ EMSCreate_OPTItems, /* with these items */ sizeof(EMSCreate_OPTItems)/sizeof(MfwMnuItem), /* number of items */ COLOUR_LIST_SMS, TxtNull, MNUATTRSPARE }; /* 1. User selects 'Preview' from user menu (MMI) */ /* 2. MMI calls action_ResumeEditor() to resume the magic4 client and suspends the menu system */ void action_EMS_ResumeEditor() { /* resume magic4 editor */ DAL_PostMessage(EMG4_Resume,EMG4_Type_NotUsed,0,NULL); /* if necessary, add code here to suspend display of the menu system */ } /* 3. After action_ResumeEditor has been completed, MMI then calls action_PreviewMessage() to preview the message currently in the magic4 editor */ void action_EMS_SuspendEditor() { /* suspend magic4 editor */ DAL_PostMessage(EMG4_Suspend,EMG4_Type_NotUsed,0,NULL); /* if necessary, add code here to resume display of the menu system */ } /******************************************************************************* $Function: set_MMS_current_time_stamp $Description: Sets current time in the time stamp structure $Returns: none $Arguments: t - Time stamp to be updated by this function $author : xreddymn *******************************************************************************/ void set_MMS_current_time_stamp(MM_S_TIME_STAMP *t) { t->day=current_date.day; t->month=current_date.month; t->year=current_date.year; t->hour=current_time.hour; t->min=current_time.minute; t->sec=current_time.second; } /******************************************************************************* $Function: EMS_update_header_handler $Description: Callback function for DAL_ModifyMessageParamsAsync $Returns: none $Arguments: As specified by M4 $author : xreddymn Currently, this is a dummy function *******************************************************************************/ ESTATUS EMS_update_header_handler(EVENT_ID aeId, EVENT_TYPE aeType, MESSAGE_PARAM ampParam, EVT_HANDLE EvtHandle) { } EVT_STRUCT CreatEmsDocumentevtHandle; ESTATUS Handler_EMS_CreateDocument(EVENT_ID aeId, EVENT_TYPE aeType, MESSAGE_PARAM ampParam, EVT_HANDLE evtHandle) { //xmzhou_trace_string_value("Handler_EMS_CreateDocument aeId = ", aeId); switch(aeId) { case EMG4_FileOpDone: //xmzhou_trace_string_value("gEmsMsgId = ampParam = ", ampParam); gEmsMsgId = (UINT32)ampParam; if(g_inSaveMode==TRUE) { g_inSaveMode=FALSE; // xreddymn Nov-26-2004 MMI-SPR-25278 winDelete(g_inSaveModeWin); //xrashmic 08 Feb, 2005 MMI-SPR-27853 //Added few more parameters for this function information_dialog(TxtSaved,TxtNull, NULL,NULL,TxtNull,TxtSoftBack,FOREVER,KEY_CLEAR|KEY_RIGHT|KEY_HUP,NULL); /* xreddymn Dec-15-2004 MMI-SPR-27384 * Update EMS message header with the current time stamp */ { ESTATUS eResult= DAL_RetrieveMessageHeader(gEmsMsgId,&EmsMsgHeader); if(eResult==ENoError) { set_MMS_current_time_stamp(&EmsMsgHeader->timestamp); g_EMS_event_struct.handler = EMS_update_header_handler; g_EMS_event_struct.parentEvtHandle = NULL; g_EMS_event_struct.pData = NULL; g_EMS_event_struct.userFlag = 0; DAL_ModifyMessageParamsAsync((EVT_HANDLE)&g_EMS_event_struct,gEmsMsgId,EmsMsgHeader); } } } break; // xrashmic Nov-17-2004: Changes for FFS error handling case EMG4_OpError: { MDword reason; reason = (ampParam & 0x3FFF); // xreddymn Nov-27-2004 MMI-SPR-25278 switch(reason) { case EFileOpFailed: winDelete(g_inSaveModeWin); //xrashmic 08 Feb, 2005 MMI-SPR-27853 //Added few more parameters for this function information_dialog(TxtFailed,TxtFatalError,NULL,NULL, TxtNull,TxtSoftBack,FOREVER,KEY_CLEAR|KEY_RIGHT|KEY_HUP,NULL); break; } } break; } return ENoError; } /******************************************************************************* $Function: EMSCreate_exec_cb $Description: Exec callback function of the MMS Create window $Returns: none $Arguments: win - window handler event - mfw event parameter - optional data. $author : pinghua for EMS modify !! *******************************************************************************/ void EMSCreate_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter) /* callback handler for events sent to to trigger execution */ { ESTATUS eStatus; T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; TRACE_FUNCTION ("EMSCreate_exec_cb()"); //xmzhou_trace_string_value("EMSCreate_exec_cb called", event); switch (event) { case MWM_CREATE: /* initialization of administrative data */ TRACE_EVENT("MWM_CREATE"); // xreddymn Oct-14-2004 MMI-SPR-25273: Open an existing EMS message to forward if(gEmsForward==TRUE) { CreatEmsDocumentevtHandle.handler = Handler_EMS_CreateDocument; CreatEmsDocumentevtHandle.parentEvtHandle = NULL; CreatEmsDocumentevtHandle.pData = NULL; CreatEmsDocumentevtHandle.userFlag = 0; eStatus = EV_OpenDocument((EVT_HANDLE) &CreatEmsDocumentevtHandle, (MM_MESSAGE_ID) gEmsMsgId, (MM_MESSAGE_ID) MM_INVALID_MESSAGE_ID); DAL_PostMessage(EMG4_Edit,EMG4_Type_NotUsed,0,NULL); } else { //Creat a document for one EMS CreatEmsDocumentevtHandle.handler = Handler_EMS_CreateDocument; CreatEmsDocumentevtHandle.parentEvtHandle = NULL; CreatEmsDocumentevtHandle.pData = NULL; CreatEmsDocumentevtHandle.userFlag = 0; eStatus = EV_CreateDocument((EVT_HANDLE) &CreatEmsDocumentevtHandle, EMtSms, (MM_MESSAGE_ID) MM_INVALID_MESSAGE_ID); if (eStatus!=ENoError) { //xmzhou_trace_string_value("EMSCreate_exec_cb EV_CreateDocument return error num = ", eStatus); } else { //xmzhou_trace_string("EMSCreate_exec_cb EV_CreateDocument return ENoError"); gEmsMsgId = MM_INVALID_MESSAGE_ID; } } //xreddymn Aug-27-2004 MMI-SPR-23926 (TII_MMS12) and MMI-SPR-24115 (TII_MMS55): M4 client will now use the display g_M4_display_active=TRUE; break; case MWM_ONDRAW: TRACE_EVENT("MWM_ONDRAW"); dspl_Enable(0); #if(0) dspl_ClearAll(); dspl_TextOut(32, 0, DSPL_TXTATTR_HLIGHT,"Create EMS"); #else // xreddymn Aug-26-2004: Modified Title display { unsigned short width, height; DeviceGetScreenMetrics(&width,&height); dspl_SetBgdColour(COL_White); dspl_Clear(0, gucMmsTitleBarHeight, width-1, gucMmsTitleBarHeight+height-1); resources_setTitleColour(COLOUR_EDITOR); dspl_Clear(0, 0, width-1, gucMmsTitleBarHeight-1); dspl_TextOut(1, 0, DSPL_TXTATTR_HLIGHT,"Create EMS"); } #endif //xmzhou_trace_string("action_EMS_ResumeEditor in EMSCreate_exec_cb called"); action_EMS_ResumeEditor(); displaySoftKeys(TxtSoftOptions,TxtDelete); dspl_Enable(1); break; // xreddymn Aug-09-2004 case MWM_SUSPEND: TRACE_EVENT("MWM_SUSPEND"); //xreddymn Sep-16-2004 MMI-SPR-24735 dspl_Enable(1); //xreddymn Aug-27-2004 MMI-SPR-23926 (TII_MMS12) and MMI-SPR-24115 (TII_MMS55): BMI will now use the display g_M4_display_active=FALSE; action_EMS_SuspendEditor(); break; // xreddymn Aug-27-2004 case MWM_RESUME: TRACE_EVENT("MWM_RESUME"); //xreddymn Aug-27-2004 MMI-SPR-23926 (TII_MMS12) and MMI-SPR-24115 (TII_MMS55): M4 client will now use the display g_M4_display_active=TRUE; //xreddymn Sep-16-2004 MMI-SPR-24735: Removed editor resume and refresh //action_EMS_ResumeEditor(); //DAL_PostMessage(EMG4_Refresh, EMG4_Type_NotUsed, 0, 0); break; case MWM_DESTORY: TRACE_EVENT("MWM_DESTROY"); //xreddymn Sep-16-2004: Changes related to MMI-SPR-24735 dspl_Enable(1); //xmzhou_trace_string("EMSCreate_exec_cb EMG4_Exit be posted"); DAL_PostMessage(EMG4_Exit, EMG4_Type_NotUsed, 0, 0); //xreddymn Aug-27-2004 MMI-SPR-23926 (TII_MMS12) and MMI-SPR-24115 (TII_MMS55): BMI will now use the display g_M4_display_active=FALSE; break; default: break; } } /******************************************************************************* $Function: MMSCreate_kbd_cb $Description: Exec callback function for the Option window $Returns: execution status $Arguments: e - event id k - keyboard info $Author : pignhua add these code for EMS () *******************************************************************************/ static int EMSCreate_kbd_cb (MfwEvt e, MfwKbd *k) /* SmsRead_R_OPT keyboard event handler */ { T_MFW_HND win = mfwParent(mfw_header()); TRACE_FUNCTION ("MMSCreate_kbd_cb()"); //xreddymn Sep-16-2004 MMI-SPR-24735: Reduce screen flickering in EMS editor when user presses keys dspl_Enable(0); if (e & KEY_LONG) { switch (k->code) { case KCD_HUP: /* back to previous menu */ MMI_DestoryWindow(win); break; case KCD_RIGHT: /* delete one */ DAL_PostMessage(EMG4_BackSpace, EMG4_Type_NotUsed, 0, NULL); break ; case KCD_MNUUP: DAL_PostMessage(EVT_StartOfMessage, EMG4_Type_NotUsed, 0, NULL); break; case KCD_MNUDOWN: DAL_PostMessage(EVT_EndOfMessage, EMG4_Type_NotUsed, 0, NULL); break; case KCD_MNULEFT: DAL_PostMessage(EVT_StartOfLine, EMG4_Type_NotUsed, 0, NULL); break; case KCD_MNURIGHT: DAL_PostMessage(EVT_EndOfLine, EMG4_Type_NotUsed, 0, NULL); break; default: /* no response to all other keys */ return MFW_EVENT_CONSUMED; } } else { switch (k->code) { case KCD_MNUSELECT: case KCD_LEFT: EMSCreate_OPT_start(win,0); break; case KCD_HUP: /* back to previous menu */ MMI_DestoryWindow(win); break; case KCD_RIGHT: /* delete one */ DAL_PostMessage(EMG4_BackSpace, EMG4_Type_NotUsed, 0, NULL); break ; case KCD_MNUUP: DAL_PostMessage(EVT_CursorUp, EMG4_Type_NotUsed, 0, NULL); break; case KCD_MNUDOWN: DAL_PostMessage(EVT_CursorDown, EMG4_Type_NotUsed, 0, NULL); break; case KCD_MNULEFT: DAL_PostMessage(EMG4_CursorLeft, EMG4_Type_NotUsed, 0, NULL); break; case KCD_MNURIGHT: DAL_PostMessage(EMG4_CursorRight, EMG4_Type_NotUsed, 0, NULL); break; default: /* no response to all other keys */ return MFW_EVENT_CONSUMED; } } return MFW_EVENT_CONSUMED; } /******************************************************************************* $Function: MMSCreate_start $Description: Start the creation of the main window for Create MMS $Returns: mfw window handler $Arguments: parent_window - Parent window handler menuAttr - Menu attributes. *******************************************************************************/ T_MFW_HND EMSCreate_start(T_MFW_HND parent_window, MfwMnuAttr *menuAttr) { TRACE_FUNCTION ("MMSCreate_start()"); return MMI_CreateWindow(parent_window, (T_DIALOG_FUNC) EMSCreate_exec_cb, (void*)menuAttr,(MfwCb)EMSCreate_kbd_cb, 0,0); } #define MMS_SEND_SUBJUCT_NUMBER static T_MFW_HND editor=NULL; //CRR: 25302 - xpradipg 10 Nov 2004 //Global to hold the number editor handle static T_MFW_HND number_edit=NULL; static char text[MAX_EMS_TEXT_LEN]; char EmsNumber[MAX_PHB_NUM_LEN]; static char topic[MAX_EMS_TOPIC_LEN]="\0"; void Free_MMISafeString(void * paData) { MSafeString *pSafeString = (MSafeString *)paData; if (pSafeString!= NULL) { mfwFree((U8 *)(pSafeString->pString), pSafeString->size); pSafeString->pString = NULL; } } UINT32 EMS_CaculateByteSize(MDword rawDataSize, MM_E_SMS_ENCODING encoding) { UINT32 ulBitLength; UINT32 ulByteSize; switch (encoding) { case EEncodingGSM7Bit: case EEncoding7BitASCII: { ulBitLength = rawDataSize * 7; if ((ulBitLength & 0x07) == 0) { ulByteSize = ulBitLength/8; } else { ulByteSize = ulBitLength/8 + 1; } break; } case EEncoding8BitASCII: case EEncodingGSM8Bit: { ulByteSize = rawDataSize; break; } case EEncodingUCS2: case EEncodingUNICODE: { ulByteSize = rawDataSize; break; } default: { //xmzhou_trace_string_value("EMS_CaculateByteSize error case encoding = ", encoding); ulByteSize = 0; break; } }/* end switch (encoding) */ return ulByteSize; }/* end of EMS_CaculateByteSize */ LOCAL MM_S_MESSAGE *EmsMesg; LOCAL UINT16 ulSendIndex; //number LOCAL void ems_submit_error_proc (T_ACI_AT_CMD cmdId, T_ACI_CMS_ERR err, T_EXT_CMS_ERROR *ce) { //CRR: 24741 - xpradipg 17 Sept 2004 //The error message is displayed T_MFW_HND win = mfwParent(mfw_header()); T_DISPLAY_DATA displayInfo; TRACE_FUNCTION("ems_submit_error_proc called"); dlg_initDisplayData_TextStr(&displayInfo, TxtSoftOK,TxtNull, "EMS Send", "Failed", COLOUR_STATUS); dlg_initDisplayData_events(&displayInfo, (T_VOID_FUNC)NULL, FOREVER, KEY_LEFT |KEY_HUP); info_dialog(win,&displayInfo); EmsMesg->memHdr.freeFunc(EmsMesg); } void ems_prepare8bitBufferforACIfrom7bit(MByte* textBuffer, UBYTE NumTxt, UBYTE OriginalOffest, UBYTE* SmsTextOut) { UBYTE ByteOne; U16 ByteTwo; U16 ulConcated2Bytes; UBYTE TextBufferOffset = 0; UBYTE ByteOffset = 0; UBYTE BitOffset; UINT16 i; if ((textBuffer == NULL) || (SmsTextOut == NULL)) { return; } BitOffset = OriginalOffest; for (i = 0; i < NumTxt; i++) { ByteOne = textBuffer[TextBufferOffset]; ByteTwo = textBuffer[TextBufferOffset + 1]; ulConcated2Bytes = ByteOne; ulConcated2Bytes = ulConcated2Bytes | ((ByteTwo <<8) & 0xFF00); SmsTextOut[ByteOffset] = 0; if (BitOffset == 0) { SmsTextOut[ByteOffset] = 0x7f & ByteOne; BitOffset = 7; //TextBufferOffset = TextBufferOffset;//do not change } else if (BitOffset == 1) { SmsTextOut[ByteOffset] = 0x7f & (ByteOne >> BitOffset); BitOffset = 0; TextBufferOffset++; } else { SmsTextOut[ByteOffset] = (UBYTE)(0x7f & (ulConcated2Bytes >> BitOffset)); BitOffset --; TextBufferOffset++; } ByteOffset++; }/* end of for */ return; } void ems_submit(UBYTE mr, UBYTE numSeg) { T_ACI_TOA toa; T_ACI_TOA tosca; SHORT rp; T_ACI_UDH_DATA udh; T_ACI_SM_DATA tar_data; T_MFW_SMS_INFO sms_parameter; MByte * rawData; MDword rawDataSize; UINT32 BytesSize; UINT32 ulTextByteLengh; MM_E_SMS_ENCODING M4Encoding; T_ACI_RETURN AciReturn; UBYTE OriginalOffest; //xmzhou_trace_string_value("ems_submit called ulSendIndex = ", ulSendIndex); TRACE_FUNCTION("ems_submit called"); if (ulSendIndex >= EmsMesg->pBody->numMessageParts) { /* xreddymn Dec-15-2004 MMI-SPR-27384 * Update EMS message header with the current time stamp and Destination Address */ { ESTATUS eResult= DAL_RetrieveMessageHeader(gEmsMsgId,&EmsMsgHeader); if(eResult==ENoError) { UCS2 temp_string[128]; //CRR: 25291 - xrashmic 14 Oct 2004 //Once the EMS is sent successfully, move this EMS into Sent folder. EmsMsgHeader->location=EMlSent; MMS_Convert8BitStringToUcs2((MByte*)EmsNumber,strlen(EmsNumber),(UCS2*)temp_string); EmsMsgHeader->messageTypeHeader.smsHeader.pszAddress=temp_string; set_MMS_current_time_stamp(&EmsMsgHeader->timestamp); g_EMS_event_struct.handler = EMS_update_header_handler; g_EMS_event_struct.parentEvtHandle = NULL; g_EMS_event_struct.pData = NULL; g_EMS_event_struct.userFlag = 0; DAL_ModifyMessageParamsAsync((EVT_HANDLE)&g_EMS_event_struct,gEmsMsgId,EmsMsgHeader); } } //xmzhou_trace_string("EMS post success!"); //xrashmic 13 Sep, 2004 MMI-SPR-24744 //Displaying a dialog after all the parts of EMS are sent. ems_dialog(TxtEMS,TxtSent,NULL,TxtSoftBack,FOREVER); EmsMesg->memHdr.freeFunc(EmsMesg); return; } rp = -1; /* reply path = default *//*for MFW_SMS_SUBMIT*/ toa.ton = phb_ncvtTon(NULL); toa.npi = NPI_IsdnTelephony; tosca.ton = phb_ncvtTon(NULL); tosca.npi = NPI_IsdnTelephony; SmsSend_get_config_data(&sms_parameter); if ((EmsMesg->pHeader->messageTypeHeader.smsHeader.encoding == EEncodingGSM7Bit) || (EmsMesg->pHeader->messageTypeHeader.smsHeader.encoding == EEncoding7BitASCII)) { sms_parameter.dcs = MFW_DCS_7bits; } else if ((EmsMesg->pHeader->messageTypeHeader.smsHeader.encoding == EEncodingUCS2) || (EmsMesg->pHeader->messageTypeHeader.smsHeader.encoding == EEncodingUNICODE)) { sms_parameter.dcs = MFW_DCS_UCS2; } else if ((EmsMesg->pHeader->messageTypeHeader.smsHeader.encoding == EEncoding8BitASCII) || (EmsMesg->pHeader->messageTypeHeader.smsHeader.encoding == EEncodingGSM8Bit)) { sms_parameter.dcs = MFW_DCS_8bits; } else { //xmzhou_trace_string_value("EMS_RetriveSendMsg error encoding = ", // EmsMesg->pHeader->messageTypeHeader.smsHeader.encoding); return; } rawData = EmsMesg->pBody->ppMessageParts[ulSendIndex]->pData; rawDataSize = EmsMesg->pBody->ppMessageParts[ulSendIndex]->size; M4Encoding = EmsMesg->pHeader->messageTypeHeader.smsHeader.encoding; BytesSize = EMS_CaculateByteSize(rawDataSize, M4Encoding); if ( EmsMesg->pBody->ppMessageParts[ulSendIndex]->xData == 0x40 ) //EMS { //xmzhou_trace_string_value("Call Send EMS, rawDataSize = ", rawDataSize); //xmzhou_trace_n_bytes((char *) rawData, (UINT32) rawDataSize); udh.len = rawData[0]; memcpy(udh.data, &rawData[1], udh.len); //tar_data.len = BytesSize - udh.len - 1; ulTextByteLengh = BytesSize - udh.len - 1; if ((M4Encoding == EEncodingGSM7Bit) ||(M4Encoding == EEncoding7BitASCII)) { tar_data.len = rawDataSize - (((udh.len + 1)*8 + 6) / 7); OriginalOffest = (rawDataSize-tar_data.len) * 7 -(udh.len + 1) * 8; //filing bit of sms //tar_data.data will be fit with 8bit buffer for ACI ems_prepare8bitBufferforACIfrom7bit(&rawData[udh.len+1], tar_data.len, OriginalOffest, tar_data.data); } else if ((M4Encoding == EEncodingUCS2) ||(M4Encoding == EEncodingUNICODE)) { memcpy(tar_data.data, &rawData[udh.len+1], ulTextByteLengh); tar_data.data[ulTextByteLengh] = 0x00; tar_data.data[ulTextByteLengh + 1] = 0x00; tar_data.len = ulTextByteLengh + 2; } else { memcpy(tar_data.data, &rawData[udh.len+1], ulTextByteLengh); tar_data.len = ulTextByteLengh; } AciReturn = sAT_PlusCMGS_Gl(CMD_SRC_LCL, EmsNumber, NULL, &tar_data, &udh, sms_parameter.sc_addr, NULL, rp, ems_submit, ems_submit_error_proc); //AciReturn = sAT_PlusCMGS_Gl(CMD_SRC_LCL, EmsNumber, NULL, &tar_data, NULL, sms_parameter.sc_addr, NULL, rp, ems_submit, ems_submit_error_proc); if (AciReturn NEQ AT_EXCT) { //xmzhou_trace_string("ems_submit sAT_PlusCMGS_Gl fail!"); } } else//SMS { tar_data.len = rawDataSize; if ((M4Encoding == EEncodingGSM7Bit) ||(M4Encoding == EEncoding7BitASCII)) { tar_data.len = rawDataSize; OriginalOffest = 0; //filing bit of sms is 0 for text only //tar_data.data will be fit with 8bit buffer for ACI ems_prepare8bitBufferforACIfrom7bit(rawData, tar_data.len, OriginalOffest, tar_data.data); } else { memcpy(tar_data.data, rawData, ulTextByteLengh); tar_data.len = rawDataSize; } AciReturn = sAT_PlusCMGS_Gl(CMD_SRC_LCL, EmsNumber,NULL, &tar_data, NULL, sms_parameter.sc_addr, NULL, rp, ems_submit, ems_submit_error_proc); if (AciReturn NEQ AT_EXCT) { //xmzhou_trace_string("ems_submit sAT_PlusCMGS_Gl for sms fail!"); } } ulSendIndex++; return ; }/* end of ems_submit */ void EMS_RetriveSendMsg(UINT32 MsgId) { T_MFW_SMS_INFO sms_parameter; ESTATUS estatus; UBYTE mr; UBYTE numSeg; estatus = DAL_RetrieveMessageComplete(&EmsMesg, MsgId); if ( estatus != ENoError ) { //xmzhou_trace_string("EMS_RetriveSendMsg estatus != ENoError then return"); return; } if (EmsMesg->pBody->numMessageParts > 255) { //xmzhou_trace_string("EMS_RetriveSendMsg numMessageParts > 255 then return"); return; } ulSendIndex = 0; SmsSend_get_config_data(&sms_parameter); if ((EmsMesg->pHeader->messageTypeHeader.smsHeader.encoding == EEncodingGSM7Bit) || (EmsMesg->pHeader->messageTypeHeader.smsHeader.encoding == EEncoding7BitASCII)) { sms_parameter.dcs = MFW_DCS_7bits; } else if ((EmsMesg->pHeader->messageTypeHeader.smsHeader.encoding == EEncodingUCS2) || (EmsMesg->pHeader->messageTypeHeader.smsHeader.encoding == EEncodingUNICODE)) { sms_parameter.dcs = MFW_DCS_UCS2; } else if ((EmsMesg->pHeader->messageTypeHeader.smsHeader.encoding == EEncoding8BitASCII) || (EmsMesg->pHeader->messageTypeHeader.smsHeader.encoding == EEncodingGSM8Bit)) { sms_parameter.dcs = MFW_DCS_8bits; } else { //xmzhou_trace_string_value("EMS_RetriveSendMsg error encoding = ", // EmsMesg->pHeader->messageTypeHeader.smsHeader.encoding); return; } SmsSend_set_dcs_number (&sms_parameter); ems_submit(mr, numSeg); return; } //CRR: 25302 - xpradipg 10 Nov 2004 /******************************************************************************* $Function: EmsSend_PHBK_exec_cb $Description: Populates the text structure with the phone Number and sends an event to update the editor buffer $Returns: $Arguments: *******************************************************************************/ void EmsSend_PHBK_exec_cb(T_MFW_HND win, USHORT event, void *parameter) { #ifdef NEW_EDITOR T_ATB_TEXT text; /* Used to insert phone numbers into editors */ #endif TRACE_FUNCTION ("EmsSend_PHBK_exec_cb()"); switch (event) { /* SPR#1428 - SH - New Editor changes. Insert phone number into editor */ #ifdef NEW_EDITOR case MMS_EMS_PHBK_NUMBER: /* Service centre number */ text.dcs = ATB_DCS_ASCII; text.len = strlen((char *)parameter); text.data = (UBYTE *)parameter; SEND_EVENT(number_edit, E_ED_INSERT, 0, (void *)&text); break; #endif /* NEW_EDITOR */ break; default: TRACE_EVENT("Err: Default"); break; } } static void EMSCreate_SEND_edit_cb( T_MFW_HND win, USHORT Identifier,UBYTE reason) { T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; T_DISPLAY_DATA display_info; char temp[100]; T_MFW_HND parent_win, parent_parent_win;// xrashmic 13 Sep, 2004 MMI-SPR-24744 TRACE_EVENT_P1("EMSCreate_SEND_edit_cb() %d", Identifier); switch (reason) { case INFO_KCD_LEFT: // confirm (press LEFT soft key) if (Identifier==E_MODE_TOPIC) { // subject input TRACE_EVENT_P1("topic: %s",topic); SEND_EVENT(win,E_MODE_NUMBER, 0, 0); // wait for getting number (below) and do it all together. } else if (Identifier==E_MODE_NUMBER) { // phone number input TRACE_EVENT_P2("topic: %s, number: %s",topic,EmsNumber); //After phone number OK, retrive and send EMS if (gEmsMsgId != MM_INVALID_MESSAGE_ID) { EMS_RetriveSendMsg(gEmsMsgId); //xmzhou_trace_string("EMS_RetriveSendMsg return"); } else { //xmzhou_trace_string("EMSCreate_SEND_edit_cb MM_INVALID_MESSAGE_ID error!!!"); } // xrashmic 13 Sep, 2004 MMI-SPR-24744 // Geting the Options and the Message preview screen. parent_win= MMI_ParentWindow(win); parent_parent_win= MMI_ParentWindow(parent_win); MMI_DestoryWindow(win); //This deletes the number entry screen // xrashmic 13 Sep, 2004 MMI-SPR-24744 // Deleting the Options and the Message preview screens. MMI_DestoryWindow(parent_win); MMI_DestoryWindow(parent_parent_win); //CRR: 25302 - xpradipg 10 Nov 2004 //the number editor needs to be destroyed explicitly AUI_edit_Destroy(number_edit); } else { TRACE_EVENT_P1("text: %s",text); ems_g_safeString.size=2*(strlen(text)+1); //ems_g_safeString.memHeader.freeFunc = DummyFreeFunc; ems_g_safeString.memHeader.freeFunc = Free_MMISafeString; MMS_ConvertStringToUcs2((const MByte *)(text), strlen(text), ems_g_insertString); ems_g_safeString.pString = ems_g_insertString; DAL_PostMessage(EMG4_InsertString, EMG4_Type_NotUsed, (MESSAGE_PARAM)&ems_g_safeString, 0); MMI_DestoryWindow(win); } break; //CRR: 25302 - xpradipg 10 Nov 2004 //the alternate left softkey event is handled for the number entry screen case INFO_KCD_ALTERNATELEFT: bookPhonebookStart(win, PhbkFromMms); break; case INFO_KCD_RIGHT: case INFO_KCD_HUP: //CRR: 25302 - xpradipg 10 Nov 2004 //the number editor needs to be destroyed explicitly AUI_edit_Destroy(number_edit); MMI_DestoryWindow(win); break; default: TRACE_EVENT("Err: Default"); break; } } /******************************************************************************* $Function: EMSCreate_SEND_exec_cb $Description: Callback handler for events sent by the window itself $Returns: none $Arguments: win - current window event - event id parameter - optional data. *******************************************************************************/ //CRR: 25302 - xpradipg 10 Nov 2004 //added new parameter Identifier - optional - but helps decode the data static void EMSCreate_SEND_exec_cb(T_MFW_HND win, USHORT event, USHORT Identifier,void *parameter) { T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; T_AUI_EDITOR_DATA editor_data; TRACE_FUNCTION ("EMSCreate_SEND_exec_cb()"); //xmzhou_trace_string_value("EMSCreate_SEND_exec_cb called", event); switch (event) { case MWM_CREATE: break; case E_MODE_TOPIC: AUI_edit_SetDefault(&editor_data); AUI_edit_SetDisplay(&editor_data, ZONE_FULL_SK_TITLE_SCROLL, COLOUR_EDITOR, EDITOR_FONT); AUI_edit_SetEvents(&editor_data, E_MODE_TOPIC, TRUE, FOREVER, (T_AUI_EDIT_CB)EMSCreate_SEND_edit_cb); AUI_edit_SetTextStr(&editor_data, TxtSoftOK, TxtDelete, TxtTopics, NULL); AUI_edit_SetAltTextStr(&editor_data, 0, NULL, TRUE, TxtSoftBack); AUI_edit_SetMode(&editor_data,ED_MODE_ALPHA, ED_CURSOR_UNDERLINE); //void AUI_edit_SetBuffer(T_AUI_EDITOR_DATA *editor_data, UBYTE dcs, UBYTE *text, USHORT size) //void AUI_edit_SetBuffer(T_AUI_EDITOR_DATA *editor_data, UBYTE dcs, UBYTE *text, USHORT size); AUI_edit_SetBuffer(&editor_data, ATB_DCS_ASCII,(UBYTE*) topic, sizeof(topic)); editor = AUI_edit_Start(win, &editor_data); break; case E_MODE_NUMBER: TRACE_EVENT("enter number"); //CRR: 23942 - xpradipg 26 Aug 2004 //comment the hardcoded string. This will display an empty number editor. //strcpy(EmsNumber,"01792910943");//"13816687053");//13801639314//01792910943 //CRR: 25302 - xpradipg 10 Nov 2004 //the changes are made to hold the alternate softkey and functionality //for the same AUI_edit_SetDefault(&editor_data); AUI_edit_SetDisplay(&editor_data, PHNO_EDITOR, COLOUR_EDITOR_XX, EDITOR_FONT); AUI_edit_SetEvents(&editor_data, E_MODE_NUMBER, FALSE, FOREVER, (T_AUI_EDIT_CB)EMSCreate_SEND_edit_cb); AUI_edit_SetTextStr(&editor_data, TxtSend, TxtDelete, TxtSmsEnterNumber, NULL); AUI_edit_SetAltTextStr(&editor_data, 1, TxtNames, TRUE, TxtSoftBack); //AUI_edit_SetMode(&editor_data,ED_MODE_ALPHA, ED_CURSOR_UNDERLINE); AUI_edit_SetMode(&editor_data,0, ED_CURSOR_UNDERLINE); memset(EmsNumber,'\0',sizeof(EmsNumber)); AUI_edit_SetBuffer(&editor_data, ATB_DCS_ASCII, (UBYTE*)EmsNumber, sizeof(EmsNumber)); number_edit = AUI_edit_Start(win, &editor_data); #if 0 AUI_edit_SetDefault(&editor_data); AUI_edit_SetDisplay(&editor_data, PHNO_EDITOR, COLOUR_EDITOR_XX, EDITOR_FONT); AUI_edit_SetEvents(&editor_data, SMSSEND_ID_NBEDIT, FALSE, FOREVER, (T_AUI_EDIT_CB)SmsSend_NBEDIT_edit_cb); AUI_edit_SetTextStr(&editor_data, TxtSend, TxtDelete, TxtSmsEnterNumber, NULL); AUI_edit_SetAltTextStr(&editor_data, 1, TxtNames, TRUE, TxtSoftBack); AUI_edit_SetMode(&editor_data, 0, ED_CURSOR_UNDERLINE); AUI_edit_SetBuffer(&editor_data, ATB_DCS_ASCII, parent_data->edt_data.NumberBuffer, PHB_MAX_LEN); parent_data->number_editor = AUI_edit_Start(parent_data->win, &editor_data); #endif break; case E_MODE_TEXT: TRACE_EVENT("enter text"); AUI_edit_SetDefault(&editor_data); AUI_edit_SetDisplay(&editor_data, ZONE_FULL_SK_TITLE_SCROLL, COLOUR_EDITOR, EDITOR_FONT); AUI_edit_SetEvents(&editor_data, E_MODE_TEXT, TRUE, FOREVER, (T_AUI_EDIT_CB)EMSCreate_SEND_edit_cb); AUI_edit_SetTextStr(&editor_data, TxtSoftOK, TxtDelete, TxtMessage, NULL); AUI_edit_SetAltTextStr(&editor_data, 0, NULL, TRUE, TxtSoftBack); AUI_edit_SetMode(&editor_data,ED_MODE_ALPHA, ED_CURSOR_UNDERLINE); //CRR: 23942 - xpradipg 26 Aug 2004 //reset the text buffer memset(text,'\0',MAX_EMS_TEXT_LEN); AUI_edit_SetBuffer(&editor_data, ATB_DCS_ASCII, (UBYTE*)text, sizeof(text)); editor = AUI_edit_Start(win, &editor_data); break; //CRR :25302 - xpradipg 10 Nov 2004 case MMS_EMS_PHBK_NUMBER: // TRACE_EVENT("calling MmsSend_PHBK_exec_cb() from MmsCreate_send_exec_cb()"); EmsSend_PHBK_exec_cb(number_edit, event, parameter); break; case MWM_ONDRAW: break; case MWM_DESTORY: break; default: TRACE_EVENT("Err: Default"); break; } } /******************************************************************************* $Function: MMSCreate_SEND_start $Description: Create SMS send window $Returns: execution status $Arguments: parent_window - parent window. UserData - SMS data *******************************************************************************/ T_MFW_HND EMSCreate_SEND_start(T_MFW_HND parent_window, void *UserData) { T_MFW_HND win; TRACE_FUNCTION ("EMSCreate_SEND_start()"); win=MMI_CreateWindow(parent_window, (T_DIALOG_FUNC) EMSCreate_SEND_exec_cb, (void*)UserData,0, 0,0); if(UserData) SEND_EVENT(win, (USHORT)UserData, 0, 0); return win; } #define MMS_CREATE_OPTION /******************************************************************************* $Function: MMSCreate_OPTexeSend $Description: Called when the user press send in the Option menu $Returns: event status. $Arguments: m - pointer to menu. i - index if selected menu item. *******************************************************************************/ static int EMSCreate_OPTexeSend(MfwMnu* m, MfwMnuItem* i) { T_MFW_HND win = mfwParent(mfw_header()); DAL_PostMessage(EMG4_SaveMsg, EMG4_Type_NotUsed, 0, 0); EMSCreate_SEND_start(win, (void*)E_MODE_NUMBER); } /******************************************************************************* $Function: EMSCreate_OPTexeInsPreDefPicture $Description: Displays list of the pre-defined pictures for EMS //xrashmic 7 Dec, 2004 MMI-SPR-23965 $Returns: $Arguments: *******************************************************************************/ static int EMSCreate_OPTexeInsPreDefPicture(MfwMnu* m, MfwMnuItem* i) { T_MFW_HND win = mfwParent(mfw_header()); // MMSom_start(win, (MfwMnuAttr *) MMS_INSERT_PICTURE); // pinghua modify for test EMS MMSom_start(win, (MfwMnuAttr *) EMS_INSERT_PICTURE); } /******************************************************************************* $Function: EMSCreate_OPTexeInsPicture $Description: Displays list of the user-defined pictures for EMS //xrashmic 7 Dec, 2004 MMI-SPR-23965 $Returns: $Arguments: *******************************************************************************/ static int EMSCreate_OPTexeInsPicture(MfwMnu* m, MfwMnuItem* i) { T_MFW_HND win = mfwParent(mfw_header()); MMSom_start(win, (MfwMnuAttr *) EMS_INSERT_PICTURE_USR); } /******************************************************************************* $Function: EMSCreate_OPTexeInsPreDefSound $Description: Displays list of the pre-defined sound for EMS //xrashmic 7 Dec, 2004 MMI-SPR-23965 $Returns: $Arguments: *******************************************************************************/ static int EMSCreate_OPTexeInsPreDefSound(MfwMnu* m, MfwMnuItem* i) { T_MFW_HND win = mfwParent(mfw_header()); // MMSom_start(win, (MfwMnuAttr *) MMS_INSERT_SOUND); // pinghua modify for test EMS!! MMSom_start(win, (MfwMnuAttr *) EMS_INSERT_SOUND); } /******************************************************************************* $Function: EMSCreate_OPTexeInsSound $Description: Displays list of the user-defined sound for EMS //xrashmic 7 Dec, 2004 MMI-SPR-23965 $Returns: $Arguments: *******************************************************************************/ static int EMSCreate_OPTexeInsSound(MfwMnu* m, MfwMnuItem* i) { T_MFW_HND win = mfwParent(mfw_header()); MMSom_start(win, (MfwMnuAttr *) EMS_INSERT_SOUND_USR); } static int EMSCreate_OPTexeInsText(MfwMnu* m, MfwMnuItem* i) { T_MFW_HND win = mfwParent(mfw_header()); EMSCreate_SEND_start(win, (void*)E_MODE_TEXT); } static int EMSCreate_OPTexeSave(MfwMnu* m, MfwMnuItem* i) { DAL_PostMessage(EMG4_SaveMsg, EMG4_Type_NotUsed, 0, 0); // xreddymn Nov-27-2004 MMI-SPR-25278 g_inSaveMode=TRUE; //xrashmic 08 Feb, 2005 MMI-SPR-27853 //Added few more parameters for this function g_inSaveModeWin = information_dialog(TxtPleaseWait,TxtNull,NULL,NULL, TxtNull,TxtNull,FOREVER,0,NULL); } #if 0 static int MMSCreate_OPTexeInsSlide(MfwMnu* m, MfwMnuItem* i) { TRACE_EVENT("insert pic into OM"); M4_InsertPicObjectIntoOM(); } #endif /******************************************************************************* $Function: MMSCreate_OPT_exec_cb $Description: Exec callback function for the Option window $Returns: none $Arguments: win - current window event - event id value - unique id parameter - optional data. *******************************************************************************/ void EMSCreate_OPT_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter) /* callback handler for events sent to to trigger execution */ { T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; TRACE_FUNCTION ("MMSCreate_OPT_exec_cb()"); //xmzhou_trace_string_value("EMSCreate_OPT_exec_cb called", event); switch (event) { case MWM_CREATE: TRACE_EVENT("MWM_CREATE"); /* initialization of administrative data */ winShow(win); break; case MWM_ONDRAW: dspl_ClearAll(); displaySoftKeys(TxtSoftOK,TxtSoftBack); break; case MWM_DESTORY: //xmzhou_trace_string("action_EMS_ResumeEditor in EMSCreate_OPT_exec_cb called"); // xreddymn Sep-14-2004 MMI-SPR-24735: EMS editor is now resumed in EMSCreate_exec_cb // action_EMS_ResumeEditor(); break; default: return; } } /******************************************************************************* $Function: MMSCreate_OPT_start $Description: Start the creation of the main window for Create MMS $Returns: mfw window handler $Arguments: parent_window - Parent window handler menuAttr - Menu attributes. $Authors : pinghua add for EMS test *******************************************************************************/ T_MFW_HND EMSCreate_OPT_start(T_MFW_HND parent_window, MfwMnuAttr *menuAttr) { TRACE_FUNCTION ("SmsRead_R_start()"); // xreddymn Sep-14-2004 MMI-SPR-24735: EMS editor is now suspended in EMSCreate_exec_cb // action_EMS_SuspendEditor(); return MMI_CreateWindow(parent_window, (T_DIALOG_FUNC)EMSCreate_OPT_exec_cb,(void*)menuAttr, (T_MFW_CB)0, &EMSCreate_OPTAttrib,0); } static void EMSCreate_Delete_cb(T_MFW_HND win, UBYTE identifier, UBYTE reason) { TRACE_FUNCTION("EMSCreate_Delete_cb"); switch (reason) { case INFO_KCD_LEFT: switch(identifier) { case EMS_DELETE_PICTURE: DAL_PostMessage(EMG4_Edit,EMG4_Type_NotUsed,0,NULL); DAL_PostMessage(EMG4_DeleteObject,EMG4_Type_NotUsed, EDeleteImage,NULL); break; case EMS_DELETE_SOUND: DAL_PostMessage(EMG4_Edit,EMG4_Type_NotUsed,0,NULL); DAL_PostMessage(EMG4_DeleteObject,EMG4_Type_NotUsed, EDeleteAudio,NULL); break; case EMS_DELETE_TEXT: DAL_PostMessage(EMG4_Edit,EMG4_Type_NotUsed,0,NULL); DAL_PostMessage(EMG4_DeleteObject,EMG4_Type_NotUsed, EDeleteText,NULL); break; } MMI_DestoryWindow(win); break; case INFO_KCD_HUP: case INFO_KCD_RIGHT: case INFO_KCD_CLEAR: MMI_DestoryWindow(win); break; default: break; } } static int EMSCreate_OPTexeDelPicture(MfwMnu* m, MfwMnuItem* i) { T_MFW_HND win = mfwParent(mfw_header()); T_DISPLAY_DATA display_info; dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtSoftBack, TxtPressOk, TxtDelete, COLOUR_STATUS); dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)EMSCreate_Delete_cb, FOREVER, KEY_LEFT |KEY_RIGHT|KEY_CLEAR|KEY_HUP); display_info.Identifier=EMS_DELETE_PICTURE; info_dialog (win, &display_info); } static int EMSCreate_OPTexeDelSound(MfwMnu* m, MfwMnuItem* i) { T_MFW_HND win = mfwParent(mfw_header()); T_DISPLAY_DATA display_info; dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtSoftBack, TxtPressOk, TxtDelete, COLOUR_STATUS); dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)EMSCreate_Delete_cb, FOREVER, KEY_LEFT |KEY_RIGHT|KEY_CLEAR|KEY_HUP); display_info.Identifier=EMS_DELETE_SOUND; info_dialog (win, &display_info); } static int EMSCreate_OPTexeDelText(MfwMnu* m, MfwMnuItem* i) { T_MFW_HND win = mfwParent(mfw_header()); T_DISPLAY_DATA display_info; dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtSoftBack, TxtPressOk, TxtDelete, COLOUR_STATUS); dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)EMSCreate_Delete_cb, FOREVER, KEY_LEFT |KEY_RIGHT|KEY_CLEAR|KEY_HUP); display_info.Identifier=EMS_DELETE_TEXT; info_dialog (win, &display_info); } #if 0 void FUN_TRACE_EVENT(char * text, unsigned long param) { TRACE_EVENT_P1(text, param); } #endif /******************************************************************************* $Function: ems_cb $Description: Call back for ems_dialog xrashmic 13 Sep, 2004 MMI-SPR-24744 $Returns: None. $Arguments: *******************************************************************************/ static void ems_cb(T_MFW_HND win, USHORT identifier, USHORT reason) { TRACE_FUNCTION("ems_cb"); } /******************************************************************************* $Function: ems_dialog $Description: To display the indication of EMS sent xrashmic 13 Sep, 2004 MMI-SPR-24744 $Returns: None. $Arguments: *******************************************************************************/ void ems_dialog(USHORT TxtId1, USHORT TxtId2, USHORT SoftKeyTxtId1, USHORT SoftKeyTxtId2, int timer) { T_DISPLAY_DATA display_info; T_MFW_HND parent_win = mfwParent(mfw_header()); T_MFW_HND win; TRACE_FUNCTION("ems_dialog"); dlg_initDisplayData_TextId( &display_info, SoftKeyTxtId1, SoftKeyTxtId2, TxtId1, TxtId2, COLOUR_WAP_POPUP); dlg_initDisplayData_events( &display_info,(T_VOID_FUNC)ems_cb, timer, KEY_RIGHT); display_info.Identifier = 0; win=info_dialog(parent_win, &display_info); win_show(win); dspl_Enable(1); return; } #undef MMI_MMSCREATE_C