263 lines
7.8 KiB
C
263 lines
7.8 KiB
C
/***********************************************************************
|
|
*
|
|
* Copyright (c) Palm Computing 1994 -- All Rights Reserved
|
|
*
|
|
* PROJECT: Pilot
|
|
* FILE: field.h
|
|
* AUTHOR: Art Lamb: September 1, 1994
|
|
*
|
|
* DECLARER: UI
|
|
*
|
|
* DESCRIPTION:
|
|
* This file defines table structures and routines.
|
|
*
|
|
***********************************************************************/
|
|
#ifndef __TABLE_H__
|
|
#define __TABLE_H__
|
|
|
|
//-------------------------------------------------------------------
|
|
// Table structures
|
|
//-------------------------------------------------------------------
|
|
|
|
#define tableDefaultColumnSpacing 1
|
|
#define tableNoteIndicatorWidth 7
|
|
#define tableNoteIndicatorHeight 11
|
|
|
|
// Display style of a table item
|
|
//
|
|
enum tableItemStyles { checkboxTableItem,
|
|
customTableItem,
|
|
dateTableItem,
|
|
labelTableItem,
|
|
numericTableItem,
|
|
popupTriggerTableItem,
|
|
textTableItem,
|
|
textWithNoteTableItem,
|
|
timeTableItem};
|
|
typedef enum tableItemStyles TableItemStyleType;
|
|
|
|
|
|
typedef struct {
|
|
TableItemStyleType itemType;
|
|
FontID fontID; // font for drawing text
|
|
Word intValue;
|
|
CharPtr ptr;
|
|
} TableItemType;
|
|
typedef TableItemType * TableItemPtr;
|
|
|
|
|
|
// Draw item callback routine prototype, used only by customTableItem.
|
|
typedef void TableDrawItemFuncType
|
|
(VoidPtr table, Word row, Word column, RectanglePtr bounds);
|
|
|
|
typedef TableDrawItemFuncType * TableDrawItemFuncPtr;
|
|
|
|
|
|
// Load data callback routine prototype
|
|
typedef Err TableLoadDataFuncType
|
|
(VoidPtr table, Word row, Word column, Boolean editable,
|
|
VoidHand * dataH, WordPtr dataOffset, WordPtr dataSize);
|
|
|
|
typedef TableLoadDataFuncType * TableLoadDataFuncPtr;
|
|
|
|
|
|
// Save data callback routine prototype
|
|
typedef Boolean TableSaveDataFuncType
|
|
(VoidPtr table, Word row, Word column);
|
|
|
|
typedef TableSaveDataFuncType * TableSaveDataFuncPtr;
|
|
|
|
|
|
typedef struct {
|
|
Word width; // width in pixels
|
|
Boolean usable;
|
|
Word spacing; // space after column
|
|
TableDrawItemFuncPtr drawCallback;
|
|
TableLoadDataFuncPtr loadDataCallback;
|
|
TableSaveDataFuncPtr saveDataCallback;
|
|
|
|
} TableColumnAttrType;
|
|
|
|
|
|
typedef struct {
|
|
Word id;
|
|
Word height; // row height in pixels
|
|
DWord data;
|
|
Boolean usable;
|
|
Boolean selectable;
|
|
Boolean invalid; // true if redraw needed
|
|
} TableRowAttrType;
|
|
|
|
|
|
typedef struct {
|
|
Word visible:1; // Set if drawn, used internally
|
|
Word editable:1; // Set if editable
|
|
Word editing:1; // Set if in edit mode
|
|
Word selected:1; // Set if the current item is selected
|
|
} TableAttrType;
|
|
|
|
|
|
typedef struct {
|
|
Word id;
|
|
RectangleType bounds;
|
|
TableAttrType attr;
|
|
Word numColumns;
|
|
Word numRows;
|
|
Word currentRow;
|
|
Word currentColumn;
|
|
Word topRow;
|
|
TableColumnAttrType * columnAttrs;
|
|
TableRowAttrType * rowAttrs;
|
|
TableItemPtr items;
|
|
FieldType currentField;
|
|
} TableType;
|
|
|
|
typedef TableType * TablePtr;
|
|
|
|
|
|
//-------------------------------------------------------------------
|
|
// Table routines
|
|
//-------------------------------------------------------------------
|
|
|
|
extern void TblDrawTable (TablePtr table)
|
|
SYS_TRAP(sysTrapTblDrawTable);
|
|
|
|
extern void TblRedrawTable (TablePtr table)
|
|
SYS_TRAP(sysTrapTblRedrawTable);
|
|
|
|
extern void TblEraseTable (TablePtr table)
|
|
SYS_TRAP(sysTrapTblEraseTable);
|
|
|
|
extern Boolean TblHandleEvent (TablePtr table, EventPtr event)
|
|
SYS_TRAP(sysTrapTblHandleEvent);
|
|
|
|
extern void TblGetItemBounds (TablePtr table, Word row, Word column,
|
|
RectanglePtr r)
|
|
SYS_TRAP(sysTrapTblGetItemBounds);
|
|
|
|
extern void TblSelectItem (TablePtr table, Word row, Word column)
|
|
SYS_TRAP(sysTrapTblSelectItem);
|
|
|
|
extern Word TblGetItemInt (TablePtr table, Word row, Word column)
|
|
SYS_TRAP(sysTrapTblGetItemInt);
|
|
|
|
extern void TblSetItemInt (TablePtr table, Word row, Word column, Word value)
|
|
SYS_TRAP(sysTrapTblSetItemInt);
|
|
|
|
extern void TblSetItemPtr (TablePtr table, Word row, Word column, VoidPtr value)
|
|
SYS_TRAP(sysTrapTblSetItemPtr);
|
|
|
|
extern void TblSetItemStyle (TablePtr table, Word row, Word column,
|
|
TableItemStyleType type)
|
|
SYS_TRAP(sysTrapTblSetItemStyle);
|
|
|
|
extern void TblUnhighlightSelection (TablePtr table)
|
|
SYS_TRAP(sysTrapTblUnhighlightSelection);
|
|
|
|
extern Boolean TblRowUsable (TablePtr table, Word row)
|
|
SYS_TRAP(sysTrapTblRowUsable);
|
|
|
|
extern void TblSetRowUsable (TablePtr table, Word row, Boolean usable)
|
|
SYS_TRAP(sysTrapTblSetRowUsable);
|
|
|
|
extern Word TblGetLastUsableRow (TablePtr table)
|
|
SYS_TRAP(sysTrapTblGetLastUsableRow);
|
|
|
|
|
|
extern void TblSetColumnUsable (TablePtr table, Word row, Boolean usable)
|
|
SYS_TRAP(sysTrapTblSetColumnUsable);
|
|
|
|
extern void TblSetRowSelectable (TablePtr table, Word row, Boolean selectable)
|
|
SYS_TRAP(sysTrapTblSetRowSelectable);
|
|
|
|
extern Boolean TblRowSelectable (TablePtr table, Word row)
|
|
SYS_TRAP(sysTrapTblRowSelectable);
|
|
|
|
extern Word TblGetNumberOfRows (TablePtr table)
|
|
SYS_TRAP(sysTrapTblGetNumberOfRows);
|
|
|
|
extern void TblSetCustomDrawProcedure
|
|
(TablePtr table, Word column, TableDrawItemFuncPtr drawCallback)
|
|
SYS_TRAP(sysTrapTblSetCustomDrawProcedure);
|
|
|
|
extern void TblSetLoadDataProcedure
|
|
(TablePtr table, Word column, TableLoadDataFuncPtr loadDataCallback)
|
|
SYS_TRAP(sysTrapTblSetLoadDataProcedure);
|
|
|
|
extern void TblSetSaveDataProcedure
|
|
(TablePtr table, Word column, TableSaveDataFuncPtr saveDataCallback)
|
|
SYS_TRAP(sysTrapTblSetSaveDataProcedure);
|
|
|
|
|
|
extern void TblGetBounds (TablePtr table, RectanglePtr r)
|
|
SYS_TRAP(sysTrapTblGetBounds);
|
|
|
|
extern Word TblGetRowHeight (TablePtr table, Word row)
|
|
SYS_TRAP(sysTrapTblGetRowHeight);
|
|
|
|
extern void TblSetRowHeight (TablePtr table, Word row, Word height)
|
|
SYS_TRAP(sysTrapTblSetRowHeight);
|
|
|
|
extern Word TblGetColumnWidth (TablePtr table, Word column)
|
|
SYS_TRAP(sysTrapTblGetColumnWidth);
|
|
|
|
extern void TblSetColumnWidth (TablePtr table, Word column, Word width)
|
|
SYS_TRAP(sysTrapTblSetColumnWidth);
|
|
|
|
extern Word TblGetColumnSpacing (TablePtr table, Word column)
|
|
SYS_TRAP(sysTrapTblGetColumnSpacing);
|
|
|
|
extern void TblSetColumnSpacing (TablePtr table, Word column, Word spacing)
|
|
SYS_TRAP(sysTrapTblSetColumnSpacing);
|
|
|
|
extern Boolean TblFindRowID (TablePtr table, Word id, WordPtr rowP)
|
|
SYS_TRAP(sysTrapTblFindRowID);
|
|
|
|
extern Boolean TblFindRowData (TablePtr table, DWord data, WordPtr rowP)
|
|
SYS_TRAP(sysTrapTblFindRowData);
|
|
|
|
extern Word TblGetRowID (TablePtr table, Word row)
|
|
SYS_TRAP(sysTrapTblGetRowID);
|
|
|
|
extern void TblSetRowID (TablePtr table, Word row, Word id)
|
|
SYS_TRAP(sysTrapTblSetRowID);
|
|
|
|
extern DWord TblGetRowData (TablePtr table, Word row)
|
|
SYS_TRAP(sysTrapTblGetRowData);
|
|
|
|
extern void TblSetRowData (TablePtr table, Word row, DWord data)
|
|
SYS_TRAP(sysTrapTblSetRowData);
|
|
|
|
extern Boolean TblRowInvalid (TablePtr table, Word row)
|
|
SYS_TRAP(sysTrapTblRowInvalid);
|
|
|
|
extern void TblMarkRowInvalid (TablePtr table, Word row)
|
|
SYS_TRAP(sysTrapTblMarkRowInvalid);
|
|
|
|
extern void TblMarkTableInvalid (TablePtr table)
|
|
SYS_TRAP(sysTrapTblMarkTableInvalid);
|
|
|
|
extern Boolean TblGetSelection (TablePtr table, WordPtr rowP, WordPtr columnP)
|
|
SYS_TRAP(sysTrapTblGetSelection);
|
|
|
|
extern void TblInsertRow (TablePtr table, Word row)
|
|
SYS_TRAP(sysTrapTblInsertRow);
|
|
|
|
extern void TblRemoveRow (TablePtr table, Word row)
|
|
SYS_TRAP(sysTrapTblRemoveRow);
|
|
|
|
extern void TblReleaseFocus (TablePtr table)
|
|
SYS_TRAP(sysTrapTblReleaseFocus);
|
|
|
|
extern Boolean TblEditing (TablePtr table)
|
|
SYS_TRAP(sysTrapTblEditing);
|
|
|
|
extern FieldPtr TblGetCurrentField (TablePtr table)
|
|
SYS_TRAP(sysTrapTblGetCurrentField);
|
|
|
|
extern void TblGrabFocus (TablePtr table, Word row, Word column)
|
|
SYS_TRAP(sysTrapTblGrabFocus);
|
|
|
|
|
|
#endif //__TABLE_H__
|