TweetFollow Us on Twitter

Jan 89 Mousehole
Volume Number:5
Issue Number:1
Column Tag:Mousehole Report

Mousehole Report

By Rusty Hodge & Larry Nedry, Mousehole BBS

From:emmayche (Mark Hartman, Fullerton, CA)

Subject: Re: scroll bars

Inside Mac says that the “standard” width is 16 pixels; however, you can get some really strange effects at different widths.

From: asc (Alex Colwell, Redondo Beach, CA)

Subject: Using PAP Manager

Has anybody used the PAP Manager lately? I had reviewed the two “Mac Tutor” articles : Feb 1986 “Laser Print DA for Postscript” by Mike Schuster and Sep 1986 “Postscript Driver, LightSpeed C” by Bob Denny. However, when I tried to implement this into my application. I always get “Printer Not Found” using LaserWriter 5.0, System & Finder 6.0.1. I suspect the old LaserWriter driver and the new LaserWriter PAP Manager has changed where the articles are currently out-of-date. Does anybody has any ideas. Thanks.

From: dsa (Dave Stine, Saugus, CA)

Subject: Re: Using PAP Manager

If you can’t figure out what the problem is, I could upload a newer version of the PAP Driver interface. The LaserWriter has changed somewhat since Bob’s article in MacTutor, but we have a current copy here.

BTW, you should make sure that you have selected a LaserWriter by the full name, including any trailing spaces. The old ‘Namer’ application has a habit of appending trailing spaces to LaserWriter names which are odd-length when unpadded. (Silly, but that’s what they do...)

From: rustyt (Rusty Tucker, Irvine, CA)

Subject: BitMap to Region

A while ago I thought that I saw something posted about code that will convert an Icon Bitmap into a region. Does any body know where I could find this, or have any examples or ideas on how to do this? Any help at all will be appreciated!!

From: emmayche (Mark Hartman, Fullerton, CA)

Subject: Re: BitMap to Region call

There exists a BitMapRgn() call from DTS. It’s a (believe it or not) separately licensable product. We have a copy; as far as I can tell, I can only distribute it with Photon Paint.

What it does is to convert a BitMap (no PixMaps here) to a Region. FAST. What used to take 2 minutes now takes virtually no time. Great stuff. Give a call or drop some e-mail if you need any more info.

From: asc (Alex Colwell, Redondo Beach, CA)

Subject: RE: Using PAP Manager

Could you possibly upload the newer version of the PAP Driver interface? Yes, I believe, I am using the correct LaserWriter name by extracting the printer name from the ‘PAPA’ resource with the resource ID # 0xE000. Then I pass the printer name to the “PAPOpen” routine without any modifications.

I wrote a little text editor using Capp’s LSC PE edit routines. With this I want to send the Postscript code from my text editor straight to the LaserWriter. So any information you have concerning the PAP Manager would be greatly appreciated.

From: dirck (Dirck Blaskey, Highland, CA)

Subject: LSC 3.0 stdio lib

LSC 2.0 -> 3.0 library file stdfile_pos.c, function fseek():

around line 90, the code that looks like this:

           pb.ioMisc = (char *) offset; 
           if (err = who->last_error = PBSetEOF(&pb, false)) 
                 errno = err;
           return(err);

should look like this:

           pb.ioMisc = (char *) offset;
           if (err = who->last_error = PBSetEOF(&pb, false)) 
                {
                    errno = err; 
                    return(err); 
                }

this bug has the following symptoms:

if a call to fseek() causes the file to be extended, the file position will not be changed.

From: bobe (Bob Estes, Somerville, MA)

Subject: Re: LSC 3.0 math-library problem

You need to use the Math881.h header file. It’s different from plain old math.h. That sounds like it’s your problem.

From: chally (Mark Chally, West Covina, CA)

Subject: 3.0.1 and VBLs

Yes....VBLs DO get time when your application gets time--HOWEVER, they don’t get time when your application DOESN’T get time--which to me seems to defeat the purpose of a VBL. What you have to do in the case that your application needs that time is to push your VBL (and the procedure it calls) into system memory. This is tricky and I’m not too sure about doing it myself because I’m just learning assembly (and on a 8088 at school)...however, I do have information from Tech Support at Apple documenting such a practice...if’ you still need the info, I can get you a copy...leave me mail.

Oh...by the way..._DO_ get version 3.0.1 and get 2.5 megs (go for four if you can, you’ll want {not need} it.)

From: lsr (Larry Rosenstein, Cupertino, CA)

Subject: Re: 3.0.1 and VBLs

Only the VBL block needs to be in the System Heap, in order for the VBL to get time when your application doesn’t. The code that it calls can be in your application heap. You have to be careful because your application doesn’t get switched in when the VBL gets time, so you can’t rely on the CurrentA5 low memory variable. You have to stash your application’s A5 in a place relative to the VBL block, so that the VBL code can find it.

From: joehow (Joe Howell, Defuniak Springs, FL)

Subject: c compilers & development systems

Here is a chance for all experienced c macophiles to get on their soapbox. I am beginning a new development project on an application development language. I have been messing around with AZTEC C. Of all current C development systems, which is the “best” for a full scale development project.???? thanks........joe

From: emmayche (Mark Hartman, Fullerton, CA)

Subject: Re: c compilers & development systems

Having used none of them but LightSpeed(tm) C, I can safely say that it is the best I have ever used.

From: lnedry (Larry Nedry, Anaheim, CA)

Subject: Re: c compilers & development systems

I am hooked on Lightspeed C 3.0 Great debugger and fast turn around time from edit to compile to run.

From: thecloud (Ken Mcleod, La Habra, CA)

Subject: Re: c compilers & development systems

I would consider MPW C for a very large project, but my personal preference is Lightspeed C! :-)

From: adept (Roy Lovejoy, Silicon Valley)

Subject: Re: c compilers & development systems

I would have to agree on LSC 3.0x, but ONLY if there is one developer!! (try SIX some time with it!!!)

From: rdclark (Richard Clark, Tustin, CA)

Subject: Re: c compilers & development systems

LSC is the best from the standpoint of speed, debugging, and overall usability. (MPW is sooo slow!) However, if you need support for the latest and greatest operating system features, then you should use MPW since Apple has been pretty good about keeping it up to date. However, and this seems to be the consensus, I prefer LSC.

From: chenette (Philip Chenette, Los Angeles, CA)

Subject: Double Clicks

This is probably a silly question, but I can’t figure out how to detect a double-click of the mouse. I want to open up a dialog box when the user double-clicks on an object, but it seems there’s no event message for this. What am I missing? (Using LSP 1.11) Thanks!

From: thecloud (Ken Mcleod, La Habra, CA)

Subject: Re: Double Clicks

You’re right, there’s no DblClikEvt... you need to compare the time and location of a mouseUp event with those of the next mouseDown event, and if they’re sufficiently close, the user double-clicked. Read Inside Macintosh Vol. 1, pp 255-56. If you’re still having trouble, I can dig up some sample source code.

From: adept (Roy Lovejoy, Silicon Valley)

Re: Double Clicks

Basically, you handle double clicks in your mouse down handler, but keep a global around that is the ‘last-when’ of the event. You then compare it with the current event record’s ‘when’ field , and if the difference is less than the global ‘DoubleTime’ (long int stored at $2F0.. Control panel setting) It is a double click.. (you might also want to see if the “where”’s are within a specific range.. Hope this helps.

From: rdclark (Richard Clark, Tustin, CA)

Subject: Re: Double Clicks

The mouse isn’t supposed to move more than 3 pixels between the 2 clicks, otherwise, it’s considered a click-and-drag operation. Also, looking at the low memory global DoubleTime isn’t such a good idea, as Apple is discouraging any direct access to the low memory globals. Use GetDblTime() instead. Now for some code:

#define abs(x) ((x) >= 0 ? (x) : (0-x))
Boolean IsDoubleClick(where)
           Point where;
   {     static Point oldLoc;
     static long  oldTime = 0;
     long now = TickCount(); 
    Boolean idc;
         idc = FALSE;
     /* First, see if the 2 clicks are close enough in time */
     if ((now - oldTime) < GetDblTime())
     /* They are, so see if they are close enough in space */
       if ((abs(where.h - oldLoc.h) <= 3) && (abs(where.v -oldLoc.v) 
<= 3))
         idc = TRUE; 
    oldTime = now;
     oldLoc = where;
     return idc; }

From: emmayche (Mark Hartman, Fullerton, CA)

Subject: Re: Double Clicks and further checks

Richard is correct, as far as he goes; however, don’t forget to check that the clicks are still within the same screen area (for example, the object on which your user will double-click to get that dialog). If he’s real close to the edge on the first click, and just barely outside on the second click, it shouldn’t be considered a double-click.

(I generally set a flag called checkDoubleClick in my main dispatch loop which checks the time and object, and let the routine which handles the object decide if it was indeed a double-click.)

From: dsa (Dave Stine, Saugus, CA)

Subject: MPW _RTExit routine

Just nailed a real weird one. I have a driver which patches the ExitToShell trap for applications which open a communications session in said driver. This is done because drivers running under MultiFinder don’t receive a “goodBye kiss”.

Well, it would seem that applications written in MPW C don’t call the ExitToShell code in the normal manner; I think that in the _RTInit routine, they filch out the current routine in the ExitToShell trap address, stash this off in some parameter block, and it would appear that in _RTExit, they JSR (a0) to this entry point directly.

All of which means that if something patched ExitToShell *after* the _RTInit routine has run (which is caqlled before you main() entry is), you patch does not get invoked at program exit time. Can anyone confirm this for me, or am I just blowing smoke thru my hat?

From: rdclark (Richard Clark, Tustin, CA)

Subject: Re: MPW _RTExit routine

Yes, MPW C is doing something strange with ExitToShell(), and it seems that patching around the trap cannot be done. However, if you look at IM II-59, you’ll see an “Assembly-language note” which implies that ExitToShell() calls Launch(). (And a quick test with MacsBug seems to confirm this. However, I couldn’t see the “launch” execution under MultiFinder -- I had to re-run the test under “flat” finder.) I dunno, this stuff sounds pretty dangerous.

From: dsa (Dave Stine, Saugus, CA)

Subject: Re: MPW _RTExit routine

Actually, the only reason I need to have the program come thru ExitToShell() is because MultiFlounder doesn’t call drivers with the “goodBye Kiss” that the normal Finder does. So.... if some application has a network session open thru my driver, and doesn’t take care to close said session before exiting, there will be some grief Real Soon Afterwards.

So, the folks at Apple DTS told me to patch ExitToShell() to get around this “improvement” that MF made. So I did. And now, I find that yet another piece of Apple code has put a ditch in my path.

Yes, your suspicion about ExitToShell calling _Launch is correct -- in the nominal Finder case. Under MF, things get much more hairy. When an application exits, MF must tear down the “sub-heap” that was created for the app to run in, and do some other funky things. If you want to see the beginnings of how MF launches an app, see Goldman’s article in Aug. ’88 Byte (of all places), wherein he describes some of what MF does. This was an especially nice article, full of info you simply can’t get from DTS, even if you ask. (I did)

Anyway, I have already hopped around the problem for the time being. Thanks for your time.

From: adail (Alan Dail, Hampton, VA)

Subject: Re: MPW _RTExit routine

Rather than waiting for ExitToShell to be called for you, why don’t you just call ExitToShell yourself when your program is done?

From: dsa (Dave Stine, Saugus, CA)

Subject: Re: MPW _RTExit routine

‘Cuz my stuff is a driver, which is being used by the application which calls _RTExit, which doesn’t call ExitToShell().

Calling ExitToShell() for a client application from a driver often result in much sadness.

From: rdclark (Richard Clark, Tustin, CA)

Subject: Re: MPW _RTExit routine

Whoa! If you look at the original post, it’s the App which is supposed to call ExitToShell() -- the driver is trying to intercept THAT call so it can close itself.

However, another ugly problem rears its head -- many applications don’t use ExitToShell(). Instead, they simply execute an RTS when done, which returns them to a place within the Launch() trap (which then returns them to the Finder or whatever). Time to go digging for some other way of shutting things down cleanly.

 
AAPL
$116.47
Apple Inc.
+0.00
MSFT
$47.98
Microsoft Corpora
+0.00
GOOG
$537.50
Google Inc.
+0.00

MacTech Search:
Community Search:

Software Updates via MacUpdate

Cobook 3.0.7 - Intelligent address book....
Cobook Contacts is an intuitive, engaging address book. Solve the problem of contact management with Cobook Contacts and its simple interface and powerful syncing and integration possibilities.... Read more
StatsBar 1.9 - Monitor system processes...
StatsBar gives you a comprehensive and detailed analysis of the following areas of your Mac: CPU usage Memory usage Disk usage Network and bandwidth usage Battery power and health (MacBooks only)... Read more
Cyberduck 4.6 - FTP and SFTP browser. (F...
Cyberduck is a robust FTP/FTP-TLS/SFTP browser for the Mac whose lack of visual clutter and cleverly intuitive features make it easy to use. Support for external editors and system technologies such... 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
Evernote 6.0.1 - Create searchable notes...
Evernote allows you to easily capture information in any environment using whatever device or platform you find most convenient, and makes this information accessible and searchable at anytime, from... Read more
calibre 2.11 - Complete e-library manage...
Calibre is a complete e-book library manager. Organize your collection, convert your books to multiple formats, and sync with all of your devices. Let Calibre be your multi-tasking digital... Read more
Herald 5.0.1 - Notification plugin for M...
Note: Versions 2.1.3 (for OS X 10.7), 3.0.6 (for OS X 10.8), and 4.0.8 (for OS X 10.9) are no longer supported by the developer. Herald is a notification plugin for Mail.app, Apple's Mac OS X email... Read more
Firetask 3.7 - Innovative task managemen...
Firetask uniquely combines the advantages of classical priority-and-due-date-based task management with GTD. Stay focused and on top of your commitments - Firetask's "Today" view shows all relevant... Read more
TechTool Pro 7.0.6 - Hard drive and syst...
TechTool Pro is now 7, and this is the most advanced version of the acclaimed Macintosh troubleshooting utility created in its 20-year history. Micromat has redeveloped TechTool Pro 7 to be fully 64... Read more
PhotoDesk 3.0.1 - Instagram client for p...
PhotoDesk lets you view, like, comment, and download Instagram pictures/videos! (NO Uploads! / Image Posting! Instagram forbids that! AND you *need* an *existing* Instagram account). But you can do... Read more

Latest Forum Discussions

See All

Space Expedition Review
Space Expedition Review By Jordan Minor on November 24th, 2014 Our Rating: :: ONE SMALL STEPUniversal App - Designed for iPhone and iPad The only thing boring about Space Expedition’s lonely journey is its title.   | Read more »
Ubisoft Gives Everyone Two New Ways to E...
Ubisoft Gives Everyone Two New Ways to Earn In-Game Stuff for Far Cry 4 Posted by Jessica Fisher on November 21st, 2014 [ permalink ] | Read more »
Golfinity – Tips, Tricks, Strategies, an...
Dig this: Would you like to know what we thought of being an infinite golfer? Check out our Golfinity review! Golfinity offers unlimited ways to test your skills at golf. Here are a few ways to make sure your score doesn’t get too high and your... | Read more »
Dark Hearts, The Sequel to Haunting Meli...
Dark Hearts, The Sequel to Haunting Melissa, is Available Now Posted by Jessica Fisher on November 21st, 2014 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
Meowza! Toyze Brings Talking Tom to Life...
Meowza! | Read more »
Square Enix Announces New Tactical RPG f...
Square Enix Announces New Tactical RPG for Mobile, Heavenstrike Rivals. Posted by Jessica Fisher on November 21st, 2014 [ permalink ] With their epic stories and gorgeous graphics, | Read more »
Quest for Revenge (Games)
Quest for Revenge 1.0.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0.0 (iTunes) Description: The great Kingdom of the west has fallen. The gods ignore the prayers of the desperate. A dark warlord has extinguished... | Read more »
Threadz is a New Writing Adventure for Y...
Threadz is a New Writing Adventure for You and Your Friends Posted by Jessica Fisher on November 21st, 2014 [ permalink ] In the tradition of round-robin storytelling, | Read more »
SteelSeries Stratus XL Hardware Review
Made by: SteelSeries Price: $59.99 Hardware/iOS Integration Rating: 4 out of 5 stars Usability Rating: 4.5 out of 5 stars Reuse Value Rating: 4.25 out of 5 stars Build Quality Rating: 4.5 out of 5 stars Overall Rating: 4.31 out of 5 stars | Read more »
ACDSee (Photography)
ACDSee 1.0.0 Device: iOS iPhone Category: Photography Price: $1.99, Version: 1.0.0 (iTunes) Description: Capture, perfect, and share your photos with ACDSee. The ACDSee iPhone app combines an innovative camera, a powerful photo... | Read more »

Price Scanner via MacPrices.net

CEA Study Finds More People Recycling Electro...
A new study by the Consumer Electronics Association (CEA) finds that electronics recycling receives the continued and growing support of consumers. According to the CEA,s Recycling and Reuse Study,... Read more
15″ 2.2GHz Retina MacBook Pro on sale for $17...
 B&H Photo has the 2014 15″ 2.2GHz Retina MacBook Pro on sale today for $1749. Shipping is free, and B&H charges NY sales tax only. B&H will also include free copies of Parallels Desktop... Read more
27-inch 3.5GHz 5K iMac in stock today and on...
 B&H Photo has the new 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... Read more
21-inch 1.4GHz iMac on sale for $979, save $1...
B&H Photo has the new 21″ 1.4GHz iMac on sale for $979.99 including free shipping plus NY sales tax only. Their price is $120 off MSRP. B&H will also include free copies of Parallels Desktop... Read more
13-inch 1.4GHz/256GB MacBook Air on sale for...
B&H Photo has lowered their price on the 13″ 1.4GHz/256GB MacBook Air to $1059.99 including free shipping plus NY sales tax only. Their price is $140 off MSRP, and it’s the lowest price for this... Read more
Save up to $400 with Apple refurbished 2014 1...
The Apple Store has restocked Apple Certified Refurbished 2014 15″ Retina MacBook Pros for up to $400 off the cost of new models. An Apple one-year warranty is included with each model, and shipping... Read more
New 13-inch 1.4GHz MacBook Air on sale for $8...
 Adorama has the 2014 13″ 1.4GHz/128GB MacBook Air on sale for $899.99 including free shipping plus NY & NJ tax only. Their price is $100 off MSRP. B&H Photo has the 13″ 1.4GHz/128GB MacBook... Read more
Apple Expected to Reverse Nine-Month Tablet S...
Apple and Samsung combined accounted for 62 percent of the nearly 36 million branded tablets shipped in 3Q 2014, according to early vendor shipment share estimates from market intelligence firm ABI... Read more
Stratos: 30 Percent of US Smartphone Owners t...
Stratos, Inc., creator of the Bluetooth Connected Card Platform, has announced results from its 2014 Holiday Mobile Payments Survey. The consumer survey found that nearly one out of three (30 percent... Read more
2014 1.4GHz Mac mini on sale for $449, save $...
 B&H Photo has lowered their price on the new 1.4GHz Mac mini to $449.99 including free shipping plus NY tax only. Their price is $50 off MSRP, and it’s the lowest price available for this new... Read more

Jobs Board

*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* Solutions Consultant (ASC)- Retail S...
**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
Project Manager, *Apple* Financial Services...
**Job Summary** Apple Financial Services (AFS) offers consumers, businesses and educational institutions ways to finance Apple purchases. We work with national and Read more
*Apple* Store Leader Program - College Gradu...
Job Description: Job Summary As an Apple Store Leader Program agent, you can continue your education as you major in the art of leadership at the Apple Store. You'll 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
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.