123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 |
- (******************************************************************************
- *
- * Copyright (c) 1994-2000 Palm, Inc. or its subsidiaries.
- * All rights reserved.
- *
- * File: Table.h
- *
- * Release: Palm OS SDK 4.0 (63220)
- *
- * Description:
- * This file defines table structures and routines.
- *
- * History:
- * September 1, 1994 Created by Art Lamb
- *
- *****************************************************************************)
- unit table;
- interface
- uses palmos, coretraps, rect, font, field, control;
- //-------------------------------------------------------------------
- // Table structures
- //-------------------------------------------------------------------
- const
- tableDefaultColumnSpacing = 1;
- tableNoteIndicatorWidth = 7;
- tableNoteIndicatorHeight = 11;
- tableMaxTextItemSize = 255; // does not incude terminating null
- tblUnusableRow = $ffff;
- // Display style of a table item
- //
- type
- tableItemStyles = Enum;
- const
- checkboxTableItem = 0;
- customTableItem = Succ(checkboxTableItem);
- dateTableItem = Succ(customTableItem);
- labelTableItem = Succ(dateTableItem);
- numericTableItem = Succ(labelTableItem);
- popupTriggerTableItem = Succ(numericTableItem);
- textTableItem = Succ(popupTriggerTableItem);
- textWithNoteTableItem = Succ(textTableItem);
- timeTableItem = Succ(textWithNoteTableItem);
- narrowTextTableItem = Succ(timeTableItem);
- tallCustomTableItem = Succ(narrowTextTableItem);
- type
- TableItemStyleType = tableItemStyles;
- TableItemType = record
- {$ifdef ALLOW_ACCESS_TO_INTERNALS_OF_TABLES} // These fields will not be available in the next OS release!
- itemType: TableItemStyleType;
- fontID: FontID; // font for drawing text
- intValue: Int16;
- ptr: PChar;
- {$endif}
- end;
- TableItemTag = TableItemType;
- TableItemPtr = ^TableItemType;
- // Draw item callback routine prototype, used only by customTableItem.
- TableDrawItemFuncType = procedure(tableP: Pointer; row, column: Int16; var bounds: RectangleType);
- TableDrawItemFuncPtr = TableDrawItemFuncType;
- // Load data callback routine prototype
- TableLoadDataFuncType = function(tableP: Pointer; row, column: Int16; editable: Boolean;
- var dataH: MemHandle; var dataOffset, dataSize: Int16; fld: FieldPtr): Err;
- TableLoadDataFuncPtr = TableLoadDataFuncType;
- // Save data callback routine prototype
- TableSaveDataFuncType = function(tableP: Pointer; row, column: Int16): Boolean;
- TableSaveDataFuncPtr = TableSaveDataFuncType;
- TableColumnAttrType = record
- {$ifdef ALLOW_ACCESS_TO_INTERNALS_OF_TABLES} // These fields will not be available in the next OS release!
- width: Coord; // width in pixels
- Bits: UInt16;
- {
- UInt16 reserved1 : 5;
- UInt16 masked : 1; // if both row + column masked, draw only grey box
- UInt16 editIndicator : 1;
- UInt16 usable : 1;
- UInt16 reserved2 : 8;
- }
- spacing: Coord; // space after column
- drawCallback: TableDrawItemFuncPtr;
- loadDataCallback: TableLoadDataFuncPtr;
- saveDataCallback: TableSaveDataFuncPtr;
- {$endif}
- end;
- TableColumnAttrTag = TableColumnAttrType;
- TableRowAttrType = record
- {$ifdef ALLOW_ACCESS_TO_INTERNALS_OF_TABLES} // These fields will not be available in the next OS release!
- id: UInt16;
- height: Coord; // row height in pixels
- data: UInt32;
- Bits: UInt16;
- {
- UInt16 reserved1 : 7;
- UInt16 usable : 1;
- UInt16 reserved2 : 4;
- UInt16 masked : 1; // if both row + column masked, draw only grey box
- UInt16 invalid : 1; // true if redraw needed
- UInt16 staticHeight : 1; // Set if height does not expands as text is entered
- UInt16 selectable : 1;
- }
- reserved3: UInt16;
- {$endif}
- end;
- TableRowAttrTag = TableRowAttrType;
- TableAttrType = record
- {$ifdef ALLOW_ACCESS_TO_INTERNALS_OF_TABLES} // These fields will not be available in the next OS release!
- Bits: UInt16;
- {
- UInt16 visible:1; // Set if drawn, used internally
- UInt16 editable:1; // Set if editable
- UInt16 editing:1; // Set if in edit mode
- UInt16 selected:1; // Set if the current item is selected
- UInt16 hasScrollBar:1; // Set if the table has a scroll bar
- UInt16 usable:1; // Set if in table is visible in the current form
- UInt16 reserved:10;
- }
- {$endif}
- end;
- TableAttrTag = TableAttrType;
- TableType = record
- {$ifdef ALLOW_ACCESS_TO_INTERNALS_OF_TABLES} // These fields will not be available in the next OS release!
- id: UInt16;
- bounds: RectangleType;
- attr: TableAttrType;
- numColumns: Int16;
- numRows: Int16;
- currentRow: Int16;
- currentColumn: Int16;
- topRow: Int16;
- columnAttrs: ^TableColumnAttrType;
- rowAttrs: ^TableRowAttrType;
- items: TableItemPtr;
- currentField: FieldType;
- {$endif}
- end;
- TablePtr = ^TableType;
- //-------------------------------------------------------------------
- // Table routines
- //-------------------------------------------------------------------
- procedure TblDrawTable(tableP: TablePtr); syscall sysTrapTblDrawTable;
- procedure TblRedrawTable(tableP: TablePtr); syscall sysTrapTblRedrawTable;
- procedure TblEraseTable(tableP: TablePtr); syscall sysTrapTblEraseTable;
- function TblHandleEvent(tableP: TablePtr; event: EventPtr): Boolean; syscall sysTrapTblHandleEvent;
- procedure TblGetItemBounds(const tableP: TablePtr; row, column: Int16; var rP: RectangleType); syscall sysTrapTblGetItemBounds;
- procedure TblSelectItem(tableP: TablePtr; row, column: Int16); syscall sysTrapTblSelectItem;
- function TblGetItemInt(const tableP: TablePtr; row, column: Int16): Int16; syscall sysTrapTblGetItemInt;
- procedure TblSetItemInt(tableP: TablePtr; row, column, value: Int16); syscall sysTrapTblSetItemInt;
- procedure TblSetItemPtr(tableP: TablePtr; row, column: Int16; value: Pointer); syscall sysTrapTblSetItemPtr;
- procedure TblSetItemStyle(tableP: TablePtr; row, column: Int16; type_: TableItemStyleType); syscall sysTrapTblSetItemStyle;
- procedure TblUnhighlightSelection(tableP: TablePtr); syscall sysTrapTblUnhighlightSelection;
- function TblRowUsable(const tableP: TablePtr; row: Int16): Boolean; syscall sysTrapTblRowUsable;
- procedure TblSetRowUsable(tableP: TablePtr; row: Int16; usable: Boolean); syscall sysTrapTblSetRowUsable;
- function TblGetLastUsableRow(const tableP: TablePtr): Int16; syscall sysTrapTblGetLastUsableRow;
- procedure TblSetColumnUsable(tableP: TablePtr; column: Int16; usable: Boolean); syscall sysTrapTblSetColumnUsable;
- procedure TblSetRowSelectable(tableP: TablePtr; row: Int16; selectable: Boolean); syscall sysTrapTblSetRowSelectable;
- function TblRowSelectable(const tableP: TablePtr; row: Int16): Boolean; syscall sysTrapTblRowSelectable;
- function TblGetNumberOfRows(const tableP: TablePtr): Int16; syscall sysTrapTblGetNumberOfRows;
- procedure TblSetCustomDrawProcedure(tableP: TablePtr; column: Int16; drawCallback: TableDrawItemFuncPtr); syscall sysTrapTblSetCustomDrawProcedure;
- procedure TblSetLoadDataProcedure(tableP: TablePtr; column: Int16; loadDataCallback: TableLoadDataFuncPtr); syscall sysTrapTblSetLoadDataProcedure;
- procedure TblSetSaveDataProcedure(tableP: TablePtr; column: Int16; saveDataCallback: TableSaveDataFuncPtr); syscall sysTrapTblSetSaveDataProcedure;
- procedure TblGetBounds(const tableP: TablePtr; var rP: RectangleType); syscall sysTrapTblGetBounds;
- procedure TblSetBounds(tableP: TablePtr; {const} var rP: RectangleType); syscall sysTrapTblSetBounds;
- function TblGetRowHeight(const tableP: TablePtr; row: Int16): Coord; syscall sysTrapTblGetRowHeight;
- procedure TblSetRowHeight(tableP: TablePtr; row: Int16; height: Coord); syscall sysTrapTblSetRowHeight;
- function TblGetColumnWidth(const tableP: TablePtr; column: Int16): Coord; syscall sysTrapTblGetColumnWidth;
- procedure TblSetColumnWidth(tableP: TablePtr; column: Int16; width: Coord); syscall sysTrapTblSetColumnWidth;
- function TblGetColumnSpacing(const tableP: TablePtr; column: Int16): Coord; syscall sysTrapTblGetColumnSpacing;
- procedure TblSetColumnSpacing(tableP: TablePtr; column: Int16; spacing: Coord); syscall sysTrapTblSetColumnSpacing;
- function TblFindRowID(const tableP: TablePtr; id: UInt16; var rowP: Int16): Boolean; syscall sysTrapTblFindRowID;
- function TblFindRowData(const tableP: TablePtr; data: UInt32; var rowP: Int16): Boolean; syscall sysTrapTblFindRowData;
- function TblGetRowID(const tableP: TablePtr; row: Int16): UInt16; syscall sysTrapTblGetRowID;
- procedure TblSetRowID(tableP: TablePtr; row, id: Int16); syscall sysTrapTblSetRowID;
- function TblGetRowData(const tableP: TablePtr; row: Int16): UInt32; syscall sysTrapTblGetRowData;
- procedure TblSetRowData(tableP: TablePtr; row: Int16; data: UInt32); syscall sysTrapTblSetRowData;
- function TblRowInvalid(const tableP: TablePtr; row: Int16): Boolean; syscall sysTrapTblRowInvalid;
- procedure TblMarkRowInvalid(tableP: TablePtr; row: Int16); syscall sysTrapTblMarkRowInvalid;
- procedure TblMarkTableInvalid(tableP: TablePtr); syscall sysTrapTblMarkTableInvalid;
- function TblGetSelection(const tableP: TablePtr; var rowP, columnP: Int16): Boolean; syscall sysTrapTblGetSelection;
- procedure TblInsertRow(tableP: TablePtr; row: Int16); syscall sysTrapTblInsertRow;
- procedure TblRemoveRow(tableP: TablePtr; row: Int16); syscall sysTrapTblRemoveRow;
- procedure TblReleaseFocus(tableP: TablePtr); syscall sysTrapTblReleaseFocus;
- function TblEditing(const tableP: TablePtr): Boolean; syscall sysTrapTblEditing;
- function TblGetCurrentField(const tableP: TablePtr): FieldPtr; syscall sysTrapTblGetCurrentField;
- procedure TblGrabFocus(tableP: TablePtr; row, column: Int16); syscall sysTrapTblGrabFocus;
- procedure TblSetColumnEditIndicator(tableP: TablePtr; column: Int16; editIndicator: Boolean); syscall sysTrapTblSetColumnEditIndicator;
- procedure TblSetRowStaticHeight(tableP: TablePtr; row: Int16; staticHeight: Boolean); syscall sysTrapTblSetRowStaticHeight;
- procedure TblHasScrollBar(tableP: TablePtr; hasScrollBar: Boolean); syscall sysTrapTblHasScrollBar;
- function TblGetItemFont(const tableP: TablePtr; row, column: Int16): FontID; syscall sysTrapTblGetItemFont;
- procedure TblSetItemFont(tableP: TablePtr; row, column: Int16; fontID: FontID); syscall sysTrapTblSetItemFont;
- function TblGetItemPtr(const tableP: TablePtr; row, column: Int16): Pointer; syscall sysTrapTblGetItemPtr;
- function TblRowMasked(const tableP: TablePtr; row: Int16): Boolean; syscall sysTrapTblRowMasked;
- procedure TblSetRowMasked(tableP: TablePtr; row: Int16; masked: Boolean); syscall sysTrapTblSetRowMasked;
- procedure TblSetColumnMasked(tableP: TablePtr; column: Int16; masked: Boolean); syscall sysTrapTblSetColumnMasked;
- function TblGetNumberOfColumns(const tableP: TablePtr): Int16; syscall sysTrapTblGetNumberOfColumns;
- function TblGetTopRow(const tableP: TablePtr): Int16; syscall sysTrapTblGetTopRow;
- procedure TblSetSelection(tableP: TablePtr; row, column: Int16); syscall sysTrapTblSetSelection;
- implementation
- end.
|