/****************************************************************************** * * Copyright (c) 1994-2004 PalmSource, Inc. All rights reserved. * * File: Form.h * * Release: eclipse 5 SDK (68K) R4. * * Description: * This file defines form structures and routines. * *****************************************************************************/ #ifndef __FORM_H__ #define __FORM_H__ #include #include #include #include #include #include #include #include #include #include #define noFocus 0xffff #define frmInvalidObjectId 0xffff #define frmNoSelectedControl 0xff // Update code send as part of a frmUpdate event. #define frmRedrawUpdateCode 0x8000 // Magic button IDs used by FrmCustomResponseAlert callbacks #define frmResponseCreate 1974 #define frmResponseQuit ((Int16) 0xBEEF) // Dynamic Input Area policies #define frmDIAPolicyStayOpen 0 #define frmDIAPolicyCustom 1 // Alert constants and structures enum alertTypes { informationAlert, confirmationAlert, warningAlert, errorAlert }; typedef enum alertTypes AlertType; typedef struct AlertTemplateTag #ifdef ALLOW_ACCESS_TO_INTERNALS_OF_FORMS // These fields will not be available in the next OS release! { UInt16 alertType; UInt16 helpRscID; UInt16 numButtons; UInt16 defaultButton; } #endif AlertTemplateType; // Types of object in a dialog box enum formObjects { frmFieldObj, frmControlObj, frmListObj, frmTableObj, frmBitmapObj, frmLineObj, frmFrameObj, frmRectangleObj, frmLabelObj, frmTitleObj, frmPopupObj, frmGraffitiStateObj, frmGadgetObj, frmScrollBarObj }; typedef enum formObjects FormObjectKind; typedef struct FormObjAttrTag #ifdef ALLOW_ACCESS_TO_INTERNALS_OF_FORMS // These fields will not be available in the next OS release! { UInt16 usable :1; // Set if part of ui UInt16 reserved :15; // pad it out } #endif FormObjAttrType; // Gadget support: #define formGadgetDrawCmd 0 // paramP is unspecified #define formGadgetEraseCmd 1 // paramP is unspecified #define formGadgetHandleEventCmd 2 // paramP is an EventType *for the relevant event. #define formGadgetDeleteCmd 3 // paramP is unspecified. // access to this is allowed only within the gadget callback, and not otherwise. typedef struct FormGadgetAttrTag { UInt16 usable :1; // Set if part of ui - "should be drawn" UInt16 extended :1; // Set if the structure is an "Extended" gadget (i.e., the 'handler' field is present) UInt16 visible :1; // Set if drawn - "has been drawn" or "must do work to erase" UInt16 reserved :13; // pad it out } FormGadgetAttrType; struct FormType; // forward reference to FormType so we can declare the handler type: struct FormGadgetTypeInCallback; // forward reference to FormGadgetTypeInCallback so we can declare the handler type: typedef Boolean (FormGadgetHandlerType) (struct FormGadgetTypeInCallback *gadgetP, UInt16 cmd, void *paramP); typedef struct FormGadgetType #ifdef ALLOW_ACCESS_TO_INTERNALS_OF_FORMS // These fields will not be available in the next OS release! { UInt16 id; FormGadgetAttrType attr; RectangleType rect; const void * data; FormGadgetHandlerType *handler; } #endif FormGadgetType; // access to this is allowed only within the gadget callback, and not otherwise. typedef struct FormGadgetTypeInCallback { UInt16 id; FormGadgetAttrType attr; RectangleType rect; const void * data; FormGadgetHandlerType *handler; } FormGadgetTypeInCallback; //This is used to check whether the FormGadgetTypeInCallback definition is available #define FORM_GADGET_TYPE_IN_CALLBACK_DEFINED // All of the smaller form objects: typedef struct FormBitmapTag #ifdef ALLOW_ACCESS_TO_INTERNALS_OF_FORMS // These fields will not be available in the next OS release! { FormObjAttrType attr; PointType pos; UInt16 rscID; } #endif FormBitmapType; typedef struct FormLineTag #ifdef ALLOW_ACCESS_TO_INTERNALS_OF_FORMS // These fields will not be available in the next OS release! { FormObjAttrType attr; PointType point1; PointType point2; } #endif FormLineType; typedef struct FormFrameTag #ifdef ALLOW_ACCESS_TO_INTERNALS_OF_FORMS // These fields will not be available in the next OS release! { UInt16 id; FormObjAttrType attr; RectangleType rect; UInt16 frameType; } #endif FormFrameType; typedef struct FormRectangleTag #ifdef ALLOW_ACCESS_TO_INTERNALS_OF_FORMS // These fields will not be available in the next OS release! { FormObjAttrType attr; RectangleType rect; } #endif FormRectangleType; typedef struct FormLabelTag #ifdef ALLOW_ACCESS_TO_INTERNALS_OF_FORMS // These fields will not be available in the next OS release! { UInt16 id; PointType pos; FormObjAttrType attr; FontID fontID; UInt8 reserved; Char * text; } #endif FormLabelType; typedef struct FormTitleTag #ifdef ALLOW_ACCESS_TO_INTERNALS_OF_FORMS // These fields will not be available in the next OS release! { RectangleType rect; Char * text; } #endif FormTitleType; typedef struct FormPopupTag #ifdef ALLOW_ACCESS_TO_INTERNALS_OF_FORMS // These fields will not be available in the next OS release! { UInt16 controlID; UInt16 listID; } #endif FormPopupType; typedef struct FormGraffitiStateTag #ifdef ALLOW_ACCESS_TO_INTERNALS_OF_FORMS // These fields will not be available in the next OS release! { PointType pos; } #endif FrmGraffitiStateType; typedef union FormObjectTag { void * ptr; FieldType * field; ControlType * control; GraphicControlType * graphicControl; SliderControlType * sliderControl; ListType * list; TableType * table; FormBitmapType * bitmap; // FormLineType * line; // FormFrameType * frame; // FormRectangleType * rectangle; FormLabelType * label; FormTitleType * title; FormPopupType * popup; FrmGraffitiStateType * grfState; FormGadgetType * gadget; ScrollBarType * scrollBar; } FormObjectType; // typedef FormObjectType *FormObjectPtr; typedef struct FormObjListTag #ifdef ALLOW_ACCESS_TO_INTERNALS_OF_FORMS // These fields will not be available in the next OS release! { FormObjectKind objectType; UInt8 reserved; FormObjectType object; } #endif FormObjListType; typedef struct FormAttrTag #ifdef ALLOW_ACCESS_TO_INTERNALS_OF_FORMS // These fields will not be available in the next OS release! { UInt16 usable :1; // Set if part of ui UInt16 enabled :1; // Set if interactable (not grayed out) UInt16 visible :1; // Set if drawn, used internally UInt16 dirty :1; // Set if dialog has been modified UInt16 saveBehind :1; // Set if bits behind form are save when form ids drawn UInt16 graffitiShift :1; // Set if graffiti shift indicator is supported UInt16 globalsAvailable :1; // Set by Palm OS if globals are available for the form event handler UInt16 doingDialog :1; // FrmDoDialog is using for nested event loop UInt16 exitDialog :1; // tells FrmDoDialog to bail out and stop using this form UInt16 attnIndicator :1; // Set if attention indicator is supported UInt16 reserved :6; // pad to 16 UInt16 frmDIAPolicy :1; // set if custom form policy UInt16 inputAreaState :3; // maps to PINInputAreaStateType UInt16 statusState :1; // if set, control bar open UInt16 inputTrigger :1; // maps to PINInputTriggerStateType UInt16 orientation :3; // reserved for future use UInt16 orientationTrigger :1; // reserved for future use UInt16 reserved2 :6; } #endif FormAttrType; typedef Boolean FormEventHandlerType (EventType *eventP); typedef FormEventHandlerType *FormEventHandlerPtr; typedef struct FormType #ifdef ALLOW_ACCESS_TO_INTERNALS_OF_FORMS // These fields will not be available in the next OS release! { WindowType window; UInt16 formId; FormAttrType attr; WinHandle bitsBehindForm; FormEventHandlerType * handler; UInt16 focus; UInt16 defaultButton; UInt16 helpRscId; UInt16 menuRscId; UInt16 numObjects; FormObjListType * objects; } #endif FormType; typedef FormType *FormPtr; // FormActiveStateType: this structure is passed to FrmActiveState for // saving and restoring active form/window state; this structure's // contents are abstracted because the contents will differ significantly // as PalmOS evolves // Added for PalmOS 3.0 typedef struct FormActiveStateType { UInt16 data[11]; } FormActiveStateType; // FrmCustomResponseAlert callback routine prototype typedef Boolean FormCheckResponseFuncType (Int16 button, Char * attempt); typedef FormCheckResponseFuncType *FormCheckResponseFuncPtr; #define FRM_NAV_TRAP(frmNavSelectorNum) \ _SYSTEM_API(_CALL_WITH_UNPOPPED_16BIT_SELECTOR)( \ _SYSTEM_TABLE, sysTrapNavSelector, frmNavSelectorNum) // 5way nav trap selectors #define NavSelectorFrmCountObjectsInNavOrder 0x0 #define NavSelectorFrmGetNavOrder 0x1 #define NavSelectorFrmSetNavOrder 0x2 #define NavSelectorFrmGetNavEntry 0x3 #define NavSelectorFrmSetNavEntry 0x4 #define NavSelectorFrmGetNavState 0x5 #define NavSelectorFrmSetNavState 0x6 #define NavSelectorFrmNavDrawFocusRing 0x7 #define NavSelectorFrmNavRemoveFocusRing 0x8 #define NavSelectorFrmNavGetFocusRingInfo 0x9 #define NavSelectorFrmNavObjectTakeFocus 0xA // 5way nav FrmNavHeaderFlagsType typedef UInt32 FrmNavHeaderFlagsType; #define kFrmNavHeaderFlagsObjectFocusStartState 0x00000001 #define kFrmNavHeaderFlagsAppFocusStartState 0x00000002 #define kFrmNavHeaderFlagsAutoGenerated 0x80000000 #define kFrmNavHeaderFlagsStartStateMask 0x00000003 #define kFrmNavHeaderFlagsDefaultStartStateValue 0x00000000 #define kFrmNavHeaderFlagsObjectFocusStartStateValue 0x00000001 #define kFrmNavHeaderFlagsAppFocusStartStateValue 0x00000002 #define kFrmNavHeaderFlagsInvalidStartStateValue 0x00000003 // 5way nav FrmNavObjectFlagsType typedef UInt16 FrmNavObjectFlagsType; #define kFrmNavObjectFlagsSkip 0x0001 #define kFrmNavObjectFlagsForceInteractionMode 0x0002 #define kFrmNavObjectFlagsIsBigButton 0x8000 // 5way nav FrmNavStateFlagsType typedef UInt32 FrmNavStateFlagsType; #define kFrmNavStateFlagsInteractionMode 0x00000001 #define kFrmNavStateFlagsObjectFocusMode 0x00000002 // 5way nav FrmNavOrderEntryTag typedef struct FrmNavOrderEntryTag { UInt16 objectID; FrmNavObjectFlagsType objectFlags; UInt16 aboveObjectID; UInt16 belowObjectID; } FrmNavOrderEntryType; // 5way nav FrmNavHeaderTag typedef struct FrmNavHeaderTag { UInt16 version; // This is version 1 UInt16 numberOfObjects; UInt16 headerSizeInBytes; // 20 for the version 1 structure UInt16 listElementSizeInBytes; // 8 for the version 1 structure FrmNavHeaderFlagsType navFlags; UInt16 initialObjectIDHint; UInt16 jumpToObjectIDHint; UInt16 bottomLeftObjectIDHint; UInt16 padding1; } FrmNavHeaderType; #define kFrmNavInfoVersion 1 // 5way nav focus ring style enum FrmNavFocusRingStyleEnumTag { frmNavFocusRingStyleObjectTypeDefault = 0, frmNavFocusRingStyleSquare = 1, frmNavFocusRingStyleRound = 2, frmNavFocusRingStyleHorizontalBars = 3, frmNavFocusRingStyleInvalid = 0xFFFF }; typedef UInt16 FrmNavFocusRingStyleEnum; #define frmNavFocusRingNoExtraInfo ((Int16)0xFFFF) // error codes #define uilibErrInvalidParam (uilibErrorClass | 1) #define uilibErrCurrentFocusInvalid (uilibErrorClass | 2) #define uilibErrObjectFocusModeOff (uilibErrorClass | 3) #define uilibErrObjectNotFound (uilibErrorClass | 4) #define uilibErrNoNavInfoForForm (uilibErrorClass | 5) #define uilibErrInvalidFocusObject (uilibErrorClass | 6) #define uilibErrFormDoesNotHaveFocus (uilibErrorClass | 7) //----------------------------------------------- // Macros //----------------------------------------------- #if ERROR_CHECK_LEVEL == ERROR_CHECK_FULL #define ECFrmValidatePtr(formP) FrmValidatePtr(formP) #else #define ECFrmValidatePtr(formP) #endif //-------------------------------------------------------------------- // // Form Function // //-------------------------------------------------------------------- #ifdef __cplusplus extern "C" { #endif extern FormType * FrmInitForm (UInt16 rscID) SYS_TRAP(sysTrapFrmInitForm); extern void FrmDeleteForm (FormType *formP) SYS_TRAP(sysTrapFrmDeleteForm); extern void FrmDrawForm (FormType *formP) SYS_TRAP(sysTrapFrmDrawForm); extern void FrmEraseForm (FormType *formP) SYS_TRAP(sysTrapFrmEraseForm); extern FormType * FrmGetActiveForm (void) SYS_TRAP(sysTrapFrmGetActiveForm); extern void FrmSetActiveForm (FormType *formP) SYS_TRAP(sysTrapFrmSetActiveForm); extern UInt16 FrmGetActiveFormID (void) SYS_TRAP(sysTrapFrmGetActiveFormID); extern FieldType* FrmGetActiveField(const FormType* formP) SYS_TRAP(sysTrapFrmGetActiveField); extern Boolean FrmGetUserModifiedState (const FormType *formP) SYS_TRAP(sysTrapFrmGetUserModifiedState); extern void FrmSetNotUserModified (FormType *formP) SYS_TRAP(sysTrapFrmSetNotUserModified); extern UInt16 FrmGetFocus (const FormType *formP) SYS_TRAP(sysTrapFrmGetFocus); extern void FrmSetFocus (FormType *formP, UInt16 fieldIndex) SYS_TRAP(sysTrapFrmSetFocus); extern Boolean FrmHandleEvent (FormType *formP, EventType *eventP) SYS_TRAP(sysTrapFrmHandleEvent); extern void FrmGetFormBounds (const FormType *formP, RectangleType *rP) SYS_TRAP(sysTrapFrmGetFormBounds); extern WinHandle FrmGetWindowHandle (const FormType *formP) SYS_TRAP(sysTrapFrmGetWindowHandle); extern UInt16 FrmGetFormId (const FormType *formP) SYS_TRAP(sysTrapFrmGetFormId); extern FormType *FrmGetFormPtr (UInt16 formId) SYS_TRAP(sysTrapFrmGetFormPtr); extern FormType *FrmGetFirstForm (void) SYS_TRAP(sysTrapFrmGetFirstForm); extern UInt16 FrmGetNumberOfObjects (const FormType *formP) SYS_TRAP(sysTrapFrmGetNumberOfObjects); extern UInt16 FrmGetObjectIndex (const FormType *formP, UInt16 objID) SYS_TRAP(sysTrapFrmGetObjectIndex); extern UInt16 FrmGetObjectIndexFromPtr (const FormType *formP, void* objP) SYS_TRAP(sysTrapFrmGetObjectIndexFromPtr); extern UInt16 FrmGetObjectId (const FormType *formP, UInt16 objIndex) SYS_TRAP(sysTrapFrmGetObjectId); extern FormObjectKind FrmGetObjectType (const FormType *formP, UInt16 objIndex) SYS_TRAP(sysTrapFrmGetObjectType); extern void *FrmGetObjectPtr (const FormType *formP, UInt16 objIndex) SYS_TRAP(sysTrapFrmGetObjectPtr); extern void FrmGetObjectBounds (const FormType *formP, UInt16 objIndex, RectangleType *rP) SYS_TRAP(sysTrapFrmGetObjectBounds); extern void FrmHideObject (FormType *formP, UInt16 objIndex) SYS_TRAP(sysTrapFrmHideObject); extern void FrmShowObject (FormType *formP, UInt16 objIndex) SYS_TRAP(sysTrapFrmShowObject); extern void FrmGetObjectPosition (const FormType *formP, UInt16 objIndex, Coord *x, Coord *y) SYS_TRAP(sysTrapFrmGetObjectPosition); extern void FrmSetObjectPosition (FormType *formP, UInt16 objIndex, Coord x, Coord y) SYS_TRAP(sysTrapFrmSetObjectPosition); extern void FrmSetObjectBounds (FormType *formP, UInt16 objIndex, const RectangleType *bounds) SYS_TRAP(sysTrapFrmSetObjectBounds); extern Int16 FrmGetControlValue (const FormType *formP, UInt16 objIndex) SYS_TRAP(sysTrapFrmGetControlValue); extern void FrmSetControlValue (const FormType *formP, UInt16 objIndex, Int16 newValue) SYS_TRAP(sysTrapFrmSetControlValue); extern UInt16 FrmGetControlGroupSelection (const FormType *formP, UInt8 groupNum) SYS_TRAP(sysTrapFrmGetControlGroupSelection); extern void FrmSetControlGroupSelection (const FormType *formP, UInt8 groupNum, UInt16 controlID) SYS_TRAP(sysTrapFrmSetControlGroupSelection); extern void FrmCopyLabel (FormType *formP, UInt16 labelID, const Char *newLabel) SYS_TRAP(sysTrapFrmCopyLabel); extern const Char *FrmGetLabel (const FormType *formP, UInt16 labelID) SYS_TRAP(sysTrapFrmGetLabel); extern void FrmSetCategoryLabel (const FormType *formP, UInt16 objIndex, Char *newLabel) SYS_TRAP(sysTrapFrmSetCategoryLabel); extern const Char *FrmGetTitle (const FormType *formP) SYS_TRAP(sysTrapFrmGetTitle); extern void FrmSetTitle (FormType *formP, Char *newTitle) SYS_TRAP(sysTrapFrmSetTitle); extern void FrmCopyTitle (FormType *formP, const Char *newTitle) SYS_TRAP(sysTrapFrmCopyTitle); extern void *FrmGetGadgetData (const FormType *formP, UInt16 objIndex) SYS_TRAP(sysTrapFrmGetGadgetData); extern void FrmSetGadgetData (FormType *formP, UInt16 objIndex, const void *data) SYS_TRAP(sysTrapFrmSetGadgetData); extern void FrmSetGadgetHandler (FormType *formP, UInt16 objIndex, FormGadgetHandlerType *attrP) SYS_TRAP(sysTrapFrmSetGadgetHandler); extern UInt16 FrmDoDialog (FormType *formP) SYS_TRAP(sysTrapFrmDoDialog); extern UInt16 FrmAlert (UInt16 alertId) SYS_TRAP(sysTrapFrmAlert); extern UInt16 FrmCustomAlert (UInt16 alertId, const Char *s1, const Char *s2, const Char *s3) SYS_TRAP(sysTrapFrmCustomAlert); extern void FrmHelp (UInt16 helpMsgId) SYS_TRAP(sysTrapFrmHelp); extern void FrmUpdateScrollers (FormType *formP, UInt16 upIndex, UInt16 downIndex, Boolean scrollableUp, Boolean scrollableDown) SYS_TRAP(sysTrapFrmUpdateScrollers); extern Boolean FrmVisible (const FormType *formP) SYS_TRAP(sysTrapFrmVisible); extern void FrmSetEventHandler (FormType *formP, FormEventHandlerType *handler) SYS_TRAP(sysTrapFrmSetEventHandler); extern Boolean FrmDispatchEvent (EventType *eventP) SYS_TRAP(sysTrapFrmDispatchEvent); extern void FrmPopupForm (UInt16 formId) SYS_TRAP(sysTrapFrmPopupForm); extern void FrmGotoForm (UInt16 formId) SYS_TRAP(sysTrapFrmGotoForm); extern void FrmUpdateForm (UInt16 formId, UInt16 updateCode) SYS_TRAP(sysTrapFrmUpdateForm); extern void FrmReturnToForm (UInt16 formId) SYS_TRAP(sysTrapFrmReturnToForm); extern void FrmCloseAllForms (void) SYS_TRAP(sysTrapFrmCloseAllForms); extern void FrmSaveAllForms (void) SYS_TRAP(sysTrapFrmSaveAllForms); extern Boolean FrmPointInTitle (const FormType *formP, Coord x, Coord y) SYS_TRAP(sysTrapFrmPointInTitle); extern void FrmSetMenu (FormType *formP, UInt16 menuRscID) SYS_TRAP(sysTrapFrmSetMenu); extern Boolean FrmValidatePtr (const FormType *formP) SYS_TRAP(sysTrapFrmValidatePtr); extern Err FrmAddSpaceForObject (FormType **formPP, MemPtr *objectPP, FormObjectKind objectKind, UInt16 objectSize) SYS_TRAP(sysTrapFrmAddSpaceForObject); extern Err FrmRemoveObject (FormType **formPP, UInt16 objIndex) SYS_TRAP(sysTrapFrmRemoveObject); extern FormType *FrmNewForm (UInt16 formID, const Char *titleStrP, Coord x, Coord y, Coord width, Coord height, Boolean modal, UInt16 defaultButton, UInt16 helpRscID, UInt16 menuRscID) SYS_TRAP(sysTrapFrmNewForm); extern FormLabelType *FrmNewLabel (FormType **formPP, UInt16 ID, const Char *textP, Coord x, Coord y, FontID font) SYS_TRAP(sysTrapFrmNewLabel); extern FormBitmapType *FrmNewBitmap (FormType **formPP, UInt16 ID, UInt16 rscID, Coord x, Coord y) SYS_TRAP(sysTrapFrmNewBitmap); extern FormGadgetType *FrmNewGadget (FormType **formPP, UInt16 id, Coord x, Coord y, Coord width, Coord height) SYS_TRAP(sysTrapFrmNewGadget); extern Err FrmActiveState (FormActiveStateType *stateP, Boolean save) SYS_TRAP(sysTrapFrmActiveState); extern UInt16 FrmCustomResponseAlert (UInt16 alertId, const Char *s1, const Char *s2, const Char *s3, Char *entryStringBuf, Int16 entryStringBufLength, FormCheckResponseFuncPtr callback) SYS_TRAP(sysTrapFrmCustomResponseAlert); extern FrmGraffitiStateType *FrmNewGsi (FormType **formPP, Coord x, Coord y) SYS_TRAP(sysTrapFrmNewGsi); #define FrmSaveActiveState(stateP) FrmActiveState(stateP, true) #define FrmRestoreActiveState(stateP) FrmActiveState(stateP, false) UInt16 FrmGetDIAPolicyAttr (FormPtr formP) PINS_TRAP(pinFrmGetDIAPolicyAttr); Err FrmSetDIAPolicyAttr (FormPtr formP, UInt16 diaPolicy) PINS_TRAP(pinFrmSetDIAPolicyAttr); UInt16 FrmCountObjectsInNavOrder (const FormType * formP) FRM_NAV_TRAP(NavSelectorFrmCountObjectsInNavOrder); Err FrmGetNavOrder (const FormType* formP, FrmNavHeaderType* navHeaderP, FrmNavOrderEntryType* navOrderP, UInt16* numObjectsP) FRM_NAV_TRAP(NavSelectorFrmGetNavOrder); Err FrmSetNavOrder (FormType* formP, FrmNavHeaderType* navHeaderP, FrmNavOrderEntryType* navOrderP) FRM_NAV_TRAP(NavSelectorFrmSetNavOrder); Err FrmGetNavEntry (const FormType* formP, UInt16 targetObjectID, UInt16* afterObjectIDP, UInt16* aboveObjectIDP, UInt16* belowObjectIDP, FrmNavObjectFlagsType* objectFlagsP) FRM_NAV_TRAP(NavSelectorFrmGetNavEntry); Err FrmSetNavEntry (FormType* formP, UInt16 targetObjectID, UInt16 afterObjectID, UInt16 aboveObjectID, UInt16 belowObjectID, FrmNavObjectFlagsType objectFlags) FRM_NAV_TRAP(NavSelectorFrmSetNavEntry); Err FrmGetNavState (const FormType* formP, FrmNavStateFlagsType* stateFlagsP) FRM_NAV_TRAP(NavSelectorFrmGetNavState); Err FrmSetNavState (FormType* formP, FrmNavStateFlagsType stateFlags) FRM_NAV_TRAP(NavSelectorFrmSetNavState); Err FrmNavGetFocusRingInfo (const FormType* formP, UInt16* objectIDP, Int16* extraInfoP, RectangleType* boundsInsideRingP, FrmNavFocusRingStyleEnum* ringStyleP) FRM_NAV_TRAP(NavSelectorFrmNavGetFocusRingInfo); Err FrmNavDrawFocusRing (FormType* formP, UInt16 objectID, Int16 extraInfo, RectangleType* boundsInsideRingP, FrmNavFocusRingStyleEnum ringStyle, Boolean forceRestore) FRM_NAV_TRAP(NavSelectorFrmNavDrawFocusRing); Err FrmNavRemoveFocusRing (FormType* formP) FRM_NAV_TRAP(NavSelectorFrmNavRemoveFocusRing); void FrmNavObjectTakeFocus (const FormType* formP, UInt16 objID) FRM_NAV_TRAP(NavSelectorFrmNavObjectTakeFocus); #ifdef __cplusplus } #endif #endif // __FORM_H__