FreeCalypso > hg > fc-tourmaline
diff src/ui/bmi/AUIEditor.c @ 135:70ea7526b59e
bmi/AUI*.c: bogotab fixes
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 14 Nov 2020 03:18:11 +0000 |
parents | c0052fe355d3 |
children |
line wrap: on
line diff
--- a/src/ui/bmi/AUIEditor.c Tue Nov 10 07:12:03 2020 +0000 +++ b/src/ui/bmi/AUIEditor.c Sat Nov 14 03:18:11 2020 +0000 @@ -11,17 +11,17 @@ $Project name: Basic MMI $Project code: BMI (6349) - $Module: MMI - $File: AUIEditor.c - $Revision: 1.0 - - $Author: Condat(UK) - $Date: 22/02/01 + $Module: MMI + $File: AUIEditor.c + $Revision: 1.0 + + $Author: Condat(UK) + $Date: 22/02/01 ******************************************************************************** Description: - Generic MMI Editor. + Generic MMI Editor. ******************************************************************************** @@ -35,40 +35,40 @@ Changes: Added new display zone which is located one line above the softkeys. - Mar 14, 2006 DR: OMAPS00061468 - x0035544. - Description: SAT 27.22.4.22.2 SET UP IDLE MODE TEXT (Icon support) fails - Solution : In the function AUI_edit_SetDefault() set the default value for - display_type to SAT_ICON_NONE. - - Jan 16, 2006 DR: OMAPS00061460 - Shashi Shekar B.S. - Description: SAT Icon support - Solution : SAT icon support added. + Mar 14, 2006 DR: OMAPS00061468 - x0035544. + Description: SAT 27.22.4.22.2 SET UP IDLE MODE TEXT (Icon support) fails + Solution : In the function AUI_edit_SetDefault() set the default value for + display_type to SAT_ICON_NONE. + + Jan 16, 2006 DR: OMAPS00061460 - Shashi Shekar B.S. + Description: SAT Icon support + Solution : SAT icon support added. Dec-20-2004 MMI-SPR-27382 xreddymn Added NULL window handle check for AUI_edit_Destroy - Sep 2, 2004 REF: CRR 21370 xkundadu - Description: Giving wrong expected result by long press on "#" key - Fix: When user presses long on '#' key it will display 'p'. - Changed the long press of '*' key to display 'w'. - - Jul 22,2004 CRR:21605 xrashmic - SASKEN - Description: After deleting all the characters in the editor the case does not change to - sentence case. - Fix: After deleting a character, check if editor is empty and then set the case to - sentence case only if the user has not modified the case. - - - Jul 29, 2004 REF: CRR:20892 xrashmic - SASKEN - Description: By Long press on Left/Right key at 'Message Editor' screen, - cursor not scrolling continuously - Fix: The Long press of left/right key is now handled in AUI_edit_KbdLongCB. - The continuous long press of a key was being ignored for all keys. Now - only for left and right keys this is handled, for rest of the keys the continuos - long press is ignored. - - - 31/01/02 Original Condat(UK) BMI version. + Sep 2, 2004 REF: CRR 21370 xkundadu + Description: Giving wrong expected result by long press on "#" key + Fix: When user presses long on '#' key it will display 'p'. + Changed the long press of '*' key to display 'w'. + + Jul 22,2004 CRR:21605 xrashmic - SASKEN + Description: After deleting all the characters in the editor the case does not change to + sentence case. + Fix: After deleting a character, check if editor is empty and then set the case to + sentence case only if the user has not modified the case. + + + Jul 29, 2004 REF: CRR:20892 xrashmic - SASKEN + Description: By Long press on Left/Right key at 'Message Editor' screen, + cursor not scrolling continuously + Fix: The Long press of left/right key is now handled in AUI_edit_KbdLongCB. + The continuous long press of a key was being ignored for all keys. Now + only for left and right keys this is handled, for rest of the keys the continuos + long press is ignored. + + + 31/01/02 Original Condat(UK) BMI version. $End @@ -162,12 +162,11 @@ #endif - #ifndef MFW_EVENT_PASSED #define MFW_EVENT_PASSED 0 #endif -#define TRACE_AUIEditor // Def/undef this to show/hide the trace_events for this file +#define TRACE_AUIEditor // Def/undef this to show/hide the trace_events for this file static void AUI_edit_ClearPredText(T_AUI_EDITOR_INFO *data); @@ -203,13 +202,13 @@ /******************************************************************************* - $Function: AUI_edit_Start - - $Description: Start the editor. - - $Returns: None. - - $Arguments: None. + $Function: AUI_edit_Start + + $Description: Start the editor. + + $Returns: None. + + $Arguments: None. *******************************************************************************/ @@ -227,32 +226,32 @@ /******************************************************************************* - $Function: AUI_edit_QuickStart - - $Description: Start the editor. - - $Returns: Dialog handler for the editor. - - $Arguments: win - the parent window - TitleId - the text id of the title (or NULL) - TitleString - the text string of the title (or NULL) - buffer - the unicode input buffer - len - maximum length of the text entered - editor_info - the T_AUI_EDITOR_DATA structure (allocated but empty) + $Function: AUI_edit_QuickStart + + $Description: Start the editor. + + $Returns: Dialog handler for the editor. + + $Arguments: win - the parent window + TitleId - the text id of the title (or NULL) + TitleString - the text string of the title (or NULL) + buffer - the unicode input buffer + len - maximum length of the text entered + editor_info - the T_AUI_EDITOR_DATA structure (allocated but empty) *******************************************************************************/ T_MFW_HND AUI_edit_QuickStart(T_MFW_HND win, USHORT TitleId, UBYTE *TitleString, USHORT *buffer, USHORT len, - T_AUI_EDITOR_DATA *editor_info, T_AUI_EDIT_CB editor_cb) + T_AUI_EDITOR_DATA *editor_info, T_AUI_EDIT_CB editor_cb) { TRACE_FUNCTION ("AUI_edit_QuickStart()"); - AUI_edit_SetDisplay(editor_info, ZONE_FULL_SK_TITLE, COLOUR_EDITOR, EDITOR_FONT); - AUI_edit_SetEvents(editor_info, 0, TRUE, FOREVER, editor_cb); - AUI_edit_SetBuffer(editor_info, ATB_DCS_UNICODE, (UBYTE *)buffer, len); - AUI_edit_SetTextStr(editor_info, TxtSoftOK, TxtDelete, TitleId, TitleString); - AUI_edit_SetAltTextStr(editor_info, 0, NULL, TRUE, TxtSoftBack); + AUI_edit_SetDisplay(editor_info, ZONE_FULL_SK_TITLE, COLOUR_EDITOR, EDITOR_FONT); + AUI_edit_SetEvents(editor_info, 0, TRUE, FOREVER, editor_cb); + AUI_edit_SetBuffer(editor_info, ATB_DCS_UNICODE, (UBYTE *)buffer, len); + AUI_edit_SetTextStr(editor_info, TxtSoftOK, TxtDelete, TitleId, TitleString); + AUI_edit_SetAltTextStr(editor_info, 0, NULL, TRUE, TxtSoftBack); /* create the dialog handler */ return AUI_edit_Start(win, editor_info); /* start the common editor */ } @@ -260,53 +259,53 @@ /******************************************************************************* - $Function: AUI_edit_Create - - $Description: Create the editor. - - $Returns: Pointer to the editor's window. - - $Arguments: parent - The parent window. + $Function: AUI_edit_Create + + $Description: Create the editor. + + $Returns: Pointer to the editor's window. + + $Arguments: parent - The parent window. *******************************************************************************/ static T_MFW_HND AUI_edit_Create(T_MFW_HND parent, T_AUI_EDITOR_DATA *editor_data) { - T_AUI_EDITOR_INFO *data = (T_AUI_EDITOR_INFO *)ALLOC_MEMORY (sizeof (T_AUI_EDITOR_INFO)); - T_MFW_WIN *win_data; + T_AUI_EDITOR_INFO *data = (T_AUI_EDITOR_INFO *)ALLOC_MEMORY (sizeof (T_AUI_EDITOR_INFO)); + T_MFW_WIN *win_data; TRACE_FUNCTION ("AUI_edit_Create()"); - /* Create window handler */ - - data->win = win_create(parent, 0, E_WIN_VISIBLE, (T_MFW_CB)AUI_edit_WinCb); // Create window - - if (data->win==NULL) // Make sure window exists + /* Create window handler */ + + data->win = win_create(parent, 0, E_WIN_VISIBLE, (T_MFW_CB)AUI_edit_WinCb); // Create window + + if (data->win==NULL) // Make sure window exists { - return NULL; + return NULL; } - /* Connect the dialog data to the MFW-window */ - - data->mmi_control.dialog = (T_DIALOG_FUNC)AUI_edit_ExecCb; /* Setup the destination for events */ - data->mmi_control.data = data; - data->parent = parent; - win_data = ((T_MFW_HDR *)data->win)->data; - win_data->user = (void *)data; - - data->kbd = kbd_create(data->win, KEY_ALL,(T_MFW_CB)AUI_edit_KbdCb); - data->kbd_long = kbd_create(data->win, KEY_ALL|KEY_LONG,(T_MFW_CB)AUI_edit_KbdLongCb); - data->editor = ATB_edit_Create(&data->editor_data.editor_attr,0); - - data->editor_data = *editor_data; - - // Jul 22,2004 CRR:21605 xrashmic - SASKEN - // The initial value of this variable should be false. i.e the user has still not changed the case. - CaseChanged=FALSE; - - AUI_edit_Init(data->win); - - SEND_EVENT(data->win, E_ED_INIT, 0, 0); + /* Connect the dialog data to the MFW-window */ + + data->mmi_control.dialog = (T_DIALOG_FUNC)AUI_edit_ExecCb; /* Setup the destination for events */ + data->mmi_control.data = data; + data->parent = parent; + win_data = ((T_MFW_HDR *)data->win)->data; + win_data->user = (void *)data; + + data->kbd = kbd_create(data->win, KEY_ALL,(T_MFW_CB)AUI_edit_KbdCb); + data->kbd_long = kbd_create(data->win, KEY_ALL|KEY_LONG,(T_MFW_CB)AUI_edit_KbdLongCb); + data->editor = ATB_edit_Create(&data->editor_data.editor_attr,0); + + data->editor_data = *editor_data; + + // Jul 22,2004 CRR:21605 xrashmic - SASKEN + // The initial value of this variable should be false. i.e the user has still not changed the case. + CaseChanged=FALSE; + + AUI_edit_Init(data->win); + + SEND_EVENT(data->win, E_ED_INIT, 0, 0); /* Return window handle */ @@ -316,97 +315,97 @@ /******************************************************************************* - $Function: AUI_edit_Init - - $Description: Initialise the editor. - - $Returns: Pointer to the editor's window. - - $Arguments: win - The editor window + $Function: AUI_edit_Init + + $Description: Initialise the editor. + + $Returns: Pointer to the editor's window. + + $Arguments: win - The editor window *******************************************************************************/ static void AUI_edit_Init(T_MFW_HND win) { - T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; - T_AUI_EDITOR_INFO *data = (T_AUI_EDITOR_INFO *)win_data->user; - T_ATB_TEXT text={0,0,NULL}; - - TRACE_FUNCTION("AUI_edit_Init()"); - - data->editor->update = ED_UPDATE_FULL; - data->predText.len = 0; /* Blank out predictive text buffer */ - - /* Set up title information */ - - data->hasTitle = FALSE; - data->title.len = 0; /* Blank out title buffer */ - - if (data->editor_data.TitleId!=NULL) - { - data->hasTitle = TRUE; - text.data = (UBYTE *)GET_TEXT(data->editor_data.TitleId); - } - else if (data->editor_data.TitleString!=NULL) - { - data->hasTitle = TRUE; - text.data = data->editor_data.TitleString; - } - - /* If title exists, get its dcs and length */ - - if (data->hasTitle) - { - if (text.data[0]==0x80) - { - text.data += 2; /* Skip over two unicode indicator bytes */ - text.dcs = ATB_DCS_UNICODE; - } + T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; + T_AUI_EDITOR_INFO *data = (T_AUI_EDITOR_INFO *)win_data->user; + T_ATB_TEXT text={0,0,NULL}; + + TRACE_FUNCTION("AUI_edit_Init()"); + + data->editor->update = ED_UPDATE_FULL; + data->predText.len = 0; /* Blank out predictive text buffer */ + + /* Set up title information */ + + data->hasTitle = FALSE; + data->title.len = 0; /* Blank out title buffer */ + + if (data->editor_data.TitleId!=NULL) + { + data->hasTitle = TRUE; + text.data = (UBYTE *)GET_TEXT(data->editor_data.TitleId); + } + else if (data->editor_data.TitleString!=NULL) + { + data->hasTitle = TRUE; + text.data = data->editor_data.TitleString; + } + + /* If title exists, get its dcs and length */ + + if (data->hasTitle) + { + if (text.data[0]==0x80) + { + text.data += 2; /* Skip over two unicode indicator bytes */ + text.dcs = ATB_DCS_UNICODE; + } #ifdef EASY_TEXT_ENABLED - else if (Mmi_getCurrentLanguage() == CHINESE_LANGUAGE) - { - text.dcs = ATB_DCS_UNICODE; - } + else if (Mmi_getCurrentLanguage() == CHINESE_LANGUAGE) + { + text.dcs = ATB_DCS_UNICODE; + } #endif - else - { - text.dcs = ATB_DCS_ASCII; - } - - text.len = ATB_string_Length(&text); - - /* Allocate memory for the title and copy the text there */ - data->title.data = (UBYTE *)ALLOC_MEMORY((text.len + 1)*ATB_string_Size(&text)); - - ATB_string_Copy(&data->title, &text); - } + else + { + text.dcs = ATB_DCS_ASCII; + } + + text.len = ATB_string_Length(&text); + + /* Allocate memory for the title and copy the text there */ + data->title.data = (UBYTE *)ALLOC_MEMORY((text.len + 1)*ATB_string_Size(&text)); + + ATB_string_Copy(&data->title, &text); + } /* Set up correct parameters for easytext */ #ifdef EASY_TEXT_ENABLED - if (ATB_edit_Mode(data->editor, ED_MODE_ALPHA)) - { - /* Allocate word buffer memory */ - - data->predText.data = (UBYTE *)ALLOC_MEMORY((ED_PREDTEXT_MAX+1)*sizeof(UBYTE)); - data->predText.dcs = ATB_DCS_ASCII; - data->predText.len = 0; - - FFS_flashData.PredTextAvailable = TRUE; - Initialize_Dict(Mmi_getCurrentLanguage()/*SPR1508*/, 0); - ResetDictSearch(); - } + if (ATB_edit_Mode(data->editor, ED_MODE_ALPHA)) + { + /* Allocate word buffer memory */ + + data->predText.data = (UBYTE *)ALLOC_MEMORY((ED_PREDTEXT_MAX+1)*sizeof(UBYTE)); + data->predText.dcs = ATB_DCS_ASCII; + data->predText.len = 0; + + FFS_flashData.PredTextAvailable = TRUE; + Initialize_Dict(Mmi_getCurrentLanguage()/*SPR1508*/, 0); + ResetDictSearch(); + } #endif - /* Initialise editor */ - - ATB_edit_Init(data->editor); - - /* Initialise text entry */ - - data->entry_data = AUI_entry_Create(data->win, data->editor, E_ED_UPDATE); - - /* If there's a timeout, create the timer */ + /* Initialise editor */ + + ATB_edit_Init(data->editor); + + /* Initialise text entry */ + + data->entry_data = AUI_entry_Create(data->win, data->editor, E_ED_UPDATE); + + /* If there's a timeout, create the timer */ if (data->editor_data.timeout && (data->editor_data.timeout != FOREVER)) { @@ -420,7 +419,7 @@ /* Title timer, if required, is set up in WinCb */ - data->title_timer = NULL; + data->title_timer = NULL; return; } @@ -428,75 +427,75 @@ /******************************************************************************* - $Function: AUI_edit_Destroy - - $Description: Destroy the editor. - - $Returns: None. - - $Arguments: window - The editor window. + $Function: AUI_edit_Destroy + + $Description: Destroy the editor. + + $Returns: None. + + $Arguments: window - The editor window. *******************************************************************************/ void AUI_edit_Destroy(T_MFW_HND win) { - T_MFW_WIN *win_data; - T_AUI_EDITOR_INFO *data; + T_MFW_WIN *win_data; + T_AUI_EDITOR_INFO *data; #ifdef TRACE_AUIEditor TRACE_FUNCTION ("AUI_edit_Destroy()"); #endif - if (win == NULL) - { + if (win == NULL) + { #ifdef TRACE_AUIEditor - TRACE_EVENT ("Error : Called with NULL Pointer"); + TRACE_EVENT ("Error : Called with NULL Pointer"); #endif - return; - } - // xreddymn Dec-21-2004 MMI-SPR-27382: Added NULL window handle check for AUI_edit_Destroy - win_data = ((T_MFW_HDR *)win)->data; - if(win_data == NULL) return; - data = (T_AUI_EDITOR_INFO *)win_data->user; + return; + } + // xreddymn Dec-21-2004 MMI-SPR-27382: Added NULL window handle check for AUI_edit_Destroy + win_data = ((T_MFW_HDR *)win)->data; + if(win_data == NULL) return; + data = (T_AUI_EDITOR_INFO *)win_data->user; if (data) { - /* Free memory allocated for easytext buffer */ + /* Free memory allocated for easytext buffer */ #ifdef EASY_TEXT_ENABLED - if (ATB_edit_Mode(data->editor, ED_MODE_ALPHA) && data->predText.data ) - { - TRACE_EVENT("Freeing predictive text buffer"); - FREE_MEMORY((void *)data->predText.data, (ED_PREDTEXT_MAX+1)*sizeof(UBYTE)); - } + if (ATB_edit_Mode(data->editor, ED_MODE_ALPHA) && data->predText.data ) + { + TRACE_EVENT("Freeing predictive text buffer"); + FREE_MEMORY((void *)data->predText.data, (ED_PREDTEXT_MAX+1)*sizeof(UBYTE)); + } #endif - /* Free memory allocated for title */ - - if (data->hasTitle) - { - FREE_MEMORY(data->title.data, (data->title.len + 1)*ATB_string_Size(&data->title)); - } - - /* Delete timers */ - - if (data->timer) - { - tim_delete(data->timer); - data->timer = NULL; - } - if (data->title_timer) - { - tim_delete(data->title_timer); - data->title_timer = NULL; - } + /* Free memory allocated for title */ + + if (data->hasTitle) + { + FREE_MEMORY(data->title.data, (data->title.len + 1)*ATB_string_Size(&data->title)); + } + + /* Delete timers */ + + if (data->timer) + { + tim_delete(data->timer); + data->timer = NULL; + } + if (data->title_timer) + { + tim_delete(data->title_timer); + data->title_timer = NULL; + } win_delete (data->win); - /* Free editor memory */ - - AUI_entry_Destroy(data->entry_data); - ATB_edit_Destroy(data->editor); - FREE_MEMORY ((void *)data, sizeof (T_AUI_EDITOR_INFO)); + /* Free editor memory */ + + AUI_entry_Destroy(data->entry_data); + ATB_edit_Destroy(data->editor); + FREE_MEMORY ((void *)data, sizeof (T_AUI_EDITOR_INFO)); } return; @@ -505,27 +504,27 @@ /******************************************************************************* - $Function: AUI_edit_ExecCb - - $Description: Dialog function for editor. - - $Returns: None. - - $Arguments: None. + $Function: AUI_edit_ExecCb + + $Description: Dialog function for editor. + + $Returns: None. + + $Arguments: None. *******************************************************************************/ static void AUI_edit_ExecCb(T_MFW_HND win, USHORT event, USHORT value, void *parameter) { - T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; - T_AUI_EDITOR_INFO *data = (T_AUI_EDITOR_INFO *)win_data->user; - - T_MFW_HND parent_win = data->parent; - USHORT alphachar; - /* Store these in case editor is destroyed on callback */ - USHORT Identifier = data->editor_data.Identifier; - T_AUI_EDIT_CB Callback = data->editor_data.Callback; - UBYTE destroyEditor = data->editor_data.destroyEditor; + T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; + T_AUI_EDITOR_INFO *data = (T_AUI_EDITOR_INFO *)win_data->user; + + T_MFW_HND parent_win = data->parent; + USHORT alphachar; + /* Store these in case editor is destroyed on callback */ + USHORT Identifier = data->editor_data.Identifier; + T_AUI_EDIT_CB Callback = data->editor_data.Callback; + UBYTE destroyEditor = data->editor_data.destroyEditor; /* Mar 08, 2006 REF:ER OMAPS00065168 */ #ifdef NEPTUNE_BOARD @@ -538,22 +537,22 @@ switch (event) { - /* Initialise */ + /* Initialise */ case E_ED_INIT: - TRACE_EVENT("E_ED_INIT"); - win_show(data->win); - break; - - /* Destroy the editor */ - - case E_ED_DESTROY: - AUI_edit_Destroy(data->win); - break; - - /* De-initialise editor */ + TRACE_EVENT("E_ED_INIT"); + win_show(data->win); + break; + + /* Destroy the editor */ + + case E_ED_DESTROY: + AUI_edit_Destroy(data->win); + break; + + /* De-initialise editor */ case E_ED_DEINIT: - TRACE_EVENT("E_ED_DEINIT"); + TRACE_EVENT("E_ED_DEINIT"); /* Mar 08, 2006 REF:ER OMAPS00065168 */ /* Stop playing ring tone on key press */ @@ -564,50 +563,50 @@ vsi_t_sleep(0,10); /* small delay */ #endif - if (Callback) - (Callback) (parent_win, Identifier, value); - - if(destroyEditor) - AUI_edit_Destroy(data->win); + if (Callback) + (Callback) (parent_win, Identifier, value); + + if(destroyEditor) + AUI_edit_Destroy(data->win); break; - /* Insert a character */ - - case E_ED_INSERT: - alphachar = (USHORT)value; - /* If value is set, insert character */ - if (alphachar!=NULL) - { - ATB_edit_Char(data->editor, alphachar, TRUE); + /* Insert a character */ + + case E_ED_INSERT: + alphachar = (USHORT)value; + /* If value is set, insert character */ + if (alphachar!=NULL) + { + ATB_edit_Char(data->editor, alphachar, TRUE); #ifdef EASY_TEXT_ENABLED - if(FFS_flashData.PredTextAvailable && FFS_flashData.PredTextSelected && ATB_edit_Mode(data->editor, ED_MODE_PREDTEXT)) - { - if ((alphachar == UNICODE_FULLSTOP) ||(alphachar == UNICODE_EXCLAMATION) - || (alphachar == UNICODE_QUESTION)) - { - ATB_edit_Char(data->editor, UNICODE_SPACE, TRUE); - } - } + if(FFS_flashData.PredTextAvailable && FFS_flashData.PredTextSelected && ATB_edit_Mode(data->editor, ED_MODE_PREDTEXT)) + { + if ((alphachar == UNICODE_FULLSTOP) ||(alphachar == UNICODE_EXCLAMATION) + || (alphachar == UNICODE_QUESTION)) + { + ATB_edit_Char(data->editor, UNICODE_SPACE, TRUE); + } + } #endif - } - else - /* If parameter is set, insert string */ - if (parameter!=NULL) - { - ATB_edit_InsertString(data->editor, (T_ATB_TEXT *)parameter); - } - win_show(data->win); - break; - - /* Update word wrap & redraw editor window */ - - case E_ED_UPDATE: - //ATB_edit_Refresh(data->editor); /* SPR#2342 - SH */ - win_show(data->win); - break; + } + else + /* If parameter is set, insert string */ + if (parameter!=NULL) + { + ATB_edit_InsertString(data->editor, (T_ATB_TEXT *)parameter); + } + win_show(data->win); + break; + + /* Update word wrap & redraw editor window */ + + case E_ED_UPDATE: + //ATB_edit_Refresh(data->editor); /* SPR#2342 - SH */ + win_show(data->win); + break; default: - break; + break; } return; } @@ -615,56 +614,54 @@ /******************************************************************************* - $Function: AUI_edit_WinCb - - $Description: Editor window event handler. - - $Returns: None. - - $Arguments: event - the event - win - the editor window + $Function: AUI_edit_WinCb + + $Description: Editor window event handler. + + $Returns: None. + + $Arguments: event - the event + win - the editor window *******************************************************************************/ static int AUI_edit_WinCb(T_MFW_EVENT event, T_MFW_WIN *win_data) { - T_AUI_EDITOR_INFO *data = (T_AUI_EDITOR_INFO *)win_data->user; - T_ED_DATA *editor = data->editor; - USHORT scrollBarSize; - USHORT scrollBarPos; - SHORT editX = editor->attr->win_size.px; - SHORT editY = editor->attr->win_size.py; - SHORT editWidth = editor->attr->win_size.sx; - SHORT editHeight = editor->attr->win_size.sy; - char lengthIndC[12]; - - /* Strings for the header */ - T_ATB_TEXT string; - USHORT stringWidth; - USHORT stringHeight; - T_ATB_TEXT title; - USHORT titleWidth; - USHORT titleHeight; - - USHORT textLen; - - - - - T_DS_TEXTFORMAT format; - BOOL showIcons; /* Flag that stores whether icons (e.g. alignment icons) should be shown */ - - USHORT leftSK; - USHORT rightSK; - USHORT textIndex; - T_ATB_TEXT newTitle; - USHORT lastSpace; - USHORT character; + T_AUI_EDITOR_INFO *data = (T_AUI_EDITOR_INFO *)win_data->user; + T_ED_DATA *editor = data->editor; + USHORT scrollBarSize; + USHORT scrollBarPos; + SHORT editX = editor->attr->win_size.px; + SHORT editY = editor->attr->win_size.py; + SHORT editWidth = editor->attr->win_size.sx; + SHORT editHeight = editor->attr->win_size.sy; + char lengthIndC[12]; + + /* Strings for the header */ + T_ATB_TEXT string; + USHORT stringWidth; + USHORT stringHeight; + T_ATB_TEXT title; + USHORT titleWidth; + USHORT titleHeight; + + USHORT textLen; + + + T_DS_TEXTFORMAT format; + BOOL showIcons; /* Flag that stores whether icons (e.g. alignment icons) should be shown */ + + USHORT leftSK; + USHORT rightSK; + USHORT textIndex; + T_ATB_TEXT newTitle; + USHORT lastSpace; + USHORT character; // Shashi Shekar B.S., a0876501, Jan 16, 2006, DR: OMAPS00061460 #ifdef FF_MMI_SAT_ICON - SHORT titleIconWidth = 0; - SHORT iconX; - SHORT iconY; + SHORT titleIconWidth = 0; + SHORT iconX; + SHORT iconY; #endif #ifdef TRACE_AUIEditor @@ -672,408 +669,406 @@ #endif if (!data) - return MFW_EVENT_CONSUMED; + return MFW_EVENT_CONSUMED; switch(event) { - case E_WIN_VISIBLE: /* window is visible */ + case E_WIN_VISIBLE: /* window is visible */ if (win_data->flags & E_WIN_VISIBLE) - { + { // Shashi Shekar B.S., a0876501, Jan 16, 2006, DR: OMAPS00061460 #ifdef FF_MMI_SAT_ICON - if (editor->attr->TitleIcon.data != NULL) - { - if (editor->attr->TitleIcon.width > TITLE_ICON_WIDTH) - { - titleIconWidth = TITLE_ICON_WIDTH; - } - else - { - titleIconWidth = editor->attr->TitleIcon.width; - } - } - else - { - titleIconWidth = 0; - } + if (editor->attr->TitleIcon.data != NULL) + { + if (editor->attr->TitleIcon.width > TITLE_ICON_WIDTH) + { + titleIconWidth = TITLE_ICON_WIDTH; + } + else + { + titleIconWidth = editor->attr->TitleIcon.width; + } + } + else + { + titleIconWidth = 0; + } #endif - textLen = data->editor->attr->text.len; - ATB_edit_LineGet(data->editor, data->editor->winStartLine); - - - if (editor->update==ED_UPDATE_TRIVIAL) + textLen = data->editor->attr->text.len; + ATB_edit_LineGet(data->editor, data->editor->winStartLine); + + + if (editor->update==ED_UPDATE_TRIVIAL) editor->update = ED_UPDATE_DEFAULT; - TRACE_EVENT("Updating whole screen."); - - - - - /* Show the edited text */ - /* Don't update editor text if in ED_UPDATE_PARTIAL */ - - if (editor->update!=ED_UPDATE_PARTIAL) - { - ATB_edit_Show(data->editor); - } - - /* Set the colour for drawing title and scrollbar */ - - resources_setTitleColour(COLOUR_EDITOR); - - /* TITLE */ - - if (data->editor_data.zone_id & ZONE_TITLE) - { - dspl_Clear(0,0, SCREEN_SIZE_X-1, editY-1); - - /* Display the title, if it exists */ - - string.len = 0; - string.dcs = ATB_DCS_ASCII; - title.len = 0; - title.dcs = ATB_DCS_ASCII; - - if (data->hasTitle) - { - title.data = data->title.data; - title.len = data->title.len; - title.dcs = data->title.dcs; - } - - /* Uppercase/lowercase indicator */ - - if (!ATB_edit_Mode(editor, ED_MODE_READONLY)) - { - switch(ATB_edit_GetCasePref(editor)) - { - case ED_CASEPREF_ALPHA_UC: - case ED_CASEPREF_ALPHANUM_UC: - string.data = (UBYTE *)ED_IND_UPPER; - break; - - case ED_CASEPREF_ALPHA_LC: - case ED_CASEPREF_ALPHANUM_LC: - string.data = (UBYTE *)ED_IND_LOWER; - break; - - case ED_CASEPREF_ALPHANUM: - if (ATB_edit_GetCase(editor)==ED_CASE_UPPER) - string.data = (UBYTE *)ED_IND_UPPER; - else if (ATB_edit_GetCase(editor)==ED_CASE_LOWER) - string.data = (UBYTE *)ED_IND_LOWER; - else if (ATB_edit_GetCase(editor)==ED_CASE_CAPS) - string.data = (UBYTE *)ED_IND_CAPS; - else - string.data = (UBYTE *)ED_IND_NUM; - break; - - case ED_CASEPREF_NUM: - string.data = (UBYTE *)ED_IND_NUM; - break; - - default: - string.data = (UBYTE *)ED_IND_NONE; - break; - } - - string.len = ATB_string_Length(&string); + TRACE_EVENT("Updating whole screen."); + + + /* Show the edited text */ + /* Don't update editor text if in ED_UPDATE_PARTIAL */ + + if (editor->update!=ED_UPDATE_PARTIAL) + { + ATB_edit_Show(data->editor); + } + + /* Set the colour for drawing title and scrollbar */ + + resources_setTitleColour(COLOUR_EDITOR); + + /* TITLE */ + + if (data->editor_data.zone_id & ZONE_TITLE) + { + dspl_Clear(0,0, SCREEN_SIZE_X-1, editY-1); + + /* Display the title, if it exists */ + + string.len = 0; + string.dcs = ATB_DCS_ASCII; + title.len = 0; + title.dcs = ATB_DCS_ASCII; + + if (data->hasTitle) + { + title.data = data->title.data; + title.len = data->title.len; + title.dcs = data->title.dcs; + } + + /* Uppercase/lowercase indicator */ + + if (!ATB_edit_Mode(editor, ED_MODE_READONLY)) + { + switch(ATB_edit_GetCasePref(editor)) + { + case ED_CASEPREF_ALPHA_UC: + case ED_CASEPREF_ALPHANUM_UC: + string.data = (UBYTE *)ED_IND_UPPER; + break; + + case ED_CASEPREF_ALPHA_LC: + case ED_CASEPREF_ALPHANUM_LC: + string.data = (UBYTE *)ED_IND_LOWER; + break; + + case ED_CASEPREF_ALPHANUM: + if (ATB_edit_GetCase(editor)==ED_CASE_UPPER) + string.data = (UBYTE *)ED_IND_UPPER; + else if (ATB_edit_GetCase(editor)==ED_CASE_LOWER) + string.data = (UBYTE *)ED_IND_LOWER; + else if (ATB_edit_GetCase(editor)==ED_CASE_CAPS) + string.data = (UBYTE *)ED_IND_CAPS; + else + string.data = (UBYTE *)ED_IND_NUM; + break; + + case ED_CASEPREF_NUM: + string.data = (UBYTE *)ED_IND_NUM; + break; + + default: + string.data = (UBYTE *)ED_IND_NONE; + break; + } + + string.len = ATB_string_Length(&string); #ifdef EASY_TEXT_ENABLED - /* Display predicted word in header */ - - if(ATB_edit_Mode(editor, ED_MODE_PREDTEXT) && FFS_flashData.PredTextSelected) - { - if (ATB_edit_CapitaliseWord(data->editor)) /* Word is capitalised */ - string.data = (UBYTE *)ED_IND_CAPS; - else - string.data = (UBYTE *)ED_IND_LOWER; - string.len = ATB_string_Length(&string); - - if(data->predText.len!=0) - { - title.data = data->predText.data; - title.len = data->predText.len; - title.dcs = data->predText.dcs; - } - } + /* Display predicted word in header */ + + if(ATB_edit_Mode(editor, ED_MODE_PREDTEXT) && FFS_flashData.PredTextSelected) + { + if (ATB_edit_CapitaliseWord(data->editor)) /* Word is capitalised */ + string.data = (UBYTE *)ED_IND_CAPS; + else + string.data = (UBYTE *)ED_IND_LOWER; + string.len = ATB_string_Length(&string); + + if(data->predText.len!=0) + { + title.data = data->predText.data; + title.len = data->predText.len; + title.dcs = data->predText.dcs; + } + } #endif - if (ATB_edit_Mode(editor, ED_MODE_ALPHA) && title.len==0) - { - /* SPR#1995 - SH - 'size' includes null terminator, so - * remaining characters is size-1 */ + if (ATB_edit_Mode(editor, ED_MODE_ALPHA) && title.len==0) + { + /* SPR#1995 - SH - 'size' includes null terminator, so + * remaining characters is size-1 */ #ifdef LSCREEN - sprintf(lengthIndC, "%d/%d", textLen, editor->attr->size-1); + sprintf(lengthIndC, "%d/%d", textLen, editor->attr->size-1); #else - sprintf(lengthIndC, "%d", editor->attr->size-textLen-1); + sprintf(lengthIndC, "%d", editor->attr->size-textLen-1); #endif - title.data = (UBYTE *)lengthIndC; - title.len = ATB_string_Length(&title); - } - } - - /* Draw the string to the right of the editor - the case/format indicator, and icons (if appropriate) */ - - stringWidth = 0; - stringHeight = 0; - showIcons = FALSE; - - if (string.len) - { - TRACE_EVENT("Displaying string on right"); - ATB_display_SetFormatAttr(&format, 0, FALSE); /* Set format to format at cursor */ - stringWidth = ATB_display_StringWidth(&string, &format)+2; - stringHeight = ATB_display_StringHeight(&string, &format); - ATB_display_Text(SCREEN_SIZE_X-stringWidth+2,0, &format, &string); - showIcons = TRUE; /* If showing case, show icons */ - } + title.data = (UBYTE *)lengthIndC; + title.len = ATB_string_Length(&title); + } + } + + /* Draw the string to the right of the editor - the case/format indicator, and icons (if appropriate) */ + + stringWidth = 0; + stringHeight = 0; + showIcons = FALSE; + + if (string.len) + { + TRACE_EVENT("Displaying string on right"); + ATB_display_SetFormatAttr(&format, 0, FALSE); /* Set format to format at cursor */ + stringWidth = ATB_display_StringWidth(&string, &format)+2; + stringHeight = ATB_display_StringHeight(&string, &format); + ATB_display_Text(SCREEN_SIZE_X-stringWidth+2,0, &format, &string); + showIcons = TRUE; /* If showing case, show icons */ + } #ifdef EASY_TEXT_ENABLED - /* Display ezitext icon to the left of the case indicator */ - - if(ATB_edit_Mode(editor, ED_MODE_PREDTEXT) && FFS_flashData.PredTextSelected == TRUE) - { - if (data->predText.len==0) // Show icons only if there's no predicted text entry currently - showIcons = TRUE; - else - showIcons = FALSE; - } + /* Display ezitext icon to the left of the case indicator */ + + if(ATB_edit_Mode(editor, ED_MODE_PREDTEXT) && FFS_flashData.PredTextSelected == TRUE) + { + if (data->predText.len==0) // Show icons only if there's no predicted text entry currently + showIcons = TRUE; + else + showIcons = FALSE; + } #endif - /* Show icons to the left of the case indicator */ - - if (showIcons) - { + /* Show icons to the left of the case indicator */ + + if (showIcons) + { #ifdef EASY_TEXT_ENABLED - /* Display ezitext icon to the left of the case indicator */ - if(ATB_edit_Mode(editor, ED_MODE_PREDTEXT) && FFS_flashData.PredTextSelected == TRUE) - { - stringWidth += 8; - dspl_BitBlt(SCREEN_SIZE_X-stringWidth+2, - 0,8,8,0,(char*)TextIconeZiTextSmall,0); - } + /* Display ezitext icon to the left of the case indicator */ + if(ATB_edit_Mode(editor, ED_MODE_PREDTEXT) && FFS_flashData.PredTextSelected == TRUE) + { + stringWidth += 8; + dspl_BitBlt(SCREEN_SIZE_X-stringWidth+2, + 0,8,8,0,(char*)TextIconeZiTextSmall,0); + } #endif - if (stringHeight<Mmi_layout_line_height()) - stringHeight = Mmi_layout_line_height(); - } - - - /* Draw the string to the left of the screen - the editor title, or the number of characters - * remaining free in the buffer, or the predicted text word. */ - - titleWidth = 0; - titleHeight = 0; - - if (title.len) - { - ATB_display_SetFormatAttr(&format, 0, FALSE); /* Clear format */ - - titleWidth = ATB_display_StringWidth(&title, &format)+2; - titleHeight = ATB_display_StringHeight(&title, &format); - - /* Check to see if title fits into top line - if it doesn't, - * we will need display a section of it. */ - - if (titleWidth>(SCREEN_SIZE_X-stringWidth-2)) - { - /* Create timer if it doesn't exist */ - - if (!data->title_timer) - { - data->title_timer = tim_create(data->win, 3000, (T_MFW_CB)AUI_edit_TitleTimerCb); - data->title_pos = 0; - data->title_next_pos = 0; - tim_start(data->title_timer); - } - - titleWidth = 0; - textIndex = data->title_pos; - lastSpace = 0; - - while (titleWidth<(SCREEN_SIZE_X-stringWidth-2) && textIndex<title.len) - { - character = ATB_string_GetChar(&title, textIndex); - titleWidth+=ATB_display_GetCharWidth(character, &format); - textIndex++; - if (character==UNICODE_SPACE) - lastSpace = textIndex; - } - - TRACE_EVENT_P1("Characters that fit: %d", textIndex); - - /* Calculate next start position */ - - if (textIndex==title.len) - data->title_next_pos = 0; - else - { - /* Word wrap to last space, if there was one */ - - if (lastSpace>0) - textIndex = lastSpace; - data->title_next_pos = textIndex; - } - - TRACE_EVENT_P1("Next position: %d", data->title_next_pos); - - newTitle.len = textIndex-data->title_pos; - newTitle.data = (UBYTE *)ALLOC_MEMORY((newTitle.len+1)*ATB_string_Size(&title)); - newTitle.dcs = title.dcs; - - for (textIndex=0; textIndex<newTitle.len; textIndex++) - { - ATB_string_SetChar(&newTitle, textIndex, ATB_string_GetChar(&title, data->title_pos+textIndex)); - } - ATB_string_SetChar(&newTitle, newTitle.len, UNICODE_EOLN); + if (stringHeight<Mmi_layout_line_height()) + stringHeight = Mmi_layout_line_height(); + } + + + /* Draw the string to the left of the screen - the editor title, or the number of characters + * remaining free in the buffer, or the predicted text word. */ + + titleWidth = 0; + titleHeight = 0; + + if (title.len) + { + ATB_display_SetFormatAttr(&format, 0, FALSE); /* Clear format */ + + titleWidth = ATB_display_StringWidth(&title, &format)+2; + titleHeight = ATB_display_StringHeight(&title, &format); + + /* Check to see if title fits into top line - if it doesn't, + * we will need display a section of it. */ + + if (titleWidth>(SCREEN_SIZE_X-stringWidth-2)) + { + /* Create timer if it doesn't exist */ + + if (!data->title_timer) + { + data->title_timer = tim_create(data->win, 3000, (T_MFW_CB)AUI_edit_TitleTimerCb); + data->title_pos = 0; + data->title_next_pos = 0; + tim_start(data->title_timer); + } + + titleWidth = 0; + textIndex = data->title_pos; + lastSpace = 0; + + while (titleWidth<(SCREEN_SIZE_X-stringWidth-2) && textIndex<title.len) + { + character = ATB_string_GetChar(&title, textIndex); + titleWidth+=ATB_display_GetCharWidth(character, &format); + textIndex++; + if (character==UNICODE_SPACE) + lastSpace = textIndex; + } + + TRACE_EVENT_P1("Characters that fit: %d", textIndex); + + /* Calculate next start position */ + + if (textIndex==title.len) + data->title_next_pos = 0; + else + { + /* Word wrap to last space, if there was one */ + + if (lastSpace>0) + textIndex = lastSpace; + data->title_next_pos = textIndex; + } + + TRACE_EVENT_P1("Next position: %d", data->title_next_pos); + + newTitle.len = textIndex-data->title_pos; + newTitle.data = (UBYTE *)ALLOC_MEMORY((newTitle.len+1)*ATB_string_Size(&title)); + newTitle.dcs = title.dcs; + + for (textIndex=0; textIndex<newTitle.len; textIndex++) + { + ATB_string_SetChar(&newTitle, textIndex, ATB_string_GetChar(&title, data->title_pos+textIndex)); + } + ATB_string_SetChar(&newTitle, newTitle.len, UNICODE_EOLN); // Shashi Shekar B.S., a0876501, Jan 16, 2006, DR: OMAPS00061460 #ifdef FF_MMI_SAT_ICON - /* Check if the icon is self-explanatory, GSM 11.14, Sec 6.5.4, 12.32. - If the icon is to displayed, move the text by icon width. */ - if (editor->attr->TitleIcon.selfExplanatory == FALSE) - ATB_display_Text(titleIconWidth+1,0,&format, &newTitle); + /* Check if the icon is self-explanatory, GSM 11.14, Sec 6.5.4, 12.32. + If the icon is to displayed, move the text by icon width. */ + if (editor->attr->TitleIcon.selfExplanatory == FALSE) + ATB_display_Text(titleIconWidth+1,0,&format, &newTitle); #else - ATB_display_Text(0,0,&format, &newTitle); + ATB_display_Text(0,0,&format, &newTitle); #endif - FREE_MEMORY((UBYTE *)newTitle.data, (newTitle.len+1)*ATB_string_Size(&title)); - } - else + FREE_MEMORY((UBYTE *)newTitle.data, (newTitle.len+1)*ATB_string_Size(&title)); + } + else // Shashi Shekar B.S., a0876501, Jan 16, 2006, DR: OMAPS00061460 #ifdef FF_MMI_SAT_ICON - { - /* Check if the icon is self-explanatory, GSM 11.14, Sec 6.5.4, 12.32. - If the icon is to displayed, move the text by icon width. */ - if (editor->attr->TitleIcon.selfExplanatory == FALSE) - ATB_display_Text(titleIconWidth+1,0,&format, &title); - } + { + /* Check if the icon is self-explanatory, GSM 11.14, Sec 6.5.4, 12.32. + If the icon is to displayed, move the text by icon width. */ + if (editor->attr->TitleIcon.selfExplanatory == FALSE) + ATB_display_Text(titleIconWidth+1,0,&format, &title); + } #else - ATB_display_Text(0,0,&format, &title); + ATB_display_Text(0,0,&format, &title); #endif #ifdef EASY_TEXT_ENABLED - /* Provides a cursor in the predicted word, so the user can tell which of the characters - * entered are being used to select the word. */ - - if(ATB_edit_Mode(editor, ED_MODE_PREDTEXT) && FFS_flashData.PredTextSelected && data->predText.len!=0) - { - ATB_display_Cursor(&data->predText, data->predTextChar.pos, ED_CURSOR_BLOCK, - data->predTextChar.lineWidth, 0, data->predTextChar.width, data->predTextChar.height); - } + /* Provides a cursor in the predicted word, so the user can tell which of the characters + * entered are being used to select the word. */ + + if(ATB_edit_Mode(editor, ED_MODE_PREDTEXT) && FFS_flashData.PredTextSelected && data->predText.len!=0) + { + ATB_display_Cursor(&data->predText, data->predTextChar.pos, ED_CURSOR_BLOCK, + data->predTextChar.lineWidth, 0, data->predTextChar.width, data->predTextChar.height); + } #endif - } + } // Shashi Shekar B.S., a0876501, Jan 16, 2006, DR: OMAPS00061460 #ifdef FF_MMI_SAT_ICON - if(editor->attr->TitleIcon.data != NULL) - { - - if (titleHeight == 0) - titleHeight = TITLE_ICON_HEIGHT; - - /* Display '?' icon if the size is bigger, - else display the icon*/ - if ((editor->attr->TitleIcon.width > TITLE_ICON_WIDTH) || (editor->attr->TitleIcon.height > TITLE_ICON_HEIGHT)) - { - /* iconY calculates place hoilder to place the icon - at the center of the screen. */ - iconX = 1; - iconY = 1+ ((titleHeight-2) / 2) - (10 / 2); - dspl_BitBlt2(iconX, iconY, 8, - 10, (void*)SATIconQuestionMark, 0, BMP_FORMAT_256_COLOUR); - } - else - { - /* iconY calculates place hoilder to place the icon - at the center of the screen. */ - iconX = 1; - iconY = 1+ ((titleHeight-2) / 2) - (editor->attr->TitleIcon.height / 2); - dspl_BitBlt2(iconX, iconY, editor->attr->TitleIcon.width, editor->attr->TitleIcon.height, - (void*)editor->attr->TitleIcon.data, 0, BMP_FORMAT_256_COLOUR); - } - } + if(editor->attr->TitleIcon.data != NULL) + { + + if (titleHeight == 0) + titleHeight = TITLE_ICON_HEIGHT; + + /* Display '?' icon if the size is bigger, + else display the icon*/ + if ((editor->attr->TitleIcon.width > TITLE_ICON_WIDTH) || (editor->attr->TitleIcon.height > TITLE_ICON_HEIGHT)) + { + /* iconY calculates place hoilder to place the icon + at the center of the screen. */ + iconX = 1; + iconY = 1+ ((titleHeight-2) / 2) - (10 / 2); + dspl_BitBlt2(iconX, iconY, 8, + 10, (void*)SATIconQuestionMark, 0, BMP_FORMAT_256_COLOUR); + } + else + { + /* iconY calculates place hoilder to place the icon + at the center of the screen. */ + iconX = 1; + iconY = 1+ ((titleHeight-2) / 2) - (editor->attr->TitleIcon.height / 2); + dspl_BitBlt2(iconX, iconY, editor->attr->TitleIcon.width, editor->attr->TitleIcon.height, + (void*)editor->attr->TitleIcon.data, 0, BMP_FORMAT_256_COLOUR); + } + } #endif - /* Draw line on top */ - - if (stringHeight>titleHeight) - titleHeight = stringHeight; - - /* Non colour display - draw line between title texts*/ + /* Draw line on top */ + + if (stringHeight>titleHeight) + titleHeight = stringHeight; + + /* Non colour display - draw line between title texts*/ #ifndef LSCREEN - if (titleHeight>0) - { - if (stringWidth==0) - stringWidth = 1; /* Make sure end of line is on-screen */ - dspl_DrawLine(titleWidth, titleHeight/2, SCREEN_SIZE_X-stringWidth, titleHeight/2); /* Line between title & indicator */ - } + if (titleHeight>0) + { + if (stringWidth==0) + stringWidth = 1; /* Make sure end of line is on-screen */ + dspl_DrawLine(titleWidth, titleHeight/2, SCREEN_SIZE_X-stringWidth, titleHeight/2); /* Line between title & indicator */ + } #endif - } - - /* SCROLLBAR */ - - if (data->editor_data.zone_id & ZONE_SCROLLBAR) - { - dspl_Clear(editX+editWidth, editY, editX+editWidth+ED_SCROLLBAR_WIDTH-1, editY+editHeight-1); - - /* Vertical scrollbar - only show if editor is taller than view size */ - - if (editor->totalHeight > 0 && editor->viewHeight<editor->totalHeight) - { - dspl_DrawLine(editX+editWidth, editY, editX+editWidth, editY+editHeight-1); - scrollBarSize = editor->viewHeight * editHeight / editor->totalHeight; - if (scrollBarSize>editHeight) - scrollBarSize = editHeight; - scrollBarPos = editor->viewStartPos * editHeight / editor->totalHeight; - - dspl_DrawLine(editX+editWidth+1, editY+scrollBarPos, editX+editWidth+1, - editY+scrollBarPos+scrollBarSize); - dspl_DrawLine(editX+editWidth+2, editY+scrollBarPos, editX+editWidth+2, - editY+scrollBarPos+scrollBarSize); - } - } - - /* SOFTKEYS */ - - if (data->editor_data.zone_id & ZONE_SOFTKEYS) - { + } + + /* SCROLLBAR */ + + if (data->editor_data.zone_id & ZONE_SCROLLBAR) + { + dspl_Clear(editX+editWidth, editY, editX+editWidth+ED_SCROLLBAR_WIDTH-1, editY+editHeight-1); + + /* Vertical scrollbar - only show if editor is taller than view size */ + + if (editor->totalHeight > 0 && editor->viewHeight<editor->totalHeight) + { + dspl_DrawLine(editX+editWidth, editY, editX+editWidth, editY+editHeight-1); + scrollBarSize = editor->viewHeight * editHeight / editor->totalHeight; + if (scrollBarSize>editHeight) + scrollBarSize = editHeight; + scrollBarPos = editor->viewStartPos * editHeight / editor->totalHeight; + + dspl_DrawLine(editX+editWidth+1, editY+scrollBarPos, editX+editWidth+1, + editY+scrollBarPos+scrollBarSize); + dspl_DrawLine(editX+editWidth+2, editY+scrollBarPos, editX+editWidth+2, + editY+scrollBarPos+scrollBarSize); + } + } + + /* SOFTKEYS */ + + if (data->editor_data.zone_id & ZONE_SOFTKEYS) + { #ifdef EASY_TEXT_ENABLED - /* If a word is being entered, display OK and Delete */ - - if (ATB_edit_Mode(data->editor, ED_MODE_PREDTEXT) && data->predText.len!=0 && FFS_flashData.PredTextSelected == TRUE) - { - leftSK = TxtSoftOK; - rightSK = TxtDelete; - } - else + /* If a word is being entered, display OK and Delete */ + + if (ATB_edit_Mode(data->editor, ED_MODE_PREDTEXT) && data->predText.len!=0 && FFS_flashData.PredTextSelected == TRUE) + { + leftSK = TxtSoftOK; + rightSK = TxtDelete; + } + else #endif - { - /* Entered less than the required number of chars: Alternate Left Softkey appears */ - if (textLen < data->editor_data.min_enter) - { - leftSK = data->editor_data.AltLeftSoftKey; - } - else - { - leftSK = data->editor_data.LeftSoftKey; - } - /* Buffer is empty and alternative rsk enabled: alternative rsk appears */ - if (textLen==0 && data->editor_data.change_rsk_on_empty) - { - rightSK = data->editor_data.AltRightSoftKey; - } - else - { - rightSK = data->editor_data.RightSoftKey; - } - } - displaySoftKeys(leftSK, rightSK); - } - - /* Finished drawing screen */ - } + { + /* Entered less than the required number of chars: Alternate Left Softkey appears */ + if (textLen < data->editor_data.min_enter) + { + leftSK = data->editor_data.AltLeftSoftKey; + } + else + { + leftSK = data->editor_data.LeftSoftKey; + } + /* Buffer is empty and alternative rsk enabled: alternative rsk appears */ + if (textLen==0 && data->editor_data.change_rsk_on_empty) + { + rightSK = data->editor_data.AltRightSoftKey; + } + else + { + rightSK = data->editor_data.RightSoftKey; + } + } + displaySoftKeys(leftSK, rightSK); + } + + /* Finished drawing screen */ + } break; default: @@ -1081,7 +1076,7 @@ // break; // RAVI } - data->editor->update = ED_UPDATE_DEFAULT; + data->editor->update = ED_UPDATE_DEFAULT; return MFW_EVENT_CONSUMED; } @@ -1089,536 +1084,536 @@ /******************************************************************************* - $Function: AUI_edit_KbdCb - - $Description: Editor keyboard event handler - - $Returns: None. - - $Arguments: event - the keyboard event - keyboard + $Function: AUI_edit_KbdCb + + $Description: Editor keyboard event handler + + $Returns: None. + + $Arguments: event - the keyboard event + keyboard *******************************************************************************/ static int AUI_edit_KbdCb(T_MFW_EVENT event, T_MFW_KBD *keyboard) { - T_MFW_HND win = mfw_parent (mfw_header()); - T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; - T_AUI_EDITOR_INFO *data = (T_AUI_EDITOR_INFO *)win_data->user; -#if (BOARD != 61) && defined(EASY_TEXT_ENABLED) - T_ATB_TEXT *PredText = &data->predText; - USHORT character; + T_MFW_HND win = mfw_parent (mfw_header()); + T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; + T_AUI_EDITOR_INFO *data = (T_AUI_EDITOR_INFO *)win_data->user; +#if (BOARD != 61) && defined(EASY_TEXT_ENABLED) + T_ATB_TEXT *PredText = &data->predText; + USHORT character; #endif - ED_RES result; - - TRACE_FUNCTION("AUI_edit_KbdCb()"); + ED_RES result; + + TRACE_FUNCTION("AUI_edit_KbdCb()"); /* Suppress unwanted long keypresses */ - data->doNextLongPress = TRUE; /* next Key_long event is correct */ - - /* Restart the timer */ + data->doNextLongPress = TRUE; /* next Key_long event is correct */ + + /* Restart the timer */ if (data->timer !=NULL) - { - tim_stop(data->timer); - tim_start(data->timer); - } + { + tim_stop(data->timer); + tim_start(data->timer); + } #ifdef EASY_TEXT_ENABLED - if (FFS_flashData.PredTextSelected==FALSE || !ATB_edit_Mode(data->editor, ED_MODE_PREDTEXT)) - { - /* Predictive text is off */ + if (FFS_flashData.PredTextSelected==FALSE || !ATB_edit_Mode(data->editor, ED_MODE_PREDTEXT)) + { + /* Predictive text is off */ #endif - switch (keyboard->code) - { - /* UP key */ - - case KCD_MNUUP: - /* For DSample, up and down move cursor up and down a line in all modes */ + switch (keyboard->code) + { + /* UP key */ + + case KCD_MNUUP: + /* For DSample, up and down move cursor up and down a line in all modes */ #ifdef LSCREEN - ATB_edit_MoveCursor(data->editor, ctrlUp, TRUE); - - /* For other samples, up and down move left and right when not in read only mode */ + ATB_edit_MoveCursor(data->editor, ctrlUp, TRUE); + + /* For other samples, up and down move left and right when not in read only mode */ #else - if (ATB_edit_Mode(data->editor, ED_MODE_READONLY)) /* Acts as up key in read-only mode */ - { - ATB_edit_MoveCursor(data->editor, ctrlUp, TRUE); - } - else - { - ATB_edit_MoveCursor(data->editor, ctrlRight, TRUE); - } + if (ATB_edit_Mode(data->editor, ED_MODE_READONLY)) /* Acts as up key in read-only mode */ + { + ATB_edit_MoveCursor(data->editor, ctrlUp, TRUE); + } + else + { + ATB_edit_MoveCursor(data->editor, ctrlRight, TRUE); + } #endif - data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update */ - win_show(data->win); - break; - - /* DOWN key */ - - case KCD_MNUDOWN: - /* For DSample, up and down move cursor up and down a line in all modes */ + data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update */ + win_show(data->win); + break; + + /* DOWN key */ + + case KCD_MNUDOWN: + /* For DSample, up and down move cursor up and down a line in all modes */ #ifdef LSCREEN - ATB_edit_MoveCursor(data->editor, ctrlDown, TRUE); - - /* For other samples, up and down move left and right when not in read only mode */ + ATB_edit_MoveCursor(data->editor, ctrlDown, TRUE); + + /* For other samples, up and down move left and right when not in read only mode */ #else - if (ATB_edit_Mode(data->editor, ED_MODE_READONLY)) /* Act as down key in read-only mode */ - { - ATB_edit_MoveCursor(data->editor, ctrlDown, TRUE); - } - else - { - ATB_edit_MoveCursor(data->editor, ctrlLeft, TRUE); /* Otherwise, move cursor left */ - } + if (ATB_edit_Mode(data->editor, ED_MODE_READONLY)) /* Act as down key in read-only mode */ + { + ATB_edit_MoveCursor(data->editor, ctrlDown, TRUE); + } + else + { + ATB_edit_MoveCursor(data->editor, ctrlLeft, TRUE); /* Otherwise, move cursor left */ + } #endif - data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update - no change to text */ - win_show(data->win); - break; - - /* For DSample, left and right keys move cursor left and right */ + data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update - no change to text */ + win_show(data->win); + break; + + /* For DSample, left and right keys move cursor left and right */ #ifdef LSCREEN - /* MENU LEFT */ - - case KCD_MNULEFT: - ATB_edit_MoveCursor(data->editor, ctrlLeft, TRUE); /* Move cursor left */ - data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update - no change to text */ - win_show(data->win); - break; - - /* MENU RIGHT */ - - case KCD_MNURIGHT: - ATB_edit_MoveCursor(data->editor, ctrlRight, TRUE); /* Move cursor right */ - data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update - no change to text */ - win_show(data->win); - break; + /* MENU LEFT */ + + case KCD_MNULEFT: + ATB_edit_MoveCursor(data->editor, ctrlLeft, TRUE); /* Move cursor left */ + data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update - no change to text */ + win_show(data->win); + break; + + /* MENU RIGHT */ + + case KCD_MNURIGHT: + ATB_edit_MoveCursor(data->editor, ctrlRight, TRUE); /* Move cursor right */ + data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update - no change to text */ + win_show(data->win); + break; #endif - /* LEFT SOFT KEY */ - - case KCD_LEFT: - if (data->editor_data.editor_attr.text.len < data->editor_data.min_enter) - { - /* Entered less than the required number of chars */ - if (data->editor_data.AltLeftSoftKey!=TxtNull) - { - /* an alternate softkey is defined: execute it */ - SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_ALTERNATELEFT, NULL); - } - } - else if (data->editor_data.LeftSoftKey!=TxtNull) - { - /* Left Softkey is enabled (and entered sufficient number of chars): execute it - * get the orginal text back into the editor instead of the hide buffer ( only filled with '*') */ - if (ATB_edit_Mode(data->editor, ED_MODE_HIDDEN)) - { - ATB_edit_HiddenExit(data->editor); - } - SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_LEFT, NULL); - } - break; - - /* HANGUP key */ + /* LEFT SOFT KEY */ + + case KCD_LEFT: + if (data->editor_data.editor_attr.text.len < data->editor_data.min_enter) + { + /* Entered less than the required number of chars */ + if (data->editor_data.AltLeftSoftKey!=TxtNull) + { + /* an alternate softkey is defined: execute it */ + SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_ALTERNATELEFT, NULL); + } + } + else if (data->editor_data.LeftSoftKey!=TxtNull) + { + /* Left Softkey is enabled (and entered sufficient number of chars): execute it + * get the orginal text back into the editor instead of the hide buffer ( only filled with '*') */ + if (ATB_edit_Mode(data->editor, ED_MODE_HIDDEN)) + { + ATB_edit_HiddenExit(data->editor); + } + SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_LEFT, NULL); + } + break; + + /* HANGUP key */ case KCD_HUP: - if (data->editor_data.RightSoftKey NEQ TxtNull) /* Right softkey is enabled: execute it */ - { - SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_HUP, NULL); /* Deinitialise the editor */ + if (data->editor_data.RightSoftKey NEQ TxtNull) /* Right softkey is enabled: execute it */ + { + SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_HUP, NULL); /* Deinitialise the editor */ + } + break; + + /* SEND KEY */ + + case KCD_CALL: + if (data->editor_data.editor_attr.text.len >= data->editor_data.min_enter) + { + /* Send this event to generate an MO call in SMS editor */ + SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_CALL, NULL); + } + break; + + /* RIGHT SOFT KEY */ + + case KCD_RIGHT: + TRACE_EVENT("KCD_RIGHT"); + if (ATB_edit_Mode(data->editor, ED_MODE_READONLY)) /* in read only mode, */ + { + TRACE_EVENT("SENDING DEINIT EVENT"); + SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_RIGHT, NULL); /* just deinitialise editor */ } - break; - - /* SEND KEY */ - - case KCD_CALL: - if (data->editor_data.editor_attr.text.len >= data->editor_data.min_enter) - { - /* Send this event to generate an MO call in SMS editor */ - SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_CALL, NULL); - } - break; - - /* RIGHT SOFT KEY */ - - case KCD_RIGHT: - TRACE_EVENT("KCD_RIGHT"); - if (ATB_edit_Mode(data->editor, ED_MODE_READONLY)) /* in read only mode, */ - { - TRACE_EVENT("SENDING DEINIT EVENT"); - SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_RIGHT, NULL); /* just deinitialise editor */ - } - else /* otherwise, RSK acts as clear key */ + else /* otherwise, RSK acts as clear key */ { - /* If multitap is in progress, delete current character - * rather than previous character */ - - if (data->editor->multitap) - { - AUI_entry_StopMultitap(data->entry_data); /* Cancel multitap */ - result = ATB_edit_DeleteRight(data->editor, TRUE); /* SPR#2342 - SH */ - } - else - { - result = ATB_edit_DeleteLeft(data->editor, TRUE); /* SPR#2342 - SH */ - } - - /* If we delete from first character in the editor, exit editor */ - if (result==ED_DONE) - { - SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_RIGHT, NULL); - } - else - { - win_show(data->win); - } + /* If multitap is in progress, delete current character + * rather than previous character */ + + if (data->editor->multitap) + { + AUI_entry_StopMultitap(data->entry_data); /* Cancel multitap */ + result = ATB_edit_DeleteRight(data->editor, TRUE); /* SPR#2342 - SH */ + } + else + { + result = ATB_edit_DeleteLeft(data->editor, TRUE); /* SPR#2342 - SH */ + } + + /* If we delete from first character in the editor, exit editor */ + if (result==ED_DONE) + { + SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_RIGHT, NULL); + } + else + { + win_show(data->win); + } } - break; - - /* Switch text mode: uppercase, lowercase */ - case KCD_HASH: - if (ATB_edit_Mode(data->editor, ED_MODE_ALPHA)) - { - // Jul 22,2004 CRR:21605 xrashmic - SASKEN - // The user has explicitly changed the case. When - // the editor becomes empty, we should not reset the - // case to sentence case - CaseChanged=TRUE; - switch(ATB_edit_GetCase(data->editor)) - { - case ED_CASE_LOWER: - // Jul 22,2004 CRR:21605 xrashmic - SASKEN - // The user has changed the case to sentence case. - // when the editor becomes empty, we have to reset - // the case to sentence case. - CaseChanged=FALSE; - ATB_edit_SetCase(data->editor, ED_CASE_CAPS); - break; - case ED_CASE_CAPS: - ATB_edit_SetCase(data->editor, ED_CASE_UPPER); - break; - case ED_CASE_UPPER: - ATB_edit_SetCase(data->editor, ED_CASE_LOWER); - - /* If easy text selected, switch to it */ + break; + + /* Switch text mode: uppercase, lowercase */ + case KCD_HASH: + if (ATB_edit_Mode(data->editor, ED_MODE_ALPHA)) + { + // Jul 22,2004 CRR:21605 xrashmic - SASKEN + // The user has explicitly changed the case. When + // the editor becomes empty, we should not reset the + // case to sentence case + CaseChanged=TRUE; + switch(ATB_edit_GetCase(data->editor)) + { + case ED_CASE_LOWER: + // Jul 22,2004 CRR:21605 xrashmic - SASKEN + // The user has changed the case to sentence case. + // when the editor becomes empty, we have to reset + // the case to sentence case. + CaseChanged=FALSE; + ATB_edit_SetCase(data->editor, ED_CASE_CAPS); + break; + case ED_CASE_CAPS: + ATB_edit_SetCase(data->editor, ED_CASE_UPPER); + break; + case ED_CASE_UPPER: + ATB_edit_SetCase(data->editor, ED_CASE_LOWER); + + /* If easy text selected, switch to it */ #ifdef EASY_TEXT_ENABLED - if (ATB_edit_Mode(data->editor, ED_MODE_PREDTEXT) && FFS_flashData.PredTextAvailable) - { - FFS_flashData.PredTextSelected = TRUE; - } + if (ATB_edit_Mode(data->editor, ED_MODE_PREDTEXT) && FFS_flashData.PredTextAvailable) + { + FFS_flashData.PredTextSelected = TRUE; + } #endif - break; - case ED_CASE_NUM: - ATB_edit_SetCase(data->editor, ED_CASE_LOWER); - break; - } - } - else - { - /* SPR#1788 - SH - Forbid '#' entry in read only mode */ - if (!ATB_edit_Mode(data->editor, ED_MODE_READONLY)) - AUI_entry_EventKey(data->entry_data, event, keyboard); - } - - win_show(data->win); - break; - - case (KCD_STAR): - /* If we're in apha mode and not in read-only mode, display the symbol screen */ - if (ATB_edit_Mode(data->editor, ED_MODE_ALPHA) && !ATB_edit_Mode(data->editor, ED_MODE_READONLY)) - { - AUI_symbol_Start (data->win, E_ED_INSERT); - } - else - { - /* SPR#1788 - SH - Allow '*' to be entered in numeric mode */ - if (!ATB_edit_Mode(data->editor, ED_MODE_READONLY)) - AUI_entry_EventKey(data->entry_data, event, keyboard); - } - - win_show(data->win); - break; - - /* KEY ENTRY 0 - 9 */ - - case KCD_0: - case KCD_1: - case KCD_2: - case KCD_3: - case KCD_4: - case KCD_5: - case KCD_6: - case KCD_7: - case KCD_8: - case KCD_9: + break; + case ED_CASE_NUM: + ATB_edit_SetCase(data->editor, ED_CASE_LOWER); + break; + } + } + else + { + /* SPR#1788 - SH - Forbid '#' entry in read only mode */ + if (!ATB_edit_Mode(data->editor, ED_MODE_READONLY)) + AUI_entry_EventKey(data->entry_data, event, keyboard); + } + + win_show(data->win); + break; + + case (KCD_STAR): + /* If we're in apha mode and not in read-only mode, display the symbol screen */ + if (ATB_edit_Mode(data->editor, ED_MODE_ALPHA) && !ATB_edit_Mode(data->editor, ED_MODE_READONLY)) + { + AUI_symbol_Start (data->win, E_ED_INSERT); + } + else + { + /* SPR#1788 - SH - Allow '*' to be entered in numeric mode */ + if (!ATB_edit_Mode(data->editor, ED_MODE_READONLY)) + AUI_entry_EventKey(data->entry_data, event, keyboard); + } + + win_show(data->win); + break; + + /* KEY ENTRY 0 - 9 */ + + case KCD_0: + case KCD_1: + case KCD_2: + case KCD_3: + case KCD_4: + case KCD_5: + case KCD_6: + case KCD_7: + case KCD_8: + case KCD_9: if (!ATB_edit_Mode(data->editor, ED_MODE_READONLY)) - { + { AUI_entry_EventKey(data->entry_data, event, keyboard); win_show(data->win); - } - break; - } + } + break; + } #ifdef EASY_TEXT_ENABLED - } - else - - /* Short key press in EasyText */ - - { - if(FFS_flashData.PredTextAvailable == TRUE) - { - switch (keyboard->code) + } + else + + /* Short key press in EasyText */ + + { + if(FFS_flashData.PredTextAvailable == TRUE) + { + switch (keyboard->code) { - case KCD_MNUUP: - if(PredText->len==0) - { + case KCD_MNUUP: + if(PredText->len==0) + { #ifdef LSCREEN - ATB_edit_MoveCursor(data->editor, ctrlUp, TRUE); - - /* For other samples, up and down move left and right when not in read only mode */ + ATB_edit_MoveCursor(data->editor, ctrlUp, TRUE); + + /* For other samples, up and down move left and right when not in read only mode */ #else - ATB_edit_MoveCursor(data->editor,ctrlRight, TRUE); + ATB_edit_MoveCursor(data->editor,ctrlRight, TRUE); #endif - data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update */ - win_show(data->win); - } - break; - - case KCD_MNUDOWN: - if(PredText->len==0) - { + data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update */ + win_show(data->win); + } + break; + + case KCD_MNUDOWN: + if(PredText->len==0) + { #ifdef LSCREEN - ATB_edit_MoveCursor(data->editor, ctrlDown, TRUE); - - /* For other samples, up and down move left and right when not in read only mode */ + ATB_edit_MoveCursor(data->editor, ctrlDown, TRUE); + + /* For other samples, up and down move left and right when not in read only mode */ #else - ATB_edit_MoveCursor(data->editor,ctrlLeft, TRUE); + ATB_edit_MoveCursor(data->editor,ctrlLeft, TRUE); #endif - data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update */ - win_show(data->win); - } - break; + data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update */ + win_show(data->win); + } + break; #ifdef LSCREEN - case KCD_MNURIGHT: - if(PredText->len==0) - { - ATB_edit_MoveCursor(data->editor, ctrlRight, TRUE); - data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update */ - win_show(data->win); - } - break; - - case KCD_MNULEFT: - if(PredText->len==0) - { - ATB_edit_MoveCursor(data->editor,ctrlLeft, TRUE); - data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update */ - win_show(data->win); - } - break; + case KCD_MNURIGHT: + if(PredText->len==0) + { + ATB_edit_MoveCursor(data->editor, ctrlRight, TRUE); + data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update */ + win_show(data->win); + } + break; + + case KCD_MNULEFT: + if(PredText->len==0) + { + ATB_edit_MoveCursor(data->editor,ctrlLeft, TRUE); + data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update */ + win_show(data->win); + } + break; #endif - case KCD_LEFT: - if(PredText->len==0) - { - if (data->editor_data.LeftSoftKey NEQ TxtNull) - { - SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_LEFT, NULL); - } - } - else - { - if ((data->editor_data.editor_attr.text.len + PredText->len) < data->editor_data.editor_attr.size) - { - if (ATB_string_GetChar(PredText,0)!=UNICODE_STAR) - { - /* Capitalise first letter of words and the letter 'I' */ - - if (ATB_edit_CapitaliseWord(data->editor) || (PredText->len==1 && ATB_string_GetChar(PredText, 0)==ATB_char_Unicode('i'))) - { - ATB_string_SetChar(PredText, 0, ATB_edit_FindCapital(ATB_string_GetChar(PredText, 0)));/*SPR1508*/ - } - character = ATB_edit_GetCursorChar(data->editor, -1); - - if ( character != UNICODE_SPACE && character != UNICODE_EOLN) - { - ATB_string_MoveRight(PredText,0,1,ED_PREDTEXT_MAX); - ATB_string_SetChar(PredText, 0, UNICODE_SPACE); - } - ATB_edit_InsertString(data->editor,PredText); - } - } - ResetDictSearch(); - AUI_edit_ClearPredText(data); - ATB_edit_SetCase(data->editor, ED_CASE_LOWER); - win_show(data->win); - } - break; - - case KCD_HUP: - if (data->editor_data.RightSoftKey NEQ TxtNull) /* Right softkey is enabled: execute it */ - { - SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_HUP, NULL); - } - break; - - case KCD_RIGHT: - if(PredText->len==0) - { - if(ATB_string_GetChar(&data->editor_data.editor_attr.text, 0)!=UNICODE_EOLN) - { - ATB_edit_Char(data->editor,ctrlBack,TRUE); - win_show(data->win); - } - else - { - /* leave editor if buffer already empty */ - SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_RIGHT, NULL); - } - } - else - { - if (PredText->len==1) - { - DictBackSpace((char *)data->predText.data); - AUI_edit_ClearPredText(data); - ATB_edit_SetCase(data->editor, ED_CASE_LOWER); - } - else - { - DictBackSpace((char *)data->predText.data); - data->predTextChar.pos--; /* char deleted, move cursor pos back */ - AUI_edit_CalcPredText(data); - } - win_show(data->win); - } - break; - - case KCD_2: - case KCD_3: - case KCD_4: - case KCD_5: - case KCD_6: - case KCD_7: - case KCD_8: - case KCD_9: - if (PredText->len==0) - { - AUI_edit_ClearPredText(data); - } - if (DictAlphaKeyPress(keyboard->code,(char *)PredText->data)) - { - PredText->len = ATB_string_Length(PredText); - data->predTextChar.pos++; /* The keypress was used to find a word, advance cursor */ - AUI_edit_CalcPredText(data); - } - win_show(data->win); - break; - - case KCD_HASH: - switch(ATB_edit_GetCase(data->editor)) - { - /* Press # once to switch into capitalise mode */ - case ED_CASE_CAPS: - ATB_edit_SetCase(data->editor, ED_CASE_LOWER); - /* Switch out of easy text mode, if we're not entering a word */ - if (PredText->len==0) - { - FFS_flashData.PredTextSelected = FALSE; - } - break; - default: - ATB_edit_SetCase(data->editor, ED_CASE_CAPS); - break; - } - win_show(data->win); - break; - - case KCD_STAR: - if (PredText->len==0) - { - AUI_symbol_Start (data->win, E_ED_INSERT); - } - else - { - int i; - MoreCandidates((char *)PredText->data, &i); - AUI_edit_CalcPredText(data); - win_show(data->win); - } - break; - - case KCD_0: - case KCD_1: - if (PredText->len!=0) - { - if ((data->editor_data.editor_attr.text.len + PredText->len) < MAX_MSG_LEN) - { - /* If char b4 cursor full stop/question/exclamation (or last char space and char b4 full stop) */ - if (ATB_edit_CapitaliseWord(data->editor) || (PredText->len==1 && ATB_string_GetChar(PredText,0)==ATB_char_Unicode('i'))) - ATB_string_SetChar(PredText, 0, ATB_edit_FindCapital(ATB_string_GetChar(PredText, 0)));/*SPR1508*/ - - /* Capitalise first letter of char. If char before cursor not space, insert space */ - character = ATB_edit_GetCursorChar(data->editor, -1); - - if (ATB_string_GetChar(PredText, 0) != UNICODE_STAR) - { - if (keyboard->code == KCD_1) - { - /* Insert space at end of string */ - ATB_string_SetChar(PredText, PredText->len, UNICODE_SPACE); - PredText->len++; - ATB_string_SetChar(PredText, PredText->len, UNICODE_EOLN); - - if ( character!=UNICODE_SPACE && character!=UNICODE_EOLN) - { - /* Insert space at start of string */ - ATB_string_MoveRight(PredText, 0, 1, ED_PREDTEXT_MAX); - ATB_string_SetChar(PredText, 0, UNICODE_SPACE); - } - } - else - { - /* Insert space and full stop at end of string */ - ATB_string_SetChar(PredText, PredText->len, UNICODE_FULLSTOP); - PredText->len++; - ATB_string_SetChar(PredText, PredText->len, UNICODE_SPACE); - PredText->len++; - ATB_string_SetChar(PredText, PredText->len, UNICODE_EOLN); - - if ( character!=UNICODE_SPACE && character!=UNICODE_EOLN) - { - /* Insert space at start of string */ - ATB_string_MoveRight(PredText, 0, 1, ED_PREDTEXT_MAX); - ATB_string_SetChar(PredText, 0, UNICODE_SPACE); - } - } - ATB_edit_InsertString(data->editor, PredText); - } - } - AUI_edit_ClearPredText(data); - ResetDictSearch(); - ATB_edit_SetCase(data->editor, ED_CASE_LOWER); - win_show(data->win); - } - break; - - /* Any key */ - - default: - if (!ATB_edit_Mode(data->editor, ED_MODE_READONLY)) /* ignore normal keys if in read-only mode */ - { - AUI_entry_EventKey(data->entry_data, event, keyboard); - ATB_edit_Char(data->editor,ctrlBack,TRUE); - win_show(data->win); - } - break; - } - } - } + case KCD_LEFT: + if(PredText->len==0) + { + if (data->editor_data.LeftSoftKey NEQ TxtNull) + { + SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_LEFT, NULL); + } + } + else + { + if ((data->editor_data.editor_attr.text.len + PredText->len) < data->editor_data.editor_attr.size) + { + if (ATB_string_GetChar(PredText,0)!=UNICODE_STAR) + { + /* Capitalise first letter of words and the letter 'I' */ + + if (ATB_edit_CapitaliseWord(data->editor) || (PredText->len==1 && ATB_string_GetChar(PredText, 0)==ATB_char_Unicode('i'))) + { + ATB_string_SetChar(PredText, 0, ATB_edit_FindCapital(ATB_string_GetChar(PredText, 0)));/*SPR1508*/ + } + character = ATB_edit_GetCursorChar(data->editor, -1); + + if ( character != UNICODE_SPACE && character != UNICODE_EOLN) + { + ATB_string_MoveRight(PredText,0,1,ED_PREDTEXT_MAX); + ATB_string_SetChar(PredText, 0, UNICODE_SPACE); + } + ATB_edit_InsertString(data->editor,PredText); + } + } + ResetDictSearch(); + AUI_edit_ClearPredText(data); + ATB_edit_SetCase(data->editor, ED_CASE_LOWER); + win_show(data->win); + } + break; + + case KCD_HUP: + if (data->editor_data.RightSoftKey NEQ TxtNull) /* Right softkey is enabled: execute it */ + { + SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_HUP, NULL); + } + break; + + case KCD_RIGHT: + if(PredText->len==0) + { + if(ATB_string_GetChar(&data->editor_data.editor_attr.text, 0)!=UNICODE_EOLN) + { + ATB_edit_Char(data->editor,ctrlBack,TRUE); + win_show(data->win); + } + else + { + /* leave editor if buffer already empty */ + SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_RIGHT, NULL); + } + } + else + { + if (PredText->len==1) + { + DictBackSpace((char *)data->predText.data); + AUI_edit_ClearPredText(data); + ATB_edit_SetCase(data->editor, ED_CASE_LOWER); + } + else + { + DictBackSpace((char *)data->predText.data); + data->predTextChar.pos--; /* char deleted, move cursor pos back */ + AUI_edit_CalcPredText(data); + } + win_show(data->win); + } + break; + + case KCD_2: + case KCD_3: + case KCD_4: + case KCD_5: + case KCD_6: + case KCD_7: + case KCD_8: + case KCD_9: + if (PredText->len==0) + { + AUI_edit_ClearPredText(data); + } + if (DictAlphaKeyPress(keyboard->code,(char *)PredText->data)) + { + PredText->len = ATB_string_Length(PredText); + data->predTextChar.pos++; /* The keypress was used to find a word, advance cursor */ + AUI_edit_CalcPredText(data); + } + win_show(data->win); + break; + + case KCD_HASH: + switch(ATB_edit_GetCase(data->editor)) + { + /* Press # once to switch into capitalise mode */ + case ED_CASE_CAPS: + ATB_edit_SetCase(data->editor, ED_CASE_LOWER); + /* Switch out of easy text mode, if we're not entering a word */ + if (PredText->len==0) + { + FFS_flashData.PredTextSelected = FALSE; + } + break; + default: + ATB_edit_SetCase(data->editor, ED_CASE_CAPS); + break; + } + win_show(data->win); + break; + + case KCD_STAR: + if (PredText->len==0) + { + AUI_symbol_Start (data->win, E_ED_INSERT); + } + else + { + int i; + MoreCandidates((char *)PredText->data, &i); + AUI_edit_CalcPredText(data); + win_show(data->win); + } + break; + + case KCD_0: + case KCD_1: + if (PredText->len!=0) + { + if ((data->editor_data.editor_attr.text.len + PredText->len) < MAX_MSG_LEN) + { + /* If char b4 cursor full stop/question/exclamation (or last char space and char b4 full stop) */ + if (ATB_edit_CapitaliseWord(data->editor) || (PredText->len==1 && ATB_string_GetChar(PredText,0)==ATB_char_Unicode('i'))) + ATB_string_SetChar(PredText, 0, ATB_edit_FindCapital(ATB_string_GetChar(PredText, 0)));/*SPR1508*/ + + /* Capitalise first letter of char. If char before cursor not space, insert space */ + character = ATB_edit_GetCursorChar(data->editor, -1); + + if (ATB_string_GetChar(PredText, 0) != UNICODE_STAR) + { + if (keyboard->code == KCD_1) + { + /* Insert space at end of string */ + ATB_string_SetChar(PredText, PredText->len, UNICODE_SPACE); + PredText->len++; + ATB_string_SetChar(PredText, PredText->len, UNICODE_EOLN); + + if ( character!=UNICODE_SPACE && character!=UNICODE_EOLN) + { + /* Insert space at start of string */ + ATB_string_MoveRight(PredText, 0, 1, ED_PREDTEXT_MAX); + ATB_string_SetChar(PredText, 0, UNICODE_SPACE); + } + } + else + { + /* Insert space and full stop at end of string */ + ATB_string_SetChar(PredText, PredText->len, UNICODE_FULLSTOP); + PredText->len++; + ATB_string_SetChar(PredText, PredText->len, UNICODE_SPACE); + PredText->len++; + ATB_string_SetChar(PredText, PredText->len, UNICODE_EOLN); + + if ( character!=UNICODE_SPACE && character!=UNICODE_EOLN) + { + /* Insert space at start of string */ + ATB_string_MoveRight(PredText, 0, 1, ED_PREDTEXT_MAX); + ATB_string_SetChar(PredText, 0, UNICODE_SPACE); + } + } + ATB_edit_InsertString(data->editor, PredText); + } + } + AUI_edit_ClearPredText(data); + ResetDictSearch(); + ATB_edit_SetCase(data->editor, ED_CASE_LOWER); + win_show(data->win); + } + break; + + /* Any key */ + + default: + if (!ATB_edit_Mode(data->editor, ED_MODE_READONLY)) /* ignore normal keys if in read-only mode */ + { + AUI_entry_EventKey(data->entry_data, event, keyboard); + ATB_edit_Char(data->editor,ctrlBack,TRUE); + win_show(data->win); + } + break; + } + } + } #endif return MFW_EVENT_CONSUMED; @@ -1627,285 +1622,285 @@ /******************************************************************************* - $Function: AUI_edit_KbdLongCb - - $Description: Editor keyboard event handler for long keypresses - - $Returns: None. - - $Arguments: event - the keyboard event - keyboard + $Function: AUI_edit_KbdLongCb + + $Description: Editor keyboard event handler for long keypresses + + $Returns: None. + + $Arguments: event - the keyboard event + keyboard *******************************************************************************/ static int AUI_edit_KbdLongCb(T_MFW_EVENT event, T_MFW_KBD *keyboard) { - T_MFW_HND win = mfw_parent (mfw_header()); - T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; - T_AUI_EDITOR_INFO *data = (T_AUI_EDITOR_INFO *)win_data->user; - -#if (BOARD != 61) && defined(EASY_TEXT_ENABLED) - T_ATB_TEXT *PredText = &data->predText; + T_MFW_HND win = mfw_parent (mfw_header()); + T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; + T_AUI_EDITOR_INFO *data = (T_AUI_EDITOR_INFO *)win_data->user; + +#if (BOARD != 61) && defined(EASY_TEXT_ENABLED) + T_ATB_TEXT *PredText = &data->predText; #endif - ED_RES result; + ED_RES result; #ifdef TRACE_AUIEditor - TRACE_FUNCTION("AUI_edit_KbdLongCb()"); + TRACE_FUNCTION("AUI_edit_KbdLongCb()"); #endif /* Suppress unwanted long keypresses */ - if ( data->doNextLongPress ) - data->doNextLongPress = FALSE; /* mark Key_long event as consumed but do current long press */ - // Jul 29, 2004 REF: CRR:20892 xrashmic - SASKEN - // Description: By Long press on Left/Right key at 'Message Editor' screen, - // cursor not scrolling continuously - // Fix: The continuous long press of a key was being ignored for all keys. - // Now only for left and right keys this is handled. - else if(!(keyboard->code==KCD_MNULEFT ||keyboard->code== KCD_MNURIGHT)) - { - return MFW_EVENT_CONSUMED; /* don't do current long press */ - } - - /* Restart the timer */ + if ( data->doNextLongPress ) + data->doNextLongPress = FALSE; /* mark Key_long event as consumed but do current long press */ + // Jul 29, 2004 REF: CRR:20892 xrashmic - SASKEN + // Description: By Long press on Left/Right key at 'Message Editor' screen, + // cursor not scrolling continuously + // Fix: The continuous long press of a key was being ignored for all keys. + // Now only for left and right keys this is handled. + else if(!(keyboard->code==KCD_MNULEFT ||keyboard->code== KCD_MNURIGHT)) + { + return MFW_EVENT_CONSUMED; /* don't do current long press */ + } + + /* Restart the timer */ if (data->timer !=NULL) - { - tim_stop(data->timer); - tim_start(data->timer); - } + { + tim_stop(data->timer); + tim_start(data->timer); + } #ifdef EASY_TEXT_ENABLED - if (FFS_flashData.PredTextSelected == FALSE || !ATB_edit_Mode(data->editor, ED_MODE_PREDTEXT)) { - /* Predictive text is off */ + if (FFS_flashData.PredTextSelected == FALSE || !ATB_edit_Mode(data->editor, ED_MODE_PREDTEXT)) { + /* Predictive text is off */ #endif - switch (keyboard->code) - { - // Jul 29, 2004 REF: CRR:20892 xrashmic - SASKEN - // Description: By Long press on Left/Right key at 'Message Editor' screen, - // cursor not scrolling continuously - // Fix: The Long press of left/right key is now handled in AUI_edit_KbdLongCB. - case KCD_MNULEFT: - ATB_edit_MoveCursor(data->editor, ctrlLeft, TRUE); /* Move cursor left */ - data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update - no change to text */ - win_show(data->win); - break; - case KCD_MNURIGHT: - ATB_edit_MoveCursor(data->editor, ctrlRight, TRUE); /* Move cursor right */ - data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update - no change to text */ - win_show(data->win); - break; - - case KCD_RIGHT: - result = ATB_edit_ClearAll(data->editor); /* Otherwise, clear the editor */ - - /* If buffer is empty, right soft key causes exit from editor */ - if (result==ED_DONE) - { - SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_RIGHT, NULL); - } - else - { - win_show(data->win); - } - break; - - /* KEY ENTRY 0 */ - - case KCD_0: - /* Alpha mode: insert a '0' */ - if (ATB_edit_Mode(data->editor, ED_MODE_ALPHA)) - { - if (keyboard->code<=KCD_HASH) - { - ATB_edit_DeleteLeft(data->editor, FALSE); /* SPR#2342 - SH */ - AUI_entry_EditDigit(data->entry_data, keyboard->code); // enter the character, not multi-tap - win_show(data->win); - } - } - - /* Number mode: insert a '+'*/ - else if (!ATB_edit_Mode(data->editor, ED_MODE_READONLY)) /* ignore normal keys if in read-only mode */ - { - if (ATB_edit_Mode(data->editor, ED_MODE_HIDDEN)) /* in hidden mode do not allow entering of '+' */ - { - ATB_edit_DeleteLeft(data->editor, TRUE); /* remove the '0'. SPR#2342 - SH */ - } - else - { - ATB_edit_Char(data->editor,ctrlBack,FALSE); /* remove the '0' */ - ATB_edit_Char(data->editor,UNICODE_PLUS,TRUE); /* insert the '+' */ - } - win_show(data->win); - } - break; - case (KCD_STAR): - /* MZ cq11414 add Pause Character */ - ATB_edit_DeleteLeft(data->editor, FALSE); - - //Sep 2, 2004 REF: CRR 21370 xkundadu - //Changed the long press of '*' key to display 'w' - AUI_entry_EditChar(data->entry_data, ATB_char_Unicode('w'), FALSE); - win_show(data->win); - break; - - case (KCD_HASH): - - /* In alphanumeric mode, a long hold of # selects number case */ - if (ATB_edit_GetCasePref(data->editor)==ED_CASEPREF_ALPHANUM) - ATB_edit_SetCase(data->editor, ED_CASE_NUM); - else - { - /* MZ cq11414 add Wait Character */ - ATB_edit_DeleteLeft(data->editor, FALSE); - - //Sep 2, 2004 REF: CRR 21370 xkundadu - //Changed the long press of '#' key to display 'p' - AUI_entry_EditChar(data->entry_data, ATB_char_Unicode('p'), FALSE); - } - win_show(data->win); - break; - - /* KEY ENTRY 1 - 9 */ - - case KCD_1: - case KCD_2: - case KCD_3: - case KCD_4: - case KCD_5: - case KCD_6: - case KCD_7: - case KCD_8: - case KCD_9: - /* Insert equivalent numeric character, only possible in Alpha modes */ - if (ATB_edit_Mode(data->editor, ED_MODE_ALPHA)) - { - if (keyboard->code<=KCD_HASH) - { - ATB_edit_DeleteLeft(data->editor, FALSE); /* SPR#2342 - SH */ - AUI_entry_EditDigit(data->entry_data, keyboard->code); // enter the character, not multi-tap - win_show(data->win); - } - } - break; - - } + switch (keyboard->code) + { + // Jul 29, 2004 REF: CRR:20892 xrashmic - SASKEN + // Description: By Long press on Left/Right key at 'Message Editor' screen, + // cursor not scrolling continuously + // Fix: The Long press of left/right key is now handled in AUI_edit_KbdLongCB. + case KCD_MNULEFT: + ATB_edit_MoveCursor(data->editor, ctrlLeft, TRUE); /* Move cursor left */ + data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update - no change to text */ + win_show(data->win); + break; + case KCD_MNURIGHT: + ATB_edit_MoveCursor(data->editor, ctrlRight, TRUE); /* Move cursor right */ + data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update - no change to text */ + win_show(data->win); + break; + + case KCD_RIGHT: + result = ATB_edit_ClearAll(data->editor); /* Otherwise, clear the editor */ + + /* If buffer is empty, right soft key causes exit from editor */ + if (result==ED_DONE) + { + SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_RIGHT, NULL); + } + else + { + win_show(data->win); + } + break; + + /* KEY ENTRY 0 */ + + case KCD_0: + /* Alpha mode: insert a '0' */ + if (ATB_edit_Mode(data->editor, ED_MODE_ALPHA)) + { + if (keyboard->code<=KCD_HASH) + { + ATB_edit_DeleteLeft(data->editor, FALSE); /* SPR#2342 - SH */ + AUI_entry_EditDigit(data->entry_data, keyboard->code); // enter the character, not multi-tap + win_show(data->win); + } + } + + /* Number mode: insert a '+'*/ + else if (!ATB_edit_Mode(data->editor, ED_MODE_READONLY)) /* ignore normal keys if in read-only mode */ + { + if (ATB_edit_Mode(data->editor, ED_MODE_HIDDEN)) /* in hidden mode do not allow entering of '+' */ + { + ATB_edit_DeleteLeft(data->editor, TRUE); /* remove the '0'. SPR#2342 - SH */ + } + else + { + ATB_edit_Char(data->editor,ctrlBack,FALSE); /* remove the '0' */ + ATB_edit_Char(data->editor,UNICODE_PLUS,TRUE); /* insert the '+' */ + } + win_show(data->win); + } + break; + case (KCD_STAR): + /* MZ cq11414 add Pause Character */ + ATB_edit_DeleteLeft(data->editor, FALSE); + + //Sep 2, 2004 REF: CRR 21370 xkundadu + //Changed the long press of '*' key to display 'w' + AUI_entry_EditChar(data->entry_data, ATB_char_Unicode('w'), FALSE); + win_show(data->win); + break; + + case (KCD_HASH): + + /* In alphanumeric mode, a long hold of # selects number case */ + if (ATB_edit_GetCasePref(data->editor)==ED_CASEPREF_ALPHANUM) + ATB_edit_SetCase(data->editor, ED_CASE_NUM); + else + { + /* MZ cq11414 add Wait Character */ + ATB_edit_DeleteLeft(data->editor, FALSE); + + //Sep 2, 2004 REF: CRR 21370 xkundadu + //Changed the long press of '#' key to display 'p' + AUI_entry_EditChar(data->entry_data, ATB_char_Unicode('p'), FALSE); + } + win_show(data->win); + break; + + /* KEY ENTRY 1 - 9 */ + + case KCD_1: + case KCD_2: + case KCD_3: + case KCD_4: + case KCD_5: + case KCD_6: + case KCD_7: + case KCD_8: + case KCD_9: + /* Insert equivalent numeric character, only possible in Alpha modes */ + if (ATB_edit_Mode(data->editor, ED_MODE_ALPHA)) + { + if (keyboard->code<=KCD_HASH) + { + ATB_edit_DeleteLeft(data->editor, FALSE); /* SPR#2342 - SH */ + AUI_entry_EditDigit(data->entry_data, keyboard->code); // enter the character, not multi-tap + win_show(data->win); + } + } + break; + + } #ifdef EASY_TEXT_ENABLED - } - else - { - if(FFS_flashData.PredTextAvailable == TRUE) - { - switch (keyboard->code) - { - // Jul 29, 2004 REF: CRR:20892 xrashmic - SASKEN - // Description: By Long press on Left/Right key at 'Message Editor' - // screen, cursor not scrolling continuously - // Fix: The Long press of left/right key is now handled in - // AUI_edit_KbdLongCB. - case KCD_MNULEFT: - ATB_edit_MoveCursor(data->editor, ctrlLeft, TRUE); /* Move cursor left */ - data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update - no change to text */ - win_show(data->win); - break; - case KCD_MNURIGHT: - ATB_edit_MoveCursor(data->editor, ctrlRight, TRUE); /* Move cursor right */ - data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update - no change to text */ - win_show(data->win); - break; - - case KCD_RIGHT: /*empty predictive text string */ - if(PredText->len!=0) - { - PredText->len = 0; - ATB_string_SetChar(PredText, 0, UNICODE_EOLN); - ResetDictSearch(); - win_show(data->win); - } - else /*empty whole editor */ - { - if(data->editor_data.editor_attr.text.len > 0 ) - { - ATB_edit_ClearAll(data->editor); - win_show(data->win); - } - else - { - /* leave editor if buffer already empty */ - SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_RIGHT, NULL); - } - } - break; - - case(KCD_STAR): - AUI_symbol_Start(data->win, E_ED_INSERT); - break; - - case (KCD_HASH): - break; - - /* KEY ENTRY 1 - 9 */ - - case KCD_0: - case KCD_1: - case KCD_2: - case KCD_3: - case KCD_4: - case KCD_5: - case KCD_6: - case KCD_7: - case KCD_8: - case KCD_9: - if(PredText->len==0) - { - /* Insert equivalent numeric character, only possible in Alpha modes */ - if (ATB_edit_Mode(data->editor, ED_MODE_ALPHA)) - { - if (keyboard->code<=KCD_HASH) - { - ATB_edit_DeleteLeft(data->editor, FALSE); /* SPR#2342 - SH */ - AUI_entry_EditDigit(data->entry_data, keyboard->code); // enter the character, not multi-tap - } - } - win_show(data->win); - } - break; - } - } - } - #endif - - return MFW_EVENT_CONSUMED; + } + else + { + if(FFS_flashData.PredTextAvailable == TRUE) + { + switch (keyboard->code) + { + // Jul 29, 2004 REF: CRR:20892 xrashmic - SASKEN + // Description: By Long press on Left/Right key at 'Message Editor' + // screen, cursor not scrolling continuously + // Fix: The Long press of left/right key is now handled in + // AUI_edit_KbdLongCB. + case KCD_MNULEFT: + ATB_edit_MoveCursor(data->editor, ctrlLeft, TRUE); /* Move cursor left */ + data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update - no change to text */ + win_show(data->win); + break; + case KCD_MNURIGHT: + ATB_edit_MoveCursor(data->editor, ctrlRight, TRUE); /* Move cursor right */ + data->editor->update = ED_UPDATE_TRIVIAL; /* This flag speeds up update - no change to text */ + win_show(data->win); + break; + + case KCD_RIGHT: /*empty predictive text string */ + if(PredText->len!=0) + { + PredText->len = 0; + ATB_string_SetChar(PredText, 0, UNICODE_EOLN); + ResetDictSearch(); + win_show(data->win); + } + else /*empty whole editor */ + { + if(data->editor_data.editor_attr.text.len > 0 ) + { + ATB_edit_ClearAll(data->editor); + win_show(data->win); + } + else + { + /* leave editor if buffer already empty */ + SEND_EVENT (win, E_ED_DEINIT, INFO_KCD_RIGHT, NULL); + } + } + break; + + case(KCD_STAR): + AUI_symbol_Start(data->win, E_ED_INSERT); + break; + + case (KCD_HASH): + break; + + /* KEY ENTRY 1 - 9 */ + + case KCD_0: + case KCD_1: + case KCD_2: + case KCD_3: + case KCD_4: + case KCD_5: + case KCD_6: + case KCD_7: + case KCD_8: + case KCD_9: + if(PredText->len==0) + { + /* Insert equivalent numeric character, only possible in Alpha modes */ + if (ATB_edit_Mode(data->editor, ED_MODE_ALPHA)) + { + if (keyboard->code<=KCD_HASH) + { + ATB_edit_DeleteLeft(data->editor, FALSE); /* SPR#2342 - SH */ + AUI_entry_EditDigit(data->entry_data, keyboard->code); // enter the character, not multi-tap + } + } + win_show(data->win); + } + break; + } + } + } + #endif + + return MFW_EVENT_CONSUMED; } /******************************************************************************* - $Function: AUI_edit_TimerCb - - $Description: Callback function for the editor info timer. - - $Returns: None. - - $Arguments: event - the event type - timer - the timer + $Function: AUI_edit_TimerCb + + $Description: Callback function for the editor info timer. + + $Returns: None. + + $Arguments: event - the event type + timer - the timer *******************************************************************************/ static int AUI_edit_TimerCb (T_MFW_EVENT event, T_MFW_TIM *timer) { - T_MFW_HND win = mfw_parent (mfw_header()); - - - -// T_MFW_HND parent_win = data->parent; // RAVI -// USHORT Identifier = data->editor_data.Identifier; // RAVI -// T_AUI_EDIT_CB Callback = data->editor_data.Callback; // RAVI - - TRACE_FUNCTION("AUI_edit_TimerCb"); + T_MFW_HND win = mfw_parent (mfw_header()); + + + +// T_MFW_HND parent_win = data->parent; // RAVI +// USHORT Identifier = data->editor_data.Identifier; // RAVI +// T_AUI_EDIT_CB Callback = data->editor_data.Callback; // RAVI + + TRACE_FUNCTION("AUI_edit_TimerCb"); #if 0 AUI_edit_Destroy(data->win); @@ -1913,7 +1908,7 @@ if (Callback) (Callback) (parent_win, Identifier, INFO_TIMEOUT); #else - SEND_EVENT (win, E_ED_DEINIT, INFO_TIMEOUT, NULL); + SEND_EVENT (win, E_ED_DEINIT, INFO_TIMEOUT, NULL); #endif return MFW_EVENT_CONSUMED; @@ -1921,42 +1916,42 @@ /******************************************************************************* - $Function: AUI_edit_TitleTimerCb - - $Description: Callback function for the editor title timer. Recalculates title_pos so that - the next part of the string is displayed. - - $Returns: None. - - $Arguments: event - the event type - timer - the timer + $Function: AUI_edit_TitleTimerCb + + $Description: Callback function for the editor title timer. Recalculates title_pos so that + the next part of the string is displayed. + + $Returns: None. + + $Arguments: event - the event type + timer - the timer *******************************************************************************/ static int AUI_edit_TitleTimerCb (T_MFW_EVENT event, T_MFW_TIM *timer) { - /* Use the mfwHeader property of the timer to get the window */ - T_MFW_HND win = mfw_parent(timer->mfwHeader); - T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; - T_AUI_EDITOR_INFO *data = (T_AUI_EDITOR_INFO *)win_data->user; - - TRACE_FUNCTION("AUI_edit_TitleTimerCb"); - - /* SPR#1597 - SH - Since there may be multiple timers running at once, only - call win_show if the window is focussed. */ - - if (winIsFocussed(win)) - { - if (data->title_next_pos!=data->title_pos) - { - data->title_pos = data->title_next_pos; - } - - data->editor->update = ED_UPDATE_PARTIAL; /* Don't update editor text */ - win_show(data->win); - - tim_start(data->title_timer); - } + /* Use the mfwHeader property of the timer to get the window */ + T_MFW_HND win = mfw_parent(timer->mfwHeader); + T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; + T_AUI_EDITOR_INFO *data = (T_AUI_EDITOR_INFO *)win_data->user; + + TRACE_FUNCTION("AUI_edit_TitleTimerCb"); + + /* SPR#1597 - SH - Since there may be multiple timers running at once, only + call win_show if the window is focussed. */ + + if (winIsFocussed(win)) + { + if (data->title_next_pos!=data->title_pos) + { + data->title_pos = data->title_next_pos; + } + + data->editor->update = ED_UPDATE_PARTIAL; /* Don't update editor text */ + win_show(data->win); + + tim_start(data->title_timer); + } return MFW_EVENT_CONSUMED; } @@ -1964,166 +1959,166 @@ /******************************************************************************* - $Function: AUI_edit_CalcPredText - - $Description: Calculate properties of predicted text string. - - $Returns: None. - - $Arguments: data - The AUI editor data + $Function: AUI_edit_CalcPredText + + $Description: Calculate properties of predicted text string. + + $Returns: None. + + $Arguments: data - The AUI editor data *******************************************************************************/ static void AUI_edit_CalcPredText(T_AUI_EDITOR_INFO *data) { - USHORT character; - T_ATB_TEXT dummy; - - data->predText.len = ATB_string_Length(&data->predText); - - /* Get position of current entry */ - dummy.data = data->predText.data; - dummy.dcs = data->predText.dcs; - dummy.len = data->predTextChar.pos; - data->predTextChar.lineWidth = ATB_display_StringWidth(&dummy, &data->predTextChar.format); - data->predTextChar.lineHeight = ATB_display_StringHeight(&dummy, &data->predTextChar.format); - - /* Get width and height of current character */ - character = ATB_string_GetChar(&data->predText, data->predTextChar.pos); - data->predTextChar.width = ATB_display_GetCharWidth(character, &data->predTextChar.format); - data->predTextChar.height = ATB_display_GetCharHeight(character, &data->predTextChar.format); - - return; + USHORT character; + T_ATB_TEXT dummy; + + data->predText.len = ATB_string_Length(&data->predText); + + /* Get position of current entry */ + dummy.data = data->predText.data; + dummy.dcs = data->predText.dcs; + dummy.len = data->predTextChar.pos; + data->predTextChar.lineWidth = ATB_display_StringWidth(&dummy, &data->predTextChar.format); + data->predTextChar.lineHeight = ATB_display_StringHeight(&dummy, &data->predTextChar.format); + + /* Get width and height of current character */ + character = ATB_string_GetChar(&data->predText, data->predTextChar.pos); + data->predTextChar.width = ATB_display_GetCharWidth(character, &data->predTextChar.format); + data->predTextChar.height = ATB_display_GetCharHeight(character, &data->predTextChar.format); + + return; } /******************************************************************************* - $Function: AUI_edit_ClearPredText - - $Description: Clear the predictive text buffer - - $Returns: None. - - $Arguments: data - The AUI editor data + $Function: AUI_edit_ClearPredText + + $Description: Clear the predictive text buffer + + $Returns: None. + + $Arguments: data - The AUI editor data *******************************************************************************/ static void AUI_edit_ClearPredText(T_AUI_EDITOR_INFO *data) { - data->predText.len = 0; - ATB_string_SetChar(&data->predText,0,UNICODE_EOLN); - memset(&data->predTextChar, 0, sizeof(T_ED_CHAR)); - return; + data->predText.len = 0; + ATB_string_SetChar(&data->predText,0,UNICODE_EOLN); + memset(&data->predTextChar, 0, sizeof(T_ED_CHAR)); + return; } /******************************************************************************* - $Function: AUI_edit_InsertString - - $Description: Insert a string into the editor - - $Returns: Pointer to the editor's window. - - $Arguments: win - The editor window - string - The string to insert - dcs - The dcs of the string + $Function: AUI_edit_InsertString + + $Description: Insert a string into the editor + + $Returns: Pointer to the editor's window. + + $Arguments: win - The editor window + string - The string to insert + dcs - The dcs of the string *******************************************************************************/ void AUI_edit_InsertString(T_MFW_HND win, UBYTE *string, T_ATB_DCS dcs) { - T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; - T_AUI_EDITOR_INFO *data = (T_AUI_EDITOR_INFO *)win_data->user; - T_ATB_TEXT text; - - text.data = string; - text.dcs = dcs; - text.len = ATB_string_Length(&text); + T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; + T_AUI_EDITOR_INFO *data = (T_AUI_EDITOR_INFO *)win_data->user; + T_ATB_TEXT text; + + text.data = string; + text.dcs = dcs; + text.len = ATB_string_Length(&text); ATB_edit_InsertString(data->editor, &text); - return; + return; } /******************************************************************************* - $Function: AUI_edit_InsertChar - - $Description: Insert a character into the editor - - $Returns: Pointer to the editor's window. - - $Arguments: win - The editor window - character - The character to insert + $Function: AUI_edit_InsertChar + + $Description: Insert a character into the editor + + $Returns: Pointer to the editor's window. + + $Arguments: win - The editor window + character - The character to insert *******************************************************************************/ void AUI_edit_InsertChar(T_MFW_HND win, USHORT character) { - T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; - T_AUI_EDITOR_INFO *data = (T_AUI_EDITOR_INFO *)win_data->user; + T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; + T_AUI_EDITOR_INFO *data = (T_AUI_EDITOR_INFO *)win_data->user; ATB_edit_Char(data->editor, character, TRUE); - return; + return; } /******************************************************************************* - $Function: AUI_edit_GetSpecificWindowSIze - - $Description: Sets up window size - - $Returns: None. - - $Arguments: attr - The ATB editor attributes - zone_id - Specifies the window size (See ZONE_... in header file) + $Function: AUI_edit_GetSpecificWindowSIze + + $Description: Sets up window size + + $Returns: None. + + $Arguments: attr - The ATB editor attributes + zone_id - Specifies the window size (See ZONE_... in header file) *******************************************************************************/ #ifndef LSCREEN //Sizes defined for CSAMPLE editore -#define BOOKDETAILS_EDITOR_SIZE 0, 0, SCREEN_SIZE_X-4, Mmi_layout_line(LAST_LINE_TOP) -#define NUMBER_EDITOR_SIZE 0, 12, SCREEN_SIZE_X , MNU3LINE -#define PHONEBOOK_DLG_EDITOR_SIZE 4, Mmi_layout_line(3)+2, SCREEN_SIZE_X-4, SCREEN_SIZE_Y-(Mmi_layout_line(3)+2) -#define BOOKSDN_EDITOR_SIZE 34, Mmi_layout_line(3)+2, 50, Mmi_layout_line(1)+2 +#define BOOKDETAILS_EDITOR_SIZE 0, 0, SCREEN_SIZE_X-4, Mmi_layout_line(LAST_LINE_TOP) +#define NUMBER_EDITOR_SIZE 0, 12, SCREEN_SIZE_X , MNU3LINE +#define PHONEBOOK_DLG_EDITOR_SIZE 4, Mmi_layout_line(3)+2, SCREEN_SIZE_X-4, SCREEN_SIZE_Y-(Mmi_layout_line(3)+2) +#define BOOKSDN_EDITOR_SIZE 34, Mmi_layout_line(3)+2, 50, Mmi_layout_line(1)+2 //MMIbooksearchwindow -//#define BOOKSEARCH_EDITOR_SIZE 0, Mmi_layout_line(SECOND_LAST_LINE_TOP), SCREEN_SIZE_X, Mmi_layout_line(1) +//#define BOOKSEARCH_EDITOR_SIZE 0, Mmi_layout_line(SECOND_LAST_LINE_TOP), SCREEN_SIZE_X, Mmi_layout_line(1) //MMICall -#define CALL_EDITOR_SIZE 4,28,SCREEN_SIZE_X-4, 20 -#define CALLSCRATCHPAD_EDITOR_SIZE 6, Mmi_layout_line(2),SCREEN_SIZE_X-6, 16 +#define CALL_EDITOR_SIZE 4,28,SCREEN_SIZE_X-4, 20 +#define CALLSCRATCHPAD_EDITOR_SIZE 6, Mmi_layout_line(2),SCREEN_SIZE_X-6, 16 //MMIServices -#define SERVICE_CREATE_EDITOR_SIZE 4,Mmi_layout_line(1)+2,SCREEN_SIZE_X-4, MNU3LINE -#define PASSWORD_EDITOR_SIZE 0, 12, SCREEN_SIZE_X , 13 -#define EM_EDITOR_SIZE 0, 0, SCREEN_SIZE_X-4, Mmi_layout_line(LAST_LINE_TOP) +#define SERVICE_CREATE_EDITOR_SIZE 4,Mmi_layout_line(1)+2,SCREEN_SIZE_X-4, MNU3LINE +#define PASSWORD_EDITOR_SIZE 0, 12, SCREEN_SIZE_X , 13 +#define EM_EDITOR_SIZE 0, 0, SCREEN_SIZE_X-4, Mmi_layout_line(LAST_LINE_TOP) //From MMIIdle //GW Changed window height from 30 (27?) to 24. -#define WIN_DIALLING_SIZE 0,Mmi_layout_line_icons(2), SCREEN_SIZE_X,24 -#define WIN_DIALLING_C_SIZE 0,Mmi_layout_line_icons(1),SCREEN_SIZE_X,32 +#define WIN_DIALLING_SIZE 0,Mmi_layout_line_icons(2), SCREEN_SIZE_X,24 +#define WIN_DIALLING_C_SIZE 0,Mmi_layout_line_icons(1),SCREEN_SIZE_X,32 //Positions for editor windows in mmismssend -#define PHNO_EDITOR_SIZE 0, (Mmi_layout_line(1)+2), SCREEN_SIZE_X, 20 +#define PHNO_EDITOR_SIZE 0, (Mmi_layout_line(1)+2), SCREEN_SIZE_X, 20 //NB defines below used twice, second time START/SIZE_Y was same as START/SIZE_Y above -#define CENTRE_EDITOR_SIZE 0, Mmi_layout_line(1), SCREEN_SIZE_X, MNU3LINE+3 +#define CENTRE_EDITOR_SIZE 0, Mmi_layout_line(1), SCREEN_SIZE_X, MNU3LINE+3 //And for MMIServices - moved here from mmiservices.c -#define SAT_EDITOR_SIZE 6,30,SCREEN_SIZE_X-6, 20 - -#define RPWD_EDITOR_SIZE 0,12,SCREEN_SIZE_X,13 +#define SAT_EDITOR_SIZE 6,30,SCREEN_SIZE_X-6, 20 + +#define RPWD_EDITOR_SIZE 0,12,SCREEN_SIZE_X,13 //MMIBookCallDetails -#define PHB_EDITOR_SIZE 4,0,SCREEN_SIZE_X-4, ALLBUT2LINE +#define PHB_EDITOR_SIZE 4,0,SCREEN_SIZE_X-4, ALLBUT2LINE //MMIPins -#define PIN_EDIT_RESET_SIZE 12,20,84-12,16 +#define PIN_EDIT_RESET_SIZE 12,20,84-12,16 //MMITimeDate #define TIMEDATE_EDITOR_AREA_SIZE 0,10,70,10 #endif @@ -2131,628 +2126,628 @@ #ifndef LSCREEN static void setSize(T_ATB_WIN_SIZE *win, int px, int py, int sx, int sy) { - win->px = px; win->py = py; - win->sx = sx; win->sy = sy; + win->px = px; win->py = py; + win->sx = sx; win->sy = sy; } #endif void AUI_edit_GetSpecificWindowSize(T_ED_ATTR* attr, int zone_id ) { - switch (zone_id) - { - case ZONE_SMALL_EDITOR: - attr->win_size.px = 6; - attr->win_size.py = Mmi_layout_IconHeight()*2; - attr->win_size.sx = SCREEN_SIZE_X-attr->win_size.px; - attr->win_size.sy = Mmi_layout_line_height()*2+4; - break; - - case ZONE_BOTTOM_LINE: - attr->win_size.px = 0; - attr->win_size.py = SCREEN_SIZE_Y - Mmi_layout_line_height() - Mmi_layout_softkeyHeight(); - attr->win_size.sx = SCREEN_SIZE_X-attr->win_size.px; - attr->win_size.sy = Mmi_layout_line_height(); - break; - - case ZONE_BOTTOM_LINE_FIND: //used for phonebook search - attr->win_size.px = dspl_GetTextExtent(MmiRsrcGetText(TxtFind),0); - attr->win_size.py = SCREEN_SIZE_Y - Mmi_layout_line_height() - Mmi_layout_softkeyHeight(); - attr->win_size.sx = SCREEN_SIZE_X-attr->win_size.px; - attr->win_size.sy = Mmi_layout_line_height(); - break; + switch (zone_id) + { + case ZONE_SMALL_EDITOR: + attr->win_size.px = 6; + attr->win_size.py = Mmi_layout_IconHeight()*2; + attr->win_size.sx = SCREEN_SIZE_X-attr->win_size.px; + attr->win_size.sy = Mmi_layout_line_height()*2+4; + break; + + case ZONE_BOTTOM_LINE: + attr->win_size.px = 0; + attr->win_size.py = SCREEN_SIZE_Y - Mmi_layout_line_height() - Mmi_layout_softkeyHeight(); + attr->win_size.sx = SCREEN_SIZE_X-attr->win_size.px; + attr->win_size.sy = Mmi_layout_line_height(); + break; + + case ZONE_BOTTOM_LINE_FIND: //used for phonebook search + attr->win_size.px = dspl_GetTextExtent(MmiRsrcGetText(TxtFind),0); + attr->win_size.py = SCREEN_SIZE_Y - Mmi_layout_line_height() - Mmi_layout_softkeyHeight(); + attr->win_size.sx = SCREEN_SIZE_X-attr->win_size.px; + attr->win_size.sy = Mmi_layout_line_height(); + break; #ifndef LSCREEN - case BOOKDETAILS_EDITOR: setSize(&attr->win_size,BOOKDETAILS_EDITOR_SIZE); break; - case NUMBER_EDITOR: setSize(&attr->win_size,NUMBER_EDITOR_SIZE); break; - case PHONEBOOK_DLG_EDITOR: setSize(&attr->win_size,PHONEBOOK_DLG_EDITOR_SIZE); break; - case BOOKSDN_EDITOR: setSize(&attr->win_size,BOOKSDN_EDITOR_SIZE); break; - // case BOOKSEARCH_EDITOR: setSize(&attr->win_size,BOOKSEARCH_EDITOR_SIZE); break; - case CALL_EDITOR: setSize(&attr->win_size,CALL_EDITOR_SIZE); break; - case CALLSCRATCHPAD_EDITOR: setSize(&attr->win_size,CALLSCRATCHPAD_EDITOR_SIZE); break; - case SERVICE_CREATE_EDITOR: setSize(&attr->win_size,SERVICE_CREATE_EDITOR_SIZE); break; - case PASSWORD_EDITOR: setSize(&attr->win_size,PASSWORD_EDITOR_SIZE); break; - case EM_CREATE_EDITOR: setSize(&attr->win_size,EM_EDITOR_SIZE); break;/*SPR#1840*/ - - case WIN_DIALLING: - case WIN_DIALLING_CB: - if (Mmi_getCurrentLanguage() == CHINESE_LANGUAGE) - setSize(&attr->win_size,WIN_DIALLING_C_SIZE); - else - setSize(&attr->win_size,WIN_DIALLING_SIZE); - break; - case WIN_DIALLING_SMS: - if (Mmi_getCurrentLanguage() == CHINESE_LANGUAGE) - { - setSize(&attr->win_size,0,Mmi_layout_line_icons(1),SCREEN_SIZE_X,24);/*SPR#1840*/ - } - else - setSize(&attr->win_size,WIN_DIALLING_SIZE); - break; - case WIN_DIALLING_SAT: - if (Mmi_getCurrentLanguage() == CHINESE_LANGUAGE) - setSize(&attr->win_size,WIN_DIALLING_C_SIZE); - else - setSize(&attr->win_size,WIN_DIALLING_SIZE); - break; - - case PHNO_EDITOR: setSize(&attr->win_size,PHNO_EDITOR_SIZE); break; - case CENTRE_EDITOR: setSize(&attr->win_size,CENTRE_EDITOR_SIZE); break; - case SAT_EDITOR : setSize(&attr->win_size,SAT_EDITOR_SIZE); break; - case RPWD_EDITOR: setSize(&attr->win_size,RPWD_EDITOR_SIZE); break; - case PHB_EDITOR: setSize(&attr->win_size,PHB_EDITOR_SIZE); break; - case PIN_EDIT_RESET: setSize(&attr->win_size,PIN_EDIT_RESET_SIZE); break; - case TIMEDATE_EDITOR_AREA: setSize(&attr->win_size,TIMEDATE_EDITOR_AREA_SIZE); break; + case BOOKDETAILS_EDITOR: setSize(&attr->win_size,BOOKDETAILS_EDITOR_SIZE); break; + case NUMBER_EDITOR: setSize(&attr->win_size,NUMBER_EDITOR_SIZE); break; + case PHONEBOOK_DLG_EDITOR: setSize(&attr->win_size,PHONEBOOK_DLG_EDITOR_SIZE); break; + case BOOKSDN_EDITOR: setSize(&attr->win_size,BOOKSDN_EDITOR_SIZE); break; + // case BOOKSEARCH_EDITOR: setSize(&attr->win_size,BOOKSEARCH_EDITOR_SIZE); break; + case CALL_EDITOR: setSize(&attr->win_size,CALL_EDITOR_SIZE); break; + case CALLSCRATCHPAD_EDITOR: setSize(&attr->win_size,CALLSCRATCHPAD_EDITOR_SIZE); break; + case SERVICE_CREATE_EDITOR: setSize(&attr->win_size,SERVICE_CREATE_EDITOR_SIZE); break; + case PASSWORD_EDITOR: setSize(&attr->win_size,PASSWORD_EDITOR_SIZE); break; + case EM_CREATE_EDITOR: setSize(&attr->win_size,EM_EDITOR_SIZE); break;/*SPR#1840*/ + + case WIN_DIALLING: + case WIN_DIALLING_CB: + if (Mmi_getCurrentLanguage() == CHINESE_LANGUAGE) + setSize(&attr->win_size,WIN_DIALLING_C_SIZE); + else + setSize(&attr->win_size,WIN_DIALLING_SIZE); + break; + case WIN_DIALLING_SMS: + if (Mmi_getCurrentLanguage() == CHINESE_LANGUAGE) + { + setSize(&attr->win_size,0,Mmi_layout_line_icons(1),SCREEN_SIZE_X,24);/*SPR#1840*/ + } + else + setSize(&attr->win_size,WIN_DIALLING_SIZE); + break; + case WIN_DIALLING_SAT: + if (Mmi_getCurrentLanguage() == CHINESE_LANGUAGE) + setSize(&attr->win_size,WIN_DIALLING_C_SIZE); + else + setSize(&attr->win_size,WIN_DIALLING_SIZE); + break; + + case PHNO_EDITOR: setSize(&attr->win_size,PHNO_EDITOR_SIZE); break; + case CENTRE_EDITOR: setSize(&attr->win_size,CENTRE_EDITOR_SIZE); break; + case SAT_EDITOR : setSize(&attr->win_size,SAT_EDITOR_SIZE); break; + case RPWD_EDITOR: setSize(&attr->win_size,RPWD_EDITOR_SIZE); break; + case PHB_EDITOR: setSize(&attr->win_size,PHB_EDITOR_SIZE); break; + case PIN_EDIT_RESET: setSize(&attr->win_size,PIN_EDIT_RESET_SIZE); break; + case TIMEDATE_EDITOR_AREA: setSize(&attr->win_size,TIMEDATE_EDITOR_AREA_SIZE); break; #endif - default: - break; - } + default: + break; + } } /******************************************************************************* - $Function: AUI_edit_CalculateWindow - - $Description: Sets up window size - - $Returns: None. - - $Arguments: attr - The ATB editor attributes - zone_id - Specifies the window size (See ZONE_... in header file) - SPR#1559 - SH - this is now a pointer to the zone_id, allowing - the zone_id to be modified by this function + $Function: AUI_edit_CalculateWindow + + $Description: Sets up window size + + $Returns: None. + + $Arguments: attr - The ATB editor attributes + zone_id - Specifies the window size (See ZONE_... in header file) + SPR#1559 - SH - this is now a pointer to the zone_id, allowing + the zone_id to be modified by this function *******************************************************************************/ void AUI_edit_CalculateWindow(T_ED_ATTR* attr, int *zone_id_pointer ) { - int zone_id = *zone_id_pointer; - - attr->win_size.px = 0; - attr->win_size.py = 0; - attr->win_size.sx = SCREEN_SIZE_X; - attr->win_size.sy = SCREEN_SIZE_Y; - - if (zone_id == ZONE_BORDER_EDITOR) - { //Leave border on left/right of screen. - attr->win_size.px = 4; - attr->win_size.sx = attr->win_size.sx - 2*attr->win_size.px; - zone_id = ZONE_FULLSOFTKEYS; - *zone_id_pointer = zone_id; - } - else if ((zone_id != 0x0000) && ((zone_id &0xF000)==0xF000))/*SPR#1840*/ - { - AUI_edit_GetSpecificWindowSize(attr,zone_id); - return; - } - else if (zone_id == 0) - { - zone_id = ZONE_FULLSOFTKEYS; - *zone_id_pointer = zone_id; - } - - if (zone_id & ZONE_ICONS) - attr->win_size.py = attr->win_size.py + Mmi_layout_IconHeight(); - - if (zone_id & ZONE_SOFTKEYS) - attr->win_size.sy = attr->win_size.sy - Mmi_layout_softkeyHeight(); - - if (zone_id & ZONE_TITLE) - attr->win_size.py = attr->win_size.py + Mmi_layout_TitleHeight(); - - if (zone_id & ZONE_CASE_ABC) - attr->win_size.sy = attr->win_size.sy - Mmi_layout_line_height(); - - if (zone_id & ZONE_SCROLLBAR) - attr->win_size.sx = attr->win_size.sx - ED_SCROLLBAR_WIDTH; - - attr->win_size.sy = attr->win_size.sy - attr->win_size.py; - - if ((zone_id & ZONE_FULLSCREEN) == ZONE_FULLSCREEN) - return; - - /*Else window is not entire screen */ - - switch (zone_id & ZONE_FULL_HEIGHT) - { - case ZONE_FULL_HEIGHT: - break; - case ZONE_TOPHALF_HEIGHT: - attr->win_size.sy = attr->win_size.sy/2; - break; - case ZONE_MIDDLE_HEIGHT: - attr->win_size.sy = attr->win_size.sy/2; - attr->win_size.py = attr->win_size.py+attr->win_size.sy/2; - break; - case ZONE_BOTTOMHALF_HEIGHT: - attr->win_size.sy = attr->win_size.sy/2; - attr->win_size.py = attr->win_size.py+attr->win_size.sy; - break; - case ZONE_BOTTOMTWOLINES_HEIGHT: - attr->win_size.py = attr->win_size.py+attr->win_size.sy-Mmi_layout_line_height()*2; - attr->win_size.sy = Mmi_layout_line_height()*2; - break; - /* xreddymn OMAPS00075852 May-15-2006 - * This display zone is located one line above the softkeys. - */ - case ZONE_MIDDLETWOLINES_HEIGHT: - attr->win_size.py = attr->win_size.py+attr->win_size.sy-Mmi_layout_line_height()*3; - attr->win_size.sy = Mmi_layout_line_height()*2; - break; - default: - //No action - break; - } - - switch (zone_id & ZONE_FULL_WIDTH) - { - case ZONE_FULL_WIDTH: - break; - case ZONE_LEFTHALF_WIDTH: - attr->win_size.sx = attr->win_size.sx/2; - break; - case ZONE_MIDDLE_WIDTH : - attr->win_size.sx = attr->win_size.sx/2; - attr->win_size.px = attr->win_size.px+attr->win_size.sx/2; - break; - case ZONE_RIGHTHALF_WIDTH: - attr->win_size.sx = attr->win_size.sx/2; - attr->win_size.px = attr->win_size.px+attr->win_size.sx; - break; - default: - //No action - break; - } + int zone_id = *zone_id_pointer; + + attr->win_size.px = 0; + attr->win_size.py = 0; + attr->win_size.sx = SCREEN_SIZE_X; + attr->win_size.sy = SCREEN_SIZE_Y; + + if (zone_id == ZONE_BORDER_EDITOR) + { //Leave border on left/right of screen. + attr->win_size.px = 4; + attr->win_size.sx = attr->win_size.sx - 2*attr->win_size.px; + zone_id = ZONE_FULLSOFTKEYS; + *zone_id_pointer = zone_id; + } + else if ((zone_id != 0x0000) && ((zone_id &0xF000)==0xF000))/*SPR#1840*/ + { + AUI_edit_GetSpecificWindowSize(attr,zone_id); + return; + } + else if (zone_id == 0) + { + zone_id = ZONE_FULLSOFTKEYS; + *zone_id_pointer = zone_id; + } + + if (zone_id & ZONE_ICONS) + attr->win_size.py = attr->win_size.py + Mmi_layout_IconHeight(); + + if (zone_id & ZONE_SOFTKEYS) + attr->win_size.sy = attr->win_size.sy - Mmi_layout_softkeyHeight(); + + if (zone_id & ZONE_TITLE) + attr->win_size.py = attr->win_size.py + Mmi_layout_TitleHeight(); + + if (zone_id & ZONE_CASE_ABC) + attr->win_size.sy = attr->win_size.sy - Mmi_layout_line_height(); + + if (zone_id & ZONE_SCROLLBAR) + attr->win_size.sx = attr->win_size.sx - ED_SCROLLBAR_WIDTH; + + attr->win_size.sy = attr->win_size.sy - attr->win_size.py; + + if ((zone_id & ZONE_FULLSCREEN) == ZONE_FULLSCREEN) + return; + + /*Else window is not entire screen */ + + switch (zone_id & ZONE_FULL_HEIGHT) + { + case ZONE_FULL_HEIGHT: + break; + case ZONE_TOPHALF_HEIGHT: + attr->win_size.sy = attr->win_size.sy/2; + break; + case ZONE_MIDDLE_HEIGHT: + attr->win_size.sy = attr->win_size.sy/2; + attr->win_size.py = attr->win_size.py+attr->win_size.sy/2; + break; + case ZONE_BOTTOMHALF_HEIGHT: + attr->win_size.sy = attr->win_size.sy/2; + attr->win_size.py = attr->win_size.py+attr->win_size.sy; + break; + case ZONE_BOTTOMTWOLINES_HEIGHT: + attr->win_size.py = attr->win_size.py+attr->win_size.sy-Mmi_layout_line_height()*2; + attr->win_size.sy = Mmi_layout_line_height()*2; + break; + /* xreddymn OMAPS00075852 May-15-2006 + * This display zone is located one line above the softkeys. + */ + case ZONE_MIDDLETWOLINES_HEIGHT: + attr->win_size.py = attr->win_size.py+attr->win_size.sy-Mmi_layout_line_height()*3; + attr->win_size.sy = Mmi_layout_line_height()*2; + break; + default: + //No action + break; + } + + switch (zone_id & ZONE_FULL_WIDTH) + { + case ZONE_FULL_WIDTH: + break; + case ZONE_LEFTHALF_WIDTH: + attr->win_size.sx = attr->win_size.sx/2; + break; + case ZONE_MIDDLE_WIDTH : + attr->win_size.sx = attr->win_size.sx/2; + attr->win_size.px = attr->win_size.px+attr->win_size.sx/2; + break; + case ZONE_RIGHTHALF_WIDTH: + attr->win_size.sx = attr->win_size.sx/2; + attr->win_size.px = attr->win_size.px+attr->win_size.sx; + break; + default: + //No action + break; + } } /******************************************************************************* - $Function: AUI_edit_SetDefault - - $Description: Sets up standard editor attributes. - - $Returns: None. - - $Arguments: editor_data - The MMI editor data that is to be modified. + $Function: AUI_edit_SetDefault + + $Description: Sets up standard editor attributes. + + $Returns: None. + + $Arguments: editor_data - The MMI editor data that is to be modified. *******************************************************************************/ void AUI_edit_SetDefault(T_AUI_EDITOR_DATA *editor_data) { - /* Set everything to zero... */ - /* SPR#1559 - Move CalculateWindow to below */ - - memset(editor_data, 0, sizeof(T_AUI_EDITOR_DATA)); - - /* Except these things... */ - - editor_data->editor_attr.colour = COLOUR_EDITOR; - editor_data->editor_attr.font = EDITOR_FONT; - editor_data->editor_attr.cursor = ED_CURSOR_BAR; - editor_data->editor_attr.mode = ED_MODE_ALPHA; - editor_data->editor_attr.text.dcs = ATB_DCS_ASCII; - editor_data->timeout = FOREVER; - editor_data->destroyEditor = TRUE; - editor_data->zone_id = ZONE_FULL_SK_TITLE; + /* Set everything to zero... */ + /* SPR#1559 - Move CalculateWindow to below */ + + memset(editor_data, 0, sizeof(T_AUI_EDITOR_DATA)); + + /* Except these things... */ + + editor_data->editor_attr.colour = COLOUR_EDITOR; + editor_data->editor_attr.font = EDITOR_FONT; + editor_data->editor_attr.cursor = ED_CURSOR_BAR; + editor_data->editor_attr.mode = ED_MODE_ALPHA; + editor_data->editor_attr.text.dcs = ATB_DCS_ASCII; + editor_data->timeout = FOREVER; + editor_data->destroyEditor = TRUE; + editor_data->zone_id = ZONE_FULL_SK_TITLE; // Shashi Shekar B.S., a0876501, Jan 16, 2006, DR: OMAPS00061460 #ifdef FF_MMI_SAT_ICON - editor_data->editor_attr.TitleIcon.data = NULL; - editor_data->editor_attr.TitleIcon.width = 0; - editor_data->editor_attr.TitleIcon.height = 0; - editor_data->editor_attr.TitleIcon.isTitle = FALSE; + editor_data->editor_attr.TitleIcon.data = NULL; + editor_data->editor_attr.TitleIcon.width = 0; + editor_data->editor_attr.TitleIcon.height = 0; + editor_data->editor_attr.TitleIcon.isTitle = FALSE; //x0035544 Mar 14, 2006 DR:OMAPS00061468 //set the default value for display_type to SAT_ICON_NONE - editor_data->editor_attr.TitleIcon.display_type = SAT_ICON_NONE; - editor_data->editor_attr.TitleIcon.selfExplanatory = FALSE; + editor_data->editor_attr.TitleIcon.display_type = SAT_ICON_NONE; + editor_data->editor_attr.TitleIcon.selfExplanatory = FALSE; #endif - /* SPR#1559 - SH - CalculateWindow moved here; pointer to zone_id used */ - AUI_edit_CalculateWindow(&editor_data->editor_attr, &editor_data->zone_id); - - ATB_display_ClearFormat(&editor_data->editor_attr.startFormat); - return; + /* SPR#1559 - SH - CalculateWindow moved here; pointer to zone_id used */ + AUI_edit_CalculateWindow(&editor_data->editor_attr, &editor_data->zone_id); + + ATB_display_ClearFormat(&editor_data->editor_attr.startFormat); + return; } /******************************************************************************* - $Function: AUI_edit_SetDisplay - - $Description: Sets up standard editor attributes. - - $Returns: None. - - $Arguments: editor_data - The MMI editor data that is to be modified. - zone_id - Type of editor screen (see header file for ZONE_...) - colour - Colour of the editor + $Function: AUI_edit_SetDisplay + + $Description: Sets up standard editor attributes. + + $Returns: None. + + $Arguments: editor_data - The MMI editor data that is to be modified. + zone_id - Type of editor screen (see header file for ZONE_...) + colour - Colour of the editor *******************************************************************************/ void AUI_edit_SetDisplay(T_AUI_EDITOR_DATA *editor_data, int zone_id, int colour, UBYTE font ) { - /* SPR#1559 - SH - Use pointer to zone_id */ - AUI_edit_CalculateWindow(&editor_data->editor_attr, &zone_id); - editor_data->zone_id = zone_id; - editor_data->editor_attr.colour = colour; - editor_data->editor_attr.font = font; - - return; + /* SPR#1559 - SH - Use pointer to zone_id */ + AUI_edit_CalculateWindow(&editor_data->editor_attr, &zone_id); + editor_data->zone_id = zone_id; + editor_data->editor_attr.colour = colour; + editor_data->editor_attr.font = font; + + return; } /******************************************************************************* - $Function: AUI_edit_SetEvents - - $Description: Sets up standard editor attributes. - - $Returns: None. - - $Arguments: editor_data - The MMI editor data that is to be modified. + $Function: AUI_edit_SetEvents + + $Description: Sets up standard editor attributes. + + $Returns: None. + + $Arguments: editor_data - The MMI editor data that is to be modified. *******************************************************************************/ void AUI_edit_SetEvents(T_AUI_EDITOR_DATA *editor_data, USHORT Identifier, BOOL destroyEditor, ULONG timeout, T_AUI_EDIT_CB Callback) { - if (editor_data) - { - editor_data->Identifier = Identifier; - editor_data->destroyEditor = destroyEditor; - editor_data->timeout = timeout; - editor_data->Callback = Callback; - } - return; + if (editor_data) + { + editor_data->Identifier = Identifier; + editor_data->destroyEditor = destroyEditor; + editor_data->timeout = timeout; + editor_data->Callback = Callback; + } + return; } /******************************************************************************* - $Function: AUI_edit_SetMode - - $Description: Sets up standard editor attributes. - - $Returns: None. - - $Arguments: editor_data - The MMI editor data that is to be modified. - mode - Editor mode (see header file for ED_MODE_...) - cursor - Editor cursor (see header file for ED_CURSOR_...) + $Function: AUI_edit_SetMode + + $Description: Sets up standard editor attributes. + + $Returns: None. + + $Arguments: editor_data - The MMI editor data that is to be modified. + mode - Editor mode (see header file for ED_MODE_...) + cursor - Editor cursor (see header file for ED_CURSOR_...) *******************************************************************************/ void AUI_edit_SetMode(T_AUI_EDITOR_DATA *editor_data, USHORT mode, USHORT cursor ) { - if (editor_data) - { - editor_data->editor_attr.mode = mode; - editor_data->editor_attr.cursor = cursor; - } - - return; + if (editor_data) + { + editor_data->editor_attr.mode = mode; + editor_data->editor_attr.cursor = cursor; + } + + return; } /******************************************************************************* - $Function: AUI_edit_SetBuffer - - $Description: Sets up standard editor attributes. - - $Returns: None. - - $Arguments: editor_data - The MMI editor data that is to be modified. - dcs - Data coding scheme of text (see ATB_DCS_...) - text - The text in the appropriate coding scheme - size - Maximum size of the edit buffer in characters + $Function: AUI_edit_SetBuffer + + $Description: Sets up standard editor attributes. + + $Returns: None. + + $Arguments: editor_data - The MMI editor data that is to be modified. + dcs - Data coding scheme of text (see ATB_DCS_...) + text - The text in the appropriate coding scheme + size - Maximum size of the edit buffer in characters *******************************************************************************/ void AUI_edit_SetBuffer(T_AUI_EDITOR_DATA *editor_data, UBYTE dcs, UBYTE *text, USHORT size) { - if (editor_data) - { - editor_data->editor_attr.text.dcs = dcs; - editor_data->editor_attr.text.data = text; - editor_data->editor_attr.text.len = ATB_string_Length(&editor_data->editor_attr.text); - editor_data->editor_attr.size = size; - } - - return; + if (editor_data) + { + editor_data->editor_attr.text.dcs = dcs; + editor_data->editor_attr.text.data = text; + editor_data->editor_attr.text.len = ATB_string_Length(&editor_data->editor_attr.text); + editor_data->editor_attr.size = size; + } + + return; } /******************************************************************************* - $Function: AUI_edit_SetTextStr - - $Description: Sets up standard editor attributes. - - $Returns: None. - - $Arguments: editor_data - The MMI editor data that is to be modified. - LeftSoftKey, RightSoftKey - Text IDs of the softkeys - TitleId - Text ID for the title - TextString - Text string for the title, used if TitleId is 0 + $Function: AUI_edit_SetTextStr + + $Description: Sets up standard editor attributes. + + $Returns: None. + + $Arguments: editor_data - The MMI editor data that is to be modified. + LeftSoftKey, RightSoftKey - Text IDs of the softkeys + TitleId - Text ID for the title + TextString - Text string for the title, used if TitleId is 0 *******************************************************************************/ void AUI_edit_SetTextStr(T_AUI_EDITOR_DATA *editor_data, USHORT LeftSoftKey, USHORT RightSoftKey, USHORT TitleId, UBYTE *TitleString) { - if (editor_data) - { - editor_data->LeftSoftKey = LeftSoftKey; - editor_data->RightSoftKey = RightSoftKey; - editor_data->AltRightSoftKey = RightSoftKey; - editor_data->TitleId = TitleId; - editor_data->TitleString = TitleString; - } - - return; + if (editor_data) + { + editor_data->LeftSoftKey = LeftSoftKey; + editor_data->RightSoftKey = RightSoftKey; + editor_data->AltRightSoftKey = RightSoftKey; + editor_data->TitleId = TitleId; + editor_data->TitleString = TitleString; + } + + return; } /******************************************************************************* - $Function: AUI_edit_SetAltTextStr - - $Description: Sets up standard editor attributes. - - $Returns: None. - - $Arguments: editor_data - The MMI editor data that is to be modified. - min_enter - No of characters needed to be entered - AltLeftSoftKey - Text ID of alternate left softkey - change_rsk_on_empty - TRUE if alternative right soft key is used for - empty buffer - AltRightSoftKey - Text ID of alternative right softkey + $Function: AUI_edit_SetAltTextStr + + $Description: Sets up standard editor attributes. + + $Returns: None. + + $Arguments: editor_data - The MMI editor data that is to be modified. + min_enter - No of characters needed to be entered + AltLeftSoftKey - Text ID of alternate left softkey + change_rsk_on_empty - TRUE if alternative right soft key is used for + empty buffer + AltRightSoftKey - Text ID of alternative right softkey *******************************************************************************/ void AUI_edit_SetAltTextStr(T_AUI_EDITOR_DATA *editor_data, UBYTE min_enter, USHORT AltLeftSoftKey, BOOL change_rsk_on_empty, USHORT AltRightSoftKey) { - if (editor_data) - { - editor_data->AltLeftSoftKey = AltLeftSoftKey; - editor_data->min_enter = min_enter; - editor_data->AltRightSoftKey = AltRightSoftKey; - editor_data->change_rsk_on_empty = change_rsk_on_empty; - } - - return; + if (editor_data) + { + editor_data->AltLeftSoftKey = AltLeftSoftKey; + editor_data->min_enter = min_enter; + editor_data->AltRightSoftKey = AltRightSoftKey; + editor_data->change_rsk_on_empty = change_rsk_on_empty; + } + + return; } /******************************************************************************* - $Function: AUI_edit_SetFormatStr - - $Description: Sets up standard editor attributes. - - $Returns: None. - - $Arguments: editor_data - The MMI editor data that is to be modified. - formatstr - The formatted input string - preformat - TRUE if format codes are to be inserted into text - before editing - filler - If preformat is true, this character will be used to - pad out the provided string + $Function: AUI_edit_SetFormatStr + + $Description: Sets up standard editor attributes. + + $Returns: None. + + $Arguments: editor_data - The MMI editor data that is to be modified. + formatstr - The formatted input string + preformat - TRUE if format codes are to be inserted into text + before editing + filler - If preformat is true, this character will be used to + pad out the provided string *******************************************************************************/ void AUI_edit_SetFormatStr(T_AUI_EDITOR_DATA *editor_data, char *formatstr, BOOL preformat, char filler) { - USHORT textIndex; - USHORT formatIndex; -// USHORT character; // RAVI - - TRACE_FUNCTION("AUI_edit_SetFormatStr()"); - - if (editor_data) - { - editor_data->editor_attr.FormatString = formatstr; - - /* SPR#1983 - SH - *m and *M strings are freeform, no preformatting required */ - if (preformat && strcmp(formatstr, "*m")!=0 && strcmp(formatstr, "*M")!=0) - { - formatIndex = 0; - textIndex = 0; - - /* SPR#1983 - SH - Ensure formatting doesn't write over null terminator */ - while (formatstr[formatIndex]!=0 && - !strchr("123456789*", formatstr[formatIndex]) && /* Exit at delimited field */ - textIndex<(editor_data->editor_attr.size-1)) - { - /* Encountered fixed character */ - if (formatstr[formatIndex]=='\\') - { - formatIndex++; - ATB_string_SetChar(&editor_data->editor_attr.text, textIndex, ATB_char_Unicode(formatstr[formatIndex])); - } - /* If editor text has run out, fill the rest with our filler character */ - else if (textIndex>editor_data->editor_attr.text.len) - { - ATB_string_SetChar(&editor_data->editor_attr.text, textIndex, ATB_char_Unicode(filler)); - } - if(formatstr[formatIndex]!=0) /*a0393213 lint warnings removal - 'Possible access of out-of-bounds pointer'*/ - { - formatIndex++; - textIndex++; - } - } - } - } - - return; + USHORT textIndex; + USHORT formatIndex; +// USHORT character; // RAVI + + TRACE_FUNCTION("AUI_edit_SetFormatStr()"); + + if (editor_data) + { + editor_data->editor_attr.FormatString = formatstr; + + /* SPR#1983 - SH - *m and *M strings are freeform, no preformatting required */ + if (preformat && strcmp(formatstr, "*m")!=0 && strcmp(formatstr, "*M")!=0) + { + formatIndex = 0; + textIndex = 0; + + /* SPR#1983 - SH - Ensure formatting doesn't write over null terminator */ + while (formatstr[formatIndex]!=0 && + !strchr("123456789*", formatstr[formatIndex]) && /* Exit at delimited field */ + textIndex<(editor_data->editor_attr.size-1)) + { + /* Encountered fixed character */ + if (formatstr[formatIndex]=='\\') + { + formatIndex++; + ATB_string_SetChar(&editor_data->editor_attr.text, textIndex, ATB_char_Unicode(formatstr[formatIndex])); + } + /* If editor text has run out, fill the rest with our filler character */ + else if (textIndex>editor_data->editor_attr.text.len) + { + ATB_string_SetChar(&editor_data->editor_attr.text, textIndex, ATB_char_Unicode(filler)); + } + if(formatstr[formatIndex]!=0) /*a0393213 lint warnings removal - 'Possible access of out-of-bounds pointer'*/ + { + formatIndex++; + textIndex++; + } + } + } + } + + return; } /******************************************************************************* - $Function: AUI_edit_SetFormatAttr - - $Description: Sets up standard editor attributes. - - $Returns: None. - - $Arguments: editor_data - The MMI editor data that is to be modified. - startFormat - Pointer to text formatting data structure + $Function: AUI_edit_SetFormatAttr + + $Description: Sets up standard editor attributes. + + $Returns: None. + + $Arguments: editor_data - The MMI editor data that is to be modified. + startFormat - Pointer to text formatting data structure *******************************************************************************/ void AUI_edit_SetFormatAttr(T_AUI_EDITOR_DATA *editor_data, UBYTE attr) { - if (editor_data) - { - editor_data->editor_attr.startFormat.attr = attr; - } - - return; + if (editor_data) + { + editor_data->editor_attr.startFormat.attr = attr; + } + + return; } /******************************************************************************* - $Function: AUI_edit_SetAttr - - $Description: Set some standard editor attributes - - $Returns: None. - - $Arguments: attr - The editor attr + $Function: AUI_edit_SetAttr + + $Description: Set some standard editor attributes + + $Returns: None. + + $Arguments: attr - The editor attr *******************************************************************************/ void AUI_edit_SetAttr(T_ED_ATTR *attr, int zone_id, ULONG colour, UBYTE font, USHORT mode, USHORT cursor, T_ATB_DCS dcs, UBYTE *text, USHORT size) { - /* Populate the structure with the parameters - */ - /* SPR#1559 - SH - Use pointer to zone_id */ - AUI_edit_CalculateWindow(attr, &zone_id ); - attr->colour = colour; - attr->font = font; - attr->mode = mode; - attr->cursor = cursor; - attr->text.dcs = dcs; - attr->text.data = text; - attr->text.len = ATB_string_Length(&attr->text); - attr->size = size; - - return; + /* Populate the structure with the parameters + */ + /* SPR#1559 - SH - Use pointer to zone_id */ + AUI_edit_CalculateWindow(attr, &zone_id ); + attr->colour = colour; + attr->font = font; + attr->mode = mode; + attr->cursor = cursor; + attr->text.dcs = dcs; + attr->text.data = text; + attr->text.len = ATB_string_Length(&attr->text); + attr->size = size; + + return; } /* API - 08/07/03 - CQ10728 - Query your own number with a D1 SIM*/ /******************************************************************************* - $Function: AUI_Edit_Display_Only - - $Description: Sets up the display requirements for the Editor & also shows it - - $Returns: None. - - $Arguments: win - parent window, LSK - Left Soft Key, RSK - Right Soft Key - string1 - String details, string2 - String details, Title - Editor title string + $Function: AUI_Edit_Display_Only + + $Description: Sets up the display requirements for the Editor & also shows it + + $Returns: None. + + $Arguments: win - parent window, LSK - Left Soft Key, RSK - Right Soft Key + string1 - String details, string2 - String details, Title - Editor title string *******************************************************************************/ void AUI_Edit_Display_Only(T_MFW_HND win, int LSK, int RSK, char *string1, char *string2, int Title) { - T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; - T_AUI_EDITOR_INFO *data = (T_AUI_EDITOR_INFO *)win_data->user; - - T_AUI_EDITOR_DATA display_editor_info; - - int size = MAX_RO_EDITOR_LEN; - - AUI_edit_SetDefault(&display_editor_info); - - /* Include title for colour display */ + T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; + T_AUI_EDITOR_INFO *data = (T_AUI_EDITOR_INFO *)win_data->user; + + T_AUI_EDITOR_DATA display_editor_info; + + int size = MAX_RO_EDITOR_LEN; + + AUI_edit_SetDefault(&display_editor_info); + + /* Include title for colour display */ #ifdef COLOURDISPLAY - AUI_edit_SetDisplay(&display_editor_info, ZONE_FULL_SK_TITLE_SCROLL, COLOUR_EDITOR, EDITOR_FONT); + AUI_edit_SetDisplay(&display_editor_info, ZONE_FULL_SK_TITLE_SCROLL, COLOUR_EDITOR, EDITOR_FONT); #else /* COLOURDISPLAY */ - AUI_edit_SetDisplay(&display_editor_info, ZONE_FULL_SK_SCROLL, COLOUR_EDITOR, EDITOR_FONT); + AUI_edit_SetDisplay(&display_editor_info, ZONE_FULL_SK_SCROLL, COLOUR_EDITOR, EDITOR_FONT); #endif /* COLOURDISPLAY */ - AUI_edit_SetMode(&display_editor_info, ED_MODE_ALPHA | ED_MODE_READONLY, ED_CURSOR_NONE); - AUI_edit_SetEvents(&display_editor_info, 0, FALSE, FOREVER, (T_AUI_EDIT_CB) AUI_Edit_Display_Only_CB); - AUI_edit_SetTextStr(&display_editor_info, LSK, RSK, Title, NULL); - - /* SPR#2672 - SH - Allocate buffer dynamically */ - - data->displayBuffer = (char *)ALLOC_MEMORY(size); - - strcpy(data->displayBuffer, string1); - - if(string2 != NULL) - { - strcat(data->displayBuffer, "\n"); - strcat(data->displayBuffer, string2); - } - - if (data->displayBuffer[0]==(char)0x80) - { - AUI_edit_SetBuffer(&display_editor_info, ATB_DCS_UNICODE, (UBYTE *)&data->displayBuffer[2], size/2); - } - else - { - AUI_edit_SetBuffer(&display_editor_info, ATB_DCS_ASCII, (UBYTE *)&data->displayBuffer[0], size); - } - - data->win = AUI_edit_Start(win,&display_editor_info); /* start the editor */ + AUI_edit_SetMode(&display_editor_info, ED_MODE_ALPHA | ED_MODE_READONLY, ED_CURSOR_NONE); + AUI_edit_SetEvents(&display_editor_info, 0, FALSE, FOREVER, (T_AUI_EDIT_CB) AUI_Edit_Display_Only_CB); + AUI_edit_SetTextStr(&display_editor_info, LSK, RSK, Title, NULL); + + /* SPR#2672 - SH - Allocate buffer dynamically */ + + data->displayBuffer = (char *)ALLOC_MEMORY(size); + + strcpy(data->displayBuffer, string1); + + if(string2 != NULL) + { + strcat(data->displayBuffer, "\n"); + strcat(data->displayBuffer, string2); + } + + if (data->displayBuffer[0]==(char)0x80) + { + AUI_edit_SetBuffer(&display_editor_info, ATB_DCS_UNICODE, (UBYTE *)&data->displayBuffer[2], size/2); + } + else + { + AUI_edit_SetBuffer(&display_editor_info, ATB_DCS_ASCII, (UBYTE *)&data->displayBuffer[0], size); + } + + data->win = AUI_edit_Start(win,&display_editor_info); /* start the editor */ } /******************************************************************************* - $Function: AUI_Edit_Display_Only_CB - - $Description: Handles the key call back from the Read only Editor - - $Returns: None. + $Function: AUI_Edit_Display_Only_CB + + $Description: Handles the key call back from the Read only Editor + + $Returns: None. $Arguments: *******************************************************************************/ static void AUI_Edit_Display_Only_CB(T_MFW_HND win, USHORT Identifier, SHORT reason) { - T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; - T_AUI_EDITOR_INFO * data = (T_AUI_EDITOR_INFO *)win_data->user; + T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; + T_AUI_EDITOR_INFO * data = (T_AUI_EDITOR_INFO *)win_data->user; TRACE_EVENT("AUI_Edit_Display_Only_CB"); - switch(reason) - { - case INFO_KCD_RIGHT: - case INFO_KCD_HUP: - TRACE_EVENT("INFO_KCD_RIGHT/HUP"); - AUI_Edit_Display_Only_Destroy(data->win); - break; - - default: - TRACE_EVENT("Err: Default"); - break; - - } + switch(reason) + { + case INFO_KCD_RIGHT: + case INFO_KCD_HUP: + TRACE_EVENT("INFO_KCD_RIGHT/HUP"); + AUI_Edit_Display_Only_Destroy(data->win); + break; + + default: + TRACE_EVENT("Err: Default"); + break; + + } } /******************************************************************************* - $Function: AUI_Edit_Display_Only_Destroy - - $Description: Destroy the Read only information Editor - - $Returns: none - - $Arguments: own_window - current window handler + $Function: AUI_Edit_Display_Only_Destroy + + $Description: Destroy the Read only information Editor + + $Returns: none + + $Arguments: own_window - current window handler *******************************************************************************/ @@ -2761,45 +2756,45 @@ T_MFW_WIN * win_data; T_AUI_EDITOR_INFO * data; -// USHORT i; // RAVI +// USHORT i; // RAVI TRACE_FUNCTION ("SmsRead_R_TEXTEDT2_destroy()"); if (own_window) - { - win_data = ((T_MFW_HDR *)own_window)->data; - data = (T_AUI_EDITOR_INFO *)win_data->user; - - if (data) - { - /* - * Delete WIN handler - */ - - /* SPR#2672 - SH - Delete buffer */ - - if (data->displayBuffer!=NULL) - { - FREE_MEMORY((void *)data->displayBuffer, MAX_RO_EDITOR_LEN); - } - - /* SPR#1428 - SH - New Editor changes */ + { + win_data = ((T_MFW_HDR *)own_window)->data; + data = (T_AUI_EDITOR_INFO *)win_data->user; + + if (data) + { + /* + * Delete WIN handler + */ + + /* SPR#2672 - SH - Delete buffer */ + + if (data->displayBuffer!=NULL) + { + FREE_MEMORY((void *)data->displayBuffer, MAX_RO_EDITOR_LEN); + } + + /* SPR#1428 - SH - New Editor changes */ #ifdef NEW_EDITOR - AUI_edit_Destroy(data->win); + AUI_edit_Destroy(data->win); #else /* NEW_EDITOR */ - editor_destroy(data->win); + editor_destroy(data->win); #endif /* NEW_EDITOR */ - win_delete (data->win); - - FREE_MEMORY ((void *)data, sizeof (T_AUI_EDITOR_INFO)); - - - } - else - { - TRACE_EVENT ("SmsRead_R_TEXTEDT2_destroy() called twice"); - } - } + win_delete (data->win); + + FREE_MEMORY ((void *)data, sizeof (T_AUI_EDITOR_INFO)); + + + } + else + { + TRACE_EVENT ("SmsRead_R_TEXTEDT2_destroy() called twice"); + } + } } /* API - 08/07/03 - CQ10728 END*/