Jump To:
Leopard Reference Library: Carbon
The Human Interface Toolbox is an object-oriented C API for implementing user interfaces, available in Mac OS X v10.2 and later. Controls, windows, and menus are subclassed from the HIObject base class or the HIView subclass; the HIObject object acts as the data store (instance), and Carbon event handlers are the methods. The standard toolbox managers (Window Manager, Control Manager, and so on) work seamlessly with this new model, while its object-oriented nature makes it much easier to create custom user interface elements.

Document Descriptions
On Off
Display

Sort by
Title
Sort by
Resource Type
Sorted by
Date
Data Browser Reference (HTML) (PDF)
Describes the C API used to display data in list or column views similar to the Finder.
Reference 2008-04-08
High Level Toolbox Release Notes (10.5.2) (HTML)
Describes HIToolbox enhancements for Mac OS X v10.5.2.
Release Notes 2008-03-11
List Manager Reference (HTML) (PDF)
Deprecated - Describes the legacy C API for managing and displaying elements in a scrollable list. Replaced by the Data Browser.
Reference 2007-12-11
Application Manager Reference (HTML) (PDF)
Describes the C API for performing various application-level tasks in a Carbon application. Formerly titled Dock Manager Reference.
Reference 2007-10-31
Dialog Manager Reference (HTML) (PDF)
Describes the C interface for implementing alerts and dialog boxes.
Reference 2007-10-31
High Level Toolbox Release Notes (10.5) (HTML)
Describes new HIToolbox features and enhancements for Mac OS X v10.5.
Release Notes 2007-10-31
HIView Programming Guide (HTML) (PDF)
Describes view-based controls and how to implement them in Carbon applications.
Guides 2007-10-31
Window Manager Reference (HTML) (PDF)
Describes the C API for creating and manipulating Carbon windows.
Reference 2007-10-31
DTSCarbonShell (HTML) (DMG) (ZIP)
Provides a modern Mac OS X Carbon Application Skeleton
Sample Code 2007-09-20
Data Browser Programming Guide (HTML) (PDF)
Explains how to present data in lists similar to the list and column views in the Finder.
Guides 2007-08-07
Carbon Reference Update (HTML) (PDF)
Summarizes the symbols added to the Carbon framework.
Release Notes 2007-07-18
HIGeometry Reference (HTML) (PDF)
Describes the C API that defines basic geometric objects for HIToolbox.
Reference 2007-06-11
HIView-NSView (HTML) (DMG) (ZIP)
Demonstrates how to embed an NSView within an HIView in a Carbon window.
Sample Code 2007-05-29
StarMenu (HTML) (DMG) (ZIP)
Shows how to create a Custom Star Shape menu using the new HIMenuView class.
Sample Code 2007-05-24
HIFleetingControls (HTML) (DMG) (ZIP)
Implements fleeting controls such as seen in QuickTime Player full screen mode or iPhoto slideshow
Sample Code 2007-05-08
HIView Reference (HTML) (PDF)
Describes the C API for creating and manipulating view-based controls and menus in Carbon applications.
Reference 2007-04-13
Icon Services and Utilities Reference (HTML) (PDF)
Describes the C API for manipulating and drawing icons in Carbon applications.
Reference 2007-04-06
Control Manager Reference (HTML) (PDF)
Describes the C API for creating and manipulating Carbon controls.
Reference 2007-03-26
Appearance Manager Reference (HTML) (PDF)
Describes the C API for coordinating the look of the standard Mac OS human interface.
Reference 2007-01-23
CarbonCocoa_PictureCursor (HTML) (DMG) (ZIP)
Demonstrates how to use NSCursor from a Carbon based application.
Sample Code 2007-01-12
Why is my application crashing in QuickDraw when I'm not using it? (HTML)
QA1256: provides an explanation and workaround for a rare but serious problem affecting all applications.
Technical Q&As 2006-11-13
LittleArrowsShowcase (HTML) (DMG) (ZIP)
How to increment and decrement the LittleArrows value when the user clicks on the up and down buttons.
Sample Code 2006-11-09
Finder Interface Reference (HTML) (PDF)
Describes several C data types used by the Finder to contain information about file system objects.
Reference 2006-10-31
RecentItems (HTML) (DMG) (ZIP)
Implements "Recent items" menu(s)
Sample Code 2006-10-09
SampleCMPlugIn (HTML) (DMG) (ZIP)
A contextual menu plugIn for Mac OS X.
Sample Code 2006-10-09
Menu Manager Reference (HTML) (PDF)
Describes the C API for creating and managing an application's menus.
Reference 2006-09-15
HIToolboxSOU-Delegates (HTML) (DMG) (ZIP)
Shows how to use the HIObject Delegate API.
Sample Code 2006-08-04
HIToolboxSOU-MenuItemViews (HTML) (DMG) (ZIP)
Shows how to use the Menu Item View API.
Sample Code 2006-08-04
CarbonCocoaCoreImageTab (HTML) (DMG) (ZIP)
Carbon-based application creates a Cocoa-based web window which used CoreImage filters to transition between tabbed WebViews
Sample Code 2006-07-25
Losing the character code when using the control key (HTML)
QA1446: Explains why the control key transforms the character code instead of simply setting the appropriate modifier bit.
Technical Q&As 2006-07-17
HISimpleList (HTML) (DMG) (ZIP)
Illustrates how to create a simple list using the HIView APIs introduced in Mac OS X 10.2.
Sample Code 2006-03-03
High Level Toolbox Release Notes (10.4) (HTML)
Release Notes 2006-01-10
High Level Toolbox Release Notes (10.4.2) (HTML)
Release Notes 2006-01-10
High Level Toolbox Release Notes (10.4.3) (HTML)
Release Notes 2006-01-10
Setting default open Finder window (HTML)
QA1449: How to set the default Finder window to open when a disk is mounted
Technical Q&As 2006-01-03
How can I handle smooth mouse wheel scrolling? (HTML)
QA1453: Details an undocumented Carbon Event which will be added to the public headers in a later DevTools release.
Technical Q&As 2005-11-29
TabsShowcase (HTML) (DMG) (ZIP)
Shows how to instantiate and use the Tab control both programmatically and from a nib file.
Sample Code 2005-10-28
HICustomPushButton (HTML) (DMG) (ZIP)
Illustrates how to create a simple custom push button using the HIView functions introduced in Mac OS X 10.2.
Sample Code 2005-10-17
ImageMapView (HTML) (DMG) (ZIP)
Demonstrates how to add Accessibility to a complex custom HIView and the related parts of an application.
Sample Code 2005-10-17
ComboBoxPrefs (HTML) (DMG) (ZIP)
Use CFPrefs to store URLs to images for use in a browser style combo box.
Sample Code 2005-10-04
StopAlert and NoteAlert now use the Application icon (HTML)
QA1378: System Alerts now use the Application icon to let the User easily identify the source of the alert.
Technical Q&As 2005-10-04
Multilingual Text Engine Frequently Asked Questions (HTML) (日本語 HTML)
TN2026: A list of frequently asked questions for the Multilingual Text Engine (MLTE).
Technical Notes 2005-09-12
HIToolbar Reference (HTML) (PDF)
Describes the C API for creating and manipulating toolbars in Carbon applications.
Reference 2005-09-08
DialogsToHIViews (HTML) (DMG) (ZIP)
Shows how to convert from an old-style resource-based dialog to a modern nib-based window with HIViews.
Sample Code 2005-08-24
WindowFun (HTML) (DMG) (ZIP)
Create window layers and groups. Drawing transparent lines. How to display the "Poof" the toolbar uses.
Sample Code 2005-08-24
HIArchive Programming Guide (HTML) (PDF)
Describes how to store data objects using HIArchive. Also includes information to make custom HIObjects archivable.
Guides 2005-08-11
HIArchive Reference (HTML) (PDF)
Describes the C API for storing and retrieving data in HIArchives.
Reference 2005-08-11
HIObject Reference (HTML) (PDF)
Describes the C API for creating and manipulating human interface objects in Carbon applications.
Reference 2005-08-11
CarbonTransparentWindow (HTML) (DMG) (ZIP)
Shows how to handle window transparency for compositing, non-compositing, and custom HIView-based Carbon windows.
Sample Code 2005-08-10
HIObjectThreadController (HTML) (DMG) (ZIP)
Shows how threads can interact with the User Interface handled by the main thread of the application.
Sample Code 2005-08-10
ScrollAndZoom (HTML) (DMG) (ZIP)
An illustration of the use of the Context Transformation Matrix (CTM) for zooming and scrolling a HIView.
Sample Code 2005-08-10
TypeServicesForUnicode (HTML) (DMG) (ZIP)
Shows how to use various ATSUI functions and features going from simple to very complex.
Sample Code 2005-08-10
Why am I not receiving kEventControlHit events for some of the parts of my custom HIView? (HTML)
QA1439: Explains why part codes greater than 127 should not be used
Technical Q&As 2005-07-14
Handling Carbon Windows and Controls (HTML) (PDF)
A guidebook for implementing windows and controls in Carbon applications.
Guides 2005-07-07
HIToolbar Programming Guide (HTML) (PDF)
Explains how to create toolbars in Carbon applications.
Guides 2005-07-07
Carbon Drawer problem in Mac OS X v10.4 and v10.4.1 (HTML)
QA1435: Workaround for a drawer problem present in Mac OS X v10.4 but fixed in v10.4.2
Technical Q&As 2005-06-21
Unified window title and toolbar appearance in Carbon (HTML)
QA1423: How to use the unified window title and toolbar appearance for a Carbon window.
Technical Q&As 2005-06-17
Custom_HIView_Tutorial (HTML) (DMG) (ZIP)
Tutorial presenting a step-by-step custom HIView development. All steps are documented and provided as standalone projects.
Sample Code 2005-06-01
HITextViewDemo (HTML) (DMG) (ZIP)
Overview of basic HITextView functionality, including Tiger's new font & spelling panel support.
Sample Code 2005-06-01
ImageBrowserView (HTML) (DMG) (ZIP)
Implementing a simple HIView subclass
Sample Code 2005-06-01
Why is my Control/HIView not accepting drops on Mac OS X v10.4 (Tiger)? (HTML)
QA1426: Explains how to handle correctly the kEventControlDragEnter event so drops will work in a Control or HIView.
Technical Q&As 2005-04-29
Defining and Using the kTransformFocused IconTransformType (HTML)
QA1414: Documents a new IconTransformType, available in Panther and later, which draws a focus ring around an icon.
Technical Q&As 2005-03-29
My custom item dismisses my Navigation Services dialog (HTML)
QA1381: Gives a workaround for dismissive clicks on items in the custom area of Navigation Services dialogs.
Technical Q&As 2004-11-22
Private HITheme APIs in Mac OS X 10.2 should not be called (HTML)
QA1377: Explains why weak-linked API common runtime check is not good enough for the HITheme APIs.
Technical Q&As 2004-10-27
Enabling the Navigation Services default behavior in its dialogs (HTML)
QA1384: Explains how to enable the default behavior of the Navigation Services dialogs.
Technical Q&As 2004-10-15
MLTE_CustomScrolling (HTML) (DMG) (ZIP)
Shows how to implement MLTE's custom scrolling functionality
Sample Code 2004-10-15
Fixing the Layout Binding of the Tab control User Panes (HTML)
QA1161: Describes the Tab control hierarchy and layouts of its panes and provides a fix to a common problem.
Technical Q&As 2004-10-14
Managing custom drawing code in a compositing world (HTML)
QA1162: Explains why any custom drawing code must be handled by the kEventControlDraw handler of a custom HIView
Technical Q&As 2004-10-14
Clickable Static Text Item (HTML)
QA1380: Explains how to make a static text item respond to clicks
Technical Q&As 2004-10-05
SetFontInfoForSelection incorrect prototype (HTML)
QA1375: Describes the incorrect prototyping of the SetFontInfoForSelection API and gives a workaround.
Technical Q&As 2004-10-04
HIShape Reference (HTML) (PDF)
Describes the Carbon API for manipulating HIShape objects.
Reference 2004-06-28
Upgrading to the Mac OS X HIToolbox (HTML) (PDF)
A porting guide for Carbon developers seeking to adopt Mac OS X HIToolbox features such as nib-based windows and HIViews.
Guides 2004-06-28
The Benefits of HIToolbox: the Evolving Widget Set (HTML)
Learn how to get started working with HIView control types.
Articles 2004-06-14
Creating Carbon Menus (HTML) (PDF)
Describes how to create menus in Carbon applications.
Guides 2004-02-23
Mac OS X 10.3 Navigation Services Changes (HTML) (日本語 HTML)
TN2105: Explains Navigation Services changes in Mac OS X 10.3 Panther
Technical Notes 2004-01-30
AddNibToNav (HTML) (DMG) (ZIP)
Shows how to create a custom area, instantiated from a nib file, in a Navigation Services dialog.
Sample Code 2004-01-22
X11 FAQ (HTML) (日本語 HTML)
QA1232: Frequently Asked Questions about using Apple's X Window System (X11) implementation.
Technical Q&As 2003-11-17
HIEmbedder (HTML) (DMG) (ZIP)
Shows how to write a custom embedding HIView which can scroll if set in an HIScrollView.
Sample Code 2003-11-13
Why doesn't my Scrolling Text Box control work in a compositing window? (HTML)
QA1324: Explains why some older controls do not function properly in compositing windows and points to a replacement.
Technical Q&As 2003-11-13
HIScrollingTextBox (HTML) (DMG) (ZIP)
Offers replacement custom HIViews for the Scrolling TextBox control which does not work in compositing windows.
Sample Code 2003-11-06
HITextViewShowcase (HTML) (DMG) (ZIP)
Shows how to create a HITextView using Interface Builder and using programming functions only.
Sample Code 2003-10-30
HIView APIs vs. Control Manager APIs (HTML)
TN2074: Provides some clarification on the similar APIs and similar behaviors found in the HIView and Control Managers.
Technical Notes 2003-10-29
Why isn't my edit text box in my Navigation dialog's custom area working on 10.3? (HTML)
QA1315: Explains a bug in the Mac OS X 10.3 Navigation Services Custom Area involving the EditText and its work around.
Technical Q&As 2003-10-28
HIDoubleSlider (HTML) (DMG) (ZIP)
Illustrates how to create a double slider using the Appearance and HIView functions introduced in Mac OS X 10.2.
Sample Code 2003-10-27
HITextShowcase (HTML) (DMG) (ZIP)
Illustrates some of the different text-related controls, non-controls, and HIViews that are available in Mac OS X 10.3.
Sample Code 2003-10-27
MoreIsBetter (HTML) (DMG) (ZIP)
Library providing indispensable wrapers and workarounds for many areas of Mac OS programming.
Sample Code 2003-10-27
FloatingWindow (HTML) (DMG) (ZIP)
Demonstrates that floating windows are very easy to implement on Mac OS X using Nib files.
Sample Code 2003-10-24
MenuViews (HTML) (DMG) (ZIP)
Demonstrates a variety of interesting uses of HIView-based menus in Mac OS X 10.3.
Sample Code 2003-10-24
Sheets (HTML) (DMG) (ZIP)
Demonstrates how to create a sheet both in code and through the use of a Nib file.
Sample Code 2003-10-24
Tiler (HTML) (DMG) (ZIP)
Modify your applications tile icon within the Mac OS X dock by using both QuickDraw and Quartz
Sample Code 2003-10-24
GrabBag (HTML) (DMG) (ZIP)
Demonstrates variety of techniques and features of Carbon. DataBrowser , PBCatalogSearchAsync, Overlay windows, Tab controls, more...
Sample Code 2003-07-29
Filtering QuickTime media types in Navigation Services (HTML) (日本語 HTML)
QA1274: Describes how to filter QuickTime media types in a Navigation Services filter procedure.
Technical Q&As 2003-07-23
The Data Browser GetDataBrowserUserState API (HTML) (日本語 HTML)
QA1270: Explains a problematic Data Browser API definition and how to work around it.
Technical Q&As 2003-07-22
QISA (HTML) (DMG) (ZIP)
Demonstrates the basics of writing an Internet setup assistant for traditional Mac OS and Mac OS X.
Sample Code 2003-05-15
BasicDataBrowser (HTML) (DMG) (ZIP)
Shows how to create a basic, functional data browser.
Sample Code 2003-05-08
Notifying the Finder of changed or newly created files (HTML) (日本語 HTML)
QA1260: Recommended approach to notifying the Finder to update its open windows of a file creation or change.
Technical Q&As 2003-04-15
Can I have parameters of type typeHIRect instead of type typeQDRectangle in my kEventControlBoundsChanged message handler? (HTML) (日本語 HTML)
QA1246: Details the automatic coercions between QuickDraw and Quartz types provided by the Carbon Event Parameter accessors.
Technical Q&As 2003-04-03
Guide to Creating Kiosks on Mac OS X (HTML) (日本語 HTML)
TN2062: Discusses techniques used in creating applications which require kiosk-like functionality on Mac OS X.
Technical Notes 2003-02-24
SimpleTabControl (HTML) (DMG) (ZIP)
Demonstrates how to use a simple tabbed pane window. This control is often used in preferences.
Sample Code 2003-02-20
HICustomLeftRightSwitch (HTML) (DMG) (ZIP)
Illustrates how to create a custom left/right switch using the HIView functions introduced in Mac OS X 10.2.
Sample Code 2003-02-06