static void mac_updatekey(WindowPtr window) { #if TARGET_API_MAC_CARBON RgnHandle rgn; #endif BeginUpdate(window); #if TARGET_API_MAC_CARBON rgn = NewRgn(); GetPortVisibleRegion(GetWindowPort(window), rgn); UpdateDialog(GetDialogFromWindow(window), rgn); DisposeRgn(rgn); #else UpdateDialog(window, window->visRgn); #endif EndUpdate(window); }
void QTApp_Idle (WindowReference theWindow) { WindowObject myWindowObject = NULL; GrafPtr mySavedPort; GetPort(&mySavedPort); MacSetPort(QTFrame_GetPortFromWindowReference(theWindow)); myWindowObject = QTFrame_GetWindowObjectFromWindow(theWindow); if (myWindowObject != NULL) { MovieController myMC = NULL; myMC = (**myWindowObject).fController; if (myMC != NULL) { // run any idle-time tasks for the movie #if TARGET_OS_MAC // restore the cursor to the arrow // if it's outside the front movie window or outside the window's visible region if (theWindow == QTFrame_GetFrontMovieWindow()) { Rect myRect; Point myPoint; RgnHandle myVisRegion; Cursor myArrow; GetMouse(&myPoint); myVisRegion = NewRgn(); GetPortVisibleRegion(QTFrame_GetPortFromWindowReference(theWindow), myVisRegion); GetWindowPortBounds(theWindow, &myRect); if (!MacPtInRect(myPoint, &myRect) || !PtInRgn(myPoint, myVisRegion)) MacSetCursor(GetQDGlobalsArrow(&myArrow)); DisposeRgn(myVisRegion); } #endif // TARGET_OS_MAC } } // grant the sequence grabber some processor time if (gSeqGrabber != NULL) SGIdle(gSeqGrabber); MacSetPort(mySavedPort); }
void QTApp_Idle (WindowReference theWindow) { WindowObject myWindowObject = NULL; GrafPtr mySavedPort; GetPort(&mySavedPort); MacSetPort(QTFrame_GetPortFromWindowReference(theWindow)); myWindowObject = QTFrame_GetWindowObjectFromWindow(theWindow); if (myWindowObject != NULL) { MovieController myMC = NULL; myMC = (**myWindowObject).fController; if (myMC != NULL) { // run any idle-time tasks for the movie #if TARGET_OS_MAC // restore the cursor to the arrow // if it's outside the front movie window or outside the window's visible region if (theWindow == QTFrame_GetFrontMovieWindow()) { Rect myRect; Point myPoint; RgnHandle myVisRegion; Cursor myArrow; GetMouse(&myPoint); myVisRegion = NewRgn(); GetPortVisibleRegion(QTFrame_GetPortFromWindowReference(theWindow), myVisRegion); GetWindowPortBounds(theWindow, &myRect); if (!MacPtInRect(myPoint, &myRect) || !PtInRgn(myPoint, myVisRegion)) MacSetCursor(GetQDGlobalsArrow(&myArrow)); DisposeRgn(myVisRegion); } #endif // TARGET_OS_MAC } // see whether the user has added a text track behind our backs (e.g. by pasting some text) QTText_SyncWindowData(myWindowObject); } MacSetPort(mySavedPort); }
static void mac_updateeventlog(WindowPtr window) { Session *s = mac_windowsession(window); #if TARGET_API_MAC_CARBON RgnHandle visrgn; #endif SetPort((GrafPtr)GetWindowPort(window)); BeginUpdate(window); #if TARGET_API_MAC_CARBON visrgn = NewRgn(); GetPortVisibleRegion(GetWindowPort(window), visrgn); LUpdate(visrgn, s->eventlog); DisposeRgn(visrgn); #else LUpdate(window->visRgn, s->eventlog); #endif mac_draweventloggrowicon(s); EndUpdate(window); }
void ZoomRect(Boolean zoomLarger,Rect *smallRect, Rect *bigRect) { double firstStep,stepValue,trailer,zoomRatio; short i,step; Rect curRect; unsigned long ticks; Pattern grayPattern; //used in carbonization RgnHandle rgnHandle = NewRgn(); GrafPtr oldPort; Rect tempRect1; GetPort(&oldPort); SetPort(GetWindowPort(gWindow)); //PenPat(&qd.gray); PenPat(GetQDGlobalsGray(&grayPattern)); PenMode(patXor); firstStep=kZoomRatio; for (i=0; i<kNumSteps; i++) { firstStep *= kZoomRatio; } if (!zoomLarger) { zoomRatio = 1.0/kZoomRatio; firstStep = 1.0-firstStep; } else zoomRatio = kZoomRatio; trailer = firstStep; stepValue = firstStep; for (step=0; step<(kNumSteps+kRectsVisible); step++) { // draw new frame if (step<kNumSteps) { stepValue /= zoomRatio; CalcRect(&curRect,smallRect,bigRect,stepValue); FrameRect(&curRect); } // erase old frame if (step>=kRectsVisible) { trailer /= zoomRatio; CalcRect(&curRect,smallRect,bigRect,trailer); FrameRect(&curRect); } QDFlushPortBuffer(GetWindowPort(gWindow), GetPortVisibleRegion(GetWindowPort(gWindow), rgnHandle)); Delay(kDelayTicks,&ticks); } PenNormal(); DisposeRgn(rgnHandle); smallRect->top = bigRect->top = -1; EraseRect(GetPortBounds(GetWindowPort(gWindow), &tempRect1)); SetPort(oldPort); }
void shellupdatewindow (WindowPtr w) { /* 1/17/91 dmb: draw scrollbars, buttons, etc. before window contents */ hdlwindowinfo hinfo; register hdlwindowinfo hw; getwindowinfo (w, &hinfo); hw = hinfo; /*copy into register*/ if ((hinfo == nil) || (**hinfo).fldisposewhenpopped) { #ifdef MACVERSION BeginUpdate (w); EndUpdate (w); #endif return; } BeginUpdate (w); if (!shellpushglobals (w)) goto exit; //Code change by Timothy Paustian Monday, August 21, 2000 4:31:49 PM //Must pass a CGrafPtr to pushport on OS X to avoid a crash { CGrafPtr thePort; #if TARGET_API_MAC_CARBON == 1 thePort = GetWindowPort(w); #else thePort = (CGrafPtr)w; #endif pushport (thePort);/*7/7/90 DW: this probably is not necessary, shellpushglobals does it*/ } #ifdef MACVERSION if (!config.fldialog) /*if it's a dialog, the callback routine re-drew the controls*/ DrawControls (w); if (config.flvertscroll) showscrollbar ((**hw).vertscrollbar); /*make sure it is visible*/ shelldrawgrowicon (hw); if (config.flhorizscroll) showscrollbar ((**hw).horizscrollbar); //Code change by Timothy Paustian Saturday, April 29, 2000 11:07:46 PM //Changed to Opaque call for Carbon //This is working, but it is giving bact the coordinates in local not //global. It seems to make more sense to me so leave it. #if ACCESSOR_CALLS_ARE_FUNCTIONS == 1 { CGrafPtr thePort = GetWindowPort(w); (**hw).drawrgn = NewRgn(); //note we delete this below (**hw).drawrgn = GetPortVisibleRegion(thePort, (**hw).drawrgn); } #else //old code (**hw).drawrgn = (*w).visRgn; /*so updater knows what needs drawing*/ #endif #endif #ifdef WIN95VERSION // (**hw).drawrgn = getvisregion (w); pushcliprgn ((**hw).drawrgn, false); #endif if (shellrectneedsupdate (&(**hw).buttonsrect)) /*if window has an attached button list, draw it*/ shelldrawbuttons (); drawwindowmessage (w); // 4.11.97 dmb: it appears that under Windows we need to push the clipk here. // Most likely, we should be establishing this wider clip soon arter window // creation, one time. if (shellrectneedsupdate (&(**hw).contentrect)) (*shellglobals.updateroutine) (); #ifdef WIN95VERSION popclip (); DeleteObject ((**hw).drawrgn); #endif #ifdef MACVERSION //Code change by Timothy Paustian Saturday, April 29, 2000 11:11:12 PM //Changed to Opaque call for Carbon //Get rid of the drawrgn to prevent a memory leak #if ACCESSOR_CALLS_ARE_FUNCTIONS == 1 DisposeRgn((**hw).drawrgn); #endif #endif (**hw).drawrgn = nil; /*this is a temp, keep it nil normally*/ popport (); /*7/7/90 DW: see comment for pusport, above*/ shellpopglobals (); exit: EndUpdate (w); } /*shellupdatewindow*/