123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368 |
- (******************************************************************************
- *
- * Copyright (c) 1994-2000 Palm, Inc. or its subsidiaries.
- * All rights reserved.
- *
- * File: Event.h
- *
- * Release: Palm OS SDK 4.0 (63220)
- *
- * Description:
- * This file defines UI event structures and routines.
- *
- * History:
- * September 26, 1994 Created by Art Lamb
- * 07/14/99 jesse Separated from Event.h
- * 09/12/99 gap Add for new multi-tap implementation
- * 09/14/99 gap Removed EvtGetTrapState.
- * 10/28/99 kwk Added EvtKeydownIsVirtual macro.
- *
- *****************************************************************************)
- unit event_;
- interface
- uses palmos, coretraps, sysevent, control, day, field, list, scrollbar, table;
- type
- eventsEnum = WordEnum;
- const
- nilEvent = 0; // system level
- penDownEvent = Succ(nilEvent); // system level
- penUpEvent = Succ(penDownEvent); // system level
- penMoveEvent = Succ(penUpEvent); // system level
- keyDownEvent = Succ(penMoveEvent); // system level
- winEnterEvent = Succ(keyDownEvent); // system level
- winExitEvent = Succ(winEnterEvent); // system level
- ctlEnterEvent = Succ(winExitEvent);
- ctlExitEvent = Succ(ctlEnterEvent);
- ctlSelectEvent = Succ(ctlExitEvent);
- ctlRepeatEvent = Succ(ctlSelectEvent);
- lstEnterEvent = Succ(ctlRepeatEvent);
- lstSelectEvent = Succ(lstEnterEvent);
- lstExitEvent = Succ(lstSelectEvent);
- popSelectEvent = Succ(lstExitEvent);
- fldEnterEvent = Succ(popSelectEvent);
- fldHeightChangedEvent = Succ(fldEnterEvent);
- fldChangedEvent = Succ(fldHeightChangedEvent);
- tblEnterEvent = Succ(fldChangedEvent);
- tblSelectEvent = Succ(tblEnterEvent);
- daySelectEvent = Succ(tblSelectEvent);
- menuEvent = Succ(daySelectEvent);
- appStopEvent = 22; // system level
- frmLoadEvent = Succ(appStopEvent);
- frmOpenEvent = Succ(frmLoadEvent);
- frmGotoEvent = Succ(frmOpenEvent);
- frmUpdateEvent = Succ(frmGotoEvent);
- frmSaveEvent = Succ(frmUpdateEvent);
- frmCloseEvent = Succ(frmSaveEvent);
- frmTitleEnterEvent = Succ(frmCloseEvent);
- frmTitleSelectEvent = Succ(frmTitleEnterEvent);
- tblExitEvent = Succ(frmTitleSelectEvent);
- sclEnterEvent = Succ(tblExitEvent);
- sclExitEvent = Succ(sclEnterEvent);
- sclRepeatEvent = Succ(sclExitEvent);
- tsmConfirmEvent = 35; // system level
- tsmFepButtonEvent = Succ(tsmConfirmEvent); // system level
- tsmFepModeEvent = Succ(tsmFepButtonEvent); // system level
- //DOLATER - peter: remove this: frmTitleChangedEvent, // system level
- attnIndicatorEnterEvent = Succ(tsmFepModeEvent); // for attention manager's indicator
- attnIndicatorSelectEvent = Succ(attnIndicatorEnterEvent); // for attention manager's indicator
- // add future UI level events in this numeric space
- // to save room for new system level events
- menuCmdBarOpenEvent = $0800;
- menuOpenEvent = Succ(menuCmdBarOpenEvent);
- menuCloseEvent = Succ(menuOpenEvent);
- frmGadgetEnterEvent = Succ(menuCloseEvent);
- frmGadgetMiscEvent = Succ(frmGadgetEnterEvent);
- // <chg 2-25-98 RM> Equates added for library events
- firstINetLibEvent = $1000;
- firstWebLibEvent = $1100;
- // <chg 10/9/98 SCL> Changed firstUserEvent from 32767 (0x7FFF) to 0x6000
- // Enums are signed ints, so 32767 technically only allowed for ONE event.
- firstUserEvent = $6000;
- lastUserEvent = $7FFF;
- type
- ctlEnter = record
- controlID: UInt16;
- pControl: ControlPtr;
- end;
- ctlExit = record
- controlID: UInt16;
- pControl: ControlPtr;
- end;
- ctlSelect = record
- controlID: UInt16;
- pControl: ControlPtr;
- on: Boolean;
- reserved1: UInt8;
- value: UInt16; // used for slider controls only
- end;
- ctlRepeat = record
- controlID: UInt16;
- pControl: ControlPtr;
- time: UInt32;
- value: UInt16; // used for slider controls only
- end;
- fldEnter = record
- fieldID: UInt16;
- pField: FieldPtr;
- end;
- fldHeightChanged = record
- fieldID: UInt16;
- pField: FieldPtr;
- newHeight: Int16;
- currentPos: UInt16;
- end;
- fldChanged = record
- fieldID: UInt16;
- pField: ^FieldType;
- end;
- fldExit = record
- fieldID: UInt16;
- pField: ^FieldType;
- end;
- lstEnter = record
- listID: UInt16;
- pList: ^ListType;
- selection: Int16;
- end;
- lstExit = record
- listID: UInt16;
- pList: ListPtr;
- end;
- lstSelect = record
- listID: UInt16;
- pList: ^ListType;
- selection: Int16;
- end;
- tblEnter = record
- tableID: UInt16;
- pTable: TablePtr;
- row: Int16;
- column: Int16;
- end;
- tblExit = record
- tableID: UInt16;
- pTable: TablePtr;
- row: Int16;
- column: Int16;
- end;
- tblSelect = record
- tableID: UInt16;
- pTable: TablePtr;
- row: Int16;
- column: Int16;
- end;
- frmLoad = record
- formID: UInt16;
- end;
- frmOpen = record
- formID: UInt16;
- end;
- frmGoto = record
- formID: UInt16;
- recordNum: UInt16; // index of record that contain a match
- matchPos: UInt16; // postion in record of the match.
- matchLen: UInt16; // length of match.
- matchFieldNum: UInt16; // field number string was found int
- matchCustom: UInt32; // application specific info
- end;
- frmClose = record
- formID: UInt16;
- end;
- frmUpdate = record
- formID: UInt16;
- updateCode: UInt16; // Application specific
- end;
- frmTitleEnter = record
- formID: UInt16;
- end;
- frmTitleSelect = record
- formID: UInt16;
- end;
- attnIndicatorEnter = record
- formID: UInt16;
- end;
- attnIndicatorSelect = record
- formID: UInt16;
- end;
- daySelect = record
- pSelector: ^DaySelectorType;
- selection: Int16;
- useThisDate: Boolean;
- reserved1: UInt8;
- end;
- menu = record
- itemID: UInt16;
- end;
- popSelect = record
- controlID: UInt16;
- controlP: ^ControlType;
- listID: UInt16;
- listP: ^ListType;
- selection: Int16;
- priorSelection: Int16;
- end;
- sclEnter = record
- scrollBarID: UInt16;
- pScrollBar: ^ScrollBarType;
- end;
- sclExit = record
- scrollBarID: UInt16;
- pScrollBar: ^ScrollBarType;
- value: Int16;
- newValue: Int16;
- end;
- sclRepeat = record
- scrollBarID: UInt16;
- pScrollBar: ^ScrollBarType;
- value: Int16;
- newValue: Int16;
- time: Int32;
- end;
- menuCmdBarOpen = record
- preventFieldButtons: Boolean; // set to stop the field from automatically adding cut/copy/paste
- reserved: UInt8; // alignment padding
- end;
- menuOpen = record
- menuRscID: UInt16;
- //struct MenuBarType *pMenu;
- cause: Int16;
- end;
- gadgetEnter = record
- gadgetID: UInt16; // must be same as gadgetMisc
- gadgetP: Pointer{^FormGadgetType}; // must be same as gadgetMisc
- end;
- gadgetMisc = record
- gadgetID: UInt16; // must be same as gadgetEnter
- gadgetP: Pointer{^FormGadgetType}; // must be same as gadgetEnter
- selector: UInt16;
- dataP: Pointer;
- end;
- // The event record.
- type
- EventType = record
- eType: eventsEnum;
- penDown: Boolean;
- tapCount: UInt8;
- screenX: Int16;
- screenY: Int16;
- case Integer of
- 1: (generic: _GenericEventType);
- 2: (penUp: _PenUpEventType);
- 3: (keyDown: _KeyDownEventType);
- 4: (winEnter: _WinEnterEventType);
- 5: (winExit: _WinExitEventType);
- 6: (tsmConfirm: _TSMConfirmType);
- 7: (tsmFepButton: _TSMFepButtonType);
- 8: (tsmFepMode: _TSMFepModeEventType);
- 9: (ctlEnter: ctlEnter);
- 10: (ctlSelect: ctlSelect);
- 11: (ctlRepeat: ctlRepeat);
- 12: (ctlExit: ctlExit);
- 13: (fldEnter: fldEnter);
- 14: (fldHeightChanged: fldHeightChanged);
- 15: (fldChanged: fldChanged);
- 16: (fldExit: fldExit);
- 17: (lstEnter: lstEnter);
- 18: (lstExit: lstExit);
- 19: (lstSelect: lstSelect);
- 20: (tblEnter: tblEnter);
- 21: (tblExit: tblExit);
- 22: (tblSelect: tblSelect);
- 23: (frmLoad: frmLoad);
- 24: (frmOpen: frmOpen);
- 25: (frmGoto: frmGoto);
- 26: (frmClose: frmClose);
- 27: (frmUpdate: frmUpdate);
- 28: (frmTitleEnter: frmTitleEnter);
- 29: (frmTitleSelect: frmTitleSelect);
- 30: (attnIndicatorEnter: attnIndicatorEnter);
- 31: (attnIndicatorSelect: attnIndicatorSelect);
- 32: (daySelect: daySelect);
- 33: (menu: menu);
- 34: (popSelect: popSelect);
- 35: (sclEnter: sclEnter);
- 36: (sclExit: sclExit);
- 37: (sclRepeat: sclRepeat);
- 38: (menuCmdBarOpen: menuCmdBarOpen);
- 39: (menuOpen: menuOpen);
- 40: (gadgetEnter: gadgetEnter);
- 41: (gadgetMisc: gadgetMisc);
- end;
- TEvent = EventType;
- EventPtr = ^EventType;
- // Evaluate to true if <eventP> is a pointer to a virtual character key-
- // down event. We assume that the caller has already determined the event
- // is a keydown. WARNING!!! This macro is only safe to use on Palm OS 3.5
- // or later. With earlier versions of the OS, use TxtGlueCharIsVirtual()
- // in PalmOSGlue.lib
- function EvtKeydownIsVirtual(eventP: EventPtr): Boolean;
- //---------------------------------------------------------------------
- // Event Functions
- //---------------------------------------------------------------------
- procedure EvtAddEventToQueue(const event: EventPtr); syscall sysTrapEvtAddEventToQueue;
- procedure EvtAddUniqueEventToQueue(const eventP: EventPtr; id: UInt32; inPlace: Boolean); syscall sysTrapEvtAddUniqueEventToQueue;
- procedure EvtCopyEvent(const source: EventPtr; dest: EventPtr); syscall sysTrapEvtCopyEvent;
- procedure EvtGetEvent(var event: EventType; timeout: Int32); syscall sysTrapEvtGetEvent;
- function EvtEventAvail: Boolean; syscall sysTrapEvtEventAvail;
- procedure EvtGetPen(var pScreenX, pScreenY: Int16; var pPenDown: Boolean); syscall sysTrapEvtGetPen;
- implementation
- function EvtKeydownIsVirtual(eventP: EventPtr): Boolean;
- begin
- EvtKeydownIsVirtual := (eventP^.keyDown.modifiers and virtualKeyMask) <> 0
- end;
- end.
|