topical media & game development
lib-of-vs-libs-QTDevWin-CIncludes-QD3DViewer.h / h
/*
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__ */
(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.