\section{Standard Module \sectcode{panel}} \label{module-panel} \stmodindex{panel} \strong{Please note:} The FORMS library, to which the \code{fl} module described above interfaces, is a simpler and more accessible user interface library for use with GL than the Panel Module (besides also being by a Dutch author). This module should be used instead of the built-in module \code{pnl} to interface with the \emph{Panel Library}. The module is too large to document here in its entirety. One interesting function: \renewcommand{\indexsubitem}{(in module panel)} \begin{funcdesc}{defpanellist}{filename} Parses a panel description file containing S-expressions written by the \emph{Panel Editor} that accompanies the Panel Library and creates the described panels. It returns a list of panel objects. \end{funcdesc} \strong{Warning:} the Python interpreter will dump core if you don't create a GL window before calling \code{panel.mkpanel()} or \code{panel.defpanellist()}. \section{Standard Module \sectcode{panelparser}} \stmodindex{panelparser} This module defines a self-contained parser for S-expressions as output by the Panel Editor (which is written in Scheme so it can't help writing S-expressions). The relevant function is \code{panelparser.parse_file(\var{file})} which has a file object (not a filename!) as argument and returns a list of parsed S-expressions. Each S-expression is converted into a Python list, with atoms converted to Python strings and sub-expressions (recursively) to Python lists. For more details, read the module file. % XXXXJH should be funcdesc, I think \section{Built-in Module \sectcode{pnl}} \bimodindex{pnl} This module provides access to the \emph{Panel Library} built by NASA Ames (to get it, send e-mail to {\tt panel-request@nas.nasa.gov}). All access to it should be done through the standard module \code{panel}, which transparantly exports most functions from \code{pnl} but redefines \code{pnl.dopanel()}. \strong{Warning:} the Python interpreter will dump core if you don't create a GL window before calling \code{pnl.mkpanel()}. The module is too large to document here in its entirety.