diff g23m/condat/ms/src/bmi/MmiEditor.h @ 0:509db1a7b7b8

initial import: leo2moko-r1
author Space Falcon <falcon@ivan.Harhan.ORG>
date Mon, 01 Jun 2015 03:24:05 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/g23m/condat/ms/src/bmi/MmiEditor.h	Mon Jun 01 03:24:05 2015 +0000
@@ -0,0 +1,203 @@
+#ifndef _DEF_MMI_EDITOR_H_
+#define _DEF_MMI_EDITOR_H_
+
+/*******************************************************************************
+
+          CONDAT (UK)
+
+********************************************************************************
+
+ This software product is the property of Condat (UK) Ltd and may not be
+ disclosed to any third party without the express permission of the owner.
+
+********************************************************************************
+
+ $Project name: Basic MMI
+ $Project code: BMI (6349)
+ $Module:   MMI
+ $File:       MmiEditor.h
+ $Revision:   1.0
+
+ $Author:   Condat(UK)
+ $Date:       25/10/00
+
+********************************************************************************
+
+ Description:
+
+    This provides the root mofule for the basic MMI
+
+********************************************************************************
+ $History: MmiMmi.h
+
+  25/10/00      Original Condat(UK) BMI version.
+
+ $End
+
+*******************************************************************************/
+
+
+
+
+/*******************************************************************************
+
+                    Type definitions
+
+*******************************************************************************/
+/*
+ * Definitions from common editor function
+ */
+#define INFO_TIMEOUT      1
+#define INFO_KCD_LEFT     2
+#define INFO_KCD_RIGHT      3
+#define INFO_KCD_HUP      4
+#define INFO_KCD_UP       5
+#define INFO_KCD_DOWN     6
+#define INFO_KCD_0_9      7
+#define INFO_KCD_ALTERNATELEFT  8
+#define INFO_EMERGENCY      99
+
+#define DIGITS_MODE     0
+#define ALPHA_MODE      1
+#define READ_ONLY_MODE  2
+#define T9_MODE         3
+#define CALC_MODE   4
+#define PIN_SECURITY    5
+#define FORMAT_MODE		6				// SH - formatted input mode for WAP
+
+#define PROMPT_LENGTH  16
+
+#ifndef FOREVER
+#define TIMER_EXIT  0x0BB8             /* Default SMS timer period - 3 secs.  */
+#define SHORT_SECS  0x01F4                              /* Information dialogue display times. */
+#define THREE_SECS  0x0BB8             /* 3000 milliseconds.                  */
+#define FIVE_SECS   0x1388             /* 5000 milliseconds.                  */
+#define TEN_SECS    0x2710             /* 10000 milliseconds.                 */
+#define TWO_MIN     0x1D4C0            /* 2 min                               */
+#define FOREVER     0xFFFF             /* Infinite time period.               */
+#endif /* FOREVER */
+
+/*
+ *  Parameter Decription:
+ *    ----------------
+ *    mode                 -> sets mode to digits or alpha;
+ *                            (ALPHA_MODE | DIGITS_MODE | READ_ONLY_MODE | T9_MODE)
+ *    Callback             -> Routine to be called, if the user presses left- or right- or clear-key or a timeout occurs
+ *                            (parameter = INFO_KCD_LEFT, INFO_KCD_ALTERNATELEFT, INFO_KCD_RIGHT, INFO_KCD_HUP,
+ *                                         INFO_TIMEOUT)
+ *    timeout              -> after this timeout the Callback will be executed
+ *                            (optional, set to FOREVER if unused)
+ *                            (timeout is refreshed on every key-press)
+ *    Identifier           -> passed back to the creator as a parameter of Callback (optional)
+ *    hide                 -> hide the entered string (currently not supported),
+ *    TextId               -> If you want to use a label...
+ *                            (optional, set to 0 if unused)
+ *    TextString           -> if no TextId is provided this will be used as alternative label
+ *                            (optional, set to NULL if unused)
+ *    min_enter            -> minimum number of chars to be entered in buffer,
+ *                            min_enter= 0x00                 means no min. limit
+ *                            min_enter = editor_attr.size-1  means fixed lenght
+ *    LeftSoftKey          -> SoftKey to be shown if number of entered chars >= min_enter
+ *    AlternateLeftSoftKey -> SoftKey to be shown if number of entered chars < min_enter
+ *    RightSoftKey         -> SoftKey to be shown unconditionally
+ *                            (in order to hide/disable a Softkey set it to TxtNull)
+ * NOTE: The buffer to be edited shall provide sufficient space to hold the terminating zero character.
+ * NOTE: We assume that the buffer to be edited is provided by the caller and valid throughout the lifetime of the editor.
+ *       Thus we do NOT copy the buffer into local temporary space.
+ * NOTE: If digits-mode and hide are concurrently enabled, entering of '+' is not possible
+ * NOTE: In read-only mode the cursor is set to the top of the buffer and all normal keys are ignored.
+ *       However Softkeys and long-clear are functional.
+ * NOTE: There's an exception from the normal behaviour if (mode == DIGITS) and (size == 2).
+ *       In this case called "single digit key request" the editor is left immediately on any normal key
+ *       by calling <Callback> with parameter INFO_KCD_LEFT.
+ */
+
+/*
+ * External types
+ */
+
+typedef enum
+{
+    E_EDITOR_INIT,
+    E_EDITOR_DEINIT,
+    E_EDITOR_UPDATE,
+    E_EDITOR_CURSOR_END /*SPR 1392*/
+} e_editor_events;
+
+
+typedef void (*T_EDIT_CB) (T_MFW_HND, USHORT, USHORT);
+
+typedef struct
+{
+    T_MFW_EDT_ATTR  editor_attr;
+    BOOL            hide;
+    USHORT          LeftSoftKey;
+    USHORT          AlternateLeftSoftKey;
+    USHORT          RightSoftKey;
+    USHORT          Identifier;
+    UBYTE           mode;
+    USHORT          TextId;
+    char           *TextString;
+    UBYTE           min_enter;
+    ULONG           timeout;
+    T_EDIT_CB       Callback;
+    UBYTE     destroyEditor;
+    char			*FormatString;		// SH - Formatting string for formatted input
+    int				formatIndex;		// SH - Position in formatting string
+    int				fieldIndex;			// SH - position within a delimited field
+} T_EDITOR_DATA;
+
+//Zone data for drawing windows
+#define ZONE_FULL_HEIGHT				0x000F
+#define ZONE_TOPHALF_HEIGHT				0x000C
+#define ZONE_MIDDLE_HEIGHT				0x0006
+#define ZONE_BOTTOMHALF_HEIGHT			0x0003
+#define ZONE_FULL_WIDTH					0x00F0
+#define ZONE_LEFTHALF_WIDTH				0x00C0
+#define ZONE_MIDDLE_WIDTH				0x0060
+#define ZONE_RIGHTHALF_WIDTH			0x0030
+
+#define ZONE_ICONS						0x0100
+#define ZONE_TITLE						0x0200
+#define ZONE_CASE_ABC					0x0400
+#define ZONE_SOFTKEYS					0x1000
+
+#define ZONE_FULLSCREEN					(ZONE_FULL_HEIGHT | ZONE_FULL_WIDTH)
+#define ZONE_FULLICONS					(ZONE_ICONS|ZONE_FULL_HEIGHT | ZONE_FULL_WIDTH)
+#define ZONE_FULLTITLE					(ZONE_TITLE|ZONE_FULL_HEIGHT | ZONE_FULL_WIDTH)
+#define ZONE_FULLSOFTKEYS				(ZONE_SOFTKEYS|ZONE_FULL_HEIGHT | ZONE_FULL_WIDTH)
+
+#define ZONE_FULL_SK_TITLE				(ZONE_TITLE|ZONE_SOFTKEYS|ZONE_FULL_HEIGHT | ZONE_FULL_WIDTH)
+#define ZONE_FULL_SK_TITLE_ALPHA		(ZONE_TITLE|ZONE_SOFTKEYS|ZONE_FULL_HEIGHT | ZONE_FULL_WIDTH | ZONE_CASE_ABC)
+#define ZONE_WAP_EDITOR					(ZONE_TITLE|ZONE_SOFTKEYS|ZONE_FULL_HEIGHT | ZONE_FULL_WIDTH)
+
+//Specific editor sizes
+#define ZONE_SMALL_EDITOR				(0xFF00)	/* editor for small (one line) editors */
+#define ZONE_BORDER_EDITOR 				(0xFE00)    /* editors with a border to the left/right - sim toolkit */
+#define ZONE_BOTTOM_LINE	 			(0xFD00)    /* editors for the bottom line */
+#define ZONE_BOTTOM_LINE_FIND 			(0xFC00)    /* editors on the bottom line after "Find:" */
+
+
+/* PROTOTYPES */
+extern T_MFW_HND editor_start (T_MFW_HND parent, T_EDITOR_DATA * editor_data);
+
+extern T_MFW_HND editor_start_common(T_MFW_HND win, char * buffer, U16 len,
+                                     T_EDITOR_DATA * editor_info, T_EDIT_CB editor_cb);
+
+
+int showeZiTextIcon(MfwMnu* m, MfwMnuItem* i);
+
+ int Easy_Activate(MfwMnu* m, MfwMnuItem* i);
+
+ int Easy_DeActivate(MfwMnu* m, MfwMnuItem* i);
+
+ //API - 01/10/02 - Concatenation Switch Function Definition
+ int Concatenate_DeActivate(MfwMnu* m, MfwMnuItem* i);
+ int Concatenate_Activate(MfwMnu* m, MfwMnuItem* i);
+ int Concatenate_Status(MfwMnu* m, MfwMnuItem* i);
+
+extern void editor_destroy (T_MFW_HND window);
+extern void editor_attr_init(MfwEdtAttr* attr, int zone_id, U8 mode, U8 *controls, char *text, U16 size, int colour);
+extern void editor_data_init( T_EDITOR_DATA* editor_info, T_EDIT_CB callback,USHORT lsk, USHORT rsk, USHORT txtId, USHORT min_num_char, UBYTE mode, ULONG timeout);
+
+#endif /* _DEF_MMI_EDITOR */