3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /*******************************************************************************
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2
|
135
|
3 CONDAT (UK)
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4
|
92
|
5 ********************************************************************************
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 This software product is the property of Condat (UK) Ltd and may not be
|
92
|
8 disclosed to any third party without the express permission of the owner.
|
|
9
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 ********************************************************************************
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11
|
135
|
12 $Project name: Basic MMI
|
|
13 $Project code: BMI
|
|
14 $Module: MMI
|
|
15 $File: AUISymbol.c
|
|
16 $Revision: 1.0
|
92
|
17
|
135
|
18 $Author: Condat(UK)
|
92
|
19 $Date:
|
|
20
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 ********************************************************************************
|
92
|
22
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 Description: Symbol screen for AUI editor
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24
|
92
|
25
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 ********************************************************************************
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 $History: AUISymbol.c
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30
|
135
|
31 Mar 23, 2005 REF: CRR 28490 xnkulkar
|
|
32 Description: Golite- 5-way navigation behaves wrongly while selecting special characters
|
|
33 in the text editor screen.The background screen goes blank when the special
|
|
34 characters screen comes up.
|
|
35 Solution: Commented 'dspl_ClearAll()' to make the behaviour consistent with normal variant.
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36
|
92
|
37
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 $End
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 // Issue Number : SPR#12817 on 26/03/04 by Deepa M.D.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 *******************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 /* includes */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 #include <string.h>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 #include <stdio.h>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 #include <stdlib.h>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 #if defined (NEW_FRAME)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 #include "typedefs.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 #include "vsi.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 #include "pei.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 #include "custom.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 #include "gsm.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 #include "STDDEFS.H"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 #include "custom.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 #include "gsm.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 #include "vsi.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 #include "mfw_mfw.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 #include "mfw_win.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 #include "mfw_kbd.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 #include "mfw_tim.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 #include "mfw_phb.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 #include "mfw_sms.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 #include "mfw_ss.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 #include "mfw_icn.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 #include "mfw_mnu.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 #include "mfw_lng.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 #include "mfw_sat.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 #include "mfw_kbd.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 #include "mfw_nm.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 #include "mfw_cm.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 #include "dspl.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 #include "ksd.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 #include "psa.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 #include "MmiDummy.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 #include "MmiMmi.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 #include "MmiDialogs.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 #include "MmiLists.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 #include "MmiMenu.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 #include "MmiSoftKeys.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 #include "MmiIdle.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 #include "cus_aci.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 #include "prim.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 #ifndef PCM_2_FFS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 #include "pcm.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 #include "mmiColours.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 #include "ATBCommon.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 #include "ATBDisplay.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 #include "ATBEditor.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 #include "AUIEditor.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 //data structure for punctuation symbols selection screen
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 {
|
135
|
112 T_MMI_CONTROL mmi_control;
|
|
113 T_MFW_HND parent;
|
|
114 T_MFW_HND win;
|
|
115 T_ED_DATA *editor;
|
|
116 T_MFW_HND kbd;
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117
|
135
|
118 T_AUI_EDITOR_DATA editor_data;
|
|
119 USHORT cursor_position;
|
|
120 USHORT output_symbol;
|
|
121 USHORT return_event;
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 T_AUI_SYMBOL_INFO;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 //events in main editor screen
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 typedef enum
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 {
|
135
|
128 EDITOR_INIT,
|
|
129 EDITOR_DEINIT,
|
|
130 EDITOR_UPDATE
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 } T_SYMBOL_EVENTS;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 /*********************************************************************
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 **********************************************************************
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 DYNAMIC EDITOR WINDOW. DECLARATION
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 *********************************************************************
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 **********************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 /* Local function protoypes */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 static T_MFW_HND AUI_symbol_Create (T_MFW_HND parent);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 static int AUI_symbol_WinCb (T_MFW_EVENT event, T_MFW_WIN * win);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 static int AUI_symbol_KbdCb (T_MFW_EVENT event, T_MFW_KBD *keyboard);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 static void AUI_symbol_ExecCb (T_MFW_HND win, USHORT event, USHORT value, void * symbol);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 /*******************************************************************************
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151
|
135
|
152 $Function: AUI_symbol_Destroy
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153
|
135
|
154 $Description: Destroy thesymbol screen
|
92
|
155
|
135
|
156 $Returns: None.
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157
|
135
|
158 $Arguments: window handle
|
92
|
159
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 *******************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 void AUI_symbol_Destroy (T_MFW_HND window)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 {
|
135
|
164 T_MFW_WIN *win = ((T_MFW_HDR *)window)->data;
|
|
165 T_AUI_SYMBOL_INFO *data = (T_AUI_SYMBOL_INFO *)win->user;
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 TRACE_FUNCTION ("AUI_symbol_Destroy()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 /* Send character to editor window */
|
92
|
170
|
135
|
171 SEND_EVENT (data->parent, data->return_event, (SHORT)data->output_symbol, NULL);
|
92
|
172
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 if (data)
|
135
|
174 { /*SPR 2520, need to destroy ATB editor*/
|
|
175 ATB_edit_Destroy( data->editor);
|
92
|
176
|
135
|
177 /* Delete WIN Handler */
|
|
178 win_delete (data->win);
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 /* Free Memory */
|
135
|
181 FREE_MEMORY ((void *)data, sizeof (T_AUI_SYMBOL_INFO));
|
|
182 }
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 {
|
135
|
185 TRACE_EVENT ("AUI_symbol_Destroy() called twice");
|
|
186 return ;
|
|
187 }
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 /*******************************************************************************
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192
|
135
|
193 $Function: AUI_symbol_Start
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194
|
135
|
195 $Description: Starts the symbol screen
|
92
|
196
|
135
|
197 $Returns: handle
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198
|
135
|
199 $Arguments: parent window, editor data
|
92
|
200
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 *******************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 T_MFW_HND AUI_symbol_Start (T_MFW_HND parent, USHORT return_event)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 T_MFW_HND win;
|
92
|
205
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 TRACE_FUNCTION ("AUI_symbol_Start()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 win = AUI_symbol_Create (parent);
|
92
|
210
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 if (win NEQ NULL)
|
135
|
212 {
|
|
213 SEND_EVENT (win, EDITOR_INIT, return_event, 0);
|
|
214 }
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 return win;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 /*******************************************************************************
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220
|
135
|
221 $Function: LatinEditorcreate
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222
|
135
|
223 $Description: Creation of a symbol screen
|
92
|
224
|
135
|
225 $Returns: handle of new window
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226
|
135
|
227 $Arguments: parent window
|
92
|
228
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 *******************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 static T_MFW_HND AUI_symbol_Create (T_MFW_HND parent)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 T_AUI_SYMBOL_INFO * data = (T_AUI_SYMBOL_INFO *)ALLOC_MEMORY (sizeof (T_AUI_SYMBOL_INFO));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234 T_MFW_WIN * win;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 TRACE_FUNCTION ("AUI_symbol_Create()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 /* Create window handler */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240 data->win = winCreate (parent, 0, E_WIN_VISIBLE, (T_MFW_CB)AUI_symbol_WinCb);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242 if (data->win EQ NULL)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 return NULL;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 }
|
92
|
246
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247 /* Connect the dialog data to the MFW-window */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248
|
135
|
249 data->mmi_control.dialog = (T_DIALOG_FUNC)AUI_symbol_ExecCb;
|
|
250 data->mmi_control.data = data;
|
|
251 data->parent = parent;
|
|
252 win = ((T_MFW_HDR *)data->win)->data;
|
|
253 win->user = (void *)data;
|
92
|
254
|
135
|
255 return data->win;
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
256 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
257
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
258
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
259 /*******************************************************************************
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
260
|
135
|
261 $Function: AUI_symbol_ExecCb
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
262
|
135
|
263 $Description: handles events for symbol window
|
92
|
264
|
135
|
265 $Returns: None.
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
266
|
135
|
267 $Arguments: window, event, value, editor data
|
92
|
268
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
269 *******************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
270
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
271 static void AUI_symbol_ExecCb (T_MFW_HND win, USHORT event, USHORT value, void *parameter)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
272 {
|
135
|
273 T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
|
|
274 T_AUI_SYMBOL_INFO * data = (T_AUI_SYMBOL_INFO *)win_data->user;
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
275
|
135
|
276 // T_MFW_HND parent_win = data->parent; // RAVI
|
|
277 // USHORT Identifier = data->editor_data.Identifier; // RAVI
|
|
278 // T_AUI_EDIT_CB Callback = data->editor_data.Callback; // RAVI
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
279
|
135
|
280 /* List of symbols */
|
|
281 /*SPR 1955, replaced 0xA3 sign with our ASCII code for it*/
|
|
282 /*SPR2175, added previously un-enterable symbols into symbol table*/
|
|
283 static char symStr[] = ". , ? ! : ; - + # * ( ) \' \" _ @ & $ \x9C % / < > = \x8F \x86 \xA5 \xA4 \x2 \x7 \x4 \x9D \xe8 \xE2 \xEF \xEA \xE3 \x5 \xe4 \xe9 \xF0 \x92 \x91 \x01 \xAD \xA8 \x06";
|
92
|
284
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
285 TRACE_FUNCTION ("AUI_symbol_ExecCb()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
286
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
287 switch (event)
|
135
|
288 {
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
289 case EDITOR_INIT:
|
135
|
290 /* Get the return event that has been passed */
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
291
|
135
|
292 data->return_event = value;
|
92
|
293
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
294 /* Create the keyboard handler */
|
135
|
295 data->kbd = kbdCreate (data->win, KEY_ALL,(T_MFW_CB)AUI_symbol_KbdCb);
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
296
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
297 /* Initialise editor variables */
|
92
|
298
|
135
|
299 AUI_edit_SetDefault(&data->editor_data);
|
|
300 AUI_edit_SetDisplay(&data->editor_data, ZONE_MIDDLE_EDITOR, COLOUR_EDITOR_XX, EDITOR_FONT);
|
|
301 AUI_edit_SetBuffer(&data->editor_data, ATB_DCS_ASCII, (UBYTE *)symStr, strlen(symStr)+1);
|
|
302 AUI_edit_SetMode(&data->editor_data, ED_MODE_ALPHA, ED_CURSOR_BLOCK);
|
|
303 data->editor = ATB_edit_Create(&data->editor_data.editor_attr,0);
|
92
|
304 ATB_edit_Init(data->editor);
|
|
305
|
135
|
306 ATB_edit_Char(data->editor, ctrlTop, TRUE);
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
307 win_show(data->win);
|
135
|
308 break;
|
92
|
309
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
310 case EDITOR_DEINIT:
|
135
|
311 AUI_symbol_Destroy (data->win);
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
312 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
313
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
314 default:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
315 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
316 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
317 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
318
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
319
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
320 /*******************************************************************************
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
321
|
135
|
322 $Function: AUI_symbol_WinCb
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
323
|
135
|
324 $Description: Editor window event handler.
|
92
|
325
|
135
|
326 $Returns: status int
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
327
|
135
|
328 $Arguments: event, window
|
92
|
329
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
330 *******************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
331 static int AUI_symbol_WinCb (T_MFW_EVENT event, T_MFW_WIN * win)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
332 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
333 T_AUI_SYMBOL_INFO * data = (T_AUI_SYMBOL_INFO *)win->user;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
334
|
135
|
335 TRACE_FUNCTION ("AUI_symbol__win_cb()");
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
336
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
337 if (!data)
|
135
|
338 {
|
|
339 return MFW_EVENT_CONSUMED;
|
|
340 }
|
92
|
341
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
342 switch (event)
|
135
|
343 {
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
344 case E_WIN_VISIBLE: /* window is visible */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
345 if (win->flags & E_WIN_VISIBLE)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
346 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
347 // Mar 23, 2005 REF: CRR 28490 xnkulkar
|
92
|
348 // Description: Golite- 5-way navigation behaves wrongly while selecting special characters
|
135
|
349 // in the text editor screen.The background screen goes blank when the special
|
|
350 // characters screen comes up.
|
92
|
351 // Solution: Commented 'dspl_ClearAll()' to make the behaviour consistent with normal variant.
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
352 //#ifndef COLOURDISPLAY
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
353 /* Clear Screen */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
354 // dspl_ClearAll();
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
355 //#endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
356
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
357 /* Print the information */
|
135
|
358 ATB_edit_Show(data->editor);
|
92
|
359
|
135
|
360 // change by Sasken ( Deepa M D) on March 26th 2004
|
|
361 // Issue Number : MMI-SPR-12817
|
|
362 // Subject: Wrong softkey in the symbol table.
|
|
363 // Bug : While selecting the symbols in the editor
|
|
364 // for the sms write screen, the softkey dispalyed
|
|
365 // was "Options" instead of "Select"
|
|
366 // Solution: Commenting the compilation flags COLOURDISPLAY.
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
367 //#ifndef COLOURDISPLAY
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
368 /* Print the softkeys */
|
135
|
369 displaySoftKeys(TxtSoftSelect, TxtSoftBack);
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
370 //#endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
371 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
372 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
373 default:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
374 return MFW_EVENT_REJECTED;
|
135
|
375 }
|
|
376 return MFW_EVENT_CONSUMED;
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
377 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
378
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
379
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
380 /*******************************************************************************
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
381
|
135
|
382 $Function: AUI_symbol__kbd_cb
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
383
|
135
|
384 $Description: Symbol screen keyboard event handler
|
92
|
385
|
135
|
386 $Returns: None.
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
387
|
135
|
388 $Arguments: event, keyborad data
|
92
|
389
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
390 *******************************************************************************/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
391
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
392 static int AUI_symbol_KbdCb (T_MFW_EVENT event, T_MFW_KBD *keyboard)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
393 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
394 T_MFW_HND win = mfw_parent (mfw_header());
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
395 T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
396 T_AUI_SYMBOL_INFO * data = (T_AUI_SYMBOL_INFO *)win_data->user;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
397
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
398 TRACE_FUNCTION ("AUI_symbol__kbd_cb()");
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
399
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
400 switch (keyboard->code)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
401 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
402 /* Use left and right keys in colour display, not up and down */
|
92
|
403
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
404 #ifdef COLOURDISPLAY
|
135
|
405 case KCD_MNURIGHT:
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
406 ATB_edit_Char(data->editor,ctrlRight, FALSE);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
407 ATB_edit_Char(data->editor,ctrlRight, TRUE);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
408 ATB_edit_Show(data->editor);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
409 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
410
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
411 case KCD_MNULEFT:
|
135
|
412 ATB_edit_Char(data->editor,ctrlLeft, FALSE);
|
|
413 ATB_edit_Char(data->editor,ctrlLeft, TRUE);
|
|
414 ATB_edit_Show(data->editor);
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
415 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
416
|
135
|
417 case KCD_MNUUP:
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
418 ATB_edit_Char(data->editor,ctrlUp, TRUE);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
419 ATB_edit_Show(data->editor);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
420 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
421
|
92
|
422 case KCD_MNUDOWN:
|
135
|
423 ATB_edit_Char(data->editor,ctrlDown, TRUE);
|
|
424 ATB_edit_Show(data->editor);
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
425 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
426 #else
|
92
|
427 case KCD_MNUUP:
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
428 ATB_edit_Char(data->editor,ctrlRight, FALSE);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
429 ATB_edit_Char(data->editor,ctrlRight, TRUE);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
430 ATB_edit_Show(data->editor);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
431 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
432
|
92
|
433 case KCD_MNUDOWN:
|
135
|
434 ATB_edit_Char(data->editor,ctrlLeft, FALSE);
|
|
435 ATB_edit_Char(data->editor,ctrlLeft, TRUE);
|
|
436 ATB_edit_Show(data->editor);
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
437 break;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
438 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
439
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
440 #ifdef COLOURDISPLAY
|
135
|
441 case KCD_MNUSELECT:
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
442 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
443 case KCD_LEFT:
|
135
|
444 data->output_symbol = ATB_string_GetChar(&data->editor_data.editor_attr.text, data->editor->cursor.pos);
|
|
445 AUI_symbol_Destroy(data->win);
|
|
446 return MFW_EVENT_CONSUMED;
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
447 // break; // RAVI
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
448
|
135
|
449 case KCD_HUP:
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
450 case KCD_RIGHT:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
451 data->output_symbol = NULL;
|
135
|
452 AUI_symbol_Destroy(data->win);
|
|
453 return MFW_EVENT_CONSUMED;
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
454 // break; // RAVI
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
455 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
456
|
135
|
457 /* If we've landed on a space or an end-of-string, move cursor left */
|
92
|
458
|
135
|
459 if ( ( ATB_edit_GetCursorChar(data->editor, 0)==UNICODE_SPACE
|
|
460 || ATB_edit_GetCursorChar(data->editor, 0)==UNICODE_EOLN )
|
|
461 && data->editor->cursor.pos>0 )
|
|
462 {
|
|
463 ATB_edit_Char(data->editor, ctrlLeft, TRUE);
|
92
|
464 // Apr 27, 2004 REF: CRR MMI-SPR-12353 Rashmi C N(Sasken)
|
135
|
465 // When we encounter a white space the coordinates were updated but not the screen, hence an ATB_edit_Show is needed at this point
|
|
466 ATB_edit_Show(data->editor);
|
|
467 }
|
3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
468 return MFW_EVENT_CONSUMED;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
469 }
|