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

 
AAPL
$113.99
Apple Inc.
+1.98
MSFT
$47.88
Microsoft Corpora
-0.26
GOOG
$534.03
Google Inc.
+5.26

MacTech Search:
Community Search:

Software Updates via MacUpdate

Google Drive 1.18.7821.2489 - File backu...
Google Drive is a place where you can create, share, collaborate, and keep all of your stuff. Whether you're working with a friend on a joint research project, planning a wedding with your fiancé, or... Read more
Eye Candy 7.1.0.1203 - 30 professional P...
Eye Candy renders realistic effects that are difficult or impossible to achieve in Photoshop alone, such as Fire, Chrome, and the new Lightning. Effects like Animal Fur, Smoke, and Reptile Skin are... Read more
MegaSeg 5.9.4 - Professional MP3 DJ appl...
MegaSeg is a complete solution for pro audio/video DJ mixing, radio automation, and music scheduling with rock-solid performance and an easy-to-use design. Mix with visual waveforms and Magic... Read more
Parallels Desktop 10.1.2 - Run Windows a...
Parallels Desktop is simply the world's bestselling, top-rated, and most trusted solution for running Windows applications on your Mac. With Parallels Desktop for Mac, you can seamlessly run both... Read more
GarageSale 6.9.1 - Create outstanding eB...
GarageSale is a slick, full-featured client application for the eBay online auction system. Create and manage your auctions with ease. With GarageSale, you can create, edit, track, and manage... Read more
Quicksilver 1.2.2 - Application launcher...
Quicksilver is a light, fast and free Mac application that gives you the power to control your Mac with keystrokes alone. Quicksilver allows you to find what you need quickly and easily, then act... Read more
Mac DVDRipper Pro 5.0.1 - 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
ClamXav 2.7 - Free virus checker, based...
ClamXav is a free virus checker for OS X. It uses the tried, tested, and very popular ClamAV open source antivirus engine as a back end. I hope you like and use ClamXav a lot and that it helps keep... Read more
FoldersSynchronizer 4.2 - Synchronize or...
FoldersSynchronizer is a popular and useful utility that synchronizes and backs-up files, folders, disks and boot disks. On each session you can apply special options like Timers, Multiple Folders,... Read more
Waltr 1.0.6 - Drag-and-drop any media fi...
WALTR is designed to make it easy to upload and convert any music or video file to an iPad or iPhone format for native playback. It supports a huge variety of media file types, including MP3, MP4,... Read more

Latest Forum Discussions

See All

Forget the Gloves – It’s a Cage Match in...
Forget the Gloves – It’s a Cage Match in Real Boxing’s Underground Update Posted by Jessica Fisher on December 23rd, 2014 [ permalink ] | Read more »
Who Wore it Best? Best of 2014
It’s the end of the year, so it’s time for some arbitrary internet awards! In this wrap-up episode of Who Wore it Best? we present our winners for the best, worst, and flat-out weirdest cloned games that graced the App Store in 2014. [ Who... | Read more »
Now You Can Explore Mayan Temples in Ass...
Now You Can Explore Mayan Temples in Assassin’s Creed Pirates’ Newest Update Posted by Jessica Fisher on December 23rd, 2014 [ permalink ] | Read more »
Soft Design aims to do free-to-play righ...
They say a team is only as big as its fans and that’s also certainly the case with video games, judging from the sales certain AAA ‘heavyweights’ get year-after-year. Soft Design took that principle as a core design philosophy and worked closely... | Read more »
Bogga Christmas Tree
Bogga Christmas Tree By Amy Solomon on December 23rd, 2014 Our Rating: Universal App - Designed for iPhone and iPad Bogga Christmas Tree allows young children to trim a tree, any time or place.   | Read more »
Opera Coast 4.0 Launches on iOS with 4 N...
Opera Coast 4.0 Launches on iOS with 4 New Features Posted by Jessica Fisher on December 23rd, 2014 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
Cricket Kids: Christmas Presents
Cricket Kids: Christmas Presents By Amy Solomon on December 23rd, 2014 Our Rating: Universal App - Designed for iPhone and iPad Cricket Kids: Christmas Presents allows children to play with digital toys opened for the Christmas... | Read more »
Lara Croft & Tomb Raider Mobile Bund...
Lara Croft & Tomb Raider Mobile Bundle – Only $4.99 Posted by Jessica Fisher on December 23rd, 2014 [ permalink ] Lara Croft is coming to you in | Read more »
SimCity BuildIt Review
SimCity BuildIt Review By Nadia Oxford on December 23rd, 2014 Our Rating: :: BUILDING AN OK TOMORROWUniversal App - Designed for iPhone and iPad SimCity BuildIt is a competent city-building game, but its free-to-play trappings are... | Read more »
SimCity Buildit – Tips, Tricks, and Stra...
Hello, Budding Mayors Want to know what we made of all this upgrading and inevitable waiting? Check out our SimCity BuildIt review! SimCity BuildIt is a city-building game from EA. Your job as mayor is to build houses for people to live in, industry... | Read more »

Price Scanner via MacPrices.net

Sony Fixing To Launch Large-Screen Android Ta...
Digitimes’ Aaron Lee and Joseph Tsai report that Sony, which last February exited the laptop computer market with the sale of its VIAO PC-making unit to a group of JApanese investors, is now expected... Read more
After Christmas sale: 13-inch Retina MacBook...
B&H Photo has new 13″ MacBook Pros on sale for up to $150 off MSRP as part of their Holiday pricing. Shipping is free, and B&H charges NY sales tax only: - 13″ 2.5GHz MacBook Pro: $1043 save... Read more
After Christmas sale: 15-inch Retina MacBook...
Adorama has 15″ Retina MacBook Pros on sale for up to $150 off MSRP. Shipping is free, and Adorama charges NY & NJ sales tax only: - 15″ 2.2GHz Retina MacBook Pro: $1899 save $100 - 15″ 2.5GHz... Read more
After Christmas sale: MacBook Airs for up to...
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
Apple now offering Certified Refurbished Mac...
The Apple Store is now offering Apple Certified Refurbished 2014 Mac minis, with models available starting at $419. Apple’s one-year warranty is included with each mini, and shipping is free: - 1.... Read more
Will Apple Build An A-series ARM Processor Po...
In computer terms, it’s been a very long time since the MacBook Air had a major redesign. More than four years have elapsed since Apple recast what had originally been more a pricy boutique device... Read more
iPhone 6s mini With Four-Inch Screen Rumored...
The Times of India’s Komal Mohan, citing a story in The Electronic Times of Taiwan, says that unnamed upstream supply chain sources report that Apple is gearing up to launch a new 4-inch screen... Read more
What’s The Current Value Of Your iOS Apps?
Basel, Switzerland based ConIT AG has announced AppZapp Notify and its free PC and Mac tool available for download. What is the present value of all my downloaded Apps? With AppZapp Notify, for the... Read more
PhatWare Releases WritePad Pro Advanced iOS W...
PhatWare Corporation has announced immediate availability of WritePad Pro 2.0, its advanced word processing, note-taking, and document management app which also takes full advantage of PhatWare’s... Read more
Last minute gift idea: Send an Apple Store Gi...
Send an Apple Store Gift Card by email this season, perhaps as a last minute Christmas gift. According to Apple, “Apple Store Gift Cards can be used to purchase Apple hardware and accessories at any... Read more

Jobs Board

Position Opening at *Apple* - Apple (United...
…Summary** As a Specialist, you help create the energy and excitement around Apple products, providing the right solutions and getting products into customers' hands. You Read more
Position Opening at *Apple* - Apple (United...
**Job Summary** Being a Business Manager at an Apple Store means you're the catalyst for businesses to discover and leverage the power, ease, and flexibility of Apple 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
Senior Event Manager, *Apple* Retail Market...
…This senior level position is responsible for leading and imagining the Apple Retail Team's global event strategy. Delivering an overarching brand story; in-store, Read more
*Apple* Store Leader Program (US) - Apple, I...
…Summary Learn and grow as you explore the art of leadership at the Apple Store. You'll master our retail business inside and out through training, hands-on experience, Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.