\chapter{MacOS Toolbox Modules \label{toolbox}}

There are a set of modules that provide interfaces to various MacOS
toolboxes.  If applicable the module will define a number of Python
objects for the various structures declared by the toolbox, and
operations will be implemented as methods of the object.  Other
operations will be implemented as functions in the module.  Not all
operations possible in C will also be possible in Python (callbacks
are often a problem), and parameters will occasionally be different in
Python (input and output buffers, especially).  All methods and
functions have a \member{__doc__} string describing their arguments
and return values, and for additional description you are referred to
\citetitle[http://developer.apple.com/documentation/macos8/mac8.html]{Inside
Macintosh} or similar works.

These modules all live in a package called \module{Carbon}. Despite that name
they are not all part of the Carbon framework: CF is really in the CoreFoundation
framework and Qt is in the QuickTime framework.
The normal use pattern is

\begin{verbatim}
from Carbon import AE
\end{verbatim}

\strong{Warning!}  These modules are not yet documented.  If you
wish to contribute documentation of any of these modules, please get
in touch with \email{docs@python.org}.

\localmoduletable


%\section{Argument Handling for Toolbox Modules}


\section{\module{Carbon.AE} --- Apple Events}
\declaremodule{standard}{Carbon.AE}
  \platform{Mac}
\modulesynopsis{Interface to the Apple Events toolbox.}

\section{\module{Carbon.AH} --- Apple Help}
\declaremodule{standard}{Carbon.AH}
  \platform{Mac}
\modulesynopsis{Interface to the Apple Help manager.}


\section{\module{Carbon.App} --- Appearance Manager}
\declaremodule{standard}{Carbon.App}
  \platform{Mac}
\modulesynopsis{Interface to the Appearance Manager.}


\section{\module{Carbon.CF} --- Core Foundation}
\declaremodule{standard}{Carbon.CF}
  \platform{Mac}
\modulesynopsis{Interface to the Core Foundation.}

The
\code{CFBase}, \code{CFArray}, \code{CFData}, \code{CFDictionary},
\code{CFString} and \code{CFURL} objects are supported, some
only partially.

\section{\module{Carbon.CG} --- Core Graphics}
\declaremodule{standard}{Carbon.CG}
  \platform{Mac}
\modulesynopsis{Interface to the Component Manager.}

\section{\module{Carbon.CarbonEvt} --- Carbon Event Manager}
\declaremodule{standard}{Carbon.CaronEvt}
  \platform{Mac}
\modulesynopsis{Interface to the Carbon Event Manager.}

\section{\module{Carbon.Cm} --- Component Manager}
\declaremodule{standard}{Carbon.Cm}
  \platform{Mac}
\modulesynopsis{Interface to the Component Manager.}


\section{\module{Carbon.Ctl} --- Control Manager}
\declaremodule{standard}{Carbon.Ctl}
  \platform{Mac}
\modulesynopsis{Interface to the Control Manager.}


\section{\module{Carbon.Dlg} --- Dialog Manager}
\declaremodule{standard}{Carbon.Dlg}
  \platform{Mac}
\modulesynopsis{Interface to the Dialog Manager.}


\section{\module{Carbon.Evt} --- Event Manager}
\declaremodule{standard}{Carbon.Evt}
  \platform{Mac}
\modulesynopsis{Interface to the classic Event Manager.}


\section{\module{Carbon.Fm} --- Font Manager}
\declaremodule{standard}{Carbon.Fm}
  \platform{Mac}
\modulesynopsis{Interface to the Font Manager.}

\section{\module{Carbon.Folder} --- Folder Manager}
\declaremodule{standard}{Carbon.Folder}
  \platform{Mac}
\modulesynopsis{Interface to the Folder Manager.}


\section{\module{Carbon.Help} --- Help Manager}
\declaremodule{standard}{Carbon.Help}
  \platform{Mac}
\modulesynopsis{Interface to the Carbon Help Manager.}

\section{\module{Carbon.List} --- List Manager}
\declaremodule{standard}{Carbon.List}
  \platform{Mac}
\modulesynopsis{Interface to the List Manager.}


\section{\module{Carbon.Menu} --- Menu Manager}
\declaremodule{standard}{Carbon.Menu}
  \platform{Mac}
\modulesynopsis{Interface to the Menu Manager.}


\section{\module{Carbon.Mlte} --- MultiLingual Text Editor}
\declaremodule{standard}{Carbon.Mlte}
  \platform{Mac}
\modulesynopsis{Interface to the MultiLingual Text Editor.}


\section{\module{Carbon.Qd} --- QuickDraw}
\declaremodule{builtin}{Carbon.Qd}
  \platform{Mac}
\modulesynopsis{Interface to the QuickDraw toolbox.}


\section{\module{Carbon.Qdoffs} --- QuickDraw Offscreen}
\declaremodule{builtin}{Carbon.Qdoffs}
  \platform{Mac}
\modulesynopsis{Interface to the QuickDraw Offscreen APIs.}


\section{\module{Carbon.Qt} --- QuickTime}
\declaremodule{standard}{Carbon.Qt}
  \platform{Mac}
\modulesynopsis{Interface to the QuickTime toolbox.}


\section{\module{Carbon.Res} --- Resource Manager and Handles}
\declaremodule{standard}{Carbon.Res}
  \platform{Mac}
\modulesynopsis{Interface to the Resource Manager and Handles.}

\section{\module{Carbon.Scrap} --- Scrap Manager}
\declaremodule{standard}{Carbon.Scrap}
  \platform{Mac}
\modulesynopsis{Interface to the Carbon Scrap Manager.}

\section{\module{Carbon.Snd} --- Sound Manager}
\declaremodule{standard}{Carbon.Snd}
  \platform{Mac}
\modulesynopsis{Interface to the Sound Manager.}


\section{\module{Carbon.TE} --- TextEdit}
\declaremodule{standard}{Carbon.TE}
  \platform{Mac}
\modulesynopsis{Interface to TextEdit.}


\section{\module{Carbon.Win} --- Window Manager}
\declaremodule{standard}{Carbon.Win}
  \platform{Mac}
\modulesynopsis{Interface to the Window Manager.}
