Jump To:
Leopard Technical Q&As
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
Date
Debugging Graphics with QuartzDebug (HTML) (日本語 HTML)
QA1236: Explains how to use QuartzDebug to debug graphics issues.
Graphics & Imaging 2006-01-12
Drawing a Path Multiple Times (HTML)
QA1047: Explains that path drawing operations consume the path.
Graphics & Imaging 2001-07-02
Error -151 and NewGWorld (HTML)
Deprecated - QD18: Explains what the error code -151 means when in NewGWorld.
Graphics & Imaging 1995-09-15
GetPortBitMapForCopyBits (HTML) (日本語 HTML)
Deprecated - QD61: Describes the proper usage of GetPortBitMapForCopyBits.
Graphics & Imaging 2000-11-08
GetProcAdress and OpenGL Entry Points (HTML) (日本語 HTML)
QA1188: Technique for finding function pointers for OpenGL entry points in Cocoa and Carbon
Graphics & Imaging 2002-11-25
Getting the pixel data from a CGImage object (HTML)
QA1509: Describes how to access the pixel data of a CGImage object
Graphics & Imaging 2008-08-27
grayishTextOr and Mac OS 8.5 (HTML) (日本語 HTML)
Deprecated - QD59: Explains why text drawn using TextMode(grayishTextOr) is never drawn; provides a workaround.
Graphics & Imaging 1998-12-07
How can I programmatically determine the DPI of the current video mode? (HTML) (日本語 HTML)
QA1217: Describes how to compute the DPI for a given display in a given mode using Core Graphics.
Graphics & Imaging 2002-12-02
How do I tell if a particular display is being hardware accelerated by Quartz Extreme? (HTML) (日本語 HTML)
QA1218: Describes how to use CGDisplayUsesOpenGLAcceleration to see if a display is accelerated or not.
Graphics & Imaging 2002-12-04
How do I use PMSessionGetGraphicsContext to get a CGContextRef? (HTML) (日本語 HTML)
Deprecated - QA1216: Describes how to use PMSessionSetDocumentFormatGeneration and PMSessionGetGraphicsContext to get a CGContextRef for printing.
Graphics & Imaging 2003-02-25
How do I use QuickDraw with CGDirectDisplay? (HTML)
QA1011: Explains how to draw to a CGDirectDisplay-captured display using QuickDraw.
Graphics & Imaging 2001-04-11
How to measure CG text (HTML)
QA1051: Explains how to measure Core Graphics text.
Graphics & Imaging 2007-08-02
Improving ATSUI Text Drawing Performance (HTML)
QA1027: Talks about one way of improving ATSUI text drawing performance.
Graphics & Imaging 2001-04-17
Incorrect Inside Macintosh Volume V documentation (HTML)
Deprecated - QD15: Identifies incorrect documentation in Inside Macintosh Volume V regarding the formats of PnPixPat and BkPixPat opcodes.
Graphics & Imaging 1995-09-15
Is ColorSync thread safe? (HTML) (日本語 HTML)
QA1261: Discusses ColorSync thread-safety issues.
Graphics & Imaging 2003-04-17
Parsing the PICT File Format (HTML) (日本語 HTML)
Deprecated - QD56: Explains where to find information on the PICT file format and warns against parsing a PICT file.
Graphics & Imaging 1998-02-10
Preserving embedded ICC profiles when using QuickTime Graphics Importer/Exporters (HTML) (日本語 HTML)
QA1145: Shows how to preserve the embedded ICC profile when using the QuickTime Graphics Importer/Exporter routines
Graphics & Imaging 2002-09-04
Problem Getting PICTS to Display in Correct Colors (HTML)
Deprecated - QD24: Using a custom color table to get PICTs to display with the right colors in an offscreen GWorld.
Graphics & Imaging 1995-09-15
Problem with PaintRgn on 256-color Screens (HTML)
Deprecated - QD23: PaintRgn with RGBForeColor and transfer mode addOver doesn't return color to original on 256-color-screens.
Graphics & Imaging 1995-09-15
Problems Creating a Mask for a Picture (HTML)
Deprecated - QD27: Demonstrates creating a mask where the mask is 0 for pure white pixels and 1 everywhere else.
Graphics & Imaging 1995-09-15
Problems recording CopyBits into a PICT on Mac OS X 10.2 (HTML) (日本語 HTML)
QA1189: Identifies a problem with CopyBits and PICT on Mac OS X 10.2 and gives a simple workaround.
Graphics & Imaging 2002-11-19
QDFlushPortBuffer (HTML) (日本語 HTML)
QD65: Describes a possible solution for window update problems under Carbon.
Graphics & Imaging 2000-11-08
QDSwapPort (HTML) (日本語 HTML)
QA1128: Explains when to use QDSwapPort.
Graphics & Imaging 2002-11-06
Quartz 2D Interpolation (HTML) (日本語 HTML)
QA1186: Explains how to control Quartz 2D's image interpolation.
Graphics & Imaging 2002-10-29
Quartz 2D Thread Safety (HTML) (日本語 HTML)
QA1238: Explains the thread-safety issues for the Quartz 2D API.
Graphics & Imaging 2003-02-25
QuickDraw Text Anti-Aliasing using Quartz 2D (HTML) (日本語 HTML)
QA1193: Describes APIs added to Mac OS X to allow applications to draw QD text using CG anti-aliasing.
Graphics & Imaging 2002-10-29
Requirements for Quartz GL (HTML)
QA1536: Describes the requirements for enabling Quartz GL.
Graphics & Imaging 2008-08-08
Saving the current Core Graphics Path (HTML)
QA1056: Explains that the Core Graphics save and restore GState APIs do not affect the path.
Graphics & Imaging 2001-10-02
Spooling in or out of CompressPicture or CompressImage (HTML)
Deprecated - QD17: Recommends alternatives to spooling the results of CompressPicture or CompressImage to or from disk.
Graphics & Imaging 1995-09-15
Turning Off Core Graphics Clipping (HTML)
QA1050: Explains how to clear the clipping path for a CGContext.
Graphics & Imaging 2001-07-02
Unexpected CG state changes (HTML)
QA1045: Explains why the Core Graphics drawing state sometimes changes for no apparent reason.
Graphics & Imaging 2001-07-02
Updating OpenGL Contexts (HTML) (日本語 HTML)
QA1209: When and why to update an OpenGL context in response to system and user actions.
Graphics & Imaging 2003-06-19
Using Clip Region and Buffer Rectangles with OpenGL Carbon (HTML) (日本語 HTML)
QA1222: Shows the basics of using buffer rectangles and clip regions with AGL.
Graphics & Imaging 2002-12-19
Using cmPathBased profile locations on Mac OS X (HTML) (日本語 HTML)
QA1203: Shows how to correctly specify cmPath-based profile locations on Mac OS X
Graphics & Imaging 2002-11-06
Using qd and QDGlobals (HTML) (日本語 HTML)
Deprecated - QD40: Why a sample program compiled with SC may give the link error: undefined entry qd. Provides a solution.
Graphics & Imaging 1996-02-09
Using Temporary Memory with OpenPicture (HTML)
Deprecated - QD20: Provides several techniques of causing OpenPicture to allocate temporary memory for a picture handle.
Graphics & Imaging 1996-02-01
Window Manager and EraseRect (HTML)
Deprecated - QD26: Why WindowManager causes a flicker using EraseRect and provides a solution for this problem.
Graphics & Imaging 1995-09-15
Adding an automated Window menu to your application (HTML)
QA1080: Explains how to add an automated Window menu to your Carbon application.
Human Interface Toolbox 2001-10-30
Are the root control, the root view, and the content view the same entity? (HTML) (日本語 HTML)
QA1214: Details the differences and similitudes between the root control, the root view, and the content view of windows.
Human Interface Toolbox 2002-11-12
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.
Human Interface Toolbox 2003-04-03
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
Human Interface Toolbox 2005-06-21
CGContext parameter missing in my kEventControlDraw event (HTML) (日本語 HTML)
QA1212: Explains in which case your kEventControlDraw handler wouldn't receive a CGContext parameter.
Human Interface Toolbox 2002-11-12
Clickable Static Text Item (HTML)
QA1380: Explains how to make a static text item respond to clicks
Human Interface Toolbox 2004-10-05
The Data Browser GetDataBrowserUserState API (HTML) (日本語 HTML)
QA1270: Explains a problematic Data Browser API definition and how to work around it.
Human Interface Toolbox 2003-07-22
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 2005-03-29
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 2002-11-12
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 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 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 2003-07-23
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 2004-10-14
HIObjectRegisterSubclass returns paramErr (HTML) (日本語 HTML)
QA1213: Explains in which case HIObjectRegisterSubclass would return paramErr and gives a work around.
Human Interface Toolbox 2002-11-12
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 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 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 1996-05-14
Installing input methods on Mac OS X (HTML)
QA1054: Describes how to install and use input methods on Mac OS X.
Human Interface Toolbox 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 2001-10-30
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 2006-07-17
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 2004-10-14
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 1998-12-22
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 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 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 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 2003-04-15
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 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 2002-08-27
QDFlushPortBuffer (HTML) (日本語 HTML)
QD65: Describes a possible solution for window update problems under Carbon.
Human Interface Toolbox 2000-11-08
Resource forks in Mach-O binaries (HTML) (日本語 HTML)
QA1175: Advises against using resource forks in Mach-O binaries.
Human Interface Toolbox 2002-08-07
SetFontInfoForSelection incorrect prototype (HTML)
QA1375: Describes the incorrect prototyping of the SetFontInfoForSelection API and gives a workaround.
Human Interface Toolbox 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 1999-05-03
Setting a UserPane's feature (HTML) (日本語 HTML)
TB64: Explains how to set up the control attributes when creating controls, and UserPanes in particular.
Human Interface Toolbox 1999-09-27
Setting default open Finder window (HTML)
QA1449: How to set the default Finder window to open when a disk is mounted
Human Interface Toolbox 2006-01-03
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.
Human Interface Toolbox 2005-10-04
Unified window title and toolbar appearance in Carbon (HTML)
QA1423: How to use the unified window title and toolbar appearance for a Carbon window.
Human Interface Toolbox 2005-06-17
Using Navigation Services to filter QuickTime files (HTML) (日本語 HTML)
QA1152: Using the CanQuickTimeOpenFile function in a Navigation Services filter to display files that QuickTime can open.
Human Interface Toolbox 2002-07-15
Using the Wide Routines in <FixMath.h> (HTML)
TB14: Details the Wide routines listed in the FixMath.h header (WideDivide, WideCompare, WideBitShift, WideShift, etc.).
Human Interface Toolbox 1995-06-01
What is the minimal set of Carbon Events I need to override in order to implement a simple custom push button? (HTML) (日本語 HTML)
QA1210: Details the minimal set of Carbon Events needed to implement a simple custom push button HIView.
Human Interface Toolbox 2002-11-12
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
Human Interface Toolbox 2005-07-14
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.
Human Interface Toolbox 2003-11-13
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.
Human Interface Toolbox 2006-11-13
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.
Human Interface Toolbox 2005-04-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.
Human Interface Toolbox 2003-10-28
Why isn't my Static Text Control deactivating when my other controls are? (HTML) (日本語 HTML)
QA1125: Explains why a Static Text Control is not deactivating when the other controls are.
Human Interface Toolbox 2002-03-11
X11 FAQ (HTML) (日本語 HTML)
QA1232: Frequently Asked Questions about using Apple's X Window System (X11) implementation.
Human Interface Toolbox 2003-11-17
Calling AppleScript from an Application (HTML)
QA1026: Describes how to call an AppleScript from an application written in C.
Interapplication Communication 2001-04-10
Deselecting Icons in the Finder (HTML) (日本語 HTML)
IC04: Shows how to programmatically deselect icons in the Finder.
Interapplication Communication 1997-07-11
Installing input methods on Mac OS X (HTML)
QA1054: Describes how to install and use input methods on Mac OS X.
Interapplication Communication 2001-09-14
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.
Interapplication Communication 2003-04-15
Public UTIs supported by Mac OS X v10.3 (HTML)
QA1406: Lists the public UTIs (Uniform Type Identifiers) used by the Pasteboard in Mac OS X v10.3.
Interapplication Communication 2005-02-08
Retrieving Data from AEDesc Records - do not use the dataHandle field (HTML) (日本語 HTML)
QA1139: Describes the correct way to access data stored in AEDesc records.
Interapplication Communication 2002-04-10
Sending an Email (HTML)
QA1084: Shows how to create an email in the user's prefered email application.
Interapplication Communication 2004-11-05
Setting environment variables for user processes (HTML)
QA1067: Tells how to set environment variables for user processes.
Interapplication Communication 2001-10-25
Converting to Precomposed Unicode (HTML) (日本語 HTML)
QA1235: Describes how to convert a string to precomposed Unicode.
Internationalization 2003-02-07
How can I determine the order of the languages set by the user in the Language tab of the International preference pane? (HTML)
QA1391: Retrieving the order of the languages set by the International preference pane in Cocoa, Carbon, and Terminal.
Internationalization 2006-12-19
Availability of Quartz Composer Patches in Web Kit (HTML)
QA1505: Details which Quartz Composer patches are available in Web Kit
Internet & Web 2007-03-05
Getting a Packet Trace (HTML) (日本語 HTML)
QA1176: Lists tools available for looking at the network packets on the wire.
Internet & Web 2008-06-03
Sending an Email (HTML)
QA1084: Shows how to create an email in the user's prefered email application.
Internet & Web 2004-11-05
68K Open Transport Code on Power Macintoshes (HTML)
Deprecated - NW48: Explains why running Open Transport 68K code on a PowerPC may not always work.
Networking 1997-03-14
Aborting a OTConnect in Progress (HTML)
Deprecated - NW29: Describes the proper way to abort OTConnect, and why after calling OTSndDisconnect you may receive "kOTOutStateErr".
Networking 1996-05-14
Accessing HTTPS Proxy Settings (HTML) (日本語 HTML)
QA1234: Describes how to programatically access Secure Web Proxy information.
Networking 2003-02-19
Advertising a Bonjour service on a specific set of networking interfaces. (HTML)
QA1513: Explains how to register a Bonjour service only on a specific set of networking interfaces.
Networking 2007-02-12