aboutsummaryrefslogtreecommitdiff
path: root/SrcShared/Palm/Platform/Incs/Core/UI/Field.h
diff options
context:
space:
mode:
Diffstat (limited to 'SrcShared/Palm/Platform/Incs/Core/UI/Field.h')
-rw-r--r--SrcShared/Palm/Platform/Incs/Core/UI/Field.h275
1 files changed, 275 insertions, 0 deletions
diff --git a/SrcShared/Palm/Platform/Incs/Core/UI/Field.h b/SrcShared/Palm/Platform/Incs/Core/UI/Field.h
new file mode 100644
index 0000000..c31084c
--- /dev/null
+++ b/SrcShared/Palm/Platform/Incs/Core/UI/Field.h
@@ -0,0 +1,275 @@
+/******************************************************************************
+ *
+ * Copyright (c) 1994-1999 Palm Computing, Inc. or its subsidiaries.
+ * All rights reserved.
+ *
+ * File: Field.h
+ *
+ * Description:
+ * This file defines field structures and routines.
+ *
+ * History:
+ * August 29, 1994 Created by Art Lamb
+ *
+ *****************************************************************************/
+
+#ifndef __FIELD_H__
+#define __FIELD_H__
+
+#include <PalmTypes.h>
+
+#include <Font.h>
+#include <Event.h>
+#include <Window.h>
+
+#define maxFieldTextLen 0x7fff
+
+// Maximun number of line the a dynamicly sizing field will expand to.
+#define maxFieldLines 11
+
+
+// kind alignment values
+enum justifications {leftAlign, centerAlign, rightAlign};
+typedef enum justifications JustificationType;
+
+
+#define undoBufferSize 100
+
+typedef enum { undoNone, undoTyping, undoBackspace, undoDelete,
+ undoPaste, undoCut, undoInput } UndoMode;
+
+typedef struct {
+ UndoMode mode;
+ UInt8 reserved;
+ UInt16 start;
+ UInt16 end;
+ UInt16 bufferLen;
+ Char *buffer;
+ } FieldUndoType;
+
+
+typedef struct {
+ UInt16 usable :1; // Set if part of ui
+ UInt16 visible :1; // Set if drawn, used internally
+ UInt16 editable :1; // Set if editable
+ UInt16 singleLine :1; // Set if only a single line is displayed
+ UInt16 hasFocus :1; // Set if the field has the focus
+ UInt16 dynamicSize :1; // Set if height expands as text is entered
+ UInt16 insPtVisible :1; // Set if the ins pt is scolled into view
+ UInt16 dirty :1; // Set if user modified
+ UInt16 underlined :2; // text underlined mode
+ UInt16 justification :2; // text alignment
+ UInt16 autoShift :1; // Set if auto case shift
+ UInt16 hasScrollBar :1; // Set if the field has a scroll bar
+ UInt16 numeric :1; // Set if numeric, digits and secimal separator only
+} FieldAttrType;
+
+typedef FieldAttrType *FieldAttrPtr;
+
+typedef struct {
+ UInt16 start; // position in text string of first char.
+ UInt16 length; // number of character in the line
+} LineInfoType;
+
+typedef LineInfoType *LineInfoPtr;
+
+
+typedef struct FieldType {
+ UInt16 id;
+ RectangleType rect;
+ FieldAttrType attr;
+ Char *text; // pointer to the start of text string
+ MemHandle textHandle; // block the contains the text string
+ LineInfoPtr lines;
+ UInt16 textLen;
+ UInt16 textBlockSize;
+ UInt16 maxChars;
+ UInt16 selFirstPos;
+ UInt16 selLastPos;
+ UInt16 insPtXPos;
+ UInt16 insPtYPos;
+ FontID fontID;
+ UInt8 reserved;
+} FieldType;
+
+
+typedef FieldType *FieldPtr; // deprecated, use FieldType *
+
+
+//---------------------------------------------------------------------
+// Field Functions
+//---------------------------------------------------------------------
+
+#ifdef REMOVE_FOR_EMULATOR
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern void FldCopy (const FieldType *fldP)
+ SYS_TRAP(sysTrapFldCopy);
+
+extern void FldCut (FieldType *fldP)
+ SYS_TRAP(sysTrapFldCut);
+
+extern void FldDrawField (FieldType *fldP)
+ SYS_TRAP(sysTrapFldDrawField);
+
+extern void FldEraseField (FieldType *fldP)
+ SYS_TRAP(sysTrapFldEraseField);
+
+extern void FldFreeMemory (FieldType *fldP)
+ SYS_TRAP(sysTrapFldFreeMemory);
+
+extern void FldGetBounds (const FieldType *fldP, RectanglePtr rect)
+ SYS_TRAP(sysTrapFldGetBounds);
+
+extern FontID FldGetFont (const FieldType *fldP)
+ SYS_TRAP(sysTrapFldGetFont);
+
+extern void FldGetSelection (const FieldType *fldP, UInt16 *startPosition, UInt16 *endPosition)
+ SYS_TRAP(sysTrapFldGetSelection);
+
+extern MemHandle FldGetTextHandle (const FieldType *fldP)
+ SYS_TRAP(sysTrapFldGetTextHandle);
+
+extern Char * FldGetTextPtr (const FieldType *fldP)
+ SYS_TRAP(sysTrapFldGetTextPtr);
+
+extern Boolean FldHandleEvent (FieldType *fldP, EventType *eventP)
+ SYS_TRAP(sysTrapFldHandleEvent);
+
+extern void FldPaste (FieldType *fldP)
+ SYS_TRAP(sysTrapFldPaste);
+
+extern void FldRecalculateField (FieldType *fldP, Boolean redraw)
+ SYS_TRAP(sysTrapFldRecalculateField);
+
+extern void FldSetBounds (FieldType *fldP, const RectangleType *rP)
+ SYS_TRAP(sysTrapFldSetBounds);
+
+extern void FldSetFont (FieldType *fldP, FontID fontID)
+ SYS_TRAP(sysTrapFldSetFont);
+
+extern void FldSetText (FieldType *fldP, MemHandle textHandle, UInt16 offset, UInt16 size)
+ SYS_TRAP(sysTrapFldSetText);
+
+extern void FldSetTextHandle (FieldType *fldP, MemHandle textHandle)
+ SYS_TRAP(sysTrapFldSetTextHandle);
+
+extern void FldSetTextPtr (FieldType *fldP, Char *textP)
+ SYS_TRAP(sysTrapFldSetTextPtr);
+
+extern void FldSetUsable (FieldType *fldP, Boolean usable)
+ SYS_TRAP(sysTrapFldSetUsable);
+
+extern void FldSetSelection (FieldType *fldP, UInt16 startPosition, UInt16 endPosition)
+ SYS_TRAP(sysTrapFldSetSelection);
+
+extern void FldGrabFocus (FieldType *fldP)
+ SYS_TRAP(sysTrapFldGrabFocus);
+
+extern void FldReleaseFocus (FieldType *fldP)
+ SYS_TRAP(sysTrapFldReleaseFocus);
+
+extern UInt16 FldGetInsPtPosition (const FieldType *fldP)
+ SYS_TRAP(sysTrapFldGetInsPtPosition);
+
+extern void FldSetInsPtPosition (FieldType *fldP, UInt16 pos)
+ SYS_TRAP(sysTrapFldSetInsPtPosition);
+
+extern void FldSetInsertionPoint (FieldType *fldP, UInt16 pos)
+ SYS_TRAP(sysTrapFldSetInsertionPoint);
+
+extern UInt16 FldGetScrollPosition (const FieldType *fldP)
+ SYS_TRAP(sysTrapFldGetScrollPosition);
+
+extern void FldSetScrollPosition (FieldType *fldP, UInt16 pos)
+ SYS_TRAP(sysTrapFldSetScrollPosition);
+
+extern void FldGetScrollValues (const FieldType *fldP, UInt16 *scrollPosP,
+ UInt16 *textHeightP, UInt16 *fieldHeightP)
+ SYS_TRAP(sysTrapFldGetScrollValues);
+
+extern UInt16 FldGetTextLength (const FieldType *fldP)
+ SYS_TRAP(sysTrapFldGetTextLength);
+
+extern void FldScrollField (FieldType *fldP, UInt16 linesToScroll, WinDirectionType direction)
+ SYS_TRAP(sysTrapFldScrollField);
+
+extern Boolean FldScrollable (const FieldType *fldP, WinDirectionType direction)
+ SYS_TRAP(sysTrapFldScrollable);
+
+extern UInt16 FldGetVisibleLines (const FieldType *fldP)
+ SYS_TRAP(sysTrapFldGetVisibleLines);
+
+extern UInt16 FldGetTextHeight (const FieldType *fldP)
+ SYS_TRAP(sysTrapFldGetTextHeight);
+
+extern UInt16 FldCalcFieldHeight (const Char *chars, UInt16 maxWidth)
+ SYS_TRAP(sysTrapFldCalcFieldHeight);
+
+extern UInt16 FldWordWrap (const Char *chars, Int16 maxWidth)
+ SYS_TRAP(sysTrapFldWordWrap);
+
+extern void FldCompactText (FieldType *fldP)
+ SYS_TRAP(sysTrapFldCompactText);
+
+extern Boolean FldDirty (const FieldType *fldP)
+ SYS_TRAP(sysTrapFldDirty);
+
+extern void FldSetDirty (FieldType *fldP, Boolean dirty)
+ SYS_TRAP(sysTrapFldSetDirty);
+
+extern UInt16 FldGetMaxChars (const FieldType *fldP)
+ SYS_TRAP(sysTrapFldGetMaxChars);
+
+extern void FldSetMaxChars (FieldType *fldP, UInt16 maxChars)
+ SYS_TRAP(sysTrapFldSetMaxChars);
+
+extern Boolean FldInsert (FieldType *fldP, const Char *insertChars, UInt16 insertLen)
+ SYS_TRAP(sysTrapFldInsert);
+
+extern void FldDelete (FieldType *fldP, UInt16 start, UInt16 end)
+ SYS_TRAP(sysTrapFldDelete);
+
+extern void FldUndo (FieldType *fldP)
+ SYS_TRAP(sysTrapFldUndo);
+
+extern UInt16 FldGetTextAllocatedSize (const FieldType *fldP)
+ SYS_TRAP(sysTrapFldGetTextAllocatedSize);
+
+extern void FldSetTextAllocatedSize (FieldType *fldP, UInt16 allocatedSize)
+ SYS_TRAP(sysTrapFldSetTextAllocatedSize);
+
+extern void FldGetAttributes (const FieldType *fldP, FieldAttrPtr attrP)
+ SYS_TRAP(sysTrapFldGetAttributes);
+
+extern void FldSetAttributes (FieldType *fldP, const FieldAttrType *attrP)
+ SYS_TRAP(sysTrapFldSetAttributes);
+
+extern void FldSendChangeNotification (const FieldType *fldP)
+ SYS_TRAP(sysTrapFldSendChangeNotification);
+
+extern void FldSendHeightChangeNotification (const FieldType *fldP, UInt16 pos, Int16 numLines)
+ SYS_TRAP(sysTrapFldSendHeightChangeNotification);
+
+extern Boolean FldMakeFullyVisible (FieldType *fldP)
+ SYS_TRAP(sysTrapFldMakeFullyVisible);
+
+extern UInt16 FldGetNumberOfBlankLines (const FieldType *fldP)
+ SYS_TRAP(sysTrapFldGetNumberOfBlankLines);
+
+extern FieldType *FldNewField (void **formPP, UInt16 id,
+ Coord x, Coord y, Coord width, Coord height,
+ FontID font, UInt32 maxChars, Boolean editable, Boolean underlined,
+ Boolean singleLine, Boolean dynamicSize, JustificationType justification,
+ Boolean autoShift, Boolean hasScrollBar, Boolean numeric)
+ SYS_TRAP(sysTrapFldNewField);
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif
+
+#endif // __FIELD_H__