1 Reply Latest reply on Apr 3, 2016 1:28 PM by Rick E Johnson

    GetCursor/SetCursor out of scope?

    Rick E Johnson Level 1

      I know most would have asked this question years ago, but I'm tweaking a CS3 plugin for a friend who's still using CS5. I set up a 2008 MacBook Pro with MacOS X 10.6.8, Xcode 3.2.6, AI CS3 SDK, OS X 10.5 SDK, GCC 4.2 compiler, and Intel target. I'd expected fewer errors on such a retro system, but I'm down to two related odd ones. It's based on other CS3 tool projects, and the SetPlatformCursor() function in ToolHandler.cpp uses the QuickTime calls to Mac's SetCursor() and GetCursor(). This hadn't been a problem before, but I'm getting errors that GetCursor and SetCursor are "not declared in this scope. Even after including Quickdraw.h and QuickdrawAPI.h, it's still unrecognized, even though if I begin to type them, Autocomplete works perfectly.


      Has anyone else had this experience, or have a theory on what may be happening?


      I'd be very grateful for any help, so I can finish this and move on to more current projects.


      Thanks -- rj

        • 1. Re: GetCursor/SetCursor out of scope?
          Rick E Johnson Level 1

          I see page 30 of the CS3 porting guide directly addresses this issue. It's fix is to put "this->" before the undeclared variable, as below, but then a different error occurs.


          extern void SetPlatformCursor(SPPluginRef pluginRef, int nCursorID)


            ASErr error = kNoErr;

            CursHandle cursor;

            cursor = this->GetCursor(nCursorID);

            if ( cursor )

            this->SetCursor( *cursor );




          I have a feeling the solution is really very simple, but this (this->) apparently isn't it. ;-)