Interfaces/Q3UL.h

/*
 *
 * Interface for a utility library for QuickDraw 3D.
 *
 * Nick Thompson, nickt@apple.com
 * Send bug reports and feedback to devsupport@apple.com.
 *
 * ©1997 Apple Computer Inc, All Rights Reserved 
 *
 * Modification History:
 *
 */
 
#ifndef _Q3UL_H_
#define _Q3UL_H_
 
#include "QD3D.h"
#include "QD3DView.h"
 
/*
 * use this to turn debugging on
 */
#define         DEBUGGING   1
 
 
typedef         long        TQ3UL_WindowRef ;
 
 
/*------------------------------------------------------------------------------
 * types.
 */ 
 
/* start with some function types...  These are supplied by the client app */
 
/* get called to handle events associated with a window */
typedef void ( * TQ3UL_KeyHandler )( TQ3UL_WindowRef windowID, unsigned char key, short mouseX, short mouseY ) ;
typedef void ( * TQ3UL_MouseDownHandler )( TQ3UL_WindowRef windowID, short mouseX, short mouseY ) ;
typedef void ( * TQ3UL_MouseUpHandler )( TQ3UL_WindowRef windowID, short mouseX, short mouseY ) ;
typedef void ( * TQ3UL_MouseDragHandler )( TQ3UL_WindowRef windowID, short mouseX, short mouseY ) ;
 
/* get called when a window is closed */
typedef void ( * TQ3UL_CloseWindowHandler )( TQ3UL_WindowRef windowID ) ;
 
/* routine window maintenance */
typedef void ( * TQ3UL_RedrawHandler )( TQ3UL_WindowRef windowID, TQ3ViewObject theView ) ;
typedef void ( * TQ3UL_IdleHandler )( TQ3UL_WindowRef windowID ) ;
 
 
/*------------------------------------------------------------------------------
 * prototypes.
 */ 
 
 
TQ3Status Q3UL_Initialize( void ) ;
 
TQ3Status Q3UL_Terminate( void ) ;
 
void    Q3UL_SetPrivType( 
    TQ3UL_WindowRef windowID, 
    unsigned long refType) ;
 
unsigned long Q3UL_GetPrivType( 
    TQ3UL_WindowRef windowID ) ;
 
void    Q3UL_SetPrivData( 
    TQ3UL_WindowRef windowID, 
    void *priv) ;
 
void    *Q3UL_GetPrivData( 
    TQ3UL_WindowRef windowID ) ;
 
void    Q3UL_RegisterCloseWindowHandler( 
    TQ3UL_WindowRef             windowID, 
    TQ3UL_CloseWindowHandler    theCloseHandler ) ;
 
void    Q3UL_RegisterKeyHandler( 
    TQ3UL_WindowRef     windowID, 
    TQ3UL_KeyHandler    theKeyHandler ) ;
 
void    Q3UL_RegisterKeyHandler( 
    TQ3UL_WindowRef     windowID, 
    TQ3UL_KeyHandler    theKeyHandler ) ;
 
void Q3UL_RegisterMouseDownHandler( 
    TQ3UL_WindowRef         windowID, 
    TQ3UL_MouseDownHandler  theMouseDownHandler ) ;
 
void Q3UL_RegisterMouseUpHandler( 
    TQ3UL_WindowRef         windowID, 
    TQ3UL_MouseUpHandler    theMouseUpHandler ) ;
 
void Q3UL_RegisterMouseDragHandler( 
    TQ3UL_WindowRef         windowID, 
    TQ3UL_MouseDragHandler  theMouseDragHandler ) ;
    
void Q3UL_RegisterRedraw( 
    TQ3UL_WindowRef         windowID, 
    TQ3UL_RedrawHandler     theRedrawHandler ) ;
 
void Q3UL_RegisterIdle( 
    TQ3UL_WindowRef         windowID, 
    TQ3UL_IdleHandler       theIdleHandler ) ;
    
TQ3UL_WindowRef Q3UL_NewWindow(
    short width, 
    short height ) ;
    
void Q3UL_RedrawWindow(
    TQ3UL_WindowRef windowID ) ;
    
void Q3UL_DestroyWindow( 
    TQ3UL_WindowRef windowID ) ;
    
void Q3UL_ResizeFrontWindow( 
    short x, 
    short y ) ;
    
void Q3UL_ZoomFrontWindow() ;
 
void Q3UL_MoveFrontWindow( 
    short top, 
    short left ) ;
 
void Q3UL_MainEventLoop(void) ;
 
#endif