TweetFollow Us on Twitter

Nov 98 Tips

Volume Number: 14 (1998)
Issue Number: 11
Column Tag: Tips & Tidbits

Nov 98 Tips & Tidbits

by Jeff Clites

Strings and Numbers - The Twain Shall Meet

String and numbers are different animals, but programmers are constantly faced with the need to translate back and forth between the two. For integers, it is easy: StringToNum() and NumToString() to the job nicely. But for floating-point numbers, things get a little more tricky, because there are a myriad of choices about how to format them. Apple has provided StringToExtended() and ExtendedToString() to give you complete control over the process - too much control, you might say. Sometimes, you don't want the hassle of the page of code needed, and a simple solution would be appreciated. The classic solution in C is to use sprintf(), but this can wastefully increase the size of your executable if this is the only Standard Library function you need, and it doesn't respect localization settings. The following clever solution convinces the Apple Event Manager to do the work for you:

#include "AppleEvents.h"

OSErr ConvertDoubleToString( double inValue, AEDesc *outResult )
{
   OSErr theErr = noErr;
 
   theErr = AECoercePtr( typeFloat,            // input data type--'doub'
                  (const void *) &inValue, // pointer to input data.
                  (Size) (sizeof(double)),     // size of input data
                  typeChar,       // desired 'want' type is character
                  outResult );    // pointer to AEDesc for output data

   return theErr;                 // the error returned by the coercion.
}

The returned AEDescriptor will contain a descriptor type of typeChar ('TEXT') and a Handle to a block of text (use GetHandleSize() to determine the resulting string length). Of course, don't forget to AEDispose() the AEDescriptor returned by this call.

Stephen L. Reid
sreid@ti.com


Loading a Graphics File with QuickTime

QuickTime makes it easy to load a graphics file into an offscreen GWorld, but as simple as the process is, it can be hard to track down sample code to show you how it is done. The following simple snippet illustrates the process nicely, and has two of my favorite characteristics in a snippet: it doesn't omit error checking, and once you have looked it over it is so intuitive that you will be able to recreate it when you need it, without digging up the actual example:

FSSpec                   fsp;
ComponentInstance        gi;
Rect                     r;
ImageDescriptionHandle   idH;
GWorldPtr                outGWp;
OSErr                    errCode = noErr;

// fill in the FSSpec

if(noErr == errCode){ errCode = GetGraphicsImporterForFile(fsp, &gi); }
if(noErr == errCode){ errCode = GraphicsImportGetImageDescription(gi, &idH); }
if(noErr == errCode){
   r.left = 0;
   r.top = 0;
   r.right = (**idH).width;
   r.bottom = (**idH).height;
   errCode = NewGWorld(&outGWp,(**idH).depth, &r, nil, nil,0);
   if(noErr != errCode){
      errCode = NewGWorld(&outGWp, (**idH).depth, &r, nil, nil,
                          useTempMem);
   }
}
if(noErr == errCode){
   CGrafPtr   savePort;
   GDHandle   saveGD;

   GetGWorld(&savePort, &saveGD);
   SetGWorld(outGWp, nil);
   EraseRect(&r);                   // in case PICT has transparent areas
   GraphicsImportSetBoundsRect(gi, &r);
   GraphicsImportSetGWorld(gi, outGWp, nil);
   errCode = GraphicsImportDraw(gi);
   SetGWorld(savePort, saveGD);
}

if(noErr != errCode && nil != outGWp){  // error occurred
   DisposeGWorld(outGWp);
   outGWp = nil;
}
if(nil != idH){
   DisposeHandle(reinterpret_cast<Handle>(idH));
}
if(nil != gi){
   CloseComponent(gi);
}

If outGWp is not nil, it is a GWorld of the file.

David Phillip Oster
oster@netcom.com

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Skype 8.68.0.96 - Voice-over-internet ph...
Skype is a telecommunications app that provides HD video calls, instant messaging, calling to any phone number or landline, and Skype for Business for productive cooperation on the projects. This... Read more
Capto 1.2.23 - Capture, annotate, organi...
Capto (was Voila) is an easy-to-use app that takes capturing, recording, video and image editing to the next level. With an intelligent file manager and quick sharing options, Capto is perfect for... Read more
Alfred 4.3.1 - Quick launcher for apps a...
Alfred is an award-winning productivity application for OS X. Alfred saves you time when you search for files online or on your Mac. Be more productive with hotkeys, keywords, and file actions at... Read more
Spotify 1.1.51.380. - Stream music, crea...
Spotify is a streaming music service that gives you on-demand access to millions of songs. Whether you like driving rock, silky R&B, or grandiose classical music, Spotify's massive catalogue puts... Read more
WiFiSpoof 3.5.4 - Change your WiFi MAC a...
WiFiSpoof quickly and easily allows you to change your WiFi MAC address via hot-key or the system menu bar. Version 3.5.4: Dutch localization Download Now]]> Read more
Sparkle Pro 3.0.7 - Visual website creat...
Sparkle Pro will change your mind if you thought building websites wasn't for you. Sparkle is the intuitive site builder that lets you create sites for your online portfolio, team or band pages, or... Read more
MySQL 8.0.23 - Industry-leading open-sou...
MySQL, the industry-leading open-source SQL database, is an accessible, easy-to-use relational database management system (RDBMS). As an alternative to Oracle and SQL server, MySQL offers features... Read more
OmniGraffle 7.18.2 - Create diagrams, fl...
OmniGraffle helps you draw beautiful diagrams, family trees, flow charts, org charts, layouts, and (mathematically speaking) any other directed or non-directed graphs. We've had people use Graffle to... Read more
OmniGraffle Pro 7.18.2 - Create diagrams...
OmniGraffle Pro helps you draw beautiful diagrams, family trees, flow charts, org charts, layouts, and (mathematically speaking) any other directed or non-directed graphs. We've had people use... Read more
Malwarebytes 4.7.9.3978 - Adware removal...
Malwarebytes (was AdwareMedic) helps you get your Mac experience back. Malwarebytes scans for and removes code that degrades system performance or attacks your system. Making your Mac once again your... Read more

Latest Forum Discussions

See All

Cookie Run: Kingdom is a base-building R...
Today, developer Devsisters has launched the latest title in their Cookie Run series. It's called Cookie Run: Kingdom and is a base-building RPG where you'll do battle against other players once you've created your delicious realms. [Read more] | Read more »
Here's what SpongeBob SquarePants:...
SpongeBob SquarePants: Battle for Bikini Bottom - Rehydrated came out this week on iOS, and it seems like a pretty solid platformer with a Banjo-Kazooie-style collection-based progression system. You play as SpongeBob, obviously, as he tries to... | Read more »
Pokemon Go will celebrate the arrival of...
Niantic has recently announced that Mega Ampharos, the more fabulous looking version of the Light Pokemon, is now available in the game. To commemorate the occasion, an Incense Day event featuring a host of different Electric and Dragon-Type... | Read more »
Nuts is a squirrel adventure game coming...
Noodlecake’s Nuts is a lo-fi photography game about surveying and documenting the secret lives of squirrels. It’s coming to Apple Arcade this Friday, 22nd January, with a further release coming later on PC and Nintendo Switch. [Read more] | Read more »
Super JetPak DX’s physical preorders sti...
The physical cartridge edition of Pocket Pixel Design’s Super JetPak DX is still available to preorder and will be until 31st January, with the game launching later this year on the Nintendo Game Boy. [Read more] | Read more »
Honkai Impact 3rd has revealed more deta...
Honkai Impact 3rd has now announced more details about its upcoming crossover with Neon Genesis Evangelion. This is set to arrive next week on January 22nd and will introduce an exclusive story, battlesuit and weapon to the popular action-RPG. [... | Read more »
Space Frog Intern, James Bolton's a...
James Bolton's arcade shooter Space Frog Intern is now available for Android devices following its release on iOS last year. It sees players taking control of the titular amphibian and blasting their way through various space beasties. [Read more... | Read more »
The 5 Best Mobile Ports
Ports or coversions of games from one platform to another can be quite tricky. This is especially true when porting games to phones and tablets, as these titles have to be designed with workable touch controls and account for smaller screen sizes... | Read more »
Erica, the PS4-exclusive FMV thriller, c...
London-based studio Flavourworks is bringing its FMV game Erica to iOS on Friday as a free trial, with a full release presumably following later. This is the second platform the game has launched on after its original release on PlayStation 4 two... | Read more »
Cute simulation game Dinosaur Park: Prim...
Dinosaur Park: Primeval Zoo is a cute zoo simulation game from upjers, and it sounds perfect for anyone who’s a dinosaur fan. It’s coming to Android in February, and is available right now for pre-registration. [Read more] | Read more »

Price Scanner via MacPrices.net

Apple restocks $599 4-Core Mac minis, Certifi...
Apple has restocked Certified Refurbished Intel-based 4-Core Mac minis for only $599 or $200 off original MSRP. Each mini comes with a new outer case plus a standard Apple one-year warranty. Shipping... Read more
Apple Magic Keyboard for 11″ iPad Pro/10.9″ i...
Amazon has the Apple Magic Keyboard for 11″ iPad Pro (2nd gen)/10.9″ iPad Air (4th gen) on sale today for only $199 including free shipping. Their price is $100 off Apple’s MSRP for this Magic... Read more
Verizon offers $400 off on iPhone 11 Pro mode...
Verizon is offering $400 off on iPhone 11 Pro models through January 24, 2021 when purchased with a new line of Unlimited service. Price start at $999.99 before the discount. Price is prorated... Read more
Flash sale! Apple’s 21″ 2.3GHz Dual-Core iMac...
Adorama has the 21″ 2.3GHz Dual-Core iMac on sale for a very limited time — today and early tomorrow — for $988 shipped. That’s $111 off Apple’s MSRP, and it’s the cheapest price available for a new... Read more
Boost Mobile continues to offer no contract A...
Boost Mobile is offering 2020 Apple iPhone SE models for $150 off MSRP with service. Their discount reduces the cost of an iPhone SE/64GB to $249.99. 128GB models are offered at a $50 discount: $399.... Read more
B&H launches Apple iMac sale with 21″ and...
B&H Photo has Apple 21″ and 27″ iMacs on sale today for up to $150 off MSRP with prices starting at $1049. Shipping is free. These are the same iMacs sold by Apple in their retail and online... Read more
Select 11″ WiFi iPad Pros on sale today for $...
B&H Photo has select 2020 Apple 11″ WiFi iPad Pros on sale today for $50 off Apple’s MSRP, each including free expedited shipping to most addresses in the US: – 11″ 256GB WiFi iPad Pro: $849 $50... Read more
Clearance 8-core iMac Pro available again for...
Apple has Certified Refurbished, clearance, 27″ 3.2GHz 8-Core iMac Pros available $3819 including free shipping. Their price is $1180 off the original MSRP of new models. A standard Apple one-year... Read more
B&H launches 16″ MacBook Pro sale with mo...
B&H has Apple’s 16″ MacBook Pros on sale for $200-$250 off Apple’s MSRP with prices starting at $2199. Expedited shipping is free to many addresses in the US. Their prices are among the lowest... Read more
At only $809, these are the cheapest MacBooks...
Apple has restocked at full line of Certified Refurbished 2020 13″ Intel-based MacBook Airs available starting at only $809 and up to $280 off original MSRP. Each MacBook features a new outer case,... Read more

Jobs Board

Technical Support - VIVA USA Inc (United Stat...
…when necessary to other client personnel. Knowledge: Systems administration knowledge of Microsoft, Apple , and Linux OS to include but not limited to Windows 7, 8, Read more
Store Associate - Shortage Control - Burlingt...
**LOCATION** 19131 Bear Valley Road Apple Valley CA US 92308 **Overview** If you want an exciting job with one of the largest off-price retail stores in the nation, Read more
Lead Software Engineer - 72673BR - CVS Health...
…by Aetna app, a first-of-its-kind health experience designed in collaboration with Apple . It helps drive healthy behavior by combining your health history with Read more
IOS Developer - Deloitte (United States)
…applications, including knowledge of Swift, Xcode, UIKit, AppleWatch and other core Apple frameworks. + Knowledge of Apple 's HealthKit, ResearchKit, and CareKit Read more
OBGYN Nurse Practitioner - Provider Solutions...
…clinicians in serving a medically diverse, high-acuity, underserved patient population in Apple Valley, California. You will have the opportunity to grow your Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.