TweetFollow Us on Twitter

Jun 96 Tips
Volume Number:12
Issue Number:6
Column Tag:Tips & Tidbits

Tips & Tidbits

By Steve Sisak

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

OpenDoc Frames and Facets

A major difficulty confronting every first time OpenDoc programmer is the difference between Frames and Facets. Both seem to refer to the “portion of a window” concept expressed in PowerPlant as a “pane” and in other frameworks as a “view”. In common frameworks, the pane hierarchy is both an embedding hierarchy and a visual hierarchy. In OpenDoc, the embedding hierarchy (frame) is separated from the visual hierarchy (facet) to allow for more flexibility in imaging.

In order to understand the separate roles for frame and facets, I have found it useful to create my own subtitles:

Frame - a contract for embedding

Facet - a region of a GrafPort

Think of ODFrame, first and foremost, as a relationship between two parts; a frame is a contract between a container and its embedded content. An embedded part is connected to its containing document only through its frames - if all the frames are closed, the part is no longer in the document. The embedding hierarchy alternates between parts and frames: parts have embedded frames, which have parts, which have embedded frames, and so on.

The ODFrame contract covers three primary areas: the shape of the embedded content, the view type (icon, thumbnail, or normal imaging), and the presentation format (particular to the kind of content, e.g. a chart, table, or graph). The container and embedded content mutually agree on these areas during a process called “frame negotiation”.

Either party can initiate frame negotiation. For example, a browser might want to show both an icon and a normal image for a particular embedded part. This container would create two embedding contracts, each with different shapes, view types, and presentations. On the other hand, a game controller might want to negotiate an irregular pod-shaped frame for its alien-like control panels. It would have to ask its containing part to approve this shape.

Frames, however, are an abstract contract. They are not portions of a window. In particular, frames have no GrafPort, no offset location, and no front-to-back ordering. To fulfill the abstraction, the container must make one or more facets for each frame that it wants to display. By making a facet, the container makes the frame visible and allows the user to interact with it.

Think of a facet as a region of a GrafPort. A facet has a coordinate transformation to locate itself in the GrafPort, and a clip region to make sure it does not exceed its bounds. A facet has a z-ordering, and can be highlighted or selected. Facets (and not frames) form the visual hierarchy. Importantly, facets cannot be negotiated. The container has sole control over assigning facets to its embedded frames, though it must respect the negotiated frame shape when it does so.

In most cases, the container creates only one facet per frame. Multiple facets occur in situations where a container has a split-screen view, and the same frame is imaged in multiple locations, with different clip regions. Another common use of facets is in page layout, where a frame might be split between the bottom of one page and the top of the succeeding page. To create the gap between pages, the container assigns upper and lower facets to the frame. But note that if a frame has multiple facets, they must all be in the same GrafPort. If you want to image the same content in two different windows, you must create a second frame (contract) for the second window.

If you think about it, the distinction between frames and facets makes logical sense. Consider a database container that stores thousands of embedded parts. After a search, the database displays 3 or 4 of those embedded parts. In this scenario, only the search results need facets (regions of a GrafPort) for display. But the database needs frames (the contract governing embedding) for all of the thousands of parts. It would likely want to remember the shape, view type, and presentation of each of these parts, so that when it needs to display them, it can show them just as they appeared the last time. Frames represent the persistent contract between the database and its embedded items. Facets represent the visual regions of the currently displayed parts.

For programmers with experience in other frameworks, the most important thing to remember is that a frame is not a portion of a window. It is simply a negotiated contract governing the shape, view, and presentation for an embedded content. This shape, view, and presentation becomes visible only when the container fulfills this contract by creating a facet for the part, thus specifying its GrafPort, origin, and clip shape.

Jeremy Roschelle

Yanking Ingenuity

These days, installing RAM in some of the new Power Macintosh computers is not as easy as it was with the Macintosh II series. So, here’s a tip for you Power Macintosh 8500 owners...

If you need to get access to your motherboard to install RAM, VRAM, or more Cache RAM, you’re going to have to first remove the deep-seated processor card before the motherboard can be removed from the chassis. This card is really difficult to remove because it is in there tight, and there just isn’t a lot of finger space to allow you to get a good grip on the card. After a couple roughed-up knuckles and sore finger tips, I found the following sane approach to solving this headache:

Take two small nylon cable ties (any color will do) and loosely loop them through the sturdy holes in the upper corners of the processor card. Then, you can easily insert your fingers through the two cable tie loops and apply enough equal pressure to carefully remove the processor card.

The good news is you can leave those cable ties in there in case you need future access to the motherboard (unless of course you have some other need for the holes).

Disclaimer: this tip has been thoroughly tested on several Power Macintosh 8500 computers and is bug-free. It is possible that some of the other models could also benefit from this tip.

Mark D. Gerl

[On a related note - the processor daughter card in PowerMac 9500 has a tendency to wander out of its socket if you move the machine around. This is fatal to the processor card. The repair person who fixed mine suggests opening the machine and re-seating the card if you move it to a different office, etc. - sgs ]

Immediate Drag Manager Feedback

The Drag Manager allows a feeback region to be dragged by the mouse. This region is created and passed into the TrackDrag trap:

 TrackDrag(
            DragReference         theDragRef,
            const EventRecord*    theEvent,
            RgnHandle             theRegion);

The Drag Manager doesn’t actually draw this region until the mouse has actually moved. Sometimes it is helpful if this region is drawn immediately. What to do?

Just futz with the where field of theEvent by a few pixels.

        theEvent->where.h += 3;   // the 3 comes from DnD HIG, p. 7
        theEvent->where.v += 3;
        err = TrackDrag(theDragRef, theEvent, theRegion);

...and a comment on the XOR Anti-Tip

One of the problems with the XOR swap (MacTech Magazine 11.10 [October 1995] 96) is that it doesn’t work if the source and destination are the same variables, as could happen with complicated, deeply nested macros.

Chris Sears

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

ExpanDrive 5.4.1 - Access cloud storage...
ExpanDrive builds cloud storage in every application, acts just like a USB drive plugged into your Mac. With ExpanDrive, you can securely access any remote file server directly from the Finder or... Read more
Espionage 3.6.6 - Simple, state-of-the-a...
Espionage offers state-of-the-art encryption and plausible deniability for your confidential data. Sometimes, encrypting your data isn't enough to protect it. That's why Espionage 3 goes beyond data... Read more
Pinegrow Web Designer 2.94 - Mockup and...
Pinegrow Web Designer is desktop app that lets you mockup and design webpages faster with multi-page editing, CSS and LESS styling, and smart components for Bootstrap, Foundation, Angular JS, and... Read more
1Password 6.3.3 - Powerful password mana...
1Password is a password manager that uniquely brings you both security and convenience. It is the only program that provides anti-phishing protection and goes beyond password management by adding Web... Read more
Sublime Text 3126 - Sophisticated text e...
Sublime Text is a sophisticated text editor for code, markup, and prose. You'll love the slick user interface, extraordinary features, and amazing performance. Features Goto Anything. Use Goto... Read more
ForkLift 3.0 Beta 2 - Powerful file mana...
ForkLift is a powerful file manager and ferociously fast FTP client clothed in a clean and versatile UI that offers the combination of absolute simplicity and raw power expected from a well-executed... Read more
OmniFocus 2.7.1 - GTD task manager with...
OmniFocus helps you manage your tasks the way that you want, freeing you to focus your attention on the things that matter to you most. Capturing tasks and ideas is always a keyboard shortcut away in... Read more
CleanApp 5.1.1 - Application deinstaller...
CleanApp is an application deinstaller and archiver.... Your hard drive gets fuller day by day, but do you know why? CleanApp 5 provides you with insights how to reclaim disk space. There are... Read more
Together 3.6.1 - Store and organize all...
Together helps you organize your Mac, giving you the ability to store, edit and preview your files in a single clean, uncluttered interface. Features Smart storage. With simple drag-and-drop... Read more
Cloud 4.1.1 - File sharing from your men...
Cloud is simple file sharing for the Mac. Drag a file from your Mac to the CloudApp icon in the menubar and we take care of the rest. A link to the file will automatically be copied to your clipboard... Read more

5 great apps for the budget traveller
Travelling abroad, or even within your home country, has never been easier thanks to our handy smartphone companions. There are hundreds of apps on the market that promise to make your world journeys hassle-free, but we've selected five of the... | Read more »
Zip—Zap (Games)
Zip—Zap 1.01 Device: iOS Universal Category: Games Price: $1.99, Version: 1.01 (iTunes) Description: Touch to contract.Release to let go.Bring the clumsy mechanical beings home. · · · over 100 levelsno adsno in-app-purchases Zip—... | Read more »
Paperback: The Game (Games)
Paperback: The Game 1.0 Device: iOS Universal Category: Games Price: $3.99, Version: 1.0 (iTunes) Description: You are an author trying to finish kitschy paperback novels. Complete Westerns, Science Fiction, Romance or even a Crime... | Read more »
How to Rule With a Firm Hand in My Majes...
My Majesty is a kingdom management sim not unlike August’s magisterial hit, Reigns. It’s essentially a reskin of developer Tigrido’s previous management sim, Dictator. As supreme ruler of the land, you must consult with a number of subjects to... | Read more »
Our 5 Favorite iMessage Sticker Packs
At long last, iMessage joins the ranks of messaging apps the likes of LINE and Whatsapp, adding an impressive collection of stickers. They’re a great way to add a little something extra to your daily conversations. [Read more] | Read more »
How to get past Vulture Island's tr...
Vulture Island is a colorful and quirky mish-mash of platforming and puzzles. It’s creative and fresh, but sometimes the game can throw a curveball at you, leaving you stuck as to how you should progress. These tips will help you explore smoothly... | Read more »
The new Clash of Kings is just for Weste...
If you’ve played the original Clash of Kings, you’ll probably recognise the city building, alliance forging and strategic battles in Clash of Kings: The West. What sets this version apart is that it’s tailor made for a Western audience and the... | Read more »
Frost - Survival card game (Games)
Frost - Survival card game 1.12.1 Device: iOS Universal Category: Games Price: $3.99, Version: 1.12.1 (iTunes) Description: *Warning: the game will work on iPhone 5C and above and iPad Pro / 4. Other devices are not supported* | Read more »
How to build and care for your team in D...
Before you hit the trail and become a dog sledding legend, there’s actually a fair bit of prep work to be done. In Dog Sled Saga, you’re not only racing, you’re also building and caring for a team of furry friends. There’s a lot to consider—... | Read more »
How to win every race in Dog Sled Saga
If I had to guess, I’d say Dog Sled Saga is the most adorable racing game on the App Store right now. It’s a dog sled racing sim full of adorable, loyal puppies. Just look at those fluffy little tails wagging. Behind that cute, pixelated facade is... | Read more »

Price Scanner via MacPrices.net

Clearance 12-inch 1.2GHz Retina MacBooks, App...
Apple has Certified Refurbished 2015 12″ 1.2GHz Retina MacBooks available for $1189, or $410 off original MSRP. Apple will include a standard one-year warranty with each MacBook, and shipping is free... Read more
Logitech SmartDock and Skype For Business Com...
Logitech has announced Logitech SmartDock, an AV meeting room solution designed in collaboration with Microsoft. Logitech SmartDock works with Skype for Business and qualified devices, including... Read more
27-inch iMacs on sale for up to $220 off MSRP
B&H Photo has 27″ Apple iMacs on sale for up to $200 off MSRP including free shipping plus NY sales tax only: - 27″ 3.3GHz iMac 5K: $2099 $200 off MSRP - 27″ 3.2GHz/1TB Fusion iMac 5K: $1899.99 $... Read more
Apple Macs and iPads available for up to $300...
Purchase a new Mac or iPad using Apple’s Education Store and take up to $300 off MSRP. All teachers, students, and staff of any educational institution qualify for the discount. Shipping is free, and... Read more
Save up to $600 with Apple refurbished Mac Pr...
Apple has Certified Refurbished Mac Pros available for up to $600 off the cost of new models. An Apple one-year warranty is included with each Mac Pro, and shipping is free. The following... Read more
Mac Pros on sale for up to $200 off MSRP
B&H Photo has Mac Pros on sale for up to $200 off MSRP. Shipping is free, and B&H charges sales tax in NY only: - 3.7GHz 4-core Mac Pro: $2899, $100 off MSRP - 3.5GHz 6-core Mac Pro: $3799, $... Read more
15-inch 2.2GHz Retina MacBook Pro on sale for...
B&H Photo has the 2015 15″ 2.2GHz Retina MacBook Pro (MJLQ2LL/A) on sale for $1799, including free shipping plus NY sales tax only. Amazon also has the 2015 15″ 2.2GHz Retina MacBook Pro (... Read more
Toughbook Celebrates 20 Years of Ruggedized M...
Panasonic System Communications Company of North America, Division of Panasonic Corporation of North America (Panasonic) today celebrates the 20th anniversary of its industry-leading Toughbook mobile... Read more
12-inch 1.1GHz Gray Retina MacBook on sale fo...
B&H Photo has the 2016 12″ 1.1GHz Gray Retina MacBook on sale for $1199.99 including free shipping plus NY sales tax only. Their price is $100 off MSRP. Read more
13-inch 2.5GHz MacBook Pro (Apple refurbished...
Apple has Certified Refurbished 13″ 2.5GHz MacBook Pros available for $829, or $270 off the cost of new models. Apple’s one-year warranty is standard, and shipping is free: - 13″ 2.5GHz MacBook Pros... 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
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
Sr. *Apple* Mac Engineer - Net2Source Inc....
…staffing, training and technology. We have following position open with our client. Sr. Apple Mac Engineer6+ Months CTH Start date : 19th Sept Travelling Job If Read more
*Apple* Retail - Multiple Positions-Norfolk,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform 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
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.