palm-os-sdk/sdk-2/include/Core/UI/Field.h
2016-08-25 07:53:48 -03:00

260 lines
7.3 KiB
C

/***********************************************************************
*
* Copyright (c) 1994-1997, Palm Computing Inc., All Rights Reserved
*
* PROJECT: Pilot
* FILE: field.h
* AUTHOR: Art Lamb: August 29, 1994
*
* DECLARER: UI
*
* DESCRIPTION:
* This file defines field structures and routines.
*
***********************************************************************/
#ifndef __FIELD_H__
#define __FIELD_H__
#define maxFieldTextLen 0x7fff
// Maximun number of line the a dynamicly sizing field will expand to.
#define maxFieldLines 11
// kind alignment values
#define leftAlign 0
#define centerAlign 1
#define rightAlign 2
#define undoBufferSize 100
typedef enum { undoNone, undoTyping, undoBackspace, undoDelete,
undoPaste, undoCut } UndoMode;
typedef struct {
UndoMode mode;
Word start;
Word end;
Word bufferLen;
CharPtr buffer;
} FieldUndoType;
typedef struct {
Word usable :1; // Set if part of ui
Word visible :1; // Set if drawn, used internally
Word editable :1; // Set if editable
Word singleLine :1; // Set if only a single line is displayed
Word hasFocus :1; // Set if the field has the focus
Word dynamicSize :1; // Set if height expands as text is entered
Word insPtVisible :1; // Set if the ins pt is scolled into view
Word dirty :1; // Set if user modified
Word underlined :2; // text underlined mode
Word justification :2; // text alignment
Word autoShift :1; // Set if auto case shift
Word hasScrollBar :1; // Set if the field has a scroll bar
Word numeric :1; // Set if numeric, digits and secimal separator only
} FieldAttrType;
typedef FieldAttrType * FieldAttrPtr;
typedef struct {
Word start; // position in text string of first char.
Word length; // number of character in the line
} LineInfoType;
typedef LineInfoType * LineInfoPtr;
typedef struct {
Word id;
RectangleType rect;
FieldAttrType attr;
CharPtr text; // pointer to the start of text string
VoidHand textHandle; // block the contains the text string
LineInfoPtr lines;
Word textLen;
Word textBlockSize;
Word maxChars;
Word selFirstPos;
Word selLastPos;
Word insPtXPos;
Word insPtYPos;
FontID fontID;
} FieldType;
typedef FieldType * FieldPtr;
//---------------------------------------------------------------------
// Field Functions
//---------------------------------------------------------------------
extern void FldCopy (FieldPtr fld)
SYS_TRAP(sysTrapFldCopy);
extern void FldCut (FieldPtr fld)
SYS_TRAP(sysTrapFldCut);
extern void FldDrawField (FieldPtr fld)
SYS_TRAP(sysTrapFldDrawField);
extern void FldEraseField (FieldPtr fld)
SYS_TRAP(sysTrapFldEraseField);
extern void FldFreeMemory (FieldPtr fld)
SYS_TRAP(sysTrapFldFreeMemory);
extern void FldGetBounds (FieldPtr fld, RectanglePtr rect)
SYS_TRAP(sysTrapFldGetBounds);
extern FontID FldGetFont (FieldPtr fld)
SYS_TRAP(sysTrapFldGetFont);
extern void FldGetSelection (FieldPtr fld, WordPtr startPosition,
WordPtr endPosition)
SYS_TRAP(sysTrapFldGetSelection);
extern Handle FldGetTextHandle (FieldPtr fld)
SYS_TRAP(sysTrapFldGetTextHandle);
extern CharPtr FldGetTextPtr (FieldPtr fld)
SYS_TRAP(sysTrapFldGetTextPtr);
extern Boolean FldHandleEvent (FieldPtr fld, EventPtr pEvent)
SYS_TRAP(sysTrapFldHandleEvent);
extern void FldPaste (FieldPtr fld)
SYS_TRAP(sysTrapFldPaste);
extern void FldRecalculateField (FieldPtr fld, Boolean redraw)
SYS_TRAP(sysTrapFldRecalculateField);
extern void FldSetBounds (FieldPtr fld, RectanglePtr rect)
SYS_TRAP(sysTrapFldSetBounds);
extern void FldSetFont (FieldPtr fld, FontID fontID)
SYS_TRAP(sysTrapFldSetFont);
extern void FldSetText (FieldPtr fld, VoidHand textHandle, Word offset,
Word size)
SYS_TRAP(sysTrapFldSetText);
extern void FldSetTextHandle (FieldPtr fld, Handle textHandle)
SYS_TRAP(sysTrapFldSetTextHandle);
extern void FldSetTextPtr (FieldPtr fld, CharPtr textP)
SYS_TRAP(sysTrapFldSetTextPtr);
extern void FldSetUsable (FieldPtr fld, Boolean usable)
SYS_TRAP(sysTrapFldSetUsable);
extern void FldSetSelection (FieldPtr fld, Word startPosition,
Word endPosition)
SYS_TRAP(sysTrapFldSetSelection);
extern void FldGrabFocus (FieldPtr fld)
SYS_TRAP(sysTrapFldGrabFocus);
extern void FldReleaseFocus (FieldPtr fld)
SYS_TRAP(sysTrapFldReleaseFocus);
extern Word FldGetInsPtPosition (FieldPtr fld)
SYS_TRAP(sysTrapFldGetInsPtPosition);
extern void FldSetInsPtPosition (FieldPtr fld, Word pos)
SYS_TRAP(sysTrapFldSetInsPtPosition);
extern void FldSetInsertionPoint (FieldPtr fld, Word pos)
SYS_TRAP(sysTrapFldSetInsertionPoint);
extern Word FldGetScrollPosition (FieldPtr fld)
SYS_TRAP(sysTrapFldGetScrollPosition);
extern void FldSetScrollPosition (FieldPtr fld, Word pos)
SYS_TRAP(sysTrapFldSetScrollPosition);
extern void FldGetScrollValues (FieldPtr fld, WordPtr scrollPosP,
WordPtr textHeightP, WordPtr fieldHeightP)
SYS_TRAP(sysTrapFldGetScrollValues);
extern Word FldGetTextLength (FieldPtr fld)
SYS_TRAP(sysTrapFldGetTextLength);
extern void FldScrollField (FieldPtr fld, Word linesToScroll,
DirectionType direction)
SYS_TRAP(sysTrapFldScrollField);
extern Boolean FldScrollable (FieldPtr fld, DirectionType direction)
SYS_TRAP(sysTrapFldScrollable);
extern Word FldGetVisibleLines (FieldPtr fld)
SYS_TRAP(sysTrapFldGetVisibleLines);
extern Word FldGetTextHeight (FieldPtr fld)
SYS_TRAP(sysTrapFldGetTextHeight);
extern Word FldCalcFieldHeight (CharPtr chars, Word maxWidth)
SYS_TRAP(sysTrapFldCalcFieldHeight);
Word FldWordWrap (CharPtr chars, Word maxWidth)
SYS_TRAP(sysTrapFldWordWrap);
extern void FldCompactText (FieldPtr fld)
SYS_TRAP(sysTrapFldCompactText);
extern Boolean FldDirty (FieldPtr fld)
SYS_TRAP(sysTrapFldDirty);
extern void FldSetDirty (FieldPtr fld, Boolean dirty)
SYS_TRAP(sysTrapFldSetDirty);
extern Word FldGetMaxChars (FieldPtr fld)
SYS_TRAP(sysTrapFldGetMaxChars);
extern void FldSetMaxChars (FieldPtr fld, Word maxChars)
SYS_TRAP(sysTrapFldSetMaxChars);
extern Boolean FldInsert (FieldPtr fld, CharPtr insertChars, Word insertLen)
SYS_TRAP(sysTrapFldInsert);
extern void FldDelete (FieldPtr fld, Word start, Word end)
SYS_TRAP(sysTrapFldDelete);
extern void FldUndo (FieldPtr fld)
SYS_TRAP(sysTrapFldUndo);
extern Word FldGetTextAllocatedSize (FieldPtr fld)
SYS_TRAP(sysTrapFldGetTextAllocatedSize);
extern void FldSetTextAllocatedSize (FieldPtr fld, Word allocatedSize)
SYS_TRAP(sysTrapFldSetTextAllocatedSize);
extern void FldGetAttributes (FieldPtr fld, FieldAttrPtr attrP)
SYS_TRAP(sysTrapFldGetAttributes);
extern void FldSetAttributes (FieldPtr fld, FieldAttrPtr attrP)
SYS_TRAP(sysTrapFldSetAttributes);
extern void FldSendChangeNotification (FieldPtr fld)
SYS_TRAP(sysTrapFldSendChangeNotification);
extern void FldSendHeightChangeNotification (FieldPtr fld, Word pos,
Short numLines)
SYS_TRAP(sysTrapFldSendHeightChangeNotification);
extern Boolean FldMakeFullyVisible (FieldPtr fld)
SYS_TRAP(sysTrapFldMakeFullyVisible);
extern Word FldGetNumberOfBlankLines (FieldPtr fld)
SYS_TRAP(sysTrapFldGetNumberOfBlankLines);
#endif // __FIELD_H__