FreeCalypso > hg > fc-magnetite
view src/aci2/bmi/mmiMmsCreate.c @ 662:8cd8fd15a095
SIM speed enhancement re-enabled and made configurable
TI's original code supported SIM speed enhancement, but Openmoko had it
disabled, and OM's disabling of speed enhancement somehow caused certain
SIM cards to start working which didn't work before (OM's bug #666).
Because our FC community is much smaller in year 2020 than OM's community
was in their day, we are not able to find one of those #666-affected SIMs,
thus the real issue they had encountered remains elusive. Thus our
solution is to re-enable SIM speed enhancement and simply wait for if
and when someone runs into a #666-affected SIM once again. We provide
a SIM_allow_speed_enhancement global variable that allows SIM speed
enhancement to be enabled or disabled per session, and an /etc/SIM_spenh
file in FFS that allows it to enabled or disabled on a non-volatile
basis. SIM speed enhancement is now enabled by default.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 24 May 2020 05:02:28 +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: MmiMMSCreate.h $Revision: 1.0 $Author: Yan Bin(bin-yan@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 Nov 05, 2005 REF: OMAPS00049502 Sumanth Kumar. C Description: MMS: During MMS Reply, Enter Number shows Empty. Solution: Senders number is extracted from the Message Header and is displayed. xrashmic 17 Jun, 2005 MMI-SPR-29992 For sending MMS on CHT sim, the FROM address should be NULL. May 11 2005 REF: MMI-SPR-29887 x0012849 To Implement the deferred MMS retrieval. xreddymn Mar-08-2005, MMI-SPR-28820 Fix for flickering issue (drawing occuring more than once) when forwarding MMS and creating new MMS xreddymn Feb-07-2005, MMI-SPR-28277 Fix for blank content on entering the MMS Editor-Viewer when forwarding MMS messages. xreddymn Mar-04-2005 MMI-SPR-26144 Added changes for cancel sending MMS xrashmic 08 Feb, 2005 MMI-SPR-27853 Error handling in sending MMS and also displaying the progress value x0012849 Feb- 03 -2005 : MMI-SPR-28224 To allow user to scroll up and down if contents of MMS are bigger than screen size. xrashmic 14 Dec, 2004 MMI-SPR-23921 Implementing the forward functionality for MMS xrashmic 30 Nov, 2004 MMI-SPR-26145 xrashmic 22 Dec, 2004 MMI-SPR-27798 Moving the MMS to sent folder after it is sent xrashmic 3 Nov, 2004 MMI-SPR-26145 Deleting the compose and option window after sending the MMS 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 from the phonebook while sending MMS/EMS. Solution: The new feature to select the number from phonebook while sending MMS/EMS is added xrashmic 9 Nov, 2004 MMI-SPR-26147 Description: The inserted text in the MMS message was not editable and the text editor was limited to a maximum of 32 characters. Solution: The text buffer is memset to '\0' only once at the time of MMS create - MWM_CREATE and increased the editor max size to 512. xrashmic 6 Oct, 2004 MMI-SPR-25147 MMS not saving to unsent folder for all scenarios. MMI-SPR-24735: Sep-16-2004 - xreddymn Changes related to EMS screen flickering issue MMI-SPR-24733, Sep-17-2004 - xreddymn Modified case MWM_REFRESH to prevent edit mode being disabled 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. xreddymn 03 Sep, 2004 Display issue MMI-SPR-23961 related changes: Modified suspend and resume operation of MMS editor CRR:23923 - xpradipg 06 Sept 2004 Description: MMS Preview not working Solution: The preview is displayed in a new window by posting the appropriate events to MMS client 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 xreddymn 20 Aug, 2004 Display issue MMI-SPR-23926 (TII_MMS12) and MMI-SPR-24115 (TII_MMS55): Added mechanism to prevent MMS/EMS display, while outside the MMS/EMS editor MMS save issue MMI-SPR-24113 (TII_MMS53): Prevented creation of entries for unsaved messages on pressing back from MMS editor xrashmic 19 Aug, 2004 Bug: 2, 3, 36 and 42 All the status screen, .i.e sending, receiving etc. are displayed separatly for the MMS module. Previously the WAP screens were being used. Bug Id 23 : 16 Aug, 2004 - xpradipg Description:Remove insert slide from 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 "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" //CRR: 25302 - xpradipg 10 Nov 2004 #include "mmiSmsMenu.h" #include "mmismssend.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 "AUIWap.h" //xmzhou02 to include definition for ALL_WIN & WAP_MMS //GW 29/11/01 - added header file - removed extern void callNumber(UBYTE* number); MfwWin* getWinData( MfwHnd win); //xrashmic 19 Aug, 2004 Bug: 2, 3, 36 and 42 extern int MMSactive; extern void M4_DebugMessage(unsigned long para); //CRR:23923 - xpradipg 06 Sept 2004 extern int MMSBox_Read_kbd_cb (MfwEvt e, MfwKbd *k); //xrashmic 30 Nov, 2004 MMI-SPR-26145 //xrashmic 20 Dec, 2004 MMI-SPR-23921 T_MFW_HND mms_create_opt_hnd=NULL; T_MFW_HND mms_create_hnd=NULL; //xrashmic 14 Dec, 2004 MMI-SPR-23921 T_MFW_HND mms_Fwdcreate_hnd=NULL; extern MM_S_MESSAGE_HEADER_LIST* g_pMessageHeaderList; extern int g_currentMessage; MM_S_MESSAGE_HEADER *fwd_msg_header; /********************************************************************* DYNAMIC MENU WINDOW. DECLARATION **********************************************************************/ static int MMSCreate_OPTexeSend(MfwMnu* m, MfwMnuItem* i); static int MMSCreate_OPTexeInsPicture(MfwMnu* m, MfwMnuItem* i); static int MMSCreate_OPTexeInsSound(MfwMnu* m, MfwMnuItem* i); static int MMSCreate_OPTexeInsText(MfwMnu* m, MfwMnuItem* i); static int MMSCreate_OPTexeInsSlide(MfwMnu* m, MfwMnuItem* i); static int MMSCreate_OPTexeDelPicture(MfwMnu* m, MfwMnuItem* i); static int MMSCreate_OPTexeDelSound(MfwMnu* m, MfwMnuItem* i); static int MMSCreate_OPTexeDelText(MfwMnu* m, MfwMnuItem* i); static int MMSCreate_OPTexeSave(MfwMnu* m, MfwMnuItem* i); //CRR:23923 - xpradipg 06 Sept 2004 static int MMSCreate_OPTpreviewMsg(MfwMnu* m, MfwMnuItem* i); static MfwMnuItem MMSCreate_OPTDeleteItems [] = { {0,0,0,(char *)TxtMMSDeletePicture,0,(MenuFunc)MMSCreate_OPTexeDelPicture,item_flag_none}, {0,0,0,(char *)TxtMMSDeleteSound,0,(MenuFunc)MMSCreate_OPTexeDelSound,item_flag_none}, {0,0,0,(char *)TxtMMSDeleteText,0,(MenuFunc)MMSCreate_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 */ MMSCreate_OPTDeleteItems, /* with these items */ sizeof(MMSCreate_OPTDeleteItems)/sizeof(MfwMnuItem), /* number of items */ COLOUR_LIST_SMS, TxtNull, MNUATTRSPARE }; static MfwMnuItem MMSCreate_OPTItems [] = { {0,0,0,(char *)TxtSend,0,(MenuFunc)MMSCreate_OPTexeSend,item_flag_none}, {0,0,0,(char *)TxtMMSInsertPicture,0,(MenuFunc)MMSCreate_OPTexeInsPicture,item_flag_none}, {0,0,0,(char *)TxtMMSInsertSound,0,(MenuFunc)MMSCreate_OPTexeInsSound,item_flag_none}, {0,0,0,(char *)TxtMMSInsertText,0,(MenuFunc)MMSCreate_OPTexeInsText,item_flag_none}, //Bug Id 23 : 16 Aug, 2004 - xpradipg //Description:Remove insert slide from options menu //{0,0,0,(char *)TxtMMSInsertSlide,0,(MenuFunc)MMSCreate_OPTexeInsSlide,item_flag_none}, {0,0,0,(char *)TxtSave,0,(MenuFunc)MMSCreate_OPTexeSave,item_flag_none}, {0,0,0,(char *)TxtMMSDelete,&MMSCreate_OPTDeleteAttrib,0,item_flag_none}, //CRR:23923 - xpradipg 06 Sept 2004 //Added the functionality for preview message //xrashmic 6 Oct, 2004 MMI-SPR-25147 //Since the Compose screen itself is in preview mode, no need for this //in the options menu // {0,0,0,(char *)TxtMMSPreview,0,(MenuFunc)MMSCreate_OPTpreviewMsg,item_flag_none} }; static MfwMnuAttr MMSCreate_OPTAttrib = { &SmsRead_R_OPTArea, MNU_LEFT | MNU_LIST | MNU_CUR_LINE, /* centered page menu */ -1, /* use default font */ MMSCreate_OPTItems, /* with these items */ sizeof(MMSCreate_OPTItems)/sizeof(MfwMnuItem), /* number of items */ COLOUR_LIST_SMS, TxtNull, MNUATTRSPARE }; #if 1 // bernards bbssoo 25.9.2003 begin typedef enum { MMI2_NEW_MSG= -9, MMI2_DELETE_MSG, MMI2_STORE_MSG_HDR, MMI2_SEND_MSG, MMI2_GET_MSG, MMI2_FWD_MSG, MMI2_PROCESSACK }MMI2_EVT_TYPE; typedef struct { EVT_STRUCT evtStruct; MMI2_EVT_TYPE eType; }MMI2_EVT_STRUCT; typedef MMI2_EVT_STRUCT* MMI2_EVT_HANDLE; static ESTATUS MMI_2_EventHandler(EVENT_ID aeId, EVENT_TYPE aeType, MESSAGE_PARAM ampParam, EVT_HANDLE evtHandle); MM_S_MESSAGE_HEADER *msgHeader=NULL; // ronaldc 9-4 to 9-5: add start MM_S_MESSAGE_HEADER g_msg_header; EVT_STRUCT g_event_struct; EVT_STRUCT g_doc_event_struct; MM_MESSAGE_ID g_msg_id; EV_S_NEWSLIDE_INFO g_NewSlideInfo; UCS2 g_insertString[128] = {'t','e','s','t',0}; MSafeString g_safeString; BOOL g_inSendMode=FALSE; //xreddymn Aug-16-2004 MMI-SPR-23926 (TII_MMS12) and MMI-SPR-24115 (TII_MMS55): To keep track of MMS display BOOL g_M4_display_active=FALSE; //xreddymn Aug-18-2004 MMI-SPR-24113 (TII_MMS53): To keep track of saved messages BOOL g_M4_message_saved=FALSE; BOOL g_inSaveMode=FALSE; //xreddymn Aug-26-2004 extern UINT8 gucMmsTitleBarHeight; //xreddymn Nov-26-2004 MMI-SPR-25278 T_MFW_HND g_inSaveModeWin; //xrashmic 08 Feb, 2005 MMI-SPR-27853 extern void AUI_mms_status_notify(int status); //xrashmic 9 Nov, 2004 MMI-SPR-26147 static char text[MAX_MMS_TEXT_LEN]; //xreddymn Feb-02-2005 MMI-SPR-28277: Used to trigger EMG4_Refresh when forwarding MMS BOOL gMmsForwardStart=FALSE; void DummyFreeFunc(void *pMemBlock) { return; } //xrashmic 08 Feb, 2005 MMI-SPR-27853 int progressValue=0; ESTATUS MMI_1_EventHandler(EVENT_ID aeId, EVENT_TYPE aeType, MESSAGE_PARAM ampParam, EVT_HANDLE evtHandle) { M4_DebugMessage((unsigned long) 0x9700); M4_DebugMessage((unsigned long) aeId); M4_DebugMessage((unsigned long) aeType); M4_DebugMessage((unsigned long) ampParam); M4_DebugMessage((unsigned long) evtHandle); switch(aeId) { #if 0 case EMG4_PlayComplete: switch(MMI1EvtHandle->mmievtType) { case MMI1_EV_PLAY_MSG: // Message has finished playing, so tell user thru EV window aPoint.uX = 0; aPoint.uY = 0; DeviceClearOffscreenBuffer(); DAL_DrawText(&aPoint, _T("(End of show)"), 13, afmStyle, &aColour); DeviceUpdateScreen(); break; }; break; case EMG4_PreviewComplete: switch(MMI1EvtHandle->mmievtType) { case MMI1_EV_CREATE_MSG: case MMI1_EV_OPEN_MSG: /*Call Preview Routine to post end Preview */ if(l_bIsPreview) { MMI_1_Preview(g_hwndMMI1); } break; default: break; }; break; #endif /********************* Editor Viewer CallBacks *********************/ case EMG4_FileOpDone: M4_DebugMessage((unsigned long) 0x9701); // xreddymn Feb-02-2005 MMI-SPR-28277: If forwarding an MMS message, post EMG4_Refresh if(gMmsForwardStart == TRUE) { // xreddymn Mar-08-2005 MMI-SPR-28820: change sequence of posting // EMG4_Preview and EMG4_Resume action_PreviewMessage(); action_ResumeEditor(); gMmsForwardStart = FALSE; } if (g_inSendMode == TRUE) { M4_DebugMessage((unsigned long) 0x9702); //xrashmic 08 Feb, 2005 MMI-SPR-27853 //Indicate the saving is done and sending has started // xreddymn Mar-04-2005 MMI-SPR-26144 // MMS send progress is updated by WAP FSM // progressValue=0; // AUI_mms_status_notify(MMS_SEND_PROGRESS); MMI_2_OnSendMessage(); //xrashmic 08 Feb, 2005 MMI-SPR-27853 //Indicate the saving is done and sending has started // progressValue=0; // AUI_mms_status_notify(MMS_SEND_PROGRESS); g_inSendMode=FALSE; // xreddymn Aug-18-2004 MMI-SPR-24113 (TII_MMS53): To keep track of saved messages g_M4_message_saved=TRUE; } // xreddymn Aug-18-2004 MMI-SPR-24113 (TII_MMS53): To keep track of saved messages if(g_inSaveMode == TRUE) { winDelete(g_inSaveModeWin); g_inSaveMode=FALSE; g_M4_message_saved=TRUE; // xreddymn Nov-27-2004 MMI-SPR-25278: Display "Saved" dialog here //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); } break; // xrashmic Nov-17-2004 MMI-SPR-25278: Changes for FFS error handling case EMG4_OpError: { MDword reason; // xreddymn Feb-02-2005 MMI-SPR-28277: If forwarding an MMS message and OpenDocument fails, reset gMmsForwardStart if(gMmsForwardStart==TRUE) { gMmsForwardStart=FALSE; } if(g_inSaveMode == TRUE) { winDelete(g_inSaveModeWin); g_inSaveMode=FALSE; g_M4_message_saved=FALSE; } reason = (ampParam & 0x3FFF); switch(reason) { case EFileOpFailed: //xrashmic 08 Feb, 2005 MMI-SPR-27853 //When sending MMS if there are file op erros, we need to handle them here if (g_inSendMode == TRUE) { g_inSendMode=FALSE; AUI_mms_status_notify(MMS_SEND_FAIL); } else { // xreddymn Nov-27-2004 MMI-SPR-25278: Display "Error" dialog here //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; default: break; } return ENoError; } ESTATUS Handler_MM_CreateMessageEntryAsync(EVENT_ID aeId, EVENT_TYPE aeType, MESSAGE_PARAM ampParam, EVT_HANDLE evtHandle) { ESTATUS eStatus; // TRACE_EVENT("MAGIC4: Handler_MM_CreateMessageEntryAsync()"); g_msg_id = (MM_MESSAGE_ID) ampParam; M4_DebugMessage((unsigned long) 0x30000); M4_DebugMessage((unsigned long) g_msg_id); g_doc_event_struct.handler = MMI_1_EventHandler; g_doc_event_struct.parentEvtHandle = NULL; g_doc_event_struct.pData = NULL; g_doc_event_struct.userFlag = 0; eStatus=EV_CreateDocument(&g_doc_event_struct, EMtMmsSmil, g_msg_id); if (eStatus!=ENoError) { M4_DebugMessage((unsigned long) 0x34000); M4_DebugMessage((unsigned long) eStatus); } g_NewSlideInfo.omh.freeFunc = DummyFreeFunc; // xreddymn Aug-27-2004 MMI-SPR-23919 (TII_MMS6): Modified slide duration to infinite // g_NewSlideInfo.slideDuration = 5000; g_NewSlideInfo.slideDuration = 0; g_NewSlideInfo.slidePosition = 1; // rvf_delay(10); DAL_PostMessage(EMG4_InsertNewSlide, EMG4_Type_NotUsed, (MESSAGE_PARAM)&g_NewSlideInfo, 0); #if 0 // rvf_delay(10); DAL_PostMessage(EMG4_InsertString, EMG4_Type_NotUsed, (MESSAGE_PARAM)g_TestString, 0); // rvf_delay(10); DAL_PostMessage(EMG4_SaveMsg, EMG4_Type_NotUsed, 0, 0); // rvf_delay(10); DAL_PostMessage(EMG4_Exit, EMG4_Type_NotUsed, 0, 0); // rvf_delay(10); #endif M4_DebugMessage((unsigned long) 0x30001); return ENoError; } void OrthusCreateMessageEntryAsync(void) { ESTATUS eResult; TRACE_EVENT("MAGIC4: OrthusCreateMessageEntryAsync()"); g_msg_header.memHdr.freeFunc = DummyFreeFunc; g_msg_header.id = MM_INVALID_MESSAGE_ID; g_msg_header.messageFlags = 0; g_msg_header.reference = 0; g_msg_header.read = EFalse; g_msg_header.complete = EFalse; g_msg_header.drmSet = EFalse; memset(&(g_msg_header.timestamp), 0, sizeof(MM_S_TIME_STAMP)); g_msg_header.timestamp.type = ETimestampAbsolute; g_msg_header.location = EMlDraft; g_msg_header.type = EMtMmsSmil; g_msg_header.messageTypeHeader.mmsHeader.pBccList = NULL; g_msg_header.messageTypeHeader.mmsHeader.pCcList = NULL; g_msg_header.messageTypeHeader.mmsHeader.pContentType = NULL; g_msg_header.messageTypeHeader.mmsHeader.pFrom = NULL; g_msg_header.messageTypeHeader.mmsHeader.pMmsTransactionId = NULL; g_msg_header.messageTypeHeader.mmsHeader.pServerMessageId = NULL; g_msg_header.messageTypeHeader.mmsHeader.pSubject = NULL; g_msg_header.messageTypeHeader.mmsHeader.pToList = NULL; g_msg_header.messageTypeHeader.mmsHeader.pUrl = NULL; g_msg_header.messageTypeHeader.mmsHeader.size = 0; g_msg_header.messageTypeHeader.mmsHeader.version = 1; g_msg_header.messageTypeHeader.mmsHeader.deliveryReport = EFalse; g_msg_header.messageTypeHeader.mmsHeader.readReport = EFalse; memset(&(g_msg_header.messageTypeHeader.mmsHeader.expiryTime), 0, sizeof(MM_S_TIME_STAMP)); memset(&(g_msg_header.messageTypeHeader.mmsHeader.currentDate), 0, sizeof(MM_S_TIME_STAMP)); g_msg_header.messageTypeHeader.mmsHeader.currentDate.type = ETimestampAbsolute; g_msg_header.messageTypeHeader.mmsHeader.expiryTime.type = ETimestampRelative; g_msg_header.messageTypeHeader.mmsHeader.priority = EMPnormal; g_msg_header.messageTypeHeader.mmsHeader.setDeferred = EFalse; g_msg_header.messageTypeHeader.mmsHeader.setRejected = EFalse; g_msg_header.messageTypeHeader.mmsHeader.expired = EFalse; g_msg_header.messageTypeHeader.mmsHeader.retrieved = EFalse; g_msg_header.messageTypeHeader.mmsHeader.readRemote = EFalse; g_event_struct.handler = Handler_MM_CreateMessageEntryAsync; g_event_struct.parentEvtHandle = NULL; g_event_struct.pData = NULL; g_event_struct.userFlag = 0; M4_DebugMessage((unsigned long) g_event_struct.handler); eResult = MM_CreateMessageEntryAsync((EVT_HANDLE) &g_event_struct, &g_msg_header); if(eResult!=ENoError) { TRACE_EVENT("MAGIC4: MM_CreateMessageEntryAsync() fail"); } // xreddymn Aug-18-2004 MMI-SPR-24113 (TII_MMS53): To keep track of when the MMS is saved else { g_M4_message_saved=FALSE; } g_safeString.memHeader.freeFunc = DummyFreeFunc; /*!< Pointer to memory deallocation function */ g_safeString.size=10; /*!< size of the string */ g_safeString.pString=g_insertString; /*!< Pointer to UCS2 string */ } /*************************************************************************/ /** Send the selected message... \param hWnd [in] Of this Window...i.e MMI_2 \return <???> /*************************************************************************/ BOOL MMI_2_OnSendMessage() { //MInt32 nSel=0; MMI2_EVT_HANDLE pHandle=NULL; ESTATUS eResult=ENoError; pHandle = (MMI2_EVT_HANDLE)malloc(sizeof(MMI2_EVT_STRUCT)); if(!pHandle) { //M4_SIM_DisplayError(hWnd,_T("Mem Alloc Error")); return TRUE; } pHandle->evtStruct.handler = MMI_2_EventHandler; pHandle->evtStruct.parentEvtHandle = NULL; pHandle->evtStruct.pData = NULL; pHandle->evtStruct.userFlag = 0; pHandle->eType = MMI2_SEND_MSG; M4_DebugMessage((unsigned long) 0x94001); eResult= TM_SendMessageAsync((EVT_HANDLE)pHandle, g_msg_id); M4_DebugMessage((unsigned long)g_msg_id); if(eResult!=ENoError) { //M4_SIM_ReportError(eResult,hWnd); free(pHandle); pHandle=NULL; } return TRUE; } /*********************/ //NM moved this function to mmimmsbox.c #if 0 UCS2 * MMS_ConvertStringToUcs2 (const MByte * const p8BitString, const MUint uLength, UCS2 * pUcs2String) { if ((UCS2 *) NULL == pUcs2String) { pUcs2String = (UCS2 *)MM_MALLOC(sizeof(UCS2) * (1 + uLength)); } if ((UCS2 *)NULL != pUcs2String) { register MUint uIndex; for (uIndex = 0; uIndex < uLength; ++uIndex) { pUcs2String[uIndex] = (UCS2)p8BitString[uIndex]; } pUcs2String[uIndex] = NULLCHAR; } return pUcs2String; } #endif /******************************************************************************* $Function: cancel_TMsend $Description: Posts MMS send cancel to MMS client $Returns: none $Arguments: none *******************************************************************************/ //xrashmic 26144 void cancel_TMsend(void) { char temp[100]; ESTATUS eResult=ENoError; TRACE_EVENT("cancelSendingMMS"); sprintf(temp, "####cancelSendingMMS"); M4_DebugStringMessage(temp, strlen(temp), 0); eResult= TM_SendMessageCancel( g_msg_id); if(eResult!=ENoError) { sprintf(temp, "####cancelSendingMMS done"); M4_DebugStringMessage(temp, strlen(temp), 0); } } //May 17 2005 REF: MMI-SPR-29887 x0012849 // Called when user cancels the recieving operation void cancel_TMrecieve(void) { ESTATUS eResult=ENoError; TRACE_EVENT("cancel_TMrecieve"); eResult= TM_GetMessageCancel ( g_pMessageHeaderList->ppList[g_currentMessage].id); if(eResult!=ENoError) { TRACE_EVENT("CancelRecievingMMS done"); } } //Jun 28 2005 REF: MMI-SPR-29887 x0012849 ESTATUS Handler_MM_DeleteMessageBodyEntryAsync(EVENT_ID aeId, EVENT_TYPE aeType, MESSAGE_PARAM ampParam, EVT_HANDLE evtHandle) { return ENoError; } //Jun 28 2005 REF: MMI-SPR-29887 x0012849 void Delete_Body(void) { g_event_struct.handler = Handler_MM_DeleteMessageBodyEntryAsync; g_event_struct.parentEvtHandle = NULL; g_event_struct.pData = NULL; g_event_struct.userFlag = 0; MM_DeleteMessageBodyAsync((EVT_HANDLE) &g_event_struct, g_pMessageHeaderList->ppList[g_currentMessage].id); } void MMI_2_SaveHeaderInfo(char *topic, char *number) { //char from[]="13801639314/TYPE=PLMN";//bernard //char from[]="60765943/TYPE=PLMN"; char from[]="/TYPE=PLMN"; UCS2 *pUcsFrom= NULL; UCS2 *pUcsTopic = NULL; UCS2 *pUcsNumber = NULL; MMI2_EVT_HANDLE evtHandle=NULL; ESTATUS eResult; char temp[100]; char tempNumber[100]; sprintf(temp, "MMI_2_SaveHeaderInfo called %s, %s", topic, number); //M4_DebugStringMessage(temp, strlen(temp), 0); //xrashmic 17 Jun, 2005 MMI-SPR-29992 //For sending MMS on CHT sim, the FROM address should be NULL. /*pUcsFrom= (UCS2 *)MMS_ConvertStringToUcs2((const MByte *)from, GetByteStringLength((const MByte *)from), pUcsFrom); */ pUcsTopic = (UCS2 *)MMS_ConvertStringToUcs2((const MByte *)topic, GetByteStringLength((const MByte *)topic), pUcsTopic); if (NULL == pUcsTopic) { sprintf(temp, "MMI_2_SaveHeaderInfo called pUcsTopic = NULL"); //M4_DebugStringMessage(temp, strlen(temp), 0); return; } sprintf(temp, "MMI_2_SaveHeaderInfo number=%s", number); //M4_DebugStringMessage(temp, strlen(temp), 0); strcpy(tempNumber, number); strcat(tempNumber,"/TYPE=PLMN"); sprintf(temp, "MMI_2_SaveHeaderInfo tempNumber=%s", tempNumber); //M4_DebugStringMessage(temp, strlen(temp), 0); pUcsNumber= (UCS2 *)MMS_ConvertStringToUcs2((const MByte *)tempNumber, GetByteStringLength((const MByte *)tempNumber), pUcsNumber); if (pUcsNumber == NULL) { sprintf(temp, "MMI_2_SaveHeaderInfo pUcsNumber == NULL"); //M4_DebugStringMessage(temp, strlen(temp), 0); } if (NULL == pUcsNumber) { MMS_FREE(pUcsTopic); return; } //----------------------- eResult= DAL_RetrieveMessageHeader(g_msg_id,&msgHeader); if(eResult!=ENoError) { M4_DebugMessage((unsigned long)0x4400); return; } msgHeader->messageTypeHeader.mmsHeader.pFrom = pUcsFrom; msgHeader->messageTypeHeader.mmsHeader.pToList = pUcsNumber; msgHeader->messageTypeHeader.mmsHeader.pSubject = pUcsTopic; //----------------------- /* Form the event Handler */ evtHandle = (MMI2_EVT_HANDLE)malloc(sizeof(MMI2_EVT_STRUCT)); evtHandle->evtStruct.handler = MMI_2_EventHandler; evtHandle->evtStruct.parentEvtHandle = NULL; evtHandle->evtStruct.pData = NULL; evtHandle->evtStruct.userFlag = 0; evtHandle->eType = MMI2_STORE_MSG_HDR; DAL_ModifyMessageParamsAsync((EVT_HANDLE)evtHandle,g_msg_id,msgHeader); //msgHeader->memHdr.freeFunc(msgHeader); } /*************************************************************************/ /** EVENT HANDLER: Message Dialog (MMI_2) \param aeId [in] EVENT_ID \param ampParam [in] MESSAGE_PARAM \param evtHandle [in] EVT_HANDLE \return None [out] /*************************************************************************/ ESTATUS MMI_2_EventHandler(EVENT_ID aeId, EVENT_TYPE aeType, MESSAGE_PARAM ampParam, EVT_HANDLE EvtHandle) { MMI2_EVT_HANDLE MMI2evtHandle = (MMI2_EVT_HANDLE) EvtHandle; BOOL bProcessed = FALSE; T_WAP_DATA *data = AUI_wap_data(); data->View->Title[0] = 0; M4_DebugMessage((unsigned long) 0x9800); M4_DebugMessage((unsigned long) aeId); M4_DebugMessage((unsigned long) aeType); M4_DebugMessage((unsigned long) ampParam); M4_DebugMessage((unsigned long) EvtHandle); switch(aeId) { case EMG4_NetworkOpDone: switch(MMI2evtHandle->eType) { case MMI2_SEND_MSG: //xrashmic 22 Dec, 2004 MMI-SPR-27798 // MMS send is successful, save it to sent folder MM_BeginUpdateHeader(g_msg_id); MM_UtilSetFolder(g_msg_id,EMlSent); MM_CommitUpdateHeaderAsync(NULL, g_msg_id); //xrashmic 19 Aug, 2004 Bug: 2, 3, 36 and 42 // To display the MMS send Success dialog here. //xrashmic 08 Feb, 2005 MMI-SPR-27853 AUI_mms_status_notify(MMS_SEND_SUCCESS); bProcessed=TRUE; break; default: break; } break; //xrashmic 08 Feb, 2005 MMI-SPR-27853 // Need to display to the user the send progress infomation case EMG4_OpProgress: switch(MMI2evtHandle->eType) { case MMI2_SEND_MSG: // xreddymn Mar-04-2005 MMI-SPR-26144 // MMS progress is updated by WAP FSM // progressValue=ampParam; // AUI_mms_status_notify(MMS_SEND_PROGRESS); break; default: break; } break; //xrashmic 08 Feb, 2005 MMI-SPR-27853 //Need to catch the errors when the sending fails case EMG4_OpError: switch(MMI2evtHandle->eType) { case MMI2_SEND_MSG: AUI_mms_status_notify(MMS_SEND_FAIL); break; } break; } if(MMI2evtHandle && bProcessed) { free(MMI2evtHandle); MMI2evtHandle= NULL; } return ENoError; } /* 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_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_PreviewMessage() { /* inform magic4 editor to preview the current message */ DAL_PostMessage(EMG4_Preview,EMG4_Type_NotUsed,0,NULL); } /* 4. After action_PreviewMessage has been completed, MMI then calls action_SuspendEditor() to suspend the magic4 client and resume the menu system */ void action_SuspendEditor() { /* suspend magic4 editor */ DAL_PostMessage(EMG4_Suspend,EMG4_Type_NotUsed,0,NULL); DAL_PostMessage(EMG4_PlayMode,EMG4_Type_NotUsed, EPlayModeStop,NULL); /* if necessary, add code here to resume display of the menu system */ } /* 5. Done */ #endif // ronaldc 9-4 to 9-5: add end /******************************************************************************* $Function: MMSCreate_exec_cb $Description: Exec callback function of the MMS Create window $Returns: none $Arguments: win - window handler event - mfw event parameter - optional data. *******************************************************************************/ void MMSCreate_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_exec_cb()"); switch (event) { case MWM_CREATE: /* initialization of administrative data */ TRACE_EVENT("MWM_CREATE"); //yanbin init MMS create bbssoo - EV_createmessageasync() // ronaldc 9-5 OrthusCreateMessageEntryAsync(); //TraceOrthusCreateMessageEntryAsyncReturn(); //xrashmic 9 Nov, 2004 MMI-SPR-26147 //The text buffer is memset to '\0' only once at the time of MMS create - MWM_CREATE memset(text,'\0',MAX_MMS_TEXT_LEN); //xreddymn Aug-16-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); // xreddymn Aug-26-2004: Modified Title display { unsigned short width, height; DeviceGetScreenMetrics(&width,&height); dspl_SetBgdColour(COL_White); dspl_Clear(0, gucMmsTitleBarHeight, width-1, height-1); resources_setTitleColour(COLOUR_EDITOR); dspl_Clear(0, 0, width-1, gucMmsTitleBarHeight-1); dspl_TextOut(1, 0, DSPL_TXTATTR_HLIGHT,"Create MMS"); } //yanbin: here call Magic4 functions to show MMS slides // bbssoo - After Creating MMS, display the "create MMS display" in the middle screen. // xreddymn Mar-08-2005 MMI-SPR-28820: changed order of posting EMG4_Preview and EMG4_Resume action_PreviewMessage(); action_ResumeEditor(); //xrashmic 6 Oct, 2004 MMI-SPR-25147 //comenting action_SuspendEditor() as the Sound was not heard in the //compose screen //action_SuspendEditor(); displaySoftKeys(TxtSoftOptions,TxtSoftBack); dspl_Enable(1); break; case MWM_DESTORY: TRACE_EVENT("MWM_DESTROY"); //xreddymn Sep-16-2004: Changes related to MMI-SPR-24735 dspl_Enable(1); DAL_PostMessage(EMG4_Exit, EMG4_Type_NotUsed, 0, 0); //xreddymn Aug-16-2004 MMI-SPR-23926 (TII_MMS12) and MMI-SPR-24115 (TII_MMS55): BMI will now use the display g_M4_display_active=FALSE; //xrashmic 20 Dec, 2004 MMI-SPR-23921 // On deleting the window, set the handler to NULL mms_create_hnd=NULL; break; case MWM_SUSPEND: TRACE_EVENT("MWM_SUSPEND"); //xreddymn Sep-16-2004: Changes related to MMI-SPR-24735 dspl_Enable(1); //xreddymn Aug-16-2004 MMI-SPR-23926 (TII_MMS12) and MMI-SPR-24115 (TII_MMS55): BMI will now use the display g_M4_display_active=FALSE; // xreddymn Sep-03-2004 MMI-SPR-23961 DAL_PostMessage(EMG4_Suspend,EMG4_Type_NotUsed,0,NULL); DAL_PostMessage(EMG4_PlayMode,EMG4_Type_NotUsed, EPlayModeStop,NULL); //xrashmic 6 Oct, 2004 MMI-SPR-25147 //The editor needs to be in EDIT mode when inserting, Saving, etc. DAL_PostMessage(EMG4_Edit,EMG4_Type_NotUsed,0,NULL); break; case MWM_RESUME: TRACE_EVENT("MWM_RESUME"); //xreddymn Aug-16-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-03-2004 MMI-SPR-23961 // xreddymn Sep-17-2004 MMI-SPR-24733: Removed EMG4_Preview from here as it was disabling edit mode // xreddymn Sep-17-2004, Removed EMG4_Resume here as it is redundant (See MWM_ONDRAW of this function) // DAL_PostMessage(EMG4_Preview,EMG4_Type_NotUsed,0,NULL); // DAL_PostMessage(EMG4_Resume,EMG4_Type_NotUsed,0,NULL); break; default: break; } } // xreddymn Aug-18-2004 MMI-SPR-24113 (TII_MMS53): Delete message handler ESTATUS Handler_MM_DeleteMessageEntryAsync(EVENT_ID aeId, EVENT_TYPE aeType, MESSAGE_PARAM ampParam, EVT_HANDLE evtHandle) { return ENoError; } /******************************************************************************* $Function: MMSCreate_kbd_cb $Description: Exec callback function for the Option window $Returns: execution status $Arguments: e - event id k - keyboard info *******************************************************************************/ static int MMSCreate_kbd_cb (MfwEvt e, MfwKbd *k) /* SmsRead_R_OPT keyboard event handler */ { T_MFW_HND win = mfwParent(mfw_header()); TRACE_FUNCTION ("MMSCreate_kbd_cb()"); if (e & KEY_LONG) { switch (k->code) { case KCD_HUP: /* back to previous menu */ //xrashmic 19 Aug, 2004 Bug: 2, 3, 36 and 42 //Once outside the MMS create screen, this flag needs to be unset MMSactive=FALSE; /* xreddymn Aug-18-2004 MMI-SPR-24113 (TII_MMS53): Delete message on pressing back, * if it has not been saved. (Otherwise, it appears in the Unsent messages folder) */ if(g_M4_message_saved == FALSE) { g_event_struct.handler = Handler_MM_DeleteMessageEntryAsync; g_event_struct.parentEvtHandle = NULL; g_event_struct.pData = NULL; g_event_struct.userFlag = 0; MM_DeleteMessageAsync((EVT_HANDLE) &g_event_struct, g_msg_id); } MMI_DestoryWindow(win); break; case KCD_RIGHT: /* Power Down */ return MFW_EVENT_REJECTED; /* handled by idle */ default: /* no response to all other keys */ return MFW_EVENT_CONSUMED; } } else { switch (k->code) { case KCD_MNUSELECT: case KCD_LEFT: MMSCreate_OPT_start(win,0); break; case KCD_HUP: /* back to previous menu */ case KCD_RIGHT: /* back to previous menu */ //xrashmic 19 Aug, 2004 Bug: 2, 3, 36 and 42 //Once outside the MMS create screen, this flag needs to be unset MMSactive=FALSE; /* xreddymn Aug-18-2004 MMI-SPR-24113 (TII_MMS53): Delete message on pressing back, * if it has not been saved. (Otherwise, it appears in the Unsent messages folder) */ if(g_M4_message_saved == FALSE) { g_event_struct.handler = Handler_MM_DeleteMessageEntryAsync; g_event_struct.parentEvtHandle = NULL; g_event_struct.pData = NULL; g_event_struct.userFlag = 0; MM_DeleteMessageAsync((EVT_HANDLE) &g_event_struct, g_msg_id); } MMI_DestoryWindow(win); break; //x0012849 Feb-03-2005 MMI-SPR-28224 : //Handled the cases of scroll up and down case KCD_MNUDOWN: DAL_PostMessage(EMG4_ScrollDown,EMG4_Type_NotUsed,0,NULL); break; case KCD_MNUUP : DAL_PostMessage(EMG4_ScrollUp,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 MMSCreate_start(T_MFW_HND parent_window, MfwMnuAttr *menuAttr) { TRACE_FUNCTION ("MMSCreate_start()"); //xrashmic 3 Nov, 2004 MMI-SPR-26145 //Storing the handle of the create window to delete later mms_create_hnd =MMI_CreateWindow(parent_window, (T_DIALOG_FUNC) MMSCreate_exec_cb, (void*)menuAttr,(MfwCb)MMSCreate_kbd_cb, 0,0); return mms_create_hnd ; } #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 number[MAX_PHB_NUM_LEN]; static char topic[MAX_MMS_TOPIC_LEN]="\0"; static void MMSCreate_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]; TRACE_EVENT_P1("MMSCreate_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,number); //yanbin: Call magic4 function to send MMS, bbssoo - send MMS with the topic (subject) and number, then save the MMS. //topic: topic; //number: number; M4_DebugMessage(0x93000); //xrashmic 19 Aug, 2004 Bug: 2, 3, 36 and 42 //This dialog screen is displayed as soon as the user selects the left softkey after entering the number to start sending MMS //xrashmic 08 Feb, 2005 MMI-SPR-27853 AUI_mms_status_notify(MMS_PLEASEWAIT); MMI_2_SaveHeaderInfo(topic,number); DAL_PostMessage(EMG4_SaveMsg, EMG4_Type_NotUsed, 0, 0); //DAL_PostMessage(EMG4_Exit,EMG4_Type_NotUsed,0,NULL); g_inSendMode=TRUE; M4_DebugMessage(0x93001); MMI_DestoryWindow(win); //CRR: 25302 - xpradipg 10 Nov 2004 //Number entry editor needs to be deleted explicitly AUI_edit_Destroy(number_edit); } else { TRACE_EVENT_P1("text: %s",text); M4_DebugMessage(0x92000); // rvf_delay(10); g_safeString.size=2*(strlen(text)+1); MMS_ConvertStringToUcs2((const MByte *)(text), strlen(text), g_insertString); g_safeString.pString=g_insertString; DAL_PostMessage(EMG4_Edit,EMG4_Type_NotUsed,0,NULL); //xrashmic 9 Nov, 2004 MMI-SPR-26147 //Text in the MMS message needs to be deleted, before inserting the edited text. DAL_PostMessage(EMG4_DeleteObject,EMG4_Type_NotUsed, EDeleteText,NULL); DAL_PostMessage(EMG4_InsertString, EMG4_Type_NotUsed, (MESSAGE_PARAM)&g_safeString, 0); // M4_DebugMessage(g_safeString.size); M4_DebugMessage(0x92001); // rvf_delay(10); MMI_DestoryWindow(win); //yanbin: Call magic4 function to insert text into MMS //text: text; // bbssoo - insert string to MMS message. } 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 explicitly destroyed on pressing back sk if(E_MODE_NUMBER == Identifier) AUI_edit_Destroy(number_edit); MMI_DestoryWindow(win); break; default: TRACE_EVENT("Err: Default"); break; } } // Nov 05, 2005 REF: OMAPS00049502 Sumanth Kumar. C // Fix: A global variable to store the Mms Number extracted from the message header. char MmsNumber[MAX_PHB_NUM_LEN]; /******************************************************************************* $Function: MMSCreate_SEND_exec_cb $Description: Callback handler for events sent by the window itself and to recieve the data $Returns: none $Arguments: win - current window event - event id Identifier - optional data parameter - optional data. *******************************************************************************/ static void MMSCreate_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 ("MMSCreate_SEND_exec_cb()"); 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)MMSCreate_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(number,"01705713488");//"13816687053");//13801639314 //strcpy(number,"+38516610401"); //CRR: 25302 - xpradipg 10 Nov 2004 // The editor attributes are changed to hold alternate strings 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)MMSCreate_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,0, ED_CURSOR_UNDERLINE); memset(number,'\0', sizeof(number)); //Nov 05, 2005 REF: OMAPS00049502 Sumanth Kumar. C //Fix: Get only the 13digits corresponding to the senders phone number from the senders address strncpy(number,MmsNumber,13); AUI_edit_SetBuffer(&editor_data, ATB_DCS_ASCII, (UBYTE*)number, sizeof(number)); number_edit = AUI_edit_Start(win, &editor_data); 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)MMSCreate_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 //xrashmic 9 Nov, 2004 MMI-SPR-26147 //Moved it to MMCreate_exec_cb MWM_CREATE as the user should be able to edit the inserted text. Hence we need to // retain the data in "text" buffer. //memset(text,'\0',MAX_MMS_TEXT_LEN); AUI_edit_SetBuffer(&editor_data, ATB_DCS_ASCII, (UBYTE*)text, sizeof(text)); editor = AUI_edit_Start(win, &editor_data); break; // case PHBK_ID: //CRR: 25302 - xpradipg 10 Nov 2004 //handle the even sent back by the phone number module case MMS_EMS_PHBK_NUMBER: MmsSend_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 MMSCreate_SEND_start(T_MFW_HND parent_window, void *UserData) { T_MFW_HND win; TRACE_FUNCTION ("MMSCreate_SEND_start()"); win=MMI_CreateWindow(parent_window, (T_DIALOG_FUNC) MMSCreate_SEND_exec_cb, (void*)UserData,0, 0,0); if(UserData) SEND_EVENT(win, (USHORT)UserData, 0, 0); return win; } //CRR:23923 - xpradipg 06 Sept 2004 /******************************************************************************* $Function: MMSCreate_Prev_exec_cb $Description: Callback handler for events sent by the window itself $Returns: none $Arguments: win - current window event - event id parameter - optional data. *******************************************************************************/ void MMSCreate_Prev_exec_cb(T_MFW_HND win, USHORT event, SHORT value, void * parameter) /* callback handler for events sent to to trigger execution */ { TRACE_FUNCTION ("MMSBox_read_exec_cb()"); switch (event) { case MWM_CREATE: g_M4_display_active = TRUE; break; case MWM_ONDRAW: dspl_Enable(0); dspl_SetBgdColour(COL_White); dspl_ClearAll(); DAL_PostMessage(EMG4_Resume,EMG4_Type_NotUsed,0,NULL); //xrashmic 6 Oct, 2004 MMI-SPR-25147 //EMG4_Preview does not require any EPlayModeRun. DAL_PostMessage(EMG4_Preview, EMG4_Type_NotUsed, 0, 0); displaySoftKeys(TxtNull,TxtSoftBack); dspl_Enable(1); break; case MWM_DESTORY: DAL_PostMessage(EMG4_Suspend,EMG4_Type_NotUsed,0,NULL); //xrashmic 6 Oct, 2004 MMI-SPR-25147 //Exiting the Preview screen, the editor should be in editable mode. DAL_PostMessage(EMG4_Edit,EMG4_Type_NotUsed,0,NULL); g_M4_display_active=FALSE; break; case MWM_SUSPEND: g_M4_display_active=FALSE; DAL_PostMessage(EMG4_Suspend,EMG4_Type_NotUsed,0,NULL); DAL_PostMessage(EMG4_Preview,EMG4_Type_NotUsed, EPlayModeStop,NULL); break; case MWM_RESUME: g_M4_display_active=TRUE; DAL_PostMessage(EMG4_Resume,EMG4_Type_NotUsed,0,NULL); DAL_PostMessage(EMG4_Refresh, EMG4_Type_NotUsed, 0, 0); break; default: break; } } //CRR:23923 - xpradipg 06 Sept 2004 /******************************************************************************* $Function: MMSCreate_Prev_start $Description: Create Preview window $Returns: window handler $Arguments: parent_window - parent window. menuAttr - Menu attributes *******************************************************************************/ T_MFW_HND MMSCreate_Prev_start(T_MFW_HND parent_window, MfwMnuAttr *menuAttr) { return MMI_CreateWindow(parent_window, (T_DIALOG_FUNC)MMSCreate_Prev_exec_cb,(void*)menuAttr,(T_MFW_CB)MMSBox_Read_kbd_cb,0,0); } #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 MMSCreate_OPTexeSend(MfwMnu* m, MfwMnuItem* i) { T_MFW_HND win = mfwParent(mfw_header()); MMSCreate_SEND_start(win, (void*)E_MODE_TOPIC); } //CRR:23923 - xpradipg 06 Sept 2004 /******************************************************************************* $Function: MMSCreate_OPTpreviewMsg $Description: Called when the user press Preview in the Option menu $Returns: event status. $Arguments: m - pointer to menu. i - index if selected menu item. *******************************************************************************/ static int MMSCreate_OPTpreviewMsg(MfwMnu* m, MfwMnuItem* i) { T_MFW_HND win = mfwParent(mfw_header()); MMSCreate_Prev_start(win,NULL); } static int MMSCreate_OPTexeInsPicture(MfwMnu* m, MfwMnuItem* i) { T_MFW_HND win = mfwParent(mfw_header()); MMSom_start(win, (MfwMnuAttr *) MMS_INSERT_PICTURE); } static int MMSCreate_OPTexeInsSound(MfwMnu* m, MfwMnuItem* i) { T_MFW_HND win = mfwParent(mfw_header()); MMSom_start(win, (MfwMnuAttr *) MMS_INSERT_SOUND); } static int MMSCreate_OPTexeInsText(MfwMnu* m, MfwMnuItem* i) { T_MFW_HND win = mfwParent(mfw_header()); MMSCreate_SEND_start(win, (void*)E_MODE_TEXT); } static int MMSCreate_OPTexeSave(MfwMnu* m, MfwMnuItem* i) { //xrashmic 6 Oct, 2004 MMI-SPR-25147 //The Messages are saved only in EDIT mode. DAL_PostMessage(EMG4_Edit,EMG4_Type_NotUsed,0,NULL); DAL_PostMessage(EMG4_SaveMsg, EMG4_Type_NotUsed, 0, 0); //xreddymn Aug-18-2004 MMI-SPR-24113 (TII_MMS53): To keep track of saved messages g_inSaveMode=TRUE; // xreddymn Nov-26-2004 MMI-SPR-25278: Display an "In Progress" screen //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); } static int MMSCreate_OPTexeInsSlide(MfwMnu* m, MfwMnuItem* i) { TRACE_EVENT("insert pic into OM"); M4_InsertPicObjectIntoOM(); } //CRR: 25302 - xpradipg 10 Nov 2004 /******************************************************************************* $Function: MmsSend_PHBK_exec_cb $Description: Populates the text structure with the phone Number and sends an event to update the editor buffer $Returns: $Arguments: *******************************************************************************/ void MmsSend_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 ("MmsSend_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; } } /******************************************************************************* $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 MMSCreate_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()"); 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: //xrashmic 20 Dec, 2004 MMI-SPR-23921 // On deleting the window, set the handler to NULL mms_create_opt_hnd=NULL; 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. *******************************************************************************/ T_MFW_HND MMSCreate_OPT_start(T_MFW_HND parent_window, MfwMnuAttr *menuAttr) { TRACE_FUNCTION ("MMSCreate_OPT_start()"); //xrashmic 3 Nov, 2004 MMI-SPR-26145 //Storing the handle of the options window to delete later mms_create_opt_hnd = MMI_CreateWindow(parent_window, (T_DIALOG_FUNC)MMSCreate_OPT_exec_cb,(void*)menuAttr, (T_MFW_CB)0, &MMSCreate_OPTAttrib,0); return mms_create_opt_hnd; } #define MMS_DELETE_PICTURE 0 #define MMS_DELETE_SOUND 1 #define MMS_DELETE_TEXT 2 static void MMSCreate_Delete_cb(T_MFW_HND win, UBYTE identifier, UBYTE reason) { TRACE_FUNCTION("MMSCreate_Delete_cb"); switch (reason) { case INFO_KCD_LEFT: switch(identifier) { case MMS_DELETE_PICTURE: DAL_PostMessage(EMG4_Edit,EMG4_Type_NotUsed,0,NULL); DAL_PostMessage(EMG4_DeleteObject,EMG4_Type_NotUsed, EDeleteImage,NULL); break; case MMS_DELETE_SOUND: DAL_PostMessage(EMG4_Edit,EMG4_Type_NotUsed,0,NULL); DAL_PostMessage(EMG4_DeleteObject,EMG4_Type_NotUsed, EDeleteAudio,NULL); break; case MMS_DELETE_TEXT: DAL_PostMessage(EMG4_Edit,EMG4_Type_NotUsed,0,NULL); DAL_PostMessage(EMG4_DeleteObject,EMG4_Type_NotUsed, EDeleteText,NULL); //xrashmic 9 Nov, 2004 MMI-SPR-26147 //The text buffer should be reset when the text data //is deleted in the MMS message memset(text,'\0',MAX_MMS_TEXT_LEN); 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 MMSCreate_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)MMSCreate_Delete_cb, FOREVER, KEY_LEFT |KEY_RIGHT|KEY_CLEAR|KEY_HUP); display_info.Identifier=MMS_DELETE_PICTURE; info_dialog (win, &display_info); } static int MMSCreate_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)MMSCreate_Delete_cb, FOREVER, KEY_LEFT |KEY_RIGHT|KEY_CLEAR|KEY_HUP); display_info.Identifier=MMS_DELETE_SOUND; info_dialog (win, &display_info); } static int MMSCreate_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)MMSCreate_Delete_cb, FOREVER, KEY_LEFT |KEY_RIGHT|KEY_CLEAR|KEY_HUP); display_info.Identifier=MMS_DELETE_TEXT; info_dialog (win, &display_info); } void FUN_TRACE_EVENT(char * text, unsigned long param) { TRACE_EVENT_P1(text, param); } /******************************************************************************* $Function: Handler_Fwd_CreateMessageEntryAsync $Description: Callback function for MM_CreateMessageEntryAsync for forward. //xrashmic 14 Dec, 2004 MMI-SPR-23921 $Returns: None. $Arguments: *******************************************************************************/ ESTATUS Handler_Fwd_CreateMessageEntryAsync(EVENT_ID aeId, EVENT_TYPE aeType, MESSAGE_PARAM ampParam, EVT_HANDLE evtHandle) { ESTATUS eResult; //Using the same create editor event handler for forward editor g_doc_event_struct.handler = MMI_1_EventHandler; g_doc_event_struct.parentEvtHandle = NULL; g_doc_event_struct.pData = NULL; g_doc_event_struct.userFlag = 0; g_msg_id= (MM_MESSAGE_ID) ampParam; eResult = DAL_OpenDocument((EVT_HANDLE) &g_doc_event_struct, g_pMessageHeaderList->ppList[g_currentMessage].id, g_msg_id); } /******************************************************************************* $Function: MMSBox_Forward $Description: Creating a new Id for the MMS message being forwarded //xrashmic 14 Dec, 2004 MMI-SPR-23921 $Returns: None. $Arguments: *******************************************************************************/ void MMSBox_Forward(void) { ESTATUS eResult; MDword MessageID = g_pMessageHeaderList->ppList[g_currentMessage].id; TRACE_FUNCTION ("MMSBox_Forward()"); eResult = DAL_RetrieveMessageHeader(MessageID,&fwd_msg_header); fwd_msg_header->location = EMlDraft; g_event_struct.handler = Handler_Fwd_CreateMessageEntryAsync; g_event_struct.parentEvtHandle = NULL; g_event_struct.pData = NULL; g_event_struct.userFlag = 0; eResult=MM_CreateMessageEntryAsync((EVT_HANDLE) &g_event_struct, fwd_msg_header); g_safeString.memHeader.freeFunc = DummyFreeFunc; /*!< Pointer to memory deallocation function */ g_safeString.size=10; /*!< size of the string */ g_safeString.pString=g_insertString; /*!< Pointer to UCS2 string */ } /******************************************************************************* $Function: MMSFwd_exec_cb $Description: Event handler for the MMS forward window //xrashmic 14 Dec, 2004 MMI-SPR-23921 $Returns: None. $Arguments: *******************************************************************************/ void MMSFwd_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 ("MMSFwd_exec_cb()"); switch (event) { case MWM_CREATE: //xrashmic 14 Dec, 2004 MMI-SPR-23921 // Create a new Msg ID, Open the editor and copy the message being forwarded, into this editor. MMSBox_Forward(); //xrashmic 9 Nov, 2004 MMI-SPR-26147 //The text buffer is memset to '\0' only once at the time of MMS create - MWM_CREATE memset(text,'\0',MAX_MMS_TEXT_LEN); g_M4_display_active=TRUE; // xreddymn Feb-02-2005 MMI-SPR-28277: This is set to TRUE when forwarding MMS messages gMmsForwardStart=TRUE; break; case MWM_ONDRAW: TRACE_EVENT("MWM_ONDRAW"); dspl_Enable(0); { unsigned short width, height; DeviceGetScreenMetrics(&width,&height); dspl_SetBgdColour(COL_White); dspl_Clear(0, gucMmsTitleBarHeight, width-1, height-1); resources_setTitleColour(COLOUR_EDITOR); dspl_Clear(0, 0, width-1, gucMmsTitleBarHeight-1); dspl_TextOut(1, 0, DSPL_TXTATTR_HLIGHT,"Forwarding MMS"); } //yanbin: here call Magic4 functions to show MMS slides // bbssoo - After Creating MMS, display the "create MMS display" in the middle screen. // xreddymn Mar-08-2005 MMI-SPR-28820: changed order of posting // EMG4_Preview and EMG4_Resume. // When forwarding MMS, the first Preview-Resume occurs // through the callback MMI_1_EventHandler if(FALSE == gMmsForwardStart) { action_PreviewMessage(); action_ResumeEditor(); } //xrashmic 6 Oct, 2004 MMI-SPR-25147 //comenting action_SuspendEditor() as the Sound was not heard in the //compose screen //action_SuspendEditor(); displaySoftKeys(TxtSoftOptions,TxtSoftBack); dspl_Enable(1); break; case MWM_DESTORY: TRACE_EVENT("MWM_DESTROY"); //xreddymn Sep-16-2004: Changes related to MMI-SPR-24735 dspl_Enable(1); DAL_PostMessage(EMG4_Exit, EMG4_Type_NotUsed, 0, 0); //xreddymn Aug-16-2004 MMI-SPR-23926 (TII_MMS12) and MMI-SPR-24115 (TII_MMS55): BMI will now use the display g_M4_display_active=FALSE; //xrashmic 20 Dec, 2004 MMI-SPR-23921 // On deleting the window, set the handler to NULL mms_Fwdcreate_hnd=NULL; break; case MWM_SUSPEND: TRACE_EVENT("MWM_SUSPEND"); //xreddymn Sep-16-2004: Changes related to MMI-SPR-24735 dspl_Enable(1); //xreddymn Aug-16-2004 MMI-SPR-23926 (TII_MMS12) and MMI-SPR-24115 (TII_MMS55): BMI will now use the display g_M4_display_active=FALSE; // xreddymn Sep-03-2004 MMI-SPR-23961 DAL_PostMessage(EMG4_Suspend,EMG4_Type_NotUsed,0,NULL); DAL_PostMessage(EMG4_PlayMode,EMG4_Type_NotUsed, EPlayModeStop,NULL); //xrashmic 6 Oct, 2004 MMI-SPR-25147 //The editor needs to be in EDIT mode when inserting, Saving, etc. DAL_PostMessage(EMG4_Edit,EMG4_Type_NotUsed,0,NULL); break; case MWM_RESUME: TRACE_EVENT("MWM_RESUME"); //xreddymn Aug-16-2004: M4 client will now use the display g_M4_display_active=TRUE; break; default: break; } } /******************************************************************************* $Function: MMSFwd_kbd_cb $Description: Keyboard handler for the MMS forward window //xrashmic 14 Dec, 2004 MMI-SPR-23921 $Returns: None. $Arguments: *******************************************************************************/ static int MMSFwd_kbd_cb (MfwEvt e, MfwKbd *k) { T_MFW_HND win = mfwParent(mfw_header()); TRACE_FUNCTION ("MMSFwd_kbd_cb()"); if (e & KEY_LONG) { switch (k->code) { case KCD_HUP: /* back to previous menu */ //xrashmic 19 Aug, 2004 Bug: 2, 3, 36 and 42 //Once outside the MMS create screen, this flag needs to be unset MMSactive=FALSE; if(g_M4_message_saved == FALSE) { g_event_struct.handler = Handler_MM_DeleteMessageEntryAsync; g_event_struct.parentEvtHandle = NULL; g_event_struct.pData = NULL; g_event_struct.userFlag = 0; MM_DeleteMessageAsync((EVT_HANDLE) &g_event_struct, g_msg_id); } MMI_DestoryWindow(win); break; case KCD_RIGHT: /* Power Down */ return MFW_EVENT_REJECTED; /* handled by idle */ default: /* no response to all other keys */ return MFW_EVENT_CONSUMED; } } else { switch (k->code) { case KCD_MNUSELECT: case KCD_LEFT: MMSCreate_OPT_start(win,0); break; case KCD_HUP: /* back to previous menu */ case KCD_RIGHT: /* back to previous menu */ //xrashmic 19 Aug, 2004 Bug: 2, 3, 36 and 42 //Once outside the MMS create screen, this flag needs to be unset MMSactive=FALSE; if(g_M4_message_saved == FALSE) { g_event_struct.handler = Handler_MM_DeleteMessageEntryAsync; g_event_struct.parentEvtHandle = NULL; g_event_struct.pData = NULL; g_event_struct.userFlag = 0; MM_DeleteMessageAsync((EVT_HANDLE) &g_event_struct, g_msg_id); } MMI_DestoryWindow(win); break; case KCD_MNUUP: //x0012849 Feb-03-2005 MMI-SPR-28224 //send the scrollup event to see the contents above the screen DAL_PostMessage(EMG4_ScrollUp,EMG4_Type_NotUsed,0,NULL); break; case KCD_MNUDOWN: //x0012849 Feb-03-2005 MMI-SPR-28224 //send the scrolldown event to see the contents below the screen DAL_PostMessage(EMG4_ScrollDown,EMG4_Type_NotUsed,0,NULL); break; case KCD_MNULEFT: case KCD_MNURIGHT: break; return MFW_EVENT_CONSUMED; } } return MFW_EVENT_CONSUMED; } /******************************************************************************* $Function: MMSFwd_start $Description: Creates Forward window for the selected MMS. //xrashmic 14 Dec, 2004 MMI-SPR-23921 $Returns: None. $Arguments: *******************************************************************************/ T_MFW_HND MMSFwd_start(void) { T_MFW_HND win = mfwParent(mfw_header()); TRACE_FUNCTION ("MMSCreate_start()"); mms_Fwdcreate_hnd=MMI_CreateWindow(win, (T_DIALOG_FUNC) MMSFwd_exec_cb, NULL,(MfwCb)MMSFwd_kbd_cb, 0,0); return mms_Fwdcreate_hnd; } #undef MMI_MMSCREATE_C