FreeCalypso > hg > tcs211-l1-reconst
comparison g23m/condat/ms/src/bmi/MmiBookInputWindow.c @ 0:509db1a7b7b8
initial import: leo2moko-r1
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Mon, 01 Jun 2015 03:24:05 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:509db1a7b7b8 |
---|---|
1 /******************************************************************************* | |
2 | |
3 CONDAT (UK) | |
4 | |
5 ******************************************************************************** | |
6 | |
7 This software product is the property of Condat (UK) Ltd and may not be | |
8 disclosed to any third party without the express permission of the owner. | |
9 | |
10 ******************************************************************************** | |
11 | |
12 $Project name: Basic MMI | |
13 $Project code: BMI (6349) | |
14 $Module: PhoneBook | |
15 $File: MmiBookInputWindow.h | |
16 $Revision: 1.0 | |
17 | |
18 $Author: Condat(UK) | |
19 $Date: 25/10/00 | |
20 | |
21 ******************************************************************************** | |
22 | |
23 Description: | |
24 | |
25 This module provides the functionality for the input window of the | |
26 phone book module. | |
27 | |
28 ******************************************************************************** | |
29 $History: MmiBookInputWindow.h | |
30 | |
31 25/10/00 Original Condat(UK) BMI version. | |
32 | |
33 $End | |
34 | |
35 *******************************************************************************/ | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 /******************************************************************************* | |
42 | |
43 Include Files | |
44 | |
45 *******************************************************************************/ | |
46 #define ENTITY_MFW | |
47 | |
48 /* includes */ | |
49 #include <string.h> | |
50 #include <stdio.h> | |
51 #include <stdlib.h> | |
52 | |
53 #if defined (NEW_FRAME) | |
54 | |
55 #include "typedefs.h" | |
56 #include "vsi.h" | |
57 #include "pei.h" | |
58 #include "custom.h" | |
59 #include "gsm.h" | |
60 | |
61 #else | |
62 | |
63 #include "STDDEFS.H" | |
64 #include "custom.h" | |
65 #include "gsm.h" | |
66 #include "vsi.h" | |
67 | |
68 #endif | |
69 | |
70 #include "mfw_sys.h" | |
71 | |
72 #include "mfw_mfw.h" | |
73 #include "mfw_win.h" | |
74 #include "mfw_kbd.h" | |
75 #include "mfw_lng.h" | |
76 /* SPR#1428 - SH - New Editor changes */ | |
77 #ifndef NEW_EDITOR | |
78 #include "mfw_edt.h" | |
79 #endif | |
80 #include "mfw_icn.h" | |
81 #include "mfw_mnu.h" | |
82 #include "mfw_tim.h" | |
83 | |
84 #include "mfw_sim.h" | |
85 #include "mfw_cm.h" | |
86 #include "mfw_nm.h" | |
87 #include "mfw_phb.h" | |
88 #include "mfw_mme.h" | |
89 #include "mfw_sat.h" | |
90 #include "mfw_sms.h" | |
91 | |
92 #include "dspl.h" | |
93 | |
94 #include "ksd.h" | |
95 #include "psa.h" | |
96 | |
97 #include "MmiMain.h" | |
98 #include "MmiBookController.h" | |
99 #include "MmiDummy.h" | |
100 #include "MmiDialogs.h" | |
101 #include "MmiLists.h" | |
102 | |
103 | |
104 | |
105 #include "MmiMenu.h" | |
106 #include "mmiCall.h" | |
107 #include "Mmiicons.h" | |
108 #include "MmiIdle.h" | |
109 | |
110 #include "MmiSoftKeys.h" | |
111 #include "MmiSounds.h" | |
112 #include "MmiIdle.h" | |
113 #include "MmiNetwork.h" | |
114 #include "mmiSat_i.h" | |
115 #include "MmiAoc.h" | |
116 | |
117 #include "gdi.h" | |
118 #include "audio.h" | |
119 | |
120 #include "cus_aci.h" | |
121 #include "mfw_ffs.h" | |
122 #include "MmiTimers.h" | |
123 | |
124 #include "MmiBookShared.h" | |
125 #ifdef EASY_TEXT_ENABLED | |
126 #include "MmiChineseInput.h" | |
127 #endif | |
128 | |
129 #include "mmiColours.h" | |
130 /* SPR#1428 - SH - New Editor | |
131 * This file is obsolete with new editor and should not be compiled */ | |
132 #ifndef NEW_EDITOR | |
133 | |
134 #define NAME 0 | |
135 #define NUMBER 1 | |
136 | |
137 static int DoNextLongPress = FALSE; | |
138 static UBYTE UPPER_CASE = TRUE; | |
139 static UBYTE MODE; | |
140 extern int upCase; | |
141 | |
142 | |
143 /******************************************************************************* | |
144 | |
145 Private Methods | |
146 | |
147 *******************************************************************************/ | |
148 | |
149 /******************************************************************************* | |
150 | |
151 $Function: bookInputDialog | |
152 | |
153 $Description: Dialog function for the input window | |
154 | |
155 $Returns: None | |
156 | |
157 $Arguments: win, window handle | |
158 event, event to be handled | |
159 value, not used | |
160 parameter, not used | |
161 | |
162 *******************************************************************************/ | |
163 | |
164 static void bookInputDialog( T_MFW_HND win, USHORT event, SHORT value, void *parameter ) | |
165 { | |
166 T_MFW_WIN *win_data = ((T_MFW_HDR *) win)->data; | |
167 tBookStandard *data = (tBookStandard *) win_data->user; | |
168 tInputSpecifics *properties = (tInputSpecifics *) parameter; | |
169 | |
170 TRACE_FUNCTION ("bookInputDialog()"); | |
171 | |
172 /* Handle the input event, ew only deal with initialise and | |
173 destroy of the window in here | |
174 */ | |
175 switch( event ) | |
176 { | |
177 case INPUT_INIT: | |
178 { | |
179 /* Initialise the input window | |
180 */ | |
181 data->properties.abc = properties->abc; | |
182 data->properties.text = properties->text; | |
183 data->properties.edt_attr_input = properties->edt_attr_input; | |
184 data->properties.left_soft_key = properties->left_soft_key; | |
185 data->properties.right_soft_key = properties->right_soft_key; | |
186 data->properties.callback = properties->callback; | |
187 data->edt = edtCreate( data->win, data->properties.edt_attr_input, 0, 0 ); | |
188 | |
189 /* activate our editor, stopping any others before doing so | |
190 */ | |
191 editDeactivate(); | |
192 editActivate( data->edt, properties->abc ); | |
193 edtChar( data->edt, ecBottom ); | |
194 | |
195 /* show the window | |
196 */ | |
197 winShow( data->win ); | |
198 } | |
199 break; | |
200 | |
201 case INPUT_DESTROY: | |
202 { | |
203 /* destroy the input window | |
204 */ | |
205 bookInputDestroy( win ); | |
206 } | |
207 break; | |
208 } | |
209 } | |
210 | |
211 | |
212 | |
213 | |
214 | |
215 | |
216 /******************************************************************************* | |
217 | |
218 $Function: bookInputWindowCB | |
219 | |
220 $Description: Window event handler | |
221 | |
222 $Returns: MFW_CONSUMED for the visible event, MFW_PASSED otherwise | |
223 | |
224 $Arguments: e, event, w, window handle | |
225 | |
226 *******************************************************************************/ | |
227 | |
228 static int bookInputWindowCB( MfwEvt e, MfwWin *w ) | |
229 { | |
230 tBookStandard *data = (tBookStandard *) w->user; | |
231 | |
232 TRACE_FUNCTION ("bookInputWindowCB()"); | |
233 | |
234 /* Handle the visible event, otherwise return MFW_EVENT_PASSED | |
235 */ | |
236 switch( e ) | |
237 { | |
238 case MfwWinVisible: | |
239 { | |
240 /* Window visible | |
241 */ | |
242 MmiBookShowDefault(); | |
243 edtShow( data->edt ); | |
244 PROMPT( MmiBookMenuArea().px, MmiBookMenuArea().py, 0, data->properties.text ); | |
245 softKeys_displayId(data->properties.left_soft_key, data->properties.right_soft_key, 0, COLOUR_LIST_SUBMENU); | |
246 } | |
247 break; | |
248 | |
249 default: | |
250 { | |
251 /* unabel to handle event, pass handling of event back up tree | |
252 */ | |
253 return MFW_EVENT_PASSED; | |
254 } | |
255 } | |
256 | |
257 /* if we get here, we have handled the event | |
258 */ | |
259 return MFW_EVENT_CONSUMED; | |
260 } | |
261 | |
262 | |
263 | |
264 | |
265 | |
266 | |
267 /******************************************************************************* | |
268 | |
269 $Function: bookInputKbdCB | |
270 | |
271 $Description: Input window keyboard handler | |
272 | |
273 $Returns: MFW_EVENT_CONSUMED always, this will pass LEFT, RIGHT and CLEAR | |
274 events back to the calling window using the installed callback | |
275 method | |
276 | |
277 $Arguments: e, event, k, key handle | |
278 | |
279 *******************************************************************************/ | |
280 | |
281 static int bookInputKbdCB( MfwEvt e, MfwKbd *k ) | |
282 { | |
283 T_MFW_HND win = mfwParent( mfw_header() ); | |
284 T_MFW_WIN *win_data = ((T_MFW_HDR *) win)->data; | |
285 tBookStandard *data = (tBookStandard *) win_data->user; | |
286 | |
287 TRACE_FUNCTION ("bookInputKbdCB()"); | |
288 | |
289 /* make sure the active editor is ours | |
290 */ | |
291 if ( activeEditor() != data->edt ) | |
292 editActivate( data->edt, data->properties.abc ); | |
293 | |
294 /* Handle the key press | |
295 */ | |
296 switch (k->code) | |
297 { | |
298 case KCD_MNUUP: | |
299 { | |
300 /* move right | |
301 */ | |
302 edtChar( data->edt, ecRight ); | |
303 } | |
304 break; | |
305 | |
306 case KCD_MNUDOWN: | |
307 { | |
308 /* move left | |
309 */ | |
310 edtChar( data->edt, ecLeft ); | |
311 } | |
312 break; | |
313 | |
314 case KCD_MNUSELECT: | |
315 case KCD_LEFT: | |
316 { | |
317 /* select the entry using the parent window callback | |
318 */ | |
319 data->properties.callback( data->parent_win, INPUT_LEFT ); | |
320 | |
321 } | |
322 break; | |
323 | |
324 case KCD_HUP: | |
325 { | |
326 /* get edit control block | |
327 */ | |
328 MfwEdt *edt = ( (MfwHdr *) data->edt )->data; | |
329 | |
330 data->properties.callback( data->parent_win, INPUT_CLEAR ); | |
331 } | |
332 break; | |
333 | |
334 case KCD_RIGHT: | |
335 { | |
336 MfwEdt *edt = ( (MfwHdr *) data->edt )->data; | |
337 /* select the entry using the parent windows callback | |
338 */ | |
339 //If we have any data input, delete the char before cursor | |
340 if ( edt->attr->text[0] ) | |
341 edtChar( data->edt, ecBack ); | |
342 else | |
343 { | |
344 data->properties.callback( data->parent_win, INPUT_RIGHT ); | |
345 displaySoftKeys_edition (TxtNull, TxtNull ,TxtNull); | |
346 MODE = NUMBER; | |
347 } | |
348 | |
349 } | |
350 break; | |
351 | |
352 case KCD_HASH: | |
353 { | |
354 /* deal with hash key | |
355 */ | |
356 edtChar( data->edt, '#' ); | |
357 } | |
358 break; | |
359 | |
360 case KCD_STAR: | |
361 { | |
362 /* deal with star key | |
363 */ | |
364 edtChar( data->edt, '*' ); | |
365 } | |
366 break; | |
367 | |
368 default: | |
369 { | |
370 /* default handling for the key being pressed | |
371 */ | |
372 | |
373 /*NM, p015a */ | |
374 /* it is better to use these two function for different mode*/ | |
375 if (data->properties.abc EQ TRUE) | |
376 editEventKey(e, k); /* alpha-mode*/ | |
377 else | |
378 edtChar(data->edt ,editControls[k->code]); /*digit -mode*/ | |
379 | |
380 edtShow(data->edt); | |
381 /*p015a end */ | |
382 | |
383 } | |
384 break; | |
385 } | |
386 | |
387 /* always consume the event | |
388 */ | |
389 return MFW_EVENT_CONSUMED; | |
390 } | |
391 | |
392 | |
393 | |
394 | |
395 | |
396 | |
397 /******************************************************************************* | |
398 | |
399 $Function: bookInputKbdLongCB | |
400 | |
401 $Description: Keyboard long event handler | |
402 | |
403 $Returns: MFW_EVENT_CONSUMED always | |
404 | |
405 $Arguments: e, event, k, key handle | |
406 | |
407 *******************************************************************************/ | |
408 | |
409 static int bookInputKbdLongCB( MfwEvt e, MfwKbd *k ) | |
410 { | |
411 T_MFW_HND win = mfwParent( mfw_header() ); | |
412 T_MFW_WIN *win_data = ((T_MFW_HDR *) win)->data; | |
413 tBookStandard *data = (tBookStandard *) win_data->user; | |
414 | |
415 TRACE_FUNCTION ("bookInputKbdLongCB()"); | |
416 | |
417 | |
418 /* subpress unwanted longpresses (mfw throws more than one long press event for one long press on a key)*/ | |
419 if ( e & KEY_LONG ) | |
420 { | |
421 if ( DoNextLongPress EQ FALSE ) | |
422 DoNextLongPress = TRUE; | |
423 else | |
424 DoNextLongPress = FALSE; | |
425 } | |
426 if ( !DoNextLongPress ) | |
427 return MFW_EVENT_CONSUMED; /* don't do current long press */ | |
428 | |
429 | |
430 | |
431 /* Handling the long keypress events needs to deal with a | |
432 number of characters in the input window, not just the | |
433 normal clear event | |
434 */ | |
435 | |
436 /* if the event is long key clear and the buffer is not empty then | |
437 clear the buffer. Otherwise if the buffer is empty then destroy | |
438 the input editor | |
439 */ | |
440 | |
441 switch(k->code) | |
442 { | |
443 case KCD_HUP: | |
444 { | |
445 MfwEdt *edt; | |
446 | |
447 /* get edit control block | |
448 */ | |
449 edt = ((MfwHdr *) data->edt)->data; | |
450 | |
451 /* if buffer empty then kill the editor window, otherwise clear the buffer | |
452 */ | |
453 if ( edt->attr->text[0] ) | |
454 { | |
455 char *c_ptr = data->properties.edt_attr_input->text; | |
456 memset( c_ptr, '\0', strlen( c_ptr ) ); | |
457 edtReset( data->edt ); | |
458 edtShow( data->edt ); | |
459 } | |
460 else | |
461 bookInputDestroy( data->win ); | |
462 } | |
463 break; | |
464 | |
465 case KCD_HASH: | |
466 edtChar( data->edt, ecBack ); | |
467 edtChar( data->edt, 'p' ); | |
468 break; | |
469 | |
470 case KCD_0: | |
471 edtChar( data->edt, ecBack ); | |
472 edtChar( data->edt, '+' ); | |
473 break; | |
474 | |
475 | |
476 default: | |
477 if (MODE EQ NAME) | |
478 { | |
479 | |
480 if (UPPER_CASE EQ FALSE) | |
481 { | |
482 TRACE_EVENT("UPPER_CASE EQ FALSE"); | |
483 UPPER_CASE = TRUE; | |
484 upCase = FALSE; | |
485 displaySoftKeys_edition (TxtLowercase, TxtNull ,TxtNull); | |
486 | |
487 } | |
488 else | |
489 { | |
490 TRACE_EVENT("UPPER_CASE EQ TRUE"); | |
491 UPPER_CASE = FALSE; | |
492 upCase = TRUE; | |
493 displaySoftKeys_edition (TxtUppercase, TxtNull ,TxtNull); | |
494 } | |
495 edtChar(data->edt, ecBack); | |
496 } | |
497 break; | |
498 | |
499 } | |
500 | |
501 /* always handle the event | |
502 */ | |
503 return MFW_EVENT_CONSUMED; | |
504 } | |
505 | |
506 | |
507 | |
508 | |
509 | |
510 /******************************************************************************* | |
511 | |
512 $Function: bookInputCreate | |
513 | |
514 $Description: Create the input window and asociate it's handlers | |
515 | |
516 $Returns: handle of new window, or NULL if failure | |
517 | |
518 $Arguments: parent, handle of the parent window | |
519 | |
520 *******************************************************************************/ | |
521 | |
522 static T_MFW_HND bookInputCreate( MfwHnd parent ) | |
523 { | |
524 T_MFW_WIN *parent_win_data = ( (T_MFW_HDR *) parent )->data; | |
525 tBookStandard *parent_data = (tBookStandard *) parent_win_data->user; | |
526 T_phbk *phbk = parent_data->phbk; | |
527 T_MFW_WIN *win_data; | |
528 tBookStandard *data; | |
529 | |
530 TRACE_FUNCTION ("bookInputCreate()"); | |
531 | |
532 /* allocate memory for our control block | |
533 */ | |
534 if ( ( data = (tBookStandard *) ALLOC_MEMORY( sizeof( tBookStandard ) ) ) == NULL ) | |
535 return NULL; | |
536 | |
537 /* Create the window if we can | |
538 */ | |
539 if ( ( data->win = win_create( parent, 0, E_WIN_VISIBLE, (T_MFW_CB) bookInputWindowCB ) ) == NULL ) | |
540 { | |
541 FREE_MEMORY( (void *)data, sizeof( tBookStandard ) ); | |
542 return NULL; | |
543 } | |
544 | |
545 /* Okay, we have created the control block and the window, so | |
546 we now need to configure the dialog and data pointers | |
547 */ | |
548 data->mmi_control.dialog = (T_DIALOG_FUNC) bookInputDialog; | |
549 data->mmi_control.data = data; | |
550 win_data = ((T_MFW_HDR *)data->win)->data; | |
551 win_data->user = (void *) data; | |
552 data->phbk = phbk; | |
553 data->parent_win = parent; | |
554 | |
555 /* create keyboards and menus for our window | |
556 */ | |
557 data->kbd = kbdCreate( data->win, KEY_ALL, (MfwCb) bookInputKbdCB ); | |
558 data->kbd_long = kbdCreate( data->win, KEY_ALL | KEY_LONG, (MfwCb) bookInputKbdLongCB ); | |
559 | |
560 /* And return the handle of the newly created window | |
561 */ | |
562 return data->win; | |
563 } | |
564 | |
565 | |
566 | |
567 | |
568 | |
569 /******************************************************************************* | |
570 | |
571 Public Methods | |
572 | |
573 *******************************************************************************/ | |
574 | |
575 /******************************************************************************* | |
576 | |
577 $Function: bookInputStart | |
578 | |
579 $Description: Start the input handler | |
580 | |
581 $Returns: Handle of newly created window, or NULL if failure | |
582 | |
583 $Arguments: parent, parent window handle, properties, input window property | |
584 control block. | |
585 | |
586 *******************************************************************************/ | |
587 | |
588 MfwHnd bookInputStart( MfwHnd parent,tInputSpecifics *properties ) | |
589 { | |
590 T_MFW_HND win; | |
591 | |
592 TRACE_FUNCTION ("bookInputStart()"); | |
593 | |
594 /* allocate window, and if successful initialise it | |
595 */ | |
596 if ( ( win = bookInputCreate( parent ) ) != NULL ) | |
597 SEND_EVENT( win, INPUT_INIT, 0, properties ); | |
598 return win; | |
599 } | |
600 | |
601 | |
602 /******************************************************************************* | |
603 | |
604 $Function: bookInputStartNumberEditor | |
605 | |
606 $Description: Start the input handler using default properties | |
607 | |
608 $Returns: Handle of newly created window, or NULL if failure | |
609 | |
610 $Arguments: parent, parent window handle, buffer, input buffer | |
611 | |
612 *******************************************************************************/ | |
613 | |
614 MfwHnd bookInputStartNumberEditor( MfwHnd parent, void *buffer ) | |
615 { | |
616 T_MFW_HND win = parent; | |
617 T_MFW_WIN *win_data = ( (T_MFW_HDR *) win )->data; | |
618 tBookStandard *data = (tBookStandard *) win_data->user; | |
619 T_phbk *Phbk = data->phbk; | |
620 tInputSpecifics DefaultParameters; | |
621 | |
622 TRACE_FUNCTION ("bookInputStartNumberEditor()"); | |
623 MODE = NUMBER; | |
624 | |
625 /* Set up the default parameters for the input window | |
626 */ | |
627 bookSetEditAttributes( NUMBER_EDITOR, COLOUR_EDITOR_XX, 0, edtCurBar1, 0, | |
628 (char *) buffer, NUMBER_LENGTH, &Phbk->edt_attr_number ); | |
629 | |
630 DefaultParameters.abc = FALSE; | |
631 DefaultParameters.text = TxtEnterNumber; | |
632 DefaultParameters.edt_attr_input = &Phbk->edt_attr_number; | |
633 DefaultParameters.left_soft_key = TxtSoftOK; | |
634 DefaultParameters.right_soft_key = TxtDelete;//Changed text | |
635 // dunno if that changes softkey functionality | |
636 DefaultParameters.callback = bookAddNumberCB; | |
637 | |
638 /* allocate window, and if successful initialise it | |
639 */ | |
640 return bookInputStart( parent, &DefaultParameters ); | |
641 } | |
642 | |
643 | |
644 | |
645 /******************************************************************************* | |
646 | |
647 $Function: bookInputStartNameEditor | |
648 | |
649 $Description: Start the input handler using default properties | |
650 | |
651 $Returns: Handle of newly created window, or NULL if failure | |
652 | |
653 $Arguments: parent, parent window handle, buffer, input buffer | |
654 | |
655 *******************************************************************************/ | |
656 | |
657 MfwHnd bookInputStartNameEditor( MfwHnd parent, void *buffer ) | |
658 { | |
659 T_MFW_WIN *win_data = ( (T_MFW_HDR *) parent )->data; | |
660 tBookStandard *data = (tBookStandard *) win_data->user; | |
661 T_phbk *Phbk = data->phbk; | |
662 | |
663 tInputSpecifics DefaultParameters; | |
664 | |
665 MODE = NAME; | |
666 | |
667 TRACE_FUNCTION ("bookInputStartNameEditor()"); | |
668 | |
669 /* Set up the default parameters for the input window */ | |
670 | |
671 /*MC 1957, name strings should use MAX_ALPHA_LEN*/ | |
672 bookSetEditAttributes( NUMBER_EDITOR, COLOUR_EDITOR_XX, 0, edtCurBar1, 0, | |
673 (char *) buffer, MAX_ALPHA_LEN, &Phbk->edt_attr_name ); | |
674 | |
675 /*SPR 1434*/ | |
676 | |
677 /*SPR 1526, changed #ifdef to #if*/ | |
678 #if defined(CHINESE_MMI) && defined(EASY_TEXT_ENABLED) | |
679 /*MC, the chinese editor MUST have a unicode string as input*/ | |
680 /*MC , SPR 1242 merged in from b-sample build*/ | |
681 if (Mmi_getCurrentLanguage() == CHINESE_LANGUAGE) | |
682 { T_CHINESE_DATA chinese_data; | |
683 chinese_data.TextString = (char*) Phbk->edt_buf_name; | |
684 if (chinese_data.TextString[0]== 0)//if, empty string | |
685 { chinese_data.TextString[0] = 0x80;//give string Unicode tag | |
686 chinese_data.TextString[1] = 0x7F; | |
687 } | |
688 else | |
689 { char l_name[MAX_ALPHA_LEN]; | |
690 int ascii_len = strlen(chinese_data.TextString); | |
691 int i; | |
692 if (chinese_data.TextString[0]!= 0x80)/*If ASCII string*/ | |
693 { memset(l_name, '\0', MAX_ALPHA_LEN); | |
694 l_name[0] = 0x80;//give Unicode tag | |
695 l_name[1] = 0x7F; | |
696 /*convert ascii string to unicode*/ | |
697 { for (i =0; i < (ascii_len); i++) | |
698 { if ((2+2*i+1)>=MAX_ALPHA_LEN) | |
699 break; | |
700 l_name[2+2*i] = 0x00; | |
701 l_name[2+2*i+1] = chinese_data.TextString[i]; | |
702 } | |
703 if ((2+2*i+1)<=MAX_ALPHA_LEN) | |
704 { l_name[2+2*i] = 0x00; //double null termination | |
705 l_name[2+2*i+1] = 0x00; | |
706 } | |
707 } | |
708 memcpy(chinese_data.TextString, l_name, MAX_ALPHA_LEN); | |
709 } | |
710 } | |
711 /*MC end*/ | |
712 | |
713 chinese_data.Callback = (T_EDIT_CB)bookAddNameCB; | |
714 chinese_data.Identifier = INPUT_LEFT ; | |
715 chinese_data.LeftSoftKey = TxtSave; | |
716 chinese_data.DestroyEditor = TRUE; | |
717 chinese_data.EditorSize = (USHORT)((MAX_ALPHA_LEN-4)/2);//i.e.8 | |
718 return chinese_input(parent, &chinese_data); | |
719 } | |
720 else | |
721 #endif | |
722 { | |
723 DefaultParameters.abc = TRUE; | |
724 DefaultParameters.text = TxtEnterName; | |
725 DefaultParameters.edt_attr_input = &Phbk->edt_attr_name; | |
726 DefaultParameters.left_soft_key = TxtSoftOK; | |
727 DefaultParameters.right_soft_key = TxtDelete;//Changed text - MC | |
728 DefaultParameters.callback = bookAddNameCB; | |
729 | |
730 /* allocate window, and if successful initialise it | |
731 */ | |
732 return bookInputStart( parent, &DefaultParameters ); | |
733 } | |
734 } | |
735 | |
736 | |
737 | |
738 /******************************************************************************* | |
739 | |
740 $Function: bookInputDestroy | |
741 | |
742 $Description: Destroy Input Window | |
743 | |
744 $Returns: None | |
745 | |
746 $Arguments: Handle of window to be destroyed | |
747 | |
748 *******************************************************************************/ | |
749 | |
750 void bookInputDestroy( MfwHnd window ) | |
751 { | |
752 T_MFW_WIN *win = ((T_MFW_HDR *) window)->data; | |
753 tBookStandard *data = (tBookStandard *) win->user; | |
754 | |
755 TRACE_FUNCTION ("bookInputDestroy()"); | |
756 | |
757 if (data) | |
758 { | |
759 editDeactivate(); | |
760 | |
761 winDelete ( data->win ); | |
762 FREE_MEMORY( (void *) data, sizeof( tBookStandard ) ); | |
763 } | |
764 } | |
765 | |
766 #endif /* NEW_EDITOR */ | |
767 | |
768 /******************************************************************************* | |
769 | |
770 End of File | |
771 | |
772 *******************************************************************************/ |