diff src/ui/atb/ATBEditor.h @ 3:67bfe9f274f6

src/ui: import of src/ui3 from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 16 Oct 2020 06:33:10 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ui/atb/ATBEditor.h	Fri Oct 16 06:33:10 2020 +0000
@@ -0,0 +1,381 @@
+/*******************************************************************************
+
+					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:	                                                      
+ $Project code:	                                                           
+ $Module:		
+ $File:		    ATBEditor.h
+ $Revision:		                                                      
+                                                                              
+ $Author:		Condat(UK)                                                         
+ $Date:		                                                          
+                                                                               
+********************************************************************************
+                                                                              
+ Description:  Header file for ATB Editor component.
+
+ REQUIRES: ATBCommon.h, ATBDisplay.h
+                        
+********************************************************************************
+
+ $History: ATBEditor.h
+       Feb 02, 2006 DR: OMAPS00061468 - x0035544.
+       Description: SAT 27.22.4.22.2 SET UP IDLE MODE TEXT (Icon support) fails 
+       Solution:Enum is defined to support mode of SAT info display 
+       
+	Jan 16, 2006 DR: OMAPS00061460 - Shashi Shekar B.S.
+	Description: SAT Icon support
+	Solution : Structure definition displaying title icon through editor.
+  
+ $End
+
+*******************************************************************************/
+
+
+#ifndef ATB_EDITOR_H
+#define ATB_EDITOR_H
+
+#ifndef DSPL_H
+#include "dspl.h"
+#endif
+
+/**********************************************
+ * CONSTANTS
+ *
+ *********************************************/
+
+enum
+{
+	ED_CURSOR_NONE,			            /* No cursor, read only */
+	ED_CURSOR_BAR,			           /* Vertical bar thin */
+	ED_CURSOR_UNDERLINE,				/* Underline-style cursor */
+	ED_CURSOR_BLOCK						/* Highlights current character */
+};
+
+enum
+{
+	ED_MODE_ALPHA			= 0x01,				/* Alphanumeric Multi-tap mode */
+	ED_MODE_OVERWRITE		= 0x02,				/* Overwrite mode */
+	ED_MODE_PREDTEXT		= 0x04,				/* Predictive text mode */
+	ED_MODE_FORMATTED		= 0x08,				/* Formatted input mode for WAP */
+	ED_MODE_HIDDEN			= 0x10,				/* Hidden mode - *'s appear in place */
+	ED_MODE_READONLY		= 0x20,				/* Read only mode */
+	ED_MODE_ALL				= 0xFFFF			/* Allows switching off of all modes */
+};
+
+/* Editor visibility */
+
+enum
+{
+	ED_INVISIBLE			= 0,				/* Editor is not displayed */
+	ED_VISIBLE				= 1					/* Editor is displayed */
+};
+
+/* Editor updates */
+
+#define ED_UPDATE_DEFAULT		0				/* Update everything by default */
+#define ED_UPDATE_TRIVIAL		1				/* Trivial change - no scrolling or reformatting req.*/
+#define ED_UPDATE_PARTIAL		2				/* Partial change */
+#define ED_UPDATE_FULL			3				/* Full update required */
+
+
+/**********************************************
+ * ED_RES
+ *
+ * Result of editor functions
+ *********************************************/
+ 
+typedef enum
+{
+	ED_OK,
+	ED_BAD_HANDLE,
+	ED_ERROR,
+	ED_DONE
+}
+ED_RES;
+
+
+/**********************************************
+ * T_ED_CB
+ *
+ * Callback type
+ *********************************************/
+ 
+typedef int (*T_ED_CB) (ULONG, void*);
+
+
+/**********************************************
+ * EDITOR CONTROL CHARACTERS
+ *
+ *********************************************/
+ 
+typedef enum                           
+{
+    ctrlNone = 0,							/* no valid edit control */
+    ctrlLeft,							/* cursor left */
+    ctrlRight,							/* cursor right */
+    ctrlUp,								/* cursor up */
+    ctrlDown,							/* cursor down */
+    ctrlTop,							/* cursor to top of text */
+    ctrlBottom,							/* cursor to end of text */
+    ctrlBack,							/* backspace */
+    ctrlDel,							/* delete */
+    ctrlEnter,							/* return key */
+    ctrlEscape,							/* escape key */
+    ctrlMax								/* Highest control character */
+} T_ED_CONTROLS;
+
+
+/* This type indicates whether or not the cursor is within a fixed field */
+
+enum
+{
+	ENTRY_NOT_IN_FIELD = 0,
+	ENTRY_ENTERING_FIELD,
+	ENTRY_IN_FIELD
+};
+
+
+/* Output types for ATB_edit_FindPrev() */
+
+enum
+{
+	FINDPREV_NO_CHANGE,
+	FINDPREV_PREV_FOUND,
+	FINDPREV_FIRST_CHAR,
+	FINDPREV_LAST_CHAR
+};
+
+//Sudha.V., x0035544, Feb 02, 2006 DR: OMAPS00061468
+#ifdef FF_MMI_SAT_ICON
+typedef enum
+{
+	SAT_ICON_NONE = -1,
+	SAT_ICON_DISPLAY_TEXT,
+	SAT_ICON_IDLEMODE_TEXT
+} T_DISPLAY_TYPE;
+
+
+// Shashi Shekar B.S., a0876501, 16-Jan-2006, OMAPS00061460
+/* T_ATB_EDITOR_TITLE_ICON */
+
+typedef struct
+{
+	UBYTE		width;
+	UBYTE		height;
+	char*		data;
+	BOOL		isTitle;
+	T_DISPLAY_TYPE display_type;
+	BOOL 		selfExplanatory;
+
+} T_ATB_EDITOR_TITLE_ICON;
+#endif
+
+/**********************************************
+ * T_ED_ATTR
+ *
+ * Editor attributes, provided by user
+ *********************************************/
+
+typedef struct
+{
+    T_ATB_WIN_SIZE	win_size;				/* Editor position and size */
+    ULONG			colour;					/* Foreground and background colour */
+    UBYTE			font;					/* Character font */
+    USHORT			cursor;					/* cursor type */
+    USHORT			mode;					/* Edit Mode */
+    T_ATB_TEXT		text;					/* Edit buffer */
+    USHORT			size;              		/* Buffer size */
+	char			*FormatString;			/* Formatting string for WAP formatted input */
+	T_DS_TEXTFORMAT	startFormat;			/* Text format to be applied to the start of text */
+// Shashi Shekar B.S., a0876501, 16-Jan-2006, OMAPS00061460
+#ifdef FF_MMI_SAT_ICON
+	T_ATB_EDITOR_TITLE_ICON		TitleIcon;
+#endif
+} T_ED_ATTR;
+
+/**********************************************
+ * T_ED_LINE
+ *
+ * Information about a line of text in the editor
+ *********************************************/
+
+typedef struct T_ED_LINE_TAG
+{
+	UBYTE 					height;			/* The height of the line */
+	USHORT					pos;			/* The position of the start of the line in the buffer */
+	T_DS_TEXTFORMAT			format;			/* The format attributes at the start of the line */
+	struct T_ED_LINE_TAG	*next;			/* The succeeding line */
+} T_ED_LINE;
+
+
+/**********************************************
+ * T_ED_CHAR
+ *
+ * Information about a character in the editor
+ *********************************************/
+
+typedef struct
+{
+	USHORT 					width;			// The width of the character
+	USHORT 					height;			// The height of the character
+	USHORT					pos;			// The position of the character
+	T_DS_TEXTFORMAT			format;				// The format attributes of the character
+	USHORT					lineHeight;			// Height of the line, so far
+	USHORT					lineWidth;			// Width of the current line (in pixels)
+} T_ED_CHAR;
+
+
+/**********************************************
+ * T_ED_CURSOR
+ *
+ * Information about cursor
+ *********************************************/
+
+typedef struct
+{
+    SHORT					x;			// Cursor X position, relative to top left corner of editor
+    SHORT					y;			// Cursor Y position, relative to top left corner of editor
+    SHORT					width;		// Size of cursor
+    SHORT					height;		// Height of cursor
+    USHORT					attr;		// Format attributes under the cursor
+    USHORT					pos;         /* cursor position          */
+	SHORT					line;		// The line the cursor is on (with respect to the whole text)
+} T_ED_CURSOR;
+
+
+/**********************************************
+ * T_ED_DATA
+ *
+ * Main editor information
+ *********************************************/
+ 
+typedef struct                
+{
+    T_ED_CB					handler;            /* event handler            */
+    T_ED_ATTR				*attr;               /* editor attributes        */
+
+	/* Various flags */
+	
+	BOOL					initialised;		// TRUE if important values have been set up
+    BOOL					display;			/* Whether editor is hidden or not. */
+    UBYTE					update;				/* Which portions of the editor to update */
+	UBYTE					multitap;			/* Stores status of multi-tap */
+	UBYTE					textcase;			/* Case of text entry (upper, lower, numeric etc) */
+
+	/* Word wrap information */
+	
+    T_ED_CURSOR				cursor;				/* Properties of cursor */
+	T_ED_CHAR				thischar;			/* Properties of current character */
+	T_ED_CHAR				space;				/* Properties of the last space */
+	T_ED_LINE				*line;				/* Properties of lines in editor */
+
+	BOOL					startOfLine;		/* TRUE indicates the start of a text line */
+	BOOL 					endOfLine;			/* TRUE indicates end of a text line */
+	BOOL					endOfText;			/* TRUE indicates no more chars in text */
+	BOOL					precedingEOL;		/* Character preceding current character is an End Of Line */
+	BOOL					precedingSpace;		/* Character preceding current character is a space */
+
+	USHORT					startPos;			/* Character position, or start of current block */
+	USHORT					numLines;			/* Total number of lines in the editor */
+	SHORT					winStartLine;		/* The first line to be displayed in the current window */
+	USHORT					linesPerScreen;		/* No of lines that fit on current screen */
+
+	/* Display properties */
+
+    USHORT					totalHeight;		/* Total height (in pixels) of the whole text string */
+    USHORT					viewHeight;			/* The height visible in the editor */
+    USHORT					viewStartPos;		/* Start position of view in pixels */
+
+	/* WAP delimited input information */
+
+	SHORT					formatIndex;		// Position in formatting string
+    SHORT					fieldIndex;			// Position within a delimited field
+
+    /* Hidden input information */
+
+    T_ATB_TEXT				*hiddenText;		/* Hidden text is stored in this buffer */ 
+} T_ED_DATA;
+
+
+/**********************************************
+ * T_ED_CASE
+ *
+ * The case of the current text
+ *********************************************/
+typedef enum
+{
+	ED_CASE_UPPER,						/* Upper case */
+	ED_CASE_LOWER,						/* Lower case */
+	ED_CASE_CAPS,						/* Capitalise starts of sentences */
+	ED_CASE_NUM							/* Numbers */
+} T_ED_CASE;
+
+ 
+/**********************************************
+ * T_ED_CASE_PREF
+ *
+ * Preference for case input
+ *********************************************/
+ 
+typedef enum
+{
+	ED_CASEPREF_NONE,					/* End of string - no case */
+	ED_CASEPREF_NUM,					/* Any numeric character */
+ 	ED_CASEPREF_ALPHA_UC,				/* Any symbolic or alphabetic uppercase character */
+	ED_CASEPREF_ALPHA_LC,				/* Any symbolic or alphabetic lowercase character */
+	ED_CASEPREF_ALPHANUM,				/* Any symbolic, numeric, or alphabetic character */
+	ED_CASEPREF_ALPHANUM_UC,			/* Any symbolic, numeric, or alphabetic uppercase character */
+	ED_CASEPREF_ALPHANUM_LC				/* Any symbolic, numeric, or alphabetic lowercase character */
+} T_ED_CASE_PREF;
+
+
+/**********************************************
+ * FUNCTION PROTOTYPES
+ *
+ *********************************************/
+
+ED_RES			ATB_edit_Init (T_ED_DATA *editor);
+T_ED_DATA*		ATB_edit_Create (T_ED_ATTR *editAttr, T_ED_CB callback);
+ED_RES			ATB_edit_Destroy (T_ED_DATA *editor);
+ED_RES			ATB_edit_Reset (T_ED_DATA *editor);
+ED_RES			ATB_edit_Show (T_ED_DATA *editor);
+ED_RES			ATB_edit_Refresh (T_ED_DATA *editor);
+ED_RES			ATB_edit_Hide (T_ED_DATA *editor);
+ED_RES			ATB_edit_Unhide (T_ED_DATA *editor);
+
+ED_RES			ATB_edit_Char (T_ED_DATA *editor, USHORT character, UBYTE update);
+ED_RES			ATB_edit_AsciiChar (T_ED_DATA *editor, char character, UBYTE update);
+ED_RES			ATB_edit_MultiTap(T_ED_DATA *editor, USHORT character, BOOL multitap);
+ED_RES			ATB_edit_AsciiMultiTap(T_ED_DATA *editor, char character, BOOL multitap);
+ED_RES			ATB_edit_MoveCursor (T_ED_DATA *editor, USHORT control, UBYTE update);
+ED_RES			ATB_edit_DeleteLeft (T_ED_DATA *editor, UBYTE update); /* SPR#2342 - SH */
+ED_RES			ATB_edit_DeleteRight (T_ED_DATA *editor, UBYTE update); /* SPR#2342 - SH */
+ED_RES			ATB_edit_ClearAll (T_ED_DATA *editor);
+
+ED_RES			ATB_edit_HiddenInit(T_ED_DATA *editor);
+ED_RES			ATB_edit_HiddenExit(T_ED_DATA *editor);
+ED_RES			ATB_edit_InsertString (T_ED_DATA *editor, T_ATB_TEXT *insText);/* Insert a word at the cursor pos */
+USHORT			ATB_edit_GetCursorChar(T_ED_DATA *editor, int offset);
+BOOL			ATB_edit_CapitaliseWord(T_ED_DATA *editor);
+USHORT 			ATB_edit_FindCapital(USHORT small_char);
+T_ED_LINE		*ATB_edit_LineGet(T_ED_DATA *editor, SHORT lineNo);
+
+void			ATB_edit_SetAttr(T_ED_DATA *editor, T_ATB_WIN_SIZE *win_size, ULONG colour, UBYTE font, USHORT mode, USHORT cursor, T_ATB_TEXT *text, USHORT size);
+UBYTE			ATB_edit_Mode(T_ED_DATA *editor, USHORT mode);
+void			ATB_edit_SetMode(T_ED_DATA *editor, USHORT mode);
+void			ATB_edit_ResetMode(T_ED_DATA *editor, USHORT mode);
+void			ATB_edit_SetStyle(T_ED_DATA *editor, USHORT style);
+UBYTE			ATB_edit_GetCase(T_ED_DATA *editor);
+void			ATB_edit_SetCase(T_ED_DATA *editor, UBYTE textcase);
+T_ED_CASE_PREF	ATB_edit_GetCasePref(T_ED_DATA *editor);
+#endif
+