Documentation Archive Developer
Search

ADC Home > Reference Library > Technical Notes > Legacy Documents > Mac OS 9 & Earlier >

Legacy Documentclose button

Important: This document is part of the Legacy section of the ADC Reference Library. This information should not be used for new development.

Current information on this Reference Library topic can be found here:

Extension Manager 4.0

CONTENTS

This Technote is intended as a brief overview of Extensions Manager 4.0, which is included in Mac 0S 7.6. There are a number of new and enhanced features in the Extensions Manager which will be of interest to anyone who develops control panels, extensions or applications which might be controlled by it.

This Technote is a companion to Technote 1090, Mac OS 7.6, which provides a full overview of the new release. We highly recommend that you read Technote 1090 in addition to this document.

 Updated: [Jan 17 1997]






A New Look

The first change you will notice in Extensions Manager 4.0 is the new look. It's called the Apple Grayscale Appearance, as shown in Figure 1.

The new look for Extensions Manager 4.0
Figure 1. The new look for Extensions Manager 4.0

Back to top

How the Extensions Manager Interacts With Your Extension

The Extensions Manager 4.0 disables and enables extensions as past versions did by moving the disabled extensions to various folders inside the current System Folder with the string "(Disabled)" appended to the source folders' name. It enables extensions by moving from the disabled folder to their appropriate folder.

This movement of extensions between the active folders and the disabled folders brings up a warning for developers of extensions.


WARNING:
As a developer, you need to make sure that your extension or control panel functions correctly when it is installed (i.e., its code ran at boot time), but it is no longer in the same folder it was at boot time. For example, your control panel was in the Control Panels folder and now it is in the Control Panels (Disabled) folder. Also, make sure that it functions correctly when it was not run at boot time, i.e., it's not installed, but it is now in the Control Panels or Extensions folder, meaning that it will run at next boot. For example, a control panel might put up an alert when opened in this case, saying that changing its settings will have no effect until the Macintosh has been restarted.


Back to top

Package Handling

Beyond the new look, the second area of improvement is the ability to deal with "packages". A package is a group of extensions that go together, either because they are from the same manufacturer or because the extensions rely on each other. When viewing the extensions list by package, users can easily turn all related extensions on or off with one click of the mouse.

Extensions Manager 4.0 provides three different ways to view the list of extensions:

  • as Folders (the view shown in the above picture)
  • as Packages
  • as Items.

The "as Folders" option resembles the previous Extensions Manager's list, which separated all the extensions from all the control panels from the System Folder items. The "as Items" list removes the folders from the list, so you don't have to be concerned with whether or not the item is a control panel or an extension.

The newest and most powerful feature of Extensions Manager 4.0 is its ability to sort extensions "as Packages". Extensions Manager 3.0.X had a "System 7.5.X" selection in its pop-up menu -- a built-in package of those extensions that shipped with System 7.5.X. Extensions Manager 4.0 takes this idea to its logical conclusion, since it allows any vendor to define extension packages in an intuitive and flexible manner.

Extensions Manager constructs packages by looking at the 'vers' 2 resource, which the Finder uses to display information via the "Get Info" window, like this one for QuickTime 2.5. Figure 2 shows an example of the Get Info window.

Example of Get Info window
Figure 2. Example of Get Info window

Extensions Manager uses the 'vers' resource to not only inform the user about an extension, but also to group extensions with the same 'vers' 2 long version string together.

Figure 3 shows what a 'vers' resource looks like in ResEdit.

ResEdit window, showing 'vers'
         information
Figure 3. ResEdit window, showing 'vers' information

Extensions Manager 4.0 retrieves the version number from the 'vers' 1 resource's short version string, or if there is no 'vers' 1 resource, it attempts to retrieve the version number from the short version string of the 'vers' 2 resource.

Extensions Manager 4.0 uses the short version string to display the version of a file in its window, and it uses the long version string as the package identifier for each extension. The short version string does not have to be limited to just a number, but it should be short. To use the package feature of Extensions Manager 4.0, the long version string of all extensions in the same package must match exactly.

If you are a vendor of extensions or other items which go into the System Folder (or one of its subfolders) and you have multiple extensions that work as a group, you can make them into a package by simply giving all of them the same long version string in their 'vers' 2 resource. Extensions Manager 4.0 will treat those extensions as being in the same package, as Figure 4 demonstrates.

Developers creating groups of extensions should package all of those extensions into one package, even if those extensions do not function together as a group. By doing so, your extensions appear as a complete software package and will be organized in a way that can be easily identified by the user when Extensions Manager 4.0's display is in the package mode.

Examples of Different Packages
Figure 4. Examples of Different Packages

As you can see in Figure 4, if there are two or more items in a package, then a checkbox is shown, a special package icon is displayed and the name of the package (taken from the long version string in the 'vers' 2 resource) is shown in bold. The user can use the triangles to compress or expand the view and can enable or disable entire packages by clicking on the checkbox for the main package (as is the case with the QuickDraw 3D v1.0.6 package in Figure 4). The user can also disable only some items in a package (as is the case with the Cyberdog 1.1 package in Figure 4).

Extensions Manager 4.0 incorporates tri-state checkboxes which let the user easily know that only some items in a group are on, just as the Installer lets you know that only some items in a custom install package will be installed, as in Figure 4.

If the check box has a horizontal line through it, like this:

Partially-disabled package checkbox
Figure 5. Partially-disabled package checkbox

it means that one or more items in the group are not active, as is the case of the Cyberdog 1.1 package in Figure 4.

Back to top

The Item Information Window

The "Item Information" window, shown in Figure 6, provides a place for the display of textual information describing the facilities provided by an extension. Vendors can provide this information by including necessary resources in their extension files. Extensions Manager 4.0 retrieves the textual information displayed in this window from one of four places. The search order for finding that information is as follows:

  1. It first looks in resource 'CCItm'1 128
  2. If that resource does not exist, it looks in an internal Extensions Manager Info database.
  3. If it doesn't find a match in the database, then it looks in the file for resource 'hfdr' -5696, which is the Finder Balloon Help resource.
  4. Finally, it looks in the Finder Help file for information about the file.

Here is an example from MacsBug's 'hfdr' -5696 resource:

Item Information window
Figure 6. Item Information window

If no information is found in any of these places, it displays the default information (which is the same information that the Finder displays in Balloon Help where there is no 'hfdr' -5696). It is a generic message, as shown in Figure 7.

Generic Item Information
Figure 7. Generic Item Information

The format of the 'CCItm' ( is the option-2 character, hex AA) resource is exactly the same as a 'TEXT' resource, a pure text stream with no extraneous information. Figure 8 showns how it appears in ResEdit.

ResEdit view
Figure 8. ResEdit view of 'CCItm' resource

The format of the 'hfdr' resource is described in Inside Macintosh: More Macintosh Toolbox.

Using the 'CCItm' resource allows your extension to display useful information in Extensions Manager (i.e., what functionality this extension provides or what other extensions this extension requires) while allowing your 'hfdr' -5696 resource to say things like "This must be in the Extensions folder to be active," or other things which don't make sense when viewed in the Extensions Manager's context.

Back to top

References

Inside Macintosh: More Macintosh Toolbox, page 3-86, regarding the 'hfdr' resource.

Inside Macintosh: Macintosh Toolbox Essentials, pages 7-31 through 7-33, regarding the 'vers' resource.

The Writing a System Extension chapter in Inside Macintosh: Operating System Utilities (chapters 9 and 10)

The Control Panels chapter in Inside Macintosh: More Macintosh Toolbox (8-1)

Technote TB15-"New" cdev Messages

Technote TB515-Control Panel Q&As

Technote OV18-Resource in CDEV?

Developers building safe "fat" accelerated extensions should refer to the sections of Inside Macintosh: PowerPC System Software beginning on pages 1-34 and 2-24.

A piece of Extensions Manager trivia: 'CCItm' means "Conflict Catcher Information".

Back to top

Downloadables

acrobat

Acrobat version of this Note (600K)

Download


Back to top