|
|
/*
File: QD3DViewer.h Contains: MacOS Viewer Controller Interface File. Version: Technology: Quickdraw 3D 1.6 Release: QuickTime 7.3 Copyright: (c) 2007 (c) 1995-1998 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
/*
* Q3ViewerGetVersion() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ 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) ** ** ** *****************************************************************************/ /*
* Q3ViewerGetReleaseVersion() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerGetReleaseVersion(unsigned long * releaseRevision);
/******************************************************************************
** ** ** Creation and destruction ** ** Note that this is not a QuickDraw 3D object ** ** ** *****************************************************************************/ /*
* Q3ViewerNew() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( TQ3ViewerObject ) Q3ViewerNew( CGrafPtr port, Rect * rect, unsigned long flags);
/*
* Q3ViewerDispose() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerDispose(TQ3ViewerObject theViewer);
/******************************************************************************
** ** ** Functions to attach data to a viewer ** ** ** *****************************************************************************/ /*
* Q3ViewerUseFile() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerUseFile( TQ3ViewerObject theViewer, long refNum);
/*
* Q3ViewerUseData() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerUseData( TQ3ViewerObject theViewer, void * data, long size);
/******************************************************************************
** ** ** Functions to write data out from the Viewer ** ** ** *****************************************************************************/ /*
* Q3ViewerWriteFile() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerWriteFile( TQ3ViewerObject theViewer, long refNum);
/*
* Q3ViewerWriteData() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( unsigned long ) Q3ViewerWriteData( TQ3ViewerObject theViewer, Handle data);
/******************************************************************************
** ** ** Use this function to force the Viewer to re-draw ** ** ** *****************************************************************************/ /*
* Q3ViewerDraw() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerDraw(TQ3ViewerObject theViewer);
/*
* Q3ViewerDrawContent() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerDrawContent(TQ3ViewerObject theViewer);
/*
* Q3ViewerDrawControlStrip() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerDrawControlStrip(TQ3ViewerObject theViewer);
/******************************************************************************
** ** ** Function used by the Viewer to filter and handle events ** ** ** *****************************************************************************/ /*
* Q3ViewerEvent() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ 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. ** ** ** *****************************************************************************/ /*
* Q3ViewerGetPict() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( PicHandle ) Q3ViewerGetPict(TQ3ViewerObject theViewer);
/******************************************************************************
** ** ** Calls for dealing with Buttons ** ** ** *****************************************************************************/ /*
* Q3ViewerGetButtonRect() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerGetButtonRect( TQ3ViewerObject theViewer, unsigned long button, Rect * rect);
/*
* Q3ViewerGetCurrentButton() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( unsigned long ) Q3ViewerGetCurrentButton(TQ3ViewerObject theViewer);
/*
* Q3ViewerSetCurrentButton() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerSetCurrentButton( TQ3ViewerObject theViewer, unsigned long button);
/******************************************************************************
** ** ** Functions to set/get the group to be displayed by the Viewer. ** ** ** *****************************************************************************/ /*
* Q3ViewerUseGroup() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerUseGroup( TQ3ViewerObject theViewer, TQ3GroupObject group);
/*
* Q3ViewerGetGroup() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( TQ3GroupObject ) Q3ViewerGetGroup(TQ3ViewerObject theViewer);
/******************************************************************************
** ** ** Functions to set/get the color used to clear the window ** ** ** *****************************************************************************/ /*
* Q3ViewerSetBackgroundColor() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerSetBackgroundColor( TQ3ViewerObject theViewer, TQ3ColorARGB * color);
/*
* Q3ViewerGetBackgroundColor() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerGetBackgroundColor( TQ3ViewerObject theViewer, TQ3ColorARGB * color);
/******************************************************************************
** ** ** Getting/Setting a Viewer's View object. ** ** ** *****************************************************************************/ /*
* Q3ViewerGetView() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( TQ3ViewObject ) Q3ViewerGetView(TQ3ViewerObject theViewer);
/*
* Q3ViewerRestoreView() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerRestoreView(TQ3ViewerObject theViewer);
/******************************************************************************
** ** ** Calls for setting/getting viewer flags ** ** ** *****************************************************************************/ /*
* Q3ViewerSetFlags() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerSetFlags( TQ3ViewerObject theViewer, unsigned long flags);
/*
* Q3ViewerGetFlags() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ 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). ** ** ** *****************************************************************************/ /*
* Q3ViewerSetBounds() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerSetBounds( TQ3ViewerObject theViewer, Rect * bounds);
/*
* Q3ViewerGetBounds() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerGetBounds( TQ3ViewerObject theViewer, Rect * bounds);
/*
* Q3ViewerSetDimension() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerSetDimension( TQ3ViewerObject theViewer, unsigned long width, unsigned long height);
/*
* Q3ViewerGetDimension() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerGetDimension( TQ3ViewerObject theViewer, unsigned long * width, unsigned long * height);
/*
* Q3ViewerGetMinimumDimension() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerGetMinimumDimension( TQ3ViewerObject theViewer, unsigned long * width, unsigned long * height);
/******************************************************************************
** ** ** Port related calls ** ** ** *****************************************************************************/ /*
* Q3ViewerSetPort() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerSetPort( TQ3ViewerObject theViewer, CGrafPtr port);
/*
* Q3ViewerGetPort() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ 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. ** ** ** *****************************************************************************/ /*
* Q3ViewerAdjustCursor() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( Boolean ) Q3ViewerAdjustCursor( TQ3ViewerObject theViewer, Point * pt);
/*
* Q3ViewerCursorChanged() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerCursorChanged(TQ3ViewerObject theViewer);
/******************************************************************************
** ** ** Returns the state of the viewer. See the constant defined at the ** ** top of this file. ** ** ** *****************************************************************************/ /*
* Q3ViewerGetState() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( unsigned long ) Q3ViewerGetState(TQ3ViewerObject theViewer);
/******************************************************************************
** ** ** Clipboard utilities ** ** ** *****************************************************************************/ /*
* Q3ViewerClear() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerClear(TQ3ViewerObject theViewer);
/*
* Q3ViewerCut() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerCut(TQ3ViewerObject theViewer);
/*
* Q3ViewerCopy() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerCopy(TQ3ViewerObject theViewer);
/*
* Q3ViewerPaste() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerPaste(TQ3ViewerObject theViewer);
/******************************************************************************
** ** ** New Event Model ** ** ** *****************************************************************************/ /*
* Q3ViewerMouseDown() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( Boolean ) Q3ViewerMouseDown( TQ3ViewerObject theViewer, long x, long y);
/*
* Q3ViewerContinueTracking() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( Boolean ) Q3ViewerContinueTracking( TQ3ViewerObject theViewer, long x, long y);
/*
* Q3ViewerMouseUp() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( Boolean ) Q3ViewerMouseUp( TQ3ViewerObject theViewer, long x, long y);
/*
* Q3ViewerHandleKeyEvent() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( Boolean ) Q3ViewerHandleKeyEvent( TQ3ViewerObject theViewer, EventRecord * evt);
/******************************************************************************
** ** ** CallBacks ** ** ** *****************************************************************************/ /*
* Q3ViewerSetDrawingCallbackMethod() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerSetDrawingCallbackMethod( TQ3ViewerObject theViewer, TQ3ViewerDrawingCallbackMethod callbackMethod, const void * data);
/*
* Q3ViewerSetWindowResizeCallback() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerSetWindowResizeCallback( TQ3ViewerObject theViewer, TQ3ViewerWindowResizeCallbackMethod windowResizeCallbackMethod, const void * data);
/*
* Q3ViewerSetPaneResizeNotifyCallback() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerSetPaneResizeNotifyCallback( TQ3ViewerObject theViewer, TQ3ViewerPaneResizeNotifyCallbackMethod paneResizeNotifyCallbackMethod, const void * data);
/******************************************************************************
** ** ** Undo ** ** ** *****************************************************************************/ /*
* Q3ViewerUndo() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerUndo(TQ3ViewerObject theViewer);
/*
* Q3ViewerGetUndoString() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( Boolean ) Q3ViewerGetUndoString( TQ3ViewerObject theViewer, char * str, unsigned long * cnt);
/******************************************************************************
** ** ** Camera Support ** ** ** *****************************************************************************/ /*
* Q3ViewerGetCameraCount() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerGetCameraCount( TQ3ViewerObject theViewer, unsigned long * cnt);
/*
* Q3ViewerSetCameraByNumber() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerSetCameraByNumber( TQ3ViewerObject theViewer, unsigned long cameraNo);
/*
* Q3ViewerSetCameraByView() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerSetCameraByView( TQ3ViewerObject theViewer, TQ3ViewerCameraView viewType);
/******************************************************************************
** ** ** Pop-up Button Options ** ** ** *****************************************************************************/ /*
* Q3ViewerSetRendererType() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerSetRendererType( TQ3ViewerObject theViewer, TQ3ObjectType rendererType);
/*
* Q3ViewerGetRendererType() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerGetRendererType( TQ3ViewerObject theViewer, TQ3ObjectType * rendererType);
/*
* Q3ViewerChangeBrightness() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerChangeBrightness( TQ3ViewerObject theViewer, float brightness);
/*
* Q3ViewerSetRemoveBackfaces() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerSetRemoveBackfaces( TQ3ViewerObject theViewer, TQ3Boolean remove);
/*
* Q3ViewerGetRemoveBackfaces() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerGetRemoveBackfaces( TQ3ViewerObject theViewer, TQ3Boolean * remove);
/*
* Q3ViewerSetPhongShading() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSErr ) Q3ViewerSetPhongShading( TQ3ViewerObject theViewer, TQ3Boolean phong);
/*
* Q3ViewerGetPhongShading() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available */ 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__ */
|