TweetFollow Us on Twitter

Jan 95 Tips
Volume Number:11
Issue Number:1
Column Tag:Tips & Tidbits

Tips & Tidbits

By Scott T Boyd, Editor

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

TIP OF THE MONTH

Using IOStreams with THINK’s Console

The C++ IOStreams library provides many advantages over the old stdio library in C++. But, one thing I missed from the old stdio library in THINK C (not part of the standard) is using console windows from C++ streams. I wanted to be able to use something like:

 myWindow << myData1 << myData2;

which is more convenient than the fprintf(window, ) form of the old stdio library. It wasn’t immediately obvious if this would work with streams. After a little exploring, it turned out to be pretty easy. Two lines of code is all it takes to create a console window and make it part of a stream.

    // create a std I/O buffer for stream using a console window (created by calling fopenc())
 stdiobuf w1(fopenc());

    // create the stream using the buffer from above
 ostream wout((streambuf *)&w1);

The first line creates a console by calling fopenc() and passes it to the stdiobuf constructor. The console window is used as the FILE * for the stdiobuf instance. Then, we create an output stream (ostream) passing a pointer to a streambuf (in this case a subclass of it, stdiobuf). That’s all. The short program below shows how to create one window and to send output to it using our created stream and our own window. It also sends output to the standard out stream (cout) as a way to differentiate the two.

WindStream.cp

#include <console.h>
#include <stdiostr.h>

void main(void)
{
    // set options for my stream window: 40 columns and title
 console_options.left = 10;
 console_options.ncols = 40;
 console_options.title = "\pMy Window/Stream";

    // create a std I/O buffer for stream using a console window (created by calling fopenc())
 stdiobuf w1(fopenc());

    // create the stream using the buffer from above
 ostream wout((streambuf *)&w1);

    // now we can use wout as an output window...
 wout << "Hello World" << endl;

    // This will go to the standard output console
 console_options.left = 300;
 console_options.title = "\pSystem Console";
 cout << "This is the standard output buffer" << endl;
}

- Manuel A. Pérez, Arlington, VA

Fast Apple Event Factoring

When writing a factored application, that is, an application that sends Apple events to itself in response to user interface actions, writing the send routines can be as difficult as writing the receivers.

This needn’t be the case if you use Jens Alfke’s most excellent AEGizmo’s package. To use it, you write a printf-like string and pass it with arguments to AEBuild. This string can be a little obscure, so here’s the tip: put an AEPrint in the Apple event handler, write an AppleScript equivalent and fire it from the AppleScript editor. AEPrint will print a descriptor that, with a small amount of editing, can be pasted into the factor routine and passed to AEBuild. Making an application recordable takes about ten minutes. Honest!

- Chris Sears, sears@netcom.com

MPW Goes Into The Trash

If you use MPW regularly, sooner or later you will delete a file and really wish you hadn’t. MPW’s Delete command is as unforgiving as its counterparts in DOS and Unix - as soon as you delete something, it’s gone. You can’t just drag deleted files out of the trash.

Be prepared. You can modify MPW’s Delete command so it behaves in a more Finder-like way. With these changes, MPW won’t really delete files, it will move them to the Trash (just as you would do if you were using the Finder). Nothing will really be deleted until you explicitly empty the trash.

First, add this line to MPW’s Startup file (or any UserStartup file):

Alias Delete Move_To_Trash

If you have other aliases established which invoke the Delete command (such as the unix alias rm or the DOS alias del), change them to invoke Move_To_Trash instead.

Next, create this Move_To_Trash file in your MPW Scripts folder:

 
Set Echo 0
 If {#}!=0 # if arg count is not zero
  Set Exit 0

  # Create one uniquely named folder in trash can
  Set folder_name "{Boot}"Trash:MPW.deleted.`date -n`
  NewFolder "{folder_name}"   Dev:Null

  # Move specified items to trash
  For file_name in {"Parameters"}
   Move -y "{file_name}" "{folder_name}"   Dev:Null
  End

  # Leave environment as we found it
  Unset file_name folder_name
  Set Exit 1
 End

Caveats:

1) This is reasonable protection against hastily entered Delete commands, but nothing is fool-proof (because fools can be so clever).

2) None of the built in Delete command line options are correctly supported by Move_To_Trash. If you have MPW scripts that invoke the Delete command with options, you will have to modify the scripts. One method would be remove these options from the script entirely, and just rely on Move_To_Trash. Alternately, you could add these commands at the start and end of your script:

 # First line of script
 # restore built in Delete command
   Unalias Delete

 # Last line of script
 # restore modified Delete command
   Alias Delete Move_To_Trash

If you’re lucky, you’ll spend the few minutes it takes to set this up, then never have to think about it again. But someday you may be glad you took the time. As for me, I wish I had thought of this yesterday morning, before I accidentally deleted 5 hours of work.

- Lee David Rimar
Absoft Corporation

 
AAPL
$109.41
Apple Inc.
+2.67
MSFT
$45.74
Microsoft Corpora
+0.58
GOOG
$504.89
Google Inc.
+9.50

MacTech Search:
Community Search:

Software Updates via MacUpdate

Command-C 1.1.7 - Clipboard sharing tool...
Command-C is a revolutionary app which makes easy to share your clipboard between iOS and OS X using your local WiFi network, even if the app is not currently opened. Copy anything (text, pictures,... Read more
Tidy Up 4.0.2 - Find duplicate files and...
Tidy Up is a complete duplicate finder and disk-tidiness utility. With Tidy Up you can search for duplicate files and packages by the owner application, content, type, creator, extension, time... Read more
Typinator 6.3 - Speedy and reliable text...
Typinator turbo-charges your typing productivity. Type a little. Typinator does the rest. We've all faced projects that require repetitive typing tasks. With Typinator, you can store commonly used... Read more
GraphicConverter 9.5 - Graphics editor w...
GraphicConverter is an all-purpose image-editing program that can import 200 different graphic-based formats, edit the image, and export it to any of 80 available file formats. The high-end editing... Read more
Toast Titanium 12.0.1 - The ultimate med...
Toast Titanium goes way beyond the very basic burning in the Mac OS and iLife software, and sets the standard for burning CDs, DVDs, and now Blu-ray discs on the Mac. Create superior sounding audio... Read more
QuickBooks 2015 16.0.2.1422 R3 - Financi...
Save 20% on QuickBooks Pro for Mac today through this special discount link QuickBooks Pro 2013 helps you manage your business easily and efficiently. Organize your finances all in one place, track... Read more
Remotix 3.0.6 - Access all your computer...
Remotix is a fast and powerful application to easily access multiple Macs (and PCs) from your own Mac. Features: Complete Apple Screen Sharing support - including Mac OS X login, clipboard... Read more
BetterZip Quick Look Generator 1.5 - Let...
BetterZip Quick Look Generator lets you view the contents of compressed archives through OS X's Quick Look functions. Simply select an archive in the Finder, in Mail, or Spotlight and press the... Read more
Sandvox 2.9.3 - Easily build eye-catchin...
Sandvox is for Mac users who want to create a professional looking website quickly and easily. With Sandvox, you don't need to be a Web genius to build a stylish, feature-rich, standards-compliant... Read more
Pixelmator 3.3.1 - Powerful layer-based...
Pixelmator is a beautifully designed, easy-to-use, fast, and powerful image editor for OS X. It has everything you need to create, edit, and enhance your images. Pixelmator is a layer-based image... Read more

Latest Forum Discussions

See All

The Drive : Devil's Run (Games)
The Drive : Devil's Run 1.0 Device: iOS Universal Category: Games Price: $.99, Version: 1.0 (iTunes) Description: ON THE ROAD AGAIN! The Drive - Devil’s Run is classic point to point style racing game that pays homage to the classics... | Read more »
Procreate Pocket (Entertainment)
Procreate Pocket 1.01 Device: iOS iPhone Category: Entertainment Price: $2.99, Version: 1.01 (iTunes) Description: Create - anytime, anywhere. Made by the developers of the award-winning Procreate® for iPad®, Procreate Pocket™ allows... | Read more »
IRON FINGER - Mini Games Championship (...
IRON FINGER - Mini Games Championship 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: Quick to play, easy to learn yet hard to master.. TAP, SWIPE & TILT your way through mini games that... | Read more »
Pentaction: Medieval (Games)
Pentaction: Medieval 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: Pentaction: Medieval is a turn-based strategy board-game about chance and skill on the battlefield. Take control of your... | Read more »
Hipstify Review
Hipstify Review By Jennifer Allen on December 17th, 2014 Our Rating: :: COOL FILTERSUniversal App - Designed for iPhone and iPad Add filters, quotes, and fancy frames to your images, thanks to Hipstify.   | Read more »
Mighty Smighties Gets Evolve Cards and N...
Mighty Smighties Gets Evolve Cards and New Worlds Posted by Jessica Fisher on December 17th, 2014 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
Duckie Deck Card Wars Review
Duckie Deck Card Wars Review By Amy Solomon on December 17th, 2014 Our Rating: :: STYLISH GAME OF CARDSUniversal App - Designed for iPhone and iPad Duckie Deck Card Wars adapts the classic card game War for use on devices, complete... | Read more »
PDF Office Review
PDF Office Review By Jennifer Allen on December 17th, 2014 Our Rating: :: CONVENIENT PDF EDITINGiPad Only App - Designed for the iPad Want to create your own PDF files? Import them from elsewhere? Adapt a web page into a PDF? PDF... | Read more »
The Out There: Ω Edition Update will be...
The Out There: Ω Edition Update will be Releasing in 2015, Bringing Better Graphics and Additional Content Posted by Jessica Fisher on December 17th, 2014 [ permalink ] | Read more »
Pinball Planet Pro (Games)
Pinball Planet Pro 1.02 Device: iOS Universal Category: Games Price: $2.99, Version: 1.02 (iTunes) Description: - Our missionWe've always loved to play pinball games but we noticed most modern pinball games are simulators for the... | Read more »

Price Scanner via MacPrices.net

Holiday sales continue: MacBook Pros for up t...
 B&H Photo has new MacBook Pros on sale for up to $300 off MSRP as part of their Holiday pricing. Shipping is free, and B&H charges NY sales tax only: - 15″ 2.2GHz Retina MacBook Pro: $1699... Read more
Google Search App For iOS Gets A Major Makeov...
Google has given iOS users an early Christmas present with a substantial update of it’s not-very-often-upgraded Google Search app. Google Search has been my go-to tool for Web searches since it was... Read more
ShopKeep Apple Pay And Chip Card Reader Avail...
ShopKeep, a cloud-based technology provider to more than 10,000 small business owners to manage retail shops and restaurants with iPads, has released its new Apple Pay and chip card reader. This... Read more
Holiday sale! 27-inch 5K iMac for $2299, save...
 B&H Photo has the 27″ 3.5GHz 5K iMac in stock today and on sale for $2299 including free shipping plus NY sales tax only. Their price is $200 off MSRP, and it’s the lowest price available for... Read more
Holiday Sale! 3.7GHz Quad Core Mac Pro availa...
 B&H Photo has the 3.7GHz Quad Core Mac Pro on sale for $2599 including free shipping plus NY sales tax only. Their price is $400 off MSRP, and it’s the lowest price for this model from any... Read more
iPhone 6 Number 3 Canadian Google Search Of 2...
CTVNews.ca reports that Apple’s iPhone 6 was the third highest-trending Google Canada search topic of 2014, exceeded only by Robin Williams largely after his death by suicide in August, and the FIFA... Read more
New iPad mini 3 Counter-Top & Wall Mount...
newMacgadgets has announced new secure all-acrylic displays for the iPad mini 3 (also works fine with the mini 2, last year’s iPad mini With Retina Display, and the original iPad mini). The new iPad... Read more
Holiday sales continue, MacBook Airs for up t...
B&H Photo has 2014 MacBook Airs on sale for up to $120 off MSRP, for a limited time, for the Thanksgiving/Christmas Holiday shopping season. Shipping is free, and B&H charges NY sales tax... Read more
B&H lowers price on 27-inch 3.2GHz iMac t...
B&H Photo has lowered their price on the 27″ 3.2GHz iMac, now on sale for $1629 including free shipping plus NY sales tax only. Their price is $170 off MSRP, and it’s the lowest price for this... Read more
15-inch 2.0GHz Retina MacBook Pro available f...
B&H Photo has lowered their price on leftover 2013 15″ 2.0GHz Retina MacBook Pros to $1499 including free shipping plus NY sales tax only. Their price is $500 off original MSRP. Read more

Jobs Board

*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
*Apple* Retail - Multiple Positions (US) - A...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
Project Manager / Business Analyst, WW *Appl...
…a senior project manager / business analyst to work within our Worldwide Apple Fulfillment Operations and the Business Process Re-engineering team. This role will work Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.