\chapter{Commonly used libraries} \label{sec:libraries} In this chapter we document some of the libraries from the \metafile{/prolog/lib} \productpl{} library. The libraries described here are only the commonly used ones. For more information check the file \file{Overview} in the library directory and the source-code of the library. \begin{itemize} \newcommand{\secoverview}[2]{\item[\ref{sec:#1}]{\bf #2}\\} \secoverview{findfile}{Asking a filename} This library defines the object @finder, instance of \class{finder}. The finder allows for asking filenames. \secoverview{balloon}{Show help-balloon} The library \pllib{help_message} registers balloon-text with graphical objects. \secoverview{libdia}{Dialog utilities} Toolbars and reporting facilities. Includes example code for an application framework. \secoverview{toc}{Table-of-content like hierarchies} This library extends class \class{tree}, displaying a modern-style hierarchy inside a window. This library is used for displaying the VisualHierachy and ClassHierarchy tools of the \product{} manual toolkit. See \chapref{online}. \secoverview{tabular}{Tabular layout} Primitives for dealing with tables. \secoverview{libplot}{Plotting graphs and barcharts} This section describes a number of libraries providing primitives for drawing graphs and barcharts. \secoverview{mlingual}{Multi-lingual applications} Discusses support for multi-lingual applications. \secoverview{dragdrop}{Drag and Drop Interface} This library allows for drapping objects within one \product{} application. \secoverview{httpd}{Playing WEB (HTTP) server} Class \class{httpd} is a subclass of \class{socket} that deals with the HTTP protocol. It allows \product{} to act as a web-server. \secoverview{docrender}{Document rendering} Primitives for rendering mixed text/graphics, handling fonts, alignment, tables and other common text-layout primitives. \end{itemize} \newcommand{\libinput}[1]{\cleardoublepage\input{#1}} \libinput{findfile.tex} \libinput{balloon.tex} \libinput{libdia.tex} \libinput{toc.tex} \libinput{tabular} \libinput{libplot} \libinput{mlingual.tex} \libinput{dragdrop.tex} \libinput{httpd} \libinput{docrender}