QD3DViewer.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:22k
- /*
- File: QD3DViewer.h
-
- Contains: MacOS Viewer Controller Interface File.
-
- Version: Technology: Quickdraw 3D 1.6
- Release: QuickTime 6.0.2
-
- Copyright: (c) 1995-2001 by Apple Computer, Inc., all rights reserved.
-
- Bugs?: For bug reports, consult the following page on
- the World Wide Web:
-
- http://developer.apple.com/bugreporter/
-
- */
- #ifndef __QD3DVIEWER__
- #define __QD3DVIEWER__
- #ifndef __QD3D__
- #include "QD3D.h"
- #endif
- #ifndef __QD3DGROUP__
- #include "QD3DGroup.h"
- #endif
- #if TARGET_OS_MAC
- #ifndef __EVENTS__
- #include "Events.h"
- #endif
- #ifndef __MACTYPES__
- #include "MacTypes.h"
- #endif
- #ifndef __QUICKDRAW__
- #include "Quickdraw.h"
- #endif
- #endif /* TARGET_OS_MAC */
- #if PRAGMA_ONCE
- #pragma once
- #endif
- #ifdef __cplusplus
- extern "C" {
- #endif
- #if PRAGMA_IMPORT
- #pragma import on
- #endif
- #if PRAGMA_STRUCT_ALIGN
- #pragma options align=power
- #elif PRAGMA_STRUCT_PACKPUSH
- #pragma pack(push, 2)
- #elif PRAGMA_STRUCT_PACK
- #pragma pack(2)
- #endif
- #if PRAGMA_ENUM_ALWAYSINT
- #if defined(__fourbyteints__) && !__fourbyteints__
- #define __QD3DVIEWER__RESTORE_TWOBYTEINTS
- #pragma fourbyteints on
- #endif
- #pragma enumsalwaysint on
- #elif PRAGMA_ENUM_OPTIONS
- #pragma option enum=int
- #elif PRAGMA_ENUM_PACK
- #if __option(pack_enums)
- #define __QD3DVIEWER__RESTORE_PACKED_ENUMS
- #pragma options(!pack_enums)
- #endif
- #endif
- typedef void * TQ3ViewerObject;
- typedef CALLBACK_API_C( TQ3Status , TQ3ViewerWindowResizeCallbackMethod )(TQ3ViewerObject theViewer, const void *data);
- typedef CALLBACK_API_C( TQ3Status , TQ3ViewerPaneResizeNotifyCallbackMethod )(TQ3ViewerObject theViewer, const void *data);
- #if TARGET_OS_MAC
- typedef CALLBACK_API_C( OSErr , TQ3ViewerDrawingCallbackMethod )(TQ3ViewerObject theViewer, const void *data);
- enum {
- kQ3ViewerShowBadge = 1 << 0,
- kQ3ViewerActive = 1 << 1,
- kQ3ViewerControllerVisible = 1 << 2,
- kQ3ViewerDrawFrame = 1 << 3,
- kQ3ViewerDraggingOff = 1 << 4,
- kQ3ViewerButtonCamera = 1 << 5,
- kQ3ViewerButtonTruck = 1 << 6,
- kQ3ViewerButtonOrbit = 1 << 7,
- kQ3ViewerButtonZoom = 1 << 8,
- kQ3ViewerButtonDolly = 1 << 9,
- kQ3ViewerButtonReset = 1 << 10,
- kQ3ViewerOutputTextMode = 1 << 11,
- kQ3ViewerDragMode = 1 << 12,
- kQ3ViewerDrawGrowBox = 1 << 13,
- kQ3ViewerDrawDragBorder = 1 << 14,
- kQ3ViewerDraggingInOff = 1 << 15,
- kQ3ViewerDraggingOutOff = 1 << 16,
- kQ3ViewerButtonOptions = 1 << 17,
- kQ3ViewerPaneGrowBox = 1 << 18,
- kQ3ViewerDefault = 1 << 31
- };
- enum {
- kQ3ViewerEmpty = 0,
- kQ3ViewerHasModel = 1 << 0,
- kQ3ViewerHasUndo = 1 << 1
- };
- enum TQ3ViewerCameraView {
- kQ3ViewerCameraRestore = 0,
- kQ3ViewerCameraFit = 1,
- kQ3ViewerCameraFront = 2,
- kQ3ViewerCameraBack = 3,
- kQ3ViewerCameraLeft = 4,
- kQ3ViewerCameraRight = 5,
- kQ3ViewerCameraTop = 6,
- kQ3ViewerCameraBottom = 7
- };
- typedef enum TQ3ViewerCameraView TQ3ViewerCameraView;
- /******************************************************************************
- ** **
- ** Return viewer version number **
- ** **
- *****************************************************************************/
- #if CALL_NOT_IN_CARBON
- EXTERN_API_C( OSErr )
- Q3ViewerGetVersion (unsigned long * majorRevision,
- unsigned long * minorRevision);
- /******************************************************************************
- ** **
- ** Return viewer release version number **
- ** (in 'vers' format - e.g. 0x01518000 ==> 1.5.1 release) **
- ** **
- *****************************************************************************/
- EXTERN_API_C( OSErr )
- Q3ViewerGetReleaseVersion (unsigned long * releaseRevision);
- /******************************************************************************
- ** **
- ** Creation and destruction **
- ** Note that this is not a QuickDraw 3D object **
- ** **
- *****************************************************************************/
- EXTERN_API_C( TQ3ViewerObject )
- Q3ViewerNew (CGrafPtr port,
- Rect * rect,
- unsigned long flags);
- EXTERN_API_C( OSErr )
- Q3ViewerDispose (TQ3ViewerObject theViewer);
- /******************************************************************************
- ** **
- ** Functions to attach data to a viewer **
- ** **
- *****************************************************************************/
- EXTERN_API_C( OSErr )
- Q3ViewerUseFile (TQ3ViewerObject theViewer,
- long refNum);
- EXTERN_API_C( OSErr )
- Q3ViewerUseData (TQ3ViewerObject theViewer,
- void * data,
- long size);
- /******************************************************************************
- ** **
- ** Functions to write data out from the Viewer **
- ** **
- *****************************************************************************/
- EXTERN_API_C( OSErr )
- Q3ViewerWriteFile (TQ3ViewerObject theViewer,
- long refNum);
- EXTERN_API_C( unsigned long )
- Q3ViewerWriteData (TQ3ViewerObject theViewer,
- Handle data);
- /******************************************************************************
- ** **
- ** Use this function to force the Viewer to re-draw **
- ** **
- *****************************************************************************/
- EXTERN_API_C( OSErr )
- Q3ViewerDraw (TQ3ViewerObject theViewer);
- EXTERN_API_C( OSErr )
- Q3ViewerDrawContent (TQ3ViewerObject theViewer);
- EXTERN_API_C( OSErr )
- Q3ViewerDrawControlStrip (TQ3ViewerObject theViewer);
- /******************************************************************************
- ** **
- ** Function used by the Viewer to filter and handle events **
- ** **
- *****************************************************************************/
- EXTERN_API_C( Boolean )
- Q3ViewerEvent (TQ3ViewerObject theViewer,
- EventRecord * evt);
- /******************************************************************************
- ** **
- ** This function returns a PICT of the contents of the **
- ** Viewer's window. The application should dispose the PICT. **
- ** **
- *****************************************************************************/
- EXTERN_API_C( PicHandle )
- Q3ViewerGetPict (TQ3ViewerObject theViewer);
- /******************************************************************************
- ** **
- ** Calls for dealing with Buttons **
- ** **
- *****************************************************************************/
- EXTERN_API_C( OSErr )
- Q3ViewerGetButtonRect (TQ3ViewerObject theViewer,
- unsigned long button,
- Rect * rect);
- EXTERN_API_C( unsigned long )
- Q3ViewerGetCurrentButton (TQ3ViewerObject theViewer);
- EXTERN_API_C( OSErr )
- Q3ViewerSetCurrentButton (TQ3ViewerObject theViewer,
- unsigned long button);
- /******************************************************************************
- ** **
- ** Functions to set/get the group to be displayed by the Viewer. **
- ** **
- *****************************************************************************/
- EXTERN_API_C( OSErr )
- Q3ViewerUseGroup (TQ3ViewerObject theViewer,
- TQ3GroupObject group);
- EXTERN_API_C( TQ3GroupObject )
- Q3ViewerGetGroup (TQ3ViewerObject theViewer);
- /******************************************************************************
- ** **
- ** Functions to set/get the color used to clear the window **
- ** **
- *****************************************************************************/
- EXTERN_API_C( OSErr )
- Q3ViewerSetBackgroundColor (TQ3ViewerObject theViewer,
- TQ3ColorARGB * color);
- EXTERN_API_C( OSErr )
- Q3ViewerGetBackgroundColor (TQ3ViewerObject theViewer,
- TQ3ColorARGB * color);
- /******************************************************************************
- ** **
- ** Getting/Setting a Viewer's View object. **
- ** **
- *****************************************************************************/
- EXTERN_API_C( TQ3ViewObject )
- Q3ViewerGetView (TQ3ViewerObject theViewer);
- EXTERN_API_C( OSErr )
- Q3ViewerRestoreView (TQ3ViewerObject theViewer);
- /******************************************************************************
- ** **
- ** Calls for setting/getting viewer flags **
- ** **
- *****************************************************************************/
- EXTERN_API_C( OSErr )
- Q3ViewerSetFlags (TQ3ViewerObject theViewer,
- unsigned long flags);
- EXTERN_API_C( unsigned long )
- Q3ViewerGetFlags (TQ3ViewerObject theViewer);
- /******************************************************************************
- ** **
- ** Calls related to bounds/dimensions. Bounds is the size of **
- ** the window. Dimensions can either be the Rect from the ViewHints **
- ** or the current dimensions of the window (if you do a Set). **
- ** **
- *****************************************************************************/
- EXTERN_API_C( OSErr )
- Q3ViewerSetBounds (TQ3ViewerObject theViewer,
- Rect * bounds);
- EXTERN_API_C( OSErr )
- Q3ViewerGetBounds (TQ3ViewerObject theViewer,
- Rect * bounds);
- EXTERN_API_C( OSErr )
- Q3ViewerSetDimension (TQ3ViewerObject theViewer,
- unsigned long width,
- unsigned long height);
- EXTERN_API_C( OSErr )
- Q3ViewerGetDimension (TQ3ViewerObject theViewer,
- unsigned long * width,
- unsigned long * height);
- EXTERN_API_C( OSErr )
- Q3ViewerGetMinimumDimension (TQ3ViewerObject theViewer,
- unsigned long * width,
- unsigned long * height);
- /******************************************************************************
- ** **
- ** Port related calls **
- ** **
- *****************************************************************************/
- EXTERN_API_C( OSErr )
- Q3ViewerSetPort (TQ3ViewerObject theViewer,
- CGrafPtr port);
- EXTERN_API_C( CGrafPtr )
- Q3ViewerGetPort (TQ3ViewerObject theViewer);
- /******************************************************************************
- ** **
- ** Adjust Cursor should be called from idle loop to allow the Viewer **
- ** to change the cursor according to the cursor position/object under **
- ** the cursor. **
- ** **
- *****************************************************************************/
- EXTERN_API_C( Boolean )
- Q3ViewerAdjustCursor (TQ3ViewerObject theViewer,
- Point * pt);
- EXTERN_API_C( OSErr )
- Q3ViewerCursorChanged (TQ3ViewerObject theViewer);
- /******************************************************************************
- ** **
- ** Returns the state of the viewer. See the constant defined at the **
- ** top of this file. **
- ** **
- *****************************************************************************/
- EXTERN_API_C( unsigned long )
- Q3ViewerGetState (TQ3ViewerObject theViewer);
- /******************************************************************************
- ** **
- ** Clipboard utilities **
- ** **
- *****************************************************************************/
- EXTERN_API_C( OSErr )
- Q3ViewerClear (TQ3ViewerObject theViewer);
- EXTERN_API_C( OSErr )
- Q3ViewerCut (TQ3ViewerObject theViewer);
- EXTERN_API_C( OSErr )
- Q3ViewerCopy (TQ3ViewerObject theViewer);
- EXTERN_API_C( OSErr )
- Q3ViewerPaste (TQ3ViewerObject theViewer);
- /******************************************************************************
- ** **
- ** New Event Model **
- ** **
- *****************************************************************************/
- EXTERN_API_C( Boolean )
- Q3ViewerMouseDown (TQ3ViewerObject theViewer,
- long x,
- long y);
- EXTERN_API_C( Boolean )
- Q3ViewerContinueTracking (TQ3ViewerObject theViewer,
- long x,
- long y);
- EXTERN_API_C( Boolean )
- Q3ViewerMouseUp (TQ3ViewerObject theViewer,
- long x,
- long y);
- EXTERN_API_C( Boolean )
- Q3ViewerHandleKeyEvent (TQ3ViewerObject theViewer,
- EventRecord * evt);
- /******************************************************************************
- ** **
- ** CallBacks **
- ** **
- *****************************************************************************/
- EXTERN_API_C( OSErr )
- Q3ViewerSetDrawingCallbackMethod (TQ3ViewerObject theViewer,
- TQ3ViewerDrawingCallbackMethod callbackMethod,
- const void * data);
- EXTERN_API_C( OSErr )
- Q3ViewerSetWindowResizeCallback (TQ3ViewerObject theViewer,
- TQ3ViewerWindowResizeCallbackMethod windowResizeCallbackMethod,
- const void * data);
- EXTERN_API_C( OSErr )
- Q3ViewerSetPaneResizeNotifyCallback (TQ3ViewerObject theViewer,
- TQ3ViewerPaneResizeNotifyCallbackMethod paneResizeNotifyCallbackMethod,
- const void * data);
- /******************************************************************************
- ** **
- ** Undo **
- ** **
- *****************************************************************************/
- EXTERN_API_C( OSErr )
- Q3ViewerUndo (TQ3ViewerObject theViewer);
- EXTERN_API_C( Boolean )
- Q3ViewerGetUndoString (TQ3ViewerObject theViewer,
- char * str,
- unsigned long * cnt);
- /******************************************************************************
- ** **
- ** Camera Support **
- ** **
- *****************************************************************************/
- EXTERN_API_C( OSErr )
- Q3ViewerGetCameraCount (TQ3ViewerObject theViewer,
- unsigned long * cnt);
- EXTERN_API_C( OSErr )
- Q3ViewerSetCameraByNumber (TQ3ViewerObject theViewer,
- unsigned long cameraNo);
- EXTERN_API_C( OSErr )
- Q3ViewerSetCameraByView (TQ3ViewerObject theViewer,
- TQ3ViewerCameraView viewType);
- /******************************************************************************
- ** **
- ** Pop-up Button Options **
- ** **
- *****************************************************************************/
- EXTERN_API_C( OSErr )
- Q3ViewerSetRendererType (TQ3ViewerObject theViewer,
- TQ3ObjectType rendererType);
- EXTERN_API_C( OSErr )
- Q3ViewerGetRendererType (TQ3ViewerObject theViewer,
- TQ3ObjectType * rendererType);
- EXTERN_API_C( OSErr )
- Q3ViewerChangeBrightness (TQ3ViewerObject theViewer,
- float brightness);
- EXTERN_API_C( OSErr )
- Q3ViewerSetRemoveBackfaces (TQ3ViewerObject theViewer,
- TQ3Boolean remove);
- EXTERN_API_C( OSErr )
- Q3ViewerGetRemoveBackfaces (TQ3ViewerObject theViewer,
- TQ3Boolean * remove);
- EXTERN_API_C( OSErr )
- Q3ViewerSetPhongShading (TQ3ViewerObject theViewer,
- TQ3Boolean phong);
- EXTERN_API_C( OSErr )
- Q3ViewerGetPhongShading (TQ3ViewerObject theViewer,
- TQ3Boolean * phong);
- #endif /* CALL_NOT_IN_CARBON */
- #endif /* TARGET_OS_MAC */
- #if PRAGMA_ENUM_ALWAYSINT
- #pragma enumsalwaysint reset
- #ifdef __QD3DVIEWER__RESTORE_TWOBYTEINTS
- #pragma fourbyteints off
- #endif
- #elif PRAGMA_ENUM_OPTIONS
- #pragma option enum=reset
- #elif defined(__QD3DVIEWER__RESTORE_PACKED_ENUMS)
- #pragma options(pack_enums)
- #endif
- #if PRAGMA_STRUCT_ALIGN
- #pragma options align=reset
- #elif PRAGMA_STRUCT_PACKPUSH
- #pragma pack(pop)
- #elif PRAGMA_STRUCT_PACK
- #pragma pack()
- #endif
- #ifdef PRAGMA_IMPORT_OFF
- #pragma import off
- #elif PRAGMA_IMPORT
- #pragma import reset
- #endif
- #ifdef __cplusplus
- }
- #endif
- #endif /* __QD3DVIEWER__ */