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

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__