260 lines
7.3 KiB
C
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__
|
|
|
|
|
|
|