TweetFollow Us on Twitter

Aug 90 Letters
Volume Number:6
Issue Number:8
Column Tag:Letters

Rotate Bug Discovered

By Kirk Chase, Editor, MacTutor

Tool Window Manager

Jean-Philippe Mariani

Grabels, France

I send you this letter for a special purpose. Indeed, in the 1988 December issue (Vol. 4, No. 12) was published the article concerning the “Tool Window Manager” by Thomas Fruin. This article was very good. but more interesting was the letter from the same Thomas Fruin in the 1989 April issue where he mentioned that he had written a MPW Pascal Unit of the “Tool Window Manager”. He said at the end of his letter that he would send this version to MacTutor in order that subscribers of MacTutor interested by it be able to get it directly from you. So, I’m inquiring if you have received this Pascal version of the “Tool Window Manager”.

Before ending, I would like to tell that you at MacTutor are doing a great job for the programmer’s community, and I’m really satisfied to have joined the MacTutor community last year. As I can’t completely devote to programming because of my studies, your magazine and your source code disks are of a great help to me. They allow me to study Macintosh programming while pursuing studies in business.

[The MPW Pascal unit for the Tool Window Manager has not been received here at MacTutor. Thomas, if you’re reading this, please send it in! People have been asking for it over and over. When it does come in, I will post a notice in the Letters column.-ed]

Detecting MultiFinder

Christopher R. Wysocki

Brookfield Center, CT

I found Paul Davis’ article “Detecting MultiFinder” in the March issue to be interesting, but it left me wondering why he went to so much trouble to determine if MultiFinder is running. For this I’ve always relied on the existence of the _OSDispatch trap; i.e.:

/* 1 */

#define _OSDispatch 0xA88F
#define _Unimplemented 0xA89F

Boolean MultiFinderIsUp()
{
 return (NGetTrapAddress(_OSDispatch, ToolTrap) != GetTrapAddress(_Unimplemented));
}

This was taken almost verbatim from the Programmer’s Guide to MultiFinder. Normally you’d use this routine to check for the existence for the existence of the temporary memory allocation calls, but since they’re available only with MultiFinder, it essentially tells you if MultiFinder is running or not. I’m using this method in my current Mac project, and it seems to work just fine.

While I’m at it, let me extend my thanks to you for a superb magazine. I’ve been reading MacTutor for about two years now, and I’ve become a much more knowledgeable Mac programmer as a result. Back issues of MacTutor have become an indispensable part of my programming library. Merci beaucoup.

Macintosh Summit Conference

University of California

Santa Barbara

The First Annual Macintosh Summit Conference is being held at the University of California, Santa Barbara on August 22 to 24. The host is Mac guru, Guy Kawasaki. The conference will have sessions on graphics, printing, System 7.0 and so on. The cost is $680.30 for the conference. You may obtain more information by calling (805) 893-4952.

OOPSLA/ECOOP ’90

Ottawa, Ontario, Canada

The fifth Object-Oriented Programming Systems, Languages, and Applications Conference is scheduled for October 21-25 in Ottawa, Canada. Joining them will be the European Conference on Object-Oriented Programming. For further information about the conference, contact Karen Offermann at (609) 764-0100.

Rotate Update

Bryce L. Fowler

Palo Alto, CA

For some time now I’ve been using the assembly procedure “Rotate,” published in MacTutor Vol. 4, No. 2 and the enhanced in Vol. 4, No. 11, to display rotated text in my own programs. Recently, using the latest versions of MPW and MacApp, Rotate started bombing at the instruction

;2

movea.l currentWord-localVars(a0), a2

With the aid of Steve Jasik’s Debugger, I was able to track the problem down to a nonzero value in the hi-word of register d7. Stray values in the hi-word of d7 will cause problems at the instruction “sub.l d7, currentWord-localVars(a0)” (or in the Vol. 4, No. 11 version at all the “sub.l d7, a2” instructions in the unwrapped loop).

The fix is simple. In either version of Rotate, add the line

;3

clr.l d7

just before the register is first used, i.e., place the instruction before the lines

;4

move.w  bounds+bottom(a1), d7
sub.w   bounds+top(a1), d7
move.w  d7, d0

Mouse track & field comment

Rodney K. Magnuson

MindVision Software

Lincoln, NE

I would like to comment on the Mouse Track and Field article. I thought it was great to finally see a replacement for Text Edit in one of your articles. As a programmer, there are times when you wish you did not have to use Text Edit, but feel that the job does not justify writing a replacement yourself. My excitement was stifled when I read that the code was copyrighted and could not be used freely in commercial programs. I ask you, what was the use of publishing the article? Perhaps the author is thinking of going back to school to become a lawyer and is going to wait an undetermined amount of time before he starts looking for code that may resemble his text editing routines. Ok...that was a little harsh and most likely not true, but I hope you get my point.

I would also like to comment on the dialog articles of the April issue. The ideas expressed in the articles were very good. I would also like to add a notion. Dialogs that contains variable sized text boxes should resize themselves according to the amount of text they are displaying. Since most applications do not include these features, I have written an INIT that adds all of these features and more to every dialog. The INIT is called ModalKeys and will be available soon in an INIT package called PowerPack. ModalKeys also allows users to hit a Hot Key that will toggle the titles of all of the buttons of a dialog to their command keys. This features is also included in our HyperCard/SuperCard report generator: Elaborate! I do not know of any other utilities/applications that do this.

Keep up the good work.

[Rodney, you are perfectly able to use the code found in any article of MacTutor. Copyright notices must be kept and credit of the source found somewhere in your application, such as the About box. Martin does want a copy of any commercial application using his code treating him like he bought it.-ed]

Menu Shortcuts

Sean Nolan

Sommerville, MA

Here’s a little trick which I’ve found has helped with menu command keys. It solves several problems:

1. On some international keyboards, command-period doesn’t work since the shift key is required in order to type a period. The shift key is usually ignored if the command key is down. This also prevents you from using command-plus as a menu shortcut (it is so natural to have command-plus and command-minus for two related commands). TechNote #263 describes this problem.

2. You can’t have keyboard equivalents for menu items which have small icons in them (see TechNote #253).

3. Any other command keys for things that are not in menus (such as buttons or elements of a tool palette) tend to be hard-coded into programs rather than use resources. This is bad, wrong, and evil.

My solution was to create a menu which has all the additional command keys I needed. The menu is not part of the menu bar, and is not visible to the user. It is installed the same way hierarchical and popup menus are:

/* 5 */

gKeyShortcutsMenu = GetMenu(KEYSHORTCUTS_ID);
InsertMenu(gKeyShortcutsMenu, -1);

The key shortcuts menu has a cancel item with the command key equivalent of command-period. If I ever produce an Italian version of my program, I will change this to command-semicolon (an unshifted period on Italian keyboards). The menu also has an ADD_ITEM with a shortcut of command-= (I also have an ADD_ITEM in another visible menu; It’s shortcut is command-+, which is , alas, never used). There are PAGE_UP (command-up arrow) and PAGE_DOWN (command-down arrow) items for paging the current window’s scrollbar. It’s easier to add it to the shortcuts menu than to test for the key code in the event loop. In addition, my shortcuts menu has items parallel all of my regular menu items which have small icons with them. The small icon’d menu items can’t have keyboard equivalents, but I’ve made it so they look like they do: the name of the menu items contain the command character plus the key shortcut character.

Finder/MultiFinder Switching

Sean Nolan

Sommerville, MA

Here’s a way to switch back and forth between Finder and MultiFinder quickly. It requires MacroMaker (or some other keyboard macro program) and ResEdit.

First, open up MacroMaker and create two macros. Start recording to make Option-Command-M (“M” for “MultiFinder”) do the following actions: select “Set Startup” in the Special menu, click on the MuliFinder radio button, click on the OK button, and then type option-command-R. Go to the MacroMaker menu and stop recording.

Make a second Finder macro invoked by option-command-F (“F” for “Finder”). Have it select “Set Startup” in the Special menu, click on the Finder radio button, click on the OK button, and then type option-command-R.

Next, make it so that option-command-R restarts the machine. It isn’t obvious, but you can have an option-character as the command key for a menu item. Open up the Finder’s Special menu using ResEdit and make option-R the command key for “Restart”. For symmetry, I also make the option-S the command key for “Shutdown”.

You now have four shortcuts from the Finder available:

option-command-R restarts your Mac

option-command-S shutsdown your Mac

option-command-F restarts your Mac in Finder

option-command-M restarts your Mac in MultiFinder

 
AAPL
$524.94
Apple Inc.
+5.93
MSFT
$40.01
Microsoft Corpora
-0.39
GOOG
$536.10
Google Inc.
-20.44

MacTech Search:
Community Search:

Software Updates via MacUpdate

VMware Fusion 6.0.3 - Run Windows apps a...
VMware Fusion allows you to create a Virtual Machine on your Mac and run Windows (including Windows 8.1) and Windows software on your Mac. Run your favorite Windows applications alongside Mac... Read more
Tweetbot 1.5.1 - Popular iOS twitter cli...
Tweetbot is a full-featured OS X Twitter client with a lot of personality. Whether it's the meticulously-crafted interface, sounds and animation, or features like multiple timelines and column views... Read more
Mac DVDRipper Pro 4.1.7 - Copy, backup,...
Mac DVDRipper Pro is the DVD backup solution that lets you protect your DVDs from scratches, save your batteries by reading your movies from your hard disk, manage your collection with just a few... Read more
PDFpenPro 6.2 - Advanced PDF toolkit for...
PDFpenPro allows users to edit PDF's easily. Add text, images and signatures. Fill out PDF forms. Merge or split PDF documents. Reorder and delete pages. Even correct text and edit graphics! Create... Read more
PDFpen 6.2 - Edit and annotate PDFs with...
PDFpen allows users to easily edit PDF's. Add text, images and signatures. Fill out PDF forms. Merge or split PDF documents. Reorder and delete pages. Even correct text and edit graphics! Features... Read more
Monolingual 1.5.9 - Remove unwanted OS X...
Monolingual is a program for removing unnecesary language resources from OS X, in order to reclaim several hundred megabytes of disk space. It requires a 64-bit capable Intel-based Mac and at least... Read more
Maya 2015 - Professional 3D modeling and...
Maya is an award-winning software and powerful, integrated 3D modeling, animation, visual effects, and rendering solution. Because Maya is based on an open architecture, all your work can be scripted... Read more
Starcraft II: Wings of Liberty 1.1.1.180...
Download the patch by launching the Starcraft II game and downloading it through the Battle.net connection within the app. Starcraft II: Wings of Liberty is a strategy game played in real-time. You... Read more
Sibelius 7.5.0 - Music notation solution...
Sibelius is the world's best-selling music notation software for Mac. It is as intuitive to use as a pen, yet so powerful that it does most things in less than the blink of an eye. The demo includes... Read more
Typinator 5.9 - 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

Latest Forum Discussions

See All

This Week at 148Apps: April 14-18, 2014
Spring Into Our App Reviews   | Read more »
Have a Special Dead Trigger 2 Easter Bas...
Have a Special Dead Trigger 2 Easter Basket Full of Goodies, Courtesy of Madfinger Games Posted by Rob Rich on April 18th, 2014 [ permalink ] Dead Trigger 2 | Read more »
Almost All of Playdek’s Library is on Sa...
Almost All of Playdek’s Library is on Sale Right Now, and You Should Check it Out Posted by Rob Rich on April 18th, 2014 [ permalink ] Playdek has released quite a few great iOS ports of board and card games over the years, and now most of them... | Read more »
Zynga Launches Brand New Farmville Exper...
Zynga Launches Brand New Farmville Experience with Farmville 2: Country Escape Posted by Tre Lawrence on April 18th, 2014 [ permalink ] | Read more »
David. Review
David. Review By Cata Modorcea on April 18th, 2014 Our Rating: :: MINIMALISTIC IN A DIFFERENT WAYUniversal App - Designed for iPhone and iPad David is a minimalistic game wrapped inside of a soothing atmosphere in which the hero... | Read more »
Eyefi Unveils New Eyefi Cloud Service Th...
Eyefi Unveils New Eyefi Cloud Service That Allows Users to Share Media Across Personal Devices Posted by Tre Lawrence on April 18th, 2014 [ permalink ] | Read more »
Tales from the Dragon Mountain: The Lair...
Tales from the Dragon Mountain: The Lair Review By Jennifer Allen on April 18th, 2014 Our Rating: :: STEADY ADVENTURINGiPad Only App - Designed for the iPad Treading a safe path, Tales from the Dragon Mountain: The Lair is a... | Read more »
Yahoo Updates Flickr App with Advanced E...
Yahoo Updates Flickr App with Advanced Editing Features and More Posted by Tre Lawrence on April 18th, 2014 [ permalink ] | Read more »
My Incredible Body - A Kid's App to...
My Incredible Body - A Kid's App to Learn about the Human Body 1.1.00 Device: iOS Universal Category: Education Price: $2.99, Version: 1.1.00 (iTunes) Description: Wouldn’t it be cool to look inside yourself and see what was going on... | Read more »
Trials Frontier Review
Trials Frontier Review By Carter Dotson on April 18th, 2014 Our Rating: :: A ROUGH LANDINGUniversal App - Designed for iPhone and iPad Trials Frontier finally brings the famed stunt racing franchise to mobile, but how much does its... | Read more »

Price Scanner via MacPrices.net

SaveDrives – Car Dashboard Video Camera &...
Drivers who want to help reduce potential damage to their health and finances in the event of an accident can download the innovative new no-cost app SaveDrives – Car Dashboard Video Camera &... Read more
Deal Alert! 13-inch MacBook Pro on sale for $...
Best Buy has the 13″ 2.5GHz MacBook Pro on sale for $999.99 on their online store. Choose free shipping or free instant local store pickup (if available). Their price is $200 off MSRP. Price is valid... Read more
Free HopTo 2.2 Helps Enhance Your Productivit...
The HopTo app helps you do more on your iPad by providing more and easier adaccess to files and documents. Version 2.2 adds Egnyte and HopTo’s Mac OSX File Connector. If you already have the hopTo... Read more
National Distracted Driving Awareness Month:...
As the country recognizes National Distracted Driving Awareness Month, Sprint is reminding wireless consumers to focus on driving while behind the wheel, to not text or email while driving, and to... Read more
13-inch 2.4GHz Retina MacBook Pro available f...
Abt has the 13″ 2.4GHz 128GB Retina MacBook Pro available for $1229 including free shipping. Their price is $70 off MSRP. Read more
iMacs on sale for up to $160 off MSRP this we...
Best Buy has iMacs on sale for up to $160 off MSRP for a limited time. Choose free home shipping or free instant local store pickup (if available). Prices are valid for online orders only, in-store... Read more
iPad Airs on sale this weekend for up to $100...
Best Buy has WiFi iPad Airs on sale for $50 off MSRP and WiFi + Cellular iPad Airs on sale for $100 off MSRP on their online store for a limited time, with prices now starting at $449. Choose free... Read more
Apple restocks refurbished Mac minis starting...
The Apple Store has restocked Apple Certified Refurbished Mac minis for up to $150 off the cost of new models. Apple’s one-year warranty is included with each mini, and shipping is free: - 2.5GHz Mac... Read more
Hyundai Brings Apple CarPlay To The 2015 Sona...
Hyundai Motor America has announced it will bring Apple CarPlay functionality to the 2015 Sonata. CarPlay is pitched as a smarter, safer and easier way to use iPhone in the car and gives iPhone users... Read more
Updated iPads Coming Sooner Than We Had Thoug...
MacRumors, cites KGI securities analyst Ming Chi Kuo, well-respected as an Apple product prognisticator, saying that Apple will introduce an upgraded iPad Air and iPad mini in 2014/Q3, meaning the... Read more

Jobs Board

Position Opening at *Apple* - Apple (United...
…customers purchase our products, you're the one who helps them get more out of their new Apple technology. Your day in the Apple Store is filled with a range of Read more
*Apple* Solutions Consultant (ASC) - Apple (...
**Job Summary** The ASC is an Apple employee who serves as an Apple brand ambassador and influencer in a Reseller's store. The ASC's role is to grow Apple Read more
*Apple* Inc. Research Data Specialist - Appl...
…of Worldwide Market Research & Intelligence. The team is responsible for conducting Apple branded consumer market research. It is also responsible for analyzing data Read more
*Apple* Automotive Parts Department position...
Apple Automotive is one of the fastest growing dealer…and it shows. Consider making the switch to the Apple Automotive Group today! At Apple Automotive, we Read more
*Apple* Solutions Consultant (ASC) - Apple (...
**Job Summary** The ASC is an Apple employee who serves as an Apple brand ambassador and influencer in a Reseller's store. The ASC's role is to grow Apple Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.