ACS Appearance suite


Overview

The ACS Appearance classes implement the "Apple Grayscale Appearance" for System 7, and provide a foundation for support of the Appearance Manager extension. Apple has published the visual specifications for grayscale user interface components under System 7 that are consistent with the Appearance Manager default theme. The Appearance suite implements this appearance in a set of core C++ classes, plus a set of "adapter" classes for MacApp and the toolbox Dialog Manager, that make it really easy for developers to add to their applications.

The core Appearance classes are provided in the ACS suites:Appearance folder. These classes are not framework-specific. In addition to implementing the complete set of Apple Grayscale Appearance controls, the Appearance classes provide several additional features that you can take advantage of:

In addition to the core Appearance classes, there are MacApp and Dialog Manager adapter classes:


Initialization Options

In order to support friendly co-existence with the Appearance Manager and with popular user-installed system extensions, The Appearance suite has the ability to "suppress" its own handling of the standard Control Manager controls at runtime. This allows the Appearance Manager or the extensions Aaron and Kaleidoscope to draw the controls.

The default behavior of the Appearance suite is to detect the Appearance Manager, Aaron, or Kaleidoscope, via Gestalt() calls during InitAGA_AC(). If it encounters any of these, it will let them take over control drawing. The MacApp framework automatically calls this initialization function as part of its initialization.

Control suppression is handled by calling SetEmulateControls_AC() after InitAGA_AC() and before creating any Appearance controls.


Overview of the Appearance suite Core classes

These are the core AGA classes that do most of the work. See the header and implementation files in ACS Appearance for usage instructions. If you are using the MacApp view classes, you will probably not instantiate core class objects directly (although you certainly can, especially if you are using the Dialog Manager adapter with the new controls).

CButton_AC

Standard push button control, with optional default button outline.

CCheckBox_AC

Standard check box control, with mixed-state capability.

CCluster_AC

Standard primary and secondary group boxes, with or without a title, or with gap for separate title object.

CControl_AC

Base class for ACS Appearance controls.

CDisclosureTriangle_AC

Standard disclosure triangle, with automatic animation.

CIconButton_AC

Standard icon button control, with push button behavior. Supports icon family, cicn, and PICT resources.

CIconCheckBox_AC

Standard icon button control, with check box behavior. Supports icon family, cicn, and PICT resources.

CIconRadio_AC

Standard icon button control, with radio button behavior. Supports icon family, cicn, and PICT resources.

CIndicator_AC

Base class for ACS Appearance controls that have a value indicator (on/off, etc.).

CPopup_AC

Standard popup menu control, with choice of horizontal resizing behavior.

CProgressIndicator_AC

Standard determinate and indeterminate progress indicators.

CRadioButton_AC

Standard radio button control, with mixed-state capability.

CScrollBar_AC

Standard scroll bar control, with options for live scrolling and proportional thumb.

CSeparator_AC

Standard separator line.

CSlider_AC

Standard slider control, labeled or unlabeled, horizontal or vertical, left- or right-oriented, with options for live tracking and proportional indicator.

CStaticText_AC

Simple text object that knows how to dim and erase on a gray background.

CTabbedView_AC

Standard tab panel, with or without box frame, in small or large tab format.

CUpDownControl_AC

Standard little arrows control.

There are also some AGA imaging functions used by the core and adapter classes that you may find useful.

AGAStringOut

Draws a single line of text with truncation, style, and coloring options.

AGATextBox

Draws text with line wrapping like TETextBox, with style and coloring options.

AGABackgroundPaint

Paints a window background of the specified kind, with optional grow box notch.

AGAInstallGrayWCTB

Installs a gray ramp as the window's 'wctb' background.

AGADrawBorderFrame

Draws a shaded "3D" sunken border frame around an area, with optional grow box notch.

AGADrawSeparator

Draws an indented "3D" separator line.

Compatibility

The Appearance suite classes require Color QuickDraw and System 7, and support multiple screen devices including 1-bit drawing and monitor spanning.

The supplied MacApp example programs have been compiled using CodeWarrior 11 targeting both 68K and PowerPC.