Jump To:
Leopard Reference Library
Carbon is a set of C APIs offering developers an advanced user interface tool kit, event handling, the Quartz 2D graphics library, and multiprocessing support. Developers have access to other C and C++ APIs, including the OpenGL drawing system and the Mach microkernel.

A guided introduction and learning path for developers new to Carbon.   Essential information for developers using procedural C.   C API references organized by framework.
Document Descriptions
On Off
Display

Sort by
Title
Sorted by
Topic
Sort by
Resource Type
Sort by
Date
Creating Carbon Menus (HTML) (PDF)
Describes how to create menus in Carbon applications.
Human Interface Toolbox Guides 2004-02-23
Custom_HIView_Tutorial (HTML) (DMG) (ZIP)
Tutorial presenting a step-by-step custom HIView development. All steps are documented and provided as standalone projects.
Human Interface Toolbox Sample Code 2005-06-01
CustomWindow (HTML) (DMG) (ZIP)
Demonstrates how to create a custom window in Mac OS X.
Human Interface Toolbox Sample Code 2003-01-30
CustomWindowWidget (HTML) (DMG) (ZIP)
Demonstrates two ways of adding a custom window widget to the window frame of a standard document window.
Human Interface Toolbox Sample Code 2003-01-30
The Data Browser GetDataBrowserUserState API (HTML) (日本語 HTML)
QA1270: Explains a problematic Data Browser API definition and how to work around it.
Human Interface Toolbox Technical Q&As 2003-07-22
Data Browser Programming Guide (HTML) (PDF)
Explains how to present data in lists similar to the list and column views in the Finder.
Human Interface Toolbox Guides 2007-08-07
Data Browser Reference (HTML) (PDF)
Describes the C API used to display data in list or column views similar to the Finder.
Human Interface Toolbox Reference 2008-04-08
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.
Human Interface Toolbox Technical Q&As 2005-03-29
Dialog Manager Helper Functions (HTML) (日本語 HTML)
TN1148: Discusses Dialog Manager calls available since System 7.0 that minimize work in managing dialogs.
Human Interface Toolbox Technical Notes 2000-08-14
Dialog Manager Reference (HTML) (PDF)
Describes the C interface for implementing alerts and dialog boxes.
Human Interface Toolbox Reference 2007-10-31
DialogsToHIViews (HTML) (DMG) (ZIP)
Shows how to convert from an old-style resource-based dialog to a modern nib-based window with HIViews.
Human Interface Toolbox Sample Code 2005-08-24
Do I have to call CreateRootControl after creating my window? (HTML) (日本語 HTML)
QA1215: Explains when and when not to call CreateRootControl after creating a window.
Human Interface Toolbox Technical Q&As 2002-11-12
DTSCarbonShell (HTML) (DMG) (ZIP)
Provides a modern Mac OS X Carbon Application Skeleton
Human Interface Toolbox Sample Code 2007-09-20
Enabling the application menu's "Preferences..." menu item on Mac OS X (HTML)
QA1079: Explains how to enable the application menu's "Preferences..." menu item on Mac OS X.
Human Interface Toolbox Technical Q&As 2001-10-30
Enabling the Navigation Services default behavior in its dialogs (HTML)
QA1384: Explains how to enable the default behavior of the Navigation Services dialogs.
Human Interface Toolbox Technical Q&As 2004-10-15
Filtering QuickTime media types in Navigation Services (HTML) (日本語 HTML)
QA1274: Describes how to filter QuickTime media types in a Navigation Services filter procedure.
Human Interface Toolbox Technical Q&As 2003-07-23
Finder Interface Reference (HTML) (PDF)
Describes several C data types used by the Finder to contain information about file system objects.
Human Interface Toolbox Reference 2006-10-31
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.
Human Interface Toolbox Technical Q&As 2004-10-14
FloatingWindow (HTML) (DMG) (ZIP)
Demonstrates that floating windows are very easy to implement on Mac OS X using Nib files.
Human Interface Toolbox Sample Code 2003-10-24
GetDragHiliteColor (HTML) (DMG) (ZIP)
Shows how to obtain the color that Drag Manager uses to hilite regions when calling ShowDragHilite.
Human Interface Toolbox Sample Code 2003-01-30
GrabBag (HTML) (DMG) (ZIP)
Demonstrates variety of techniques and features of Carbon. DataBrowser , PBCatalogSearchAsync, Overlay windows, Tab controls, more...
Human Interface Toolbox Sample Code 2003-07-29
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.
Human Interface Toolbox Technical Notes 2003-02-24
Handling Carbon Windows and Controls (HTML) (PDF)
A guidebook for implementing windows and controls in Carbon applications.
Human Interface Toolbox Guides 2005-07-07
HexEditorView (HTML) (DMG) (ZIP)
HIView subclass which implements a hex editor similar to those found in resource editors.
Human Interface Toolbox Sample Code 2003-01-30
HIArchive Programming Guide (HTML) (PDF)
Describes how to store data objects using HIArchive. Also includes information to make custom HIObjects archivable.
Human Interface Toolbox Guides 2005-08-11
HIArchive Reference (HTML) (PDF)
Describes the C API for storing and retrieving data in HIArchives.
Human Interface Toolbox Reference 2005-08-11
HICustomLeftRightSwitch (HTML) (DMG) (ZIP)
Illustrates how to create a custom left/right switch using the HIView functions introduced in Mac OS X 10.2.
Human Interface Toolbox Sample Code 2003-02-06
HICustomPushButton (HTML) (DMG) (ZIP)
Illustrates how to create a simple custom push button using the HIView functions introduced in Mac OS X 10.2.
Human Interface Toolbox Sample Code 2005-10-17
HideMenuBar (HTML) (DMG) (ZIP)
Shows how to hide the menu bar.
Human Interface Toolbox Sample Code 2003-01-30
HIDoubleSlider (HTML) (DMG) (ZIP)
Illustrates how to create a double slider using the Appearance and HIView functions introduced in Mac OS X 10.2.
Human Interface Toolbox Sample Code 2003-10-27
HIEmbedder (HTML) (DMG) (ZIP)
Shows how to write a custom embedding HIView which can scroll if set in an HIScrollView.
Human Interface Toolbox Sample Code 2003-11-13
HIFleetingControls (HTML) (DMG) (ZIP)
Implements fleeting controls such as seen in QuickTime Player full screen mode or iPhoto slideshow
Human Interface Toolbox Sample Code 2007-05-08
HIFramework (HTML) (DMG) (ZIP)
Contains C++ classes which are used by other HIToolbox sample code releases.
Human Interface Toolbox Sample Code 2003-02-06
HIGeometry Reference (HTML) (PDF)
Describes the C API that defines basic geometric objects for HIToolbox.
Human Interface Toolbox Reference 2007-06-11
High Level Toolbox Release Notes (10.4) (HTML)
Human Interface Toolbox Release Notes 2006-01-10
High Level Toolbox Release Notes (10.4.2) (HTML)
Human Interface Toolbox Release Notes 2006-01-10
High Level Toolbox Release Notes (10.4.3) (HTML)
Human Interface Toolbox Release Notes 2006-01-10
High Level Toolbox Release Notes (10.5) (HTML)
Describes new HIToolbox features and enhancements for Mac OS X v10.5.
Human Interface Toolbox Release Notes 2007-10-31
High Level Toolbox Release Notes (10.5.2) (HTML)
Describes HIToolbox enhancements for Mac OS X v10.5.2.
Human Interface Toolbox Release Notes 2008-03-11
HIObject Reference (HTML) (PDF)
Describes the C API for creating and manipulating human interface objects in Carbon applications.
Human Interface Toolbox Reference 2005-08-11
HIObjectRegisterSubclass returns paramErr (HTML) (日本語 HTML)
QA1213: Explains in which case HIObjectRegisterSubclass would return paramErr and gives a work around.
Human Interface Toolbox Technical Q&As 2002-11-12
HIObjectThreadController (HTML) (DMG) (ZIP)
Shows how threads can interact with the User Interface handled by the main thread of the application.
Human Interface Toolbox Sample Code 2005-08-10
HIScrollingTextBox (HTML) (DMG) (ZIP)
Offers replacement custom HIViews for the Scrolling TextBox control which does not work in compositing windows.
Human Interface Toolbox Sample Code 2003-11-06
HIShape Reference (HTML) (PDF)
Describes the Carbon API for manipulating HIShape objects.
Human Interface Toolbox Reference 2004-06-28
HISimpleList (HTML) (DMG) (ZIP)
Illustrates how to create a simple list using the HIView APIs introduced in Mac OS X 10.2.
Human Interface Toolbox Sample Code 2006-03-03
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.
Human Interface Toolbox Sample Code 2003-10-27
HITextViewDemo (HTML) (DMG) (ZIP)
Overview of basic HITextView functionality, including Tiger's new font & spelling panel support.
Human Interface Toolbox Sample Code 2005-06-01
HITextViewShowcase (HTML) (DMG) (ZIP)
Shows how to create a HITextView using Interface Builder and using programming functions only.
Human Interface Toolbox Sample Code 2003-10-30
HIToolbar Programming Guide (HTML) (PDF)
Explains how to create toolbars in Carbon applications.
Human Interface Toolbox Guides 2005-07-07
HIToolbar Reference (HTML) (PDF)
Describes the C API for creating and manipulating toolbars in Carbon applications.
Human Interface Toolbox Reference 2005-09-08
HIToolboxSOU-Delegates (HTML) (DMG) (ZIP)
Shows how to use the HIObject Delegate API.
Human Interface Toolbox Sample Code 2006-08-04
HIToolboxSOU-MenuItemViews (HTML) (DMG) (ZIP)
Shows how to use the Menu Item View API.
Human Interface Toolbox Sample Code 2006-08-04
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.
Human Interface Toolbox Technical Notes 2003-10-29
HIView Programming Guide (HTML) (PDF)
Describes view-based controls and how to implement them in Carbon applications.
Human Interface Toolbox Guides 2007-10-31
HIView Reference (HTML) (PDF)
Describes the C API for creating and manipulating view-based controls and menus in Carbon applications.
Human Interface Toolbox Reference 2007-04-13
HIView-NSView (HTML) (DMG) (ZIP)
Demonstrates how to embed an NSView within an HIView in a Carbon window.
Human Interface Toolbox Sample Code 2007-05-29
HIViewTest (HTML) (DMG) (ZIP)
An HIView with rudimentary drawing and hit testing.
Human Interface Toolbox Sample Code 2003-01-30
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.
Human Interface Toolbox Technical Q&As 2005-11-29
How can I set the default location with the modern Navigation APIs NavCreatexxx? (HTML) (日本語 HTML)
QA1151: Explains how to set the default location with a NavCustomControl call using the kNavCtlSetLocation message in the Event Proc.
Human Interface Toolbox Technical Q&As 2002-07-01
How PBDTGetAPPL Chooses Which Copy of an App to Launch (HTML) (日本語 HTML)
Deprecated - TB19: Explains how PBDTGetAppl() chooses which application copy to launch, and how to deal with the trash.
Human Interface Toolbox Technical Q&As 1996-05-14
How to use the ATSUI Low Level APIs to get glyph outlines (HTML) (日本語 HTML)
TN2033: Covers the ATSUI low-level APIs.
Human Interface Toolbox Technical Notes 2001-11-26
icon cache demo (HTML) (DMG) (ZIP)
Demonstrates the use of an icon cache to limit the search for icon resource to one resource file.
Human Interface Toolbox Sample Code 2003-01-30
Icon Play (HTML) (DMG) (ZIP)
Demonstrates the use of icon utilities and popup control cdef in a program using modal dialogs.
Human Interface Toolbox Sample Code 2003-01-30
Icon Services and Utilities Reference (HTML) (PDF)
Describes the C API for manipulating and drawing icons in Carbon applications.
Human Interface Toolbox Reference 2007-04-06
IconUtilCheck (HTML) (DMG) (ZIP)
Shows how to determine whether the Icon Utilities are available.
Human Interface Toolbox Sample Code 2003-01-30
ImageBrowserView (HTML) (DMG) (ZIP)
Implementing a simple HIView subclass
Human Interface Toolbox Sample Code 2005-06-01
ImageMapView (HTML) (DMG) (ZIP)
Demonstrates how to add Accessibility to a complex custom HIView and the related parts of an application.
Human Interface Toolbox Sample Code 2005-10-17
Installing input methods on Mac OS X (HTML)
QA1054: Describes how to install and use input methods on Mac OS X.
Human Interface Toolbox Technical Q&As 2001-09-14
The intermittent behavior of SetDialogItemText (HTML)
Deprecated - QA1082: Explains why SetDialogItemText may seem to not work correctly if you have embedding turned on.
Human Interface Toolbox Technical Q&As 2001-10-30
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.
Human Interface Toolbox Reference 2007-12-11
LittleArrowsShowcase (HTML) (DMG) (ZIP)
How to increment and decrement the LittleArrows value when the user clicks on the up and down buttons.
Human Interface Toolbox Sample Code 2006-11-09
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.
Human Interface Toolbox Technical Q&As 2006-07-17
Mac OS X 10.3 Navigation Services Changes (HTML) (日本語 HTML)
TN2105: Explains Navigation Services changes in Mac OS X 10.3 Panther
Human Interface Toolbox Technical Notes 2004-01-30
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
Human Interface Toolbox Technical Q&As 2004-10-14
Menu Manager Reference (HTML) (PDF)
Describes the C API for creating and managing an application's menus.
Human Interface Toolbox Reference 2006-09-15
MenuViews (HTML) (DMG) (ZIP)
Demonstrates a variety of interesting uses of HIView-based menus in Mac OS X 10.3.
Human Interface Toolbox Sample Code 2003-10-24
MLTE_CustomScrolling (HTML) (DMG) (ZIP)
Shows how to implement MLTE's custom scrolling functionality
Human Interface Toolbox Sample Code 2004-10-15
MoreIsBetter (HTML) (DMG) (ZIP)
Library providing indispensable wrapers and workarounds for many areas of Mac OS programming.
Human Interface Toolbox Sample Code 2003-10-27
Moving the Menu Bar (HTML) (日本語 HTML)
Deprecated - TB54: Describes how to move the menubar to another Macintosh Display and why this move is unadvisable.
Human Interface Toolbox Technical Q&As 1998-12-22
Multilingual Text Engine Frequently Asked Questions (HTML) (日本語 HTML)
TN2026: A list of frequently asked questions for the Multilingual Text Engine (MLTE).
Human Interface Toolbox Technical Notes 2005-09-12
Multiple Resources with the Same Type and ID (HTML) (日本語 HTML)
TB30: Explains why Resource IDs should be unique within a given resource type within a given resource file.
Human Interface Toolbox Technical Q&As 1996-11-27
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.
Human Interface Toolbox Technical Q&As 2004-11-22
My ListBox control works fine on Mac OS X but I get a crash on Mac OS 9 when I click in the scrollbar (HTML) (日本語 HTML)
QA1156: Explains the requirements for the use of the Listbox Control on Mac OS 9 and Mac OS X.
Human Interface Toolbox Technical Q&As 2002-07-12
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.
Human Interface Toolbox Technical Q&As 2003-04-15
Obtaining and Using Icons With Icon Services (HTML) (PDF)
Explains how to obtain and display icons for a Carbon application or extension.
Human Interface Toolbox Guides 2003-02-01
On Drag Manager Additions (Release 1.1) (HTML)
TN1043: Explains how to take advantage of the new Drag Manager features, including the translucent dragging.
Human Interface Toolbox Technical Notes 2000-08-14
Password (HTML) (DMG) (ZIP)
Deprecated - Illustrates three different ways to implement password fields in dialogs.
Human Interface Toolbox Sample Code 2003-01-30
Pending Update Perils (HTML) (日本語 HTML)
Deprecated - TN1147: Discusses potential problems when pending update events for windows behind modal dialogs are not serviced.
Human Interface Toolbox Technical Notes 2000-08-14
PopUpMenuWithCurFont (HTML) (DMG) (ZIP)
Deprecated - Demonstrates what must be done to control the font used by MDEF 0 during PopUpMenuSelect.
Human Interface Toolbox Sample Code 2003-01-30
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.
Human Interface Toolbox Technical Q&As 2004-10-27
Process Carbon Events Not Delivered in 10.2 (HTML) (日本語 HTML)
QA1181: Work around for a bug in Mac OS X 10.2 that prevents the delivery of process Carbon events.
Human Interface Toolbox Technical Q&As 2002-08-27
Programming with the Appearance Manager (HTML)
Explains how to make an application's user interface look like the Mac OS user interface.
Human Interface Toolbox Guides 2001-11-20
QDFlushPortBuffer (HTML) (日本語 HTML)
QD65: Describes a possible solution for window update problems under Carbon.
Human Interface Toolbox Technical Q&As 2000-11-08
QISA (HTML) (DMG) (ZIP)
Demonstrates the basics of writing an Internet setup assistant for traditional Mac OS and Mac OS X.
Human Interface Toolbox Sample Code 2003-05-15
RecentItems (HTML) (DMG) (ZIP)
Implements "Recent items" menu(s)
Human Interface Toolbox Sample Code 2006-10-09
Resource forks in Mach-O binaries (HTML) (日本語 HTML)
QA1175: Advises against using resource forks in Mach-O binaries.
Human Interface Toolbox Technical Q&As 2002-08-07
SampleCMPlugIn (HTML) (DMG) (ZIP)
A contextual menu plugIn for Mac OS X.
Human Interface Toolbox Sample Code 2006-10-09
ScrollAndZoom (HTML) (DMG) (ZIP)
An illustration of the use of the Context Transformation Matrix (CTM) for zooming and scrolling a HIView.
Human Interface Toolbox Sample Code 2005-08-10
SetFontInfoForSelection incorrect prototype (HTML)
QA1375: Describes the incorrect prototyping of the SetFontInfoForSelection API and gives a workaround.
Human Interface Toolbox Technical Q&As 2004-10-04
Setting a Control's Variant Field (HTML) (日本語 HTML)
Deprecated - TB63: Details how to change the variant of a custom control after creating the control.
Human Interface Toolbox Technical Q&As 1999-05-03