Skip to main content
Rick E Johnson
Inspiring
April 3, 2016
Question

GetCursor/SetCursor out of scope?

  • April 3, 2016
  • 1 reply
  • 373 views

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

This topic has been closed for replies.

1 reply

Rick E Johnson
Inspiring
April 3, 2016

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 );

  return;

}

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