Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
Source/ViewFunctions.c
/* |
ViewFunctions.c |
Functions for the View menu command. |
© 1995 Apple Computer, Inc. |
*/ |
#include <Types.h> |
#include <QuickDraw.h> |
#include <Windows.h> |
#include "EventLoop.h" |
#include "MenuDispatch.h" |
#include <Files.h> |
#include "QD3DViewer.h" |
void ChooseView(short item); |
extern WindowPtr MainView; |
extern void AdjustMenuItems(void); |
void ChooseView(short item) |
{ |
OSErr anErr; |
TVCDemoDataHdl demoData; |
TQ3ViewerObject aViewer; |
if (FrontWindow() != MainView) |
goto ExitChooseView; |
demoData = (TVCDemoDataHdl)GetWRefCon(MainView); |
aViewer = (*demoData)->viewer1; |
switch(item) |
{ |
case cmdBadge: |
case cmdViewer: |
case cmdController: |
case cmdDraggingOff: |
case cmdBtnCamera: |
case cmdBtnTruck: |
case cmdBtnOrbit: |
case cmdBtnZoom: |
case cmdBtnDolly: |
case cmdFrame: |
{ |
unsigned long viewerFlags; |
viewerFlags = Q3ViewerGetFlags( aViewer ); |
switch(item) |
{ |
case cmdBadge: |
viewerFlags ^= kQ3ViewerShowBadge; |
break; |
case cmdViewer: |
viewerFlags ^= kQ3ViewerActive; |
break; |
case cmdController: |
viewerFlags ^= kQ3ViewerControllerVisible; |
break; |
case cmdDraggingOff: |
viewerFlags ^= kQ3ViewerDraggingOff; |
break; |
case cmdBtnCamera: |
viewerFlags ^= kQ3ViewerButtonCamera; |
break; |
case cmdBtnTruck: |
viewerFlags ^= kQ3ViewerButtonTruck; |
break; |
case cmdBtnOrbit: |
viewerFlags ^= kQ3ViewerButtonOrbit; |
break; |
case cmdBtnZoom: |
viewerFlags ^= kQ3ViewerButtonZoom; |
break; |
case cmdBtnDolly: |
viewerFlags ^= kQ3ViewerButtonDolly; |
break; |
case cmdFrame: |
viewerFlags ^= kQ3ViewerDrawFrame; |
break; |
} |
anErr = Q3ViewerSetFlags( aViewer, viewerFlags); |
SetPort(MainView); |
InvalRect(&MainView->portRect); |
AdjustMenuItems(); |
break; |
} |
case cmdFullView: |
{ |
Rect bounds; |
if ((*demoData)->containerStyle == kContainerFourView) |
{ |
Q3ViewerDispose((*demoData)->viewer2); |
Q3ViewerDispose((*demoData)->viewer3); |
Q3ViewerDispose((*demoData)->viewer4); |
} |
bounds = MainView->portRect; |
Q3ViewerSetBounds((*demoData)->viewer1, &bounds); |
(*demoData)->containerStyle = kContainerFull; |
InvalRect(&bounds); |
break; |
} |
case cmdInsetView: |
if ((*demoData)->containerStyle == kContainerFourView) |
{ |
Q3ViewerDispose((*demoData)->viewer2); |
Q3ViewerDispose((*demoData)->viewer3); |
Q3ViewerDispose((*demoData)->viewer4); |
} |
(*demoData)->containerStyle = kContainerInsetView; |
InvalRect(&MainView->portRect); |
break; |
case cmdFourView: |
if ((*demoData)->containerStyle != kContainerFourView) |
{ |
Rect bounds, vBounds; |
short width, height, centerH, centerV; |
bounds = MainView->portRect; |
width = bounds.right - bounds.left; |
height = bounds.bottom - bounds.top; |
centerH = width / 2; |
centerV = height / 2; |
vBounds = bounds; |
vBounds.right = centerH; |
vBounds.bottom = centerV; |
Q3ViewerSetBounds((*demoData)->viewer1, &vBounds); |
vBounds = bounds; |
vBounds.left = centerH; |
vBounds.bottom = centerV; |
aViewer = Q3ViewerNew((CGrafPtr)MainView, &vBounds, kQ3ViewerDefault); |
(*demoData)->viewer2 = aViewer; |
vBounds = bounds; |
vBounds.right = centerH; |
vBounds.top = centerV; |
aViewer = Q3ViewerNew((CGrafPtr)MainView, &vBounds, kQ3ViewerDefault); |
(*demoData)->viewer3 = aViewer; |
vBounds = bounds; |
vBounds.left = centerH; |
vBounds.top = centerV; |
aViewer = Q3ViewerNew((CGrafPtr)MainView, &vBounds, kQ3ViewerDefault); |
(*demoData)->viewer4 = aViewer; |
(*demoData)->containerStyle = kContainerFourView; |
InvalRect(&bounds); |
} |
break; |
default: |
break; |
} |
ExitChooseView: |
; |
} |
/* EOF */ |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-14