TweetFollow Us on Twitter

Jun 96 Top 10
Volume Number:12
Issue Number:6
Column Tag:Symantec Top 10

Symantec Top 10

By Michael Hopkins and Noah Liebermann

Note: Source code files accompanying article are located on MacTech CD-ROM or source code disks.

Q: When I compile the Animator Sample Applet using Symantec Caffeine, I get the error, “The last command could not be completed because the apple event was not handled.” Why is this occurring?

A: You need to be sure that you have the Javac.PPC application running before you compile. For further information, read the Your First Applet.pdf Acrobat file.

Q: When I have compiled my Java project, why can’t I choose Run from the Project menu?

A: Symantec Caffeine does not currently support building stand-alone applications. You can currently build only applets, which must be viewed as part of an HTML file. You can use any Java-enabled browser to view them, or use AppletView.PPC, which is included in the MacJDK folder. Once your applet is compiled, you can choose Run Applet (example1.html) from the Scripts menu, or use the shortcut Apple-control-R to run the applet with AppletView.PPC.

Q: The installation instructions for Symantec Caffeine say I need something called “8.0.4d11” to use the Java compiler. What file is this referring to?

A: This file is the version of the Project Manager required by Caffeine. You can find it in the pre-release folder on the Symantec C++ release 4 CD. The Project Manager on the Release 5 CD is already set up to use Java, so no additional configuration should be necessary.

Q: I cannot compile the GraphicsTest demo in the Sample Applets folder. How do I get this sample to compile?

A: Files that are mutually dependent and do not include package specifications will not compile properly, because the environment passes these .java files to the Java compiler independently. The work-around is to manually drag all of the files from the Finder onto the Javac compiler to generate the .class file. See the READ ME!-Known Issues file for information on this and other problems.

Q: I am compiling a Java project, but I cannot figure out where the resulting .class file is being saved. Am I doing something wrong?

A: No. When you build a Java project, the .java source files are compiled by the Javac compiler and the resulting applet is placed in Javac.PPC’s target folder. The default folder is classes. With this setting, all resulting .class applet files are placed in the JDK Classes folder, which is called Caffeine:MacJDK1.0b1:Classes. Alternatively, you can specify the paths for classes and the target by launching Javac.PPC and choosing Properties from the File menu. Note that the classes path should be the location of the sun and java folders containing the JDK library classes.

Q: I am trying to use the cursor routines documented in Inside Macintosh: Imaging with QuickDraw. I have added CursorCtl.h, but I still get a link error. Can I use this routine with Symantec C++ 8.0?

A: Yes. This routine is supported by our PPC product. To use these calls, add PPCToolLibs.o and StdCLib to your project.

Q: Is there a way to get the frame of a window? I tried looking at the portRect, but that is the interior of a window. Can I get the rectangle that includes the title bar and any other window parts outside of the portRect?

A: Yes. There is a struct element called the rgnBBox that can be accessed by type-casting the WindowPtr to a WindowPeek. The following example demonstrates how to access this data:

 WindowPtrmyWindow;// must point to valid window
 RgnHandlewindowRgnHandl; // local copy of handle
 Rect   totalWindRect;    // receives total area of window

    // set up the handle to the structRgn
 windowRgnHandle =
 (Handle)(((WindowPeek)theWindow)->structRgn);
    // lock the handle since we are ready to access it
 HLock(windowRgnHandle);
    // get the rectangle for the entire window
 totalWindRect = (**(RgnHandle)windowRgnHandle).rgnBBox;
    // unlock the handle, we are done with it
 HUnlock( windowRgnHandle );

Q: I am using the Think Class Library and Visual Architect to create a dialog box. When I run the generated application, I notice that the tab order for the CDialogText items is not correct. Is there any way to change the tab order without re-creating my dialog box?

A: Yes. Tab order is determined by the item numbers of the text boxes. For example, if you have three text items numbered 2, 7, and 3, pressing Tab in the first edit box (number 2) will cause the cursor to jump to the last edit box (number 3). To display the item numbers, choose Show Item Numbers from the Views menu. You can change the tab order of CDialogText items in Visual Architect by selecting each item individually and choosing Send To Back and Bring To Front from the Pane menu. Bring To Front will increase the item number and Send To Back decreases the item number.

Q: When I click in the go-away (close) box in my VA-generated CWindow, I do not receive a cmdClose message like I do when I use the Menu option Close or hit Apple-W. Why does the close box not generate a cmdClose that I can trap, and how can I override this mysterious TCL shortcut?

A: The window’s close box circumvents the cmdClose command path that is normally issued after the Close menu option is chosen. The close box issues a CWindow::UserClose() command, which calls CWindow::Close(), which finally calls CDirector::Close(), at which point your close click disappears into the forbidding domain of CDirector, having completely circumvented the command structure of the TCL.

Overriding this is fairly straightforward. In the Visual Architect, create a new class in the Classes dialog window. Call it what you like; TmyWindow would be a good choice. Select CWindow from the Base Class popup menu, and close the Classes dialogue window. From the main VA window, open your window, or create one if you do not already have one. Select View Info from the View menu. Now select your newly created derived class from the Window Class pop-up menu.

Once you generate your source code, you need to add a prototype in your header file and then go into the source file for your derived class and add the following:

void    TmyWindow::Close()
{
    // Add your own supplementary Close handling routines here

    inherited::Close(); // Call the inherited method 
    // to finally close the window
}

Now when the close box is clicked, your Close method will get called, wherein you can add whatever housekeeping functionality you like.

Q: I am using TCL and the Visual Architect to write my application. I have created a modal dialog box with a button that sends a cmdQuit. When I run the generated application, clicking the button seems to do nothing. In fact, I seem to go into some kind of infinite loop and I have to force my application to quit. What is going on?

A: First of all, it is considered bad form to quit an application by clicking a button. That behavior is reserved for the Quit item in the File menu. If, for some reason, you really want this behavior, you will need to do the following.

Go into your upper level source for that dialog, and add the following class definition:

class myChore: public CChore
{
 public:
 myChore(){}
 virtual void Perform( long *maxSleep )
 {gApplication->Quit();}
};

 Now, modify the DoCommand function:

myDialog::DoCommand( long theCommand )
{
 myChore *theChore = new myChore();

 switch ( theCommand )
 {
 case cmdQuit:
 Close( true );  
 gApplication->AssignIdleChore( theChore );
 break;
 default:
 x_myDialog::DoCommand( theCommand );
 }
}

By setting up an idle chore, we ensure that the dialog has a chance to close before the application quits.

Special thanks to: Mark Baldwin, Levi Brown, Andrew McFarland, and Scott Morison.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

How to manage your time in Bakery Blitz
It can be tricky, especially when you risk burning your kitchen to the ground if you forget a cake in the oven, so make sure to use these time management tricks to keep your bakery running smoothly. Don’t collect the money right away [Read more] | Read more »
Model 15 (Music)
Model 15 1.0 Device: iOS iPhone Category: Music Price: $29.99, Version: 1.0 (iTunes) Description: The Moog Model 15 App is the first Moog modular synthesizer and synthesis educational tool created exclusively for iPad, iPhone and... | Read more »
How to deal with wind in Angry Birds Act...
Angry Birds Action! is a physics-based puzzler in which you're tasked with dragging and launching birds around an obstacle-littered field to achieve a set objective. It's simple enough at first, but when wind gets introduced things can get pretty... | Read more »
How to get three stars in every level of...
Angry Birds Action! is, essentially, a pinball-style take on the pull-and-fling action of the original games. When you first boot it up, you'll likely be wondering exactly what it is you have to do to get a good score. Well, never fear as 148Apps... | Read more »
The beginner's guide to Warbits
Warbits is a turn-based strategy that's clearly inspired by Nintendo's Advance Wars series. Since turn-based strategy games can be kind of tricky to dive into, see below for a few tips to help you in the beginning. Positioning is crucial [Read... | Read more »
How to upgrade your character in Spellsp...
So you’ve mastered the basics of Spellspire. By which I mean you’ve realised it’s all about spelling things in a spire. What next? Well you’re going to need to figure out how to toughen up your character. It’s all well and good being able to spell... | Read more »
5 slither.io mash-ups we'd love to...
If there's one thing that slither.io has proved, it's that the addictive gameplay of Agar.io can be transplanted onto basically anything and it will still be good fun. It wouldn't be surprising if we saw other developers jumping on the bandwagon,... | Read more »
How to navigate the terrain in Sky Charm...
Sky Charms is a whimsical match-'em up adventure that uses creative level design to really ramp up the difficulty. [Read more] | Read more »
Victorious Knight (Games)
Victorious Knight 1.3 Device: iOS Universal Category: Games Price: $1.99, Version: 1.3 (iTunes) Description: New challenges awaits you! Experience fresh RPG experience with a unique combat mechanic, packed with high quality 3D... | Read more »
Agent Gumball - Roguelike Spy Game (Gam...
Agent Gumball - Roguelike Spy Game 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: Someone’s been spying on Gumball. What the what?! Two can play at that game! GO UNDERCOVERSneak past enemy... | Read more »

Price Scanner via MacPrices.net

13-inch 2.5GHz MacBook Pro on sale for $999,...
B&H Photo has the 13″ 2.5GHz MacBook Pro on sale for $999 including free shipping plus NY sales tax only. Their price is $100 off MSRP. Read more
Apple refurbished 2015 iMacs available for up...
Apple now has a full line of Certified Refurbished 2015 21″ & 27″ iMacs available for up to $350 off MSRP. Apple’s one-year warranty is standard, and shipping is free. The following models are... Read more
Indian Smartphone Market Grows Annually by 12...
India’s smartphone market grew by 12 percent year-over-year, with 24.4 million units shipping in Q1 2016. The top five vendors stayed the same, with Samsung in the lead, followed by Micromax, Intex... Read more
Get Notifications When Your Friend’s Phone Ba...
Calgary, Canada based Stonelight Pictures has announced the release of Battery Share 1.0.1, its new utility for iOS 9 supported devices. The company notes that people are spending more time on their... Read more
11-inch 1.6GHz/128GB MacBook Air on sale for...
Amazon has the current-generation 11″ 1.6GHz/128GB MacBook Air (sku MJVM2LL/A) on sale for $749.99 for a limited time. Their price is $150 off MSRP, and it’s the lowest price available for this model... Read more
Price drops on clearance 2015 13-inch MacBook...
B&H Photo has dropped prices on clearance 2015 13″ MacBook Airs by up to $250. Shipping is free, and B&H charges NY sales tax only: - 13″ 1.6GHz/4GB/128GB MacBook Air (MJVE2LL/A): $799, $200... Read more
Mac minis on sale for up to $100 off MSRP
B&H Photo has Mac minis on sale for up to $100 off MSRP including free shipping plus NY sales tax only: - 1.4GHz Mac mini: $449 $50 off MSRP - 2.6GHz Mac mini: $649 $50 off MSRP - 2.8GHz Mac mini... Read more
13-inch Retina MacBook Pros on sale for up to...
B&H Photo has 13″ Retina MacBook Pros on sale for $130-$200 off MSRP. Shipping is free, and B&H charges NY tax only: - 13″ 2.7GHz/128GB Retina MacBook Pro: $1169 $130 off MSRP - 13″ 2.7GHz/... Read more
Apple price trackers, updated continuously
Scan our Apple Price Trackers for the latest information on sales, bundles, and availability on systems from Apple’s authorized internet/catalog resellers. We update the trackers continuously: - 15″... Read more
SanDisk Half-Terabyte SSD Optimized for Every...
SanDisk Corporation has announced the SanDisk Z410 SSD, a cost-competitive, half-terabyte solid state drive (SSD) that enables manufacturers to design for a broad range of desktop PCs and laptops.... Read more

Jobs Board

Restaurant Manager (Neighborhood Captain) - A...
…in every aspect of daily operation WHY YOU LL LIKE IT You ll be the Big Apple You ll solve problems You ll get to show your ability to handle the stress and Read more
*Apple* Retail - Multiple Positions (US) - A...
Job Description:SalesSpecialist - Retail Customer Service and SalesTransform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
Restaurant Manager (Neighborhood Captain) - A...
…in every aspect of daily operation. WHY YOU'LL LIKE IT: You'll be the Big Apple . You'll solve problems. You'll get to show your ability to handle the stress and Read more
*Apple* Subject Matter Expert - NTT Data, In...
…in Owings Mills, MD has a 6+ month contract position available for an Apple Subject Matter Expert. TITLE: Apple Subject Matter Expert LOCATION: Owings Mills, Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.