1
(******************************************************************************
3
* Copyright (c) 1994-2000 Palm, Inc. or its subsidiaries.
8
* Release: Palm OS SDK 4.0 (63220)
11
* This file defines table structures and routines.
14
* September 1, 1994 Created by Art Lamb
16
*****************************************************************************)
22
uses palmos, coretraps, rect, font, field, control;
24
//-------------------------------------------------------------------
26
//-------------------------------------------------------------------
29
tableDefaultColumnSpacing = 1;
30
tableNoteIndicatorWidth = 7;
31
tableNoteIndicatorHeight = 11;
32
tableMaxTextItemSize = 255; // does not incude terminating null
34
tblUnusableRow = $ffff;
36
// Display style of a table item
39
tableItemStyles = Enum;
42
checkboxTableItem = 0;
43
customTableItem = Succ(checkboxTableItem);
44
dateTableItem = Succ(customTableItem);
45
labelTableItem = Succ(dateTableItem);
46
numericTableItem = Succ(labelTableItem);
47
popupTriggerTableItem = Succ(numericTableItem);
48
textTableItem = Succ(popupTriggerTableItem);
49
textWithNoteTableItem = Succ(textTableItem);
50
timeTableItem = Succ(textWithNoteTableItem);
51
narrowTextTableItem = Succ(timeTableItem);
52
tallCustomTableItem = Succ(narrowTextTableItem);
56
TableItemStyleType = tableItemStyles;
58
TableItemType = record
59
{$ifdef ALLOW_ACCESS_TO_INTERNALS_OF_TABLES} // These fields will not be available in the next OS release!
60
itemType: TableItemStyleType;
61
fontID: FontID; // font for drawing text
66
TableItemTag = TableItemType;
67
TableItemPtr = ^TableItemType;
69
// Draw item callback routine prototype, used only by customTableItem.
70
TableDrawItemFuncType = procedure(tableP: Pointer; row, column: Int16; var bounds: RectangleType);
72
TableDrawItemFuncPtr = TableDrawItemFuncType;
74
// Load data callback routine prototype
75
TableLoadDataFuncType = function(tableP: Pointer; row, column: Int16; editable: Boolean;
76
var dataH: MemHandle; var dataOffset, dataSize: Int16; fld: FieldPtr): Err;
78
TableLoadDataFuncPtr = TableLoadDataFuncType;
80
// Save data callback routine prototype
81
TableSaveDataFuncType = function(tableP: Pointer; row, column: Int16): Boolean;
83
TableSaveDataFuncPtr = TableSaveDataFuncType;
85
TableColumnAttrType = record
86
{$ifdef ALLOW_ACCESS_TO_INTERNALS_OF_TABLES} // These fields will not be available in the next OS release!
87
width: Coord; // width in pixels
91
UInt16 masked : 1; // if both row + column masked, draw only grey box
92
UInt16 editIndicator : 1;
96
spacing: Coord; // space after column
97
drawCallback: TableDrawItemFuncPtr;
98
loadDataCallback: TableLoadDataFuncPtr;
99
saveDataCallback: TableSaveDataFuncPtr;
102
TableColumnAttrTag = TableColumnAttrType;
104
TableRowAttrType = record
105
{$ifdef ALLOW_ACCESS_TO_INTERNALS_OF_TABLES} // These fields will not be available in the next OS release!
107
height: Coord; // row height in pixels
111
UInt16 reserved1 : 7;
113
UInt16 reserved2 : 4;
114
UInt16 masked : 1; // if both row + column masked, draw only grey box
115
UInt16 invalid : 1; // true if redraw needed
116
UInt16 staticHeight : 1; // Set if height does not expands as text is entered
117
UInt16 selectable : 1;
122
TableRowAttrTag = TableRowAttrType;
124
TableAttrType = record
125
{$ifdef ALLOW_ACCESS_TO_INTERNALS_OF_TABLES} // These fields will not be available in the next OS release!
128
UInt16 visible:1; // Set if drawn, used internally
129
UInt16 editable:1; // Set if editable
130
UInt16 editing:1; // Set if in edit mode
131
UInt16 selected:1; // Set if the current item is selected
132
UInt16 hasScrollBar:1; // Set if the table has a scroll bar
133
UInt16 usable:1; // Set if in table is visible in the current form
138
TableAttrTag = TableAttrType;
141
{$ifdef ALLOW_ACCESS_TO_INTERNALS_OF_TABLES} // These fields will not be available in the next OS release!
143
bounds: RectangleType;
148
currentColumn: Int16;
150
columnAttrs: ^TableColumnAttrType;
151
rowAttrs: ^TableRowAttrType;
153
currentField: FieldType;
157
TablePtr = ^TableType;
159
//-------------------------------------------------------------------
161
//-------------------------------------------------------------------
163
procedure TblDrawTable(tableP: TablePtr); syscall sysTrapTblDrawTable;
165
procedure TblRedrawTable(tableP: TablePtr); syscall sysTrapTblRedrawTable;
167
procedure TblEraseTable(tableP: TablePtr); syscall sysTrapTblEraseTable;
169
function TblHandleEvent(tableP: TablePtr; event: EventPtr): Boolean; syscall sysTrapTblHandleEvent;
171
procedure TblGetItemBounds(const tableP: TablePtr; row, column: Int16; var rP: RectangleType); syscall sysTrapTblGetItemBounds;
173
procedure TblSelectItem(tableP: TablePtr; row, column: Int16); syscall sysTrapTblSelectItem;
175
function TblGetItemInt(const tableP: TablePtr; row, column: Int16): Int16; syscall sysTrapTblGetItemInt;
177
procedure TblSetItemInt(tableP: TablePtr; row, column, value: Int16); syscall sysTrapTblSetItemInt;
179
procedure TblSetItemPtr(tableP: TablePtr; row, column: Int16; value: Pointer); syscall sysTrapTblSetItemPtr;
181
procedure TblSetItemStyle(tableP: TablePtr; row, column: Int16; type_: TableItemStyleType); syscall sysTrapTblSetItemStyle;
183
procedure TblUnhighlightSelection(tableP: TablePtr); syscall sysTrapTblUnhighlightSelection;
185
function TblRowUsable(const tableP: TablePtr; row: Int16): Boolean; syscall sysTrapTblRowUsable;
187
procedure TblSetRowUsable(tableP: TablePtr; row: Int16; usable: Boolean); syscall sysTrapTblSetRowUsable;
189
function TblGetLastUsableRow(const tableP: TablePtr): Int16; syscall sysTrapTblGetLastUsableRow;
191
procedure TblSetColumnUsable(tableP: TablePtr; column: Int16; usable: Boolean); syscall sysTrapTblSetColumnUsable;
193
procedure TblSetRowSelectable(tableP: TablePtr; row: Int16; selectable: Boolean); syscall sysTrapTblSetRowSelectable;
195
function TblRowSelectable(const tableP: TablePtr; row: Int16): Boolean; syscall sysTrapTblRowSelectable;
197
function TblGetNumberOfRows(const tableP: TablePtr): Int16; syscall sysTrapTblGetNumberOfRows;
199
procedure TblSetCustomDrawProcedure(tableP: TablePtr; column: Int16; drawCallback: TableDrawItemFuncPtr); syscall sysTrapTblSetCustomDrawProcedure;
201
procedure TblSetLoadDataProcedure(tableP: TablePtr; column: Int16; loadDataCallback: TableLoadDataFuncPtr); syscall sysTrapTblSetLoadDataProcedure;
203
procedure TblSetSaveDataProcedure(tableP: TablePtr; column: Int16; saveDataCallback: TableSaveDataFuncPtr); syscall sysTrapTblSetSaveDataProcedure;
205
procedure TblGetBounds(const tableP: TablePtr; var rP: RectangleType); syscall sysTrapTblGetBounds;
207
procedure TblSetBounds(tableP: TablePtr; {const} var rP: RectangleType); syscall sysTrapTblSetBounds;
209
function TblGetRowHeight(const tableP: TablePtr; row: Int16): Coord; syscall sysTrapTblGetRowHeight;
211
procedure TblSetRowHeight(tableP: TablePtr; row: Int16; height: Coord); syscall sysTrapTblSetRowHeight;
213
function TblGetColumnWidth(const tableP: TablePtr; column: Int16): Coord; syscall sysTrapTblGetColumnWidth;
215
procedure TblSetColumnWidth(tableP: TablePtr; column: Int16; width: Coord); syscall sysTrapTblSetColumnWidth;
217
function TblGetColumnSpacing(const tableP: TablePtr; column: Int16): Coord; syscall sysTrapTblGetColumnSpacing;
219
procedure TblSetColumnSpacing(tableP: TablePtr; column: Int16; spacing: Coord); syscall sysTrapTblSetColumnSpacing;
221
function TblFindRowID(const tableP: TablePtr; id: UInt16; var rowP: Int16): Boolean; syscall sysTrapTblFindRowID;
223
function TblFindRowData(const tableP: TablePtr; data: UInt32; var rowP: Int16): Boolean; syscall sysTrapTblFindRowData;
225
function TblGetRowID(const tableP: TablePtr; row: Int16): UInt16; syscall sysTrapTblGetRowID;
227
procedure TblSetRowID(tableP: TablePtr; row, id: Int16); syscall sysTrapTblSetRowID;
229
function TblGetRowData(const tableP: TablePtr; row: Int16): UInt32; syscall sysTrapTblGetRowData;
231
procedure TblSetRowData(tableP: TablePtr; row: Int16; data: UInt32); syscall sysTrapTblSetRowData;
233
function TblRowInvalid(const tableP: TablePtr; row: Int16): Boolean; syscall sysTrapTblRowInvalid;
235
procedure TblMarkRowInvalid(tableP: TablePtr; row: Int16); syscall sysTrapTblMarkRowInvalid;
237
procedure TblMarkTableInvalid(tableP: TablePtr); syscall sysTrapTblMarkTableInvalid;
239
function TblGetSelection(const tableP: TablePtr; var rowP, columnP: Int16): Boolean; syscall sysTrapTblGetSelection;
241
procedure TblInsertRow(tableP: TablePtr; row: Int16); syscall sysTrapTblInsertRow;
243
procedure TblRemoveRow(tableP: TablePtr; row: Int16); syscall sysTrapTblRemoveRow;
245
procedure TblReleaseFocus(tableP: TablePtr); syscall sysTrapTblReleaseFocus;
247
function TblEditing(const tableP: TablePtr): Boolean; syscall sysTrapTblEditing;
249
function TblGetCurrentField(const tableP: TablePtr): FieldPtr; syscall sysTrapTblGetCurrentField;
251
procedure TblGrabFocus(tableP: TablePtr; row, column: Int16); syscall sysTrapTblGrabFocus;
253
procedure TblSetColumnEditIndicator(tableP: TablePtr; column: Int16; editIndicator: Boolean); syscall sysTrapTblSetColumnEditIndicator;
255
procedure TblSetRowStaticHeight(tableP: TablePtr; row: Int16; staticHeight: Boolean); syscall sysTrapTblSetRowStaticHeight;
257
procedure TblHasScrollBar(tableP: TablePtr; hasScrollBar: Boolean); syscall sysTrapTblHasScrollBar;
259
function TblGetItemFont(const tableP: TablePtr; row, column: Int16): FontID; syscall sysTrapTblGetItemFont;
261
procedure TblSetItemFont(tableP: TablePtr; row, column: Int16; fontID: FontID); syscall sysTrapTblSetItemFont;
263
function TblGetItemPtr(const tableP: TablePtr; row, column: Int16): Pointer; syscall sysTrapTblGetItemPtr;
265
function TblRowMasked(const tableP: TablePtr; row: Int16): Boolean; syscall sysTrapTblRowMasked;
267
procedure TblSetRowMasked(tableP: TablePtr; row: Int16; masked: Boolean); syscall sysTrapTblSetRowMasked;
269
procedure TblSetColumnMasked(tableP: TablePtr; column: Int16; masked: Boolean); syscall sysTrapTblSetColumnMasked;
271
function TblGetNumberOfColumns(const tableP: TablePtr): Int16; syscall sysTrapTblGetNumberOfColumns;
273
function TblGetTopRow(const tableP: TablePtr): Int16; syscall sysTrapTblGetTopRow;
275
procedure TblSetSelection(tableP: TablePtr; row, column: Int16); syscall sysTrapTblSetSelection;
b'\\ No newline at end of file'