\chapter{Intercoms} \section{Design Philosophy} The intercoms category implements an expandable command interpreter which is the key mechanism in {\sc Geant4} for realizing customizable and state-dependent user interactions with all categories without being perturbed by the dependencies among classes. The capturing of commands is handled by a C++ abstract class {\it G4UIsession}. Various concrete implementations of the command capturer are contained in the [user] interfaces category. Taking into account the rapid evolution of graphical user interface (GUI) technology and consequent dependence on external facilities, plural and extensible GUIs are offered. Programmers need only know how to register the commands and parameters appropriate to their problem domain; no knowledge of GUI programming is required to allow an application to use them through one of the available GUIs. The intercoms category also provides the virtual base classes \begin{itemize} \item G4VVisManager, \item G4VGraphicsScene, and \item G4VGlobalFastSimulationManager. \end{itemize} \section{Class Design} \begin{itemize} \item {\bf G4UISession} - \item {\bf G4UIBatch} - \item {\bf G4UICommand} - \item {\bf G4UIparameter} - \item {\bf G4UImessenger} - \end{itemize} The object-oriented design of the 'user interface' related classes is shown in the class diagram Fig. \ref{figure:userInt-1}. The diagram is described in the Booch notation. \newline \begin{figure}[h!] \includegraphics[angle=0,scale=0.55]{OOAnalysisDesign/UserInterface/classDgmUserInterface.eps} \vspace{10pt} \caption{Overview of intercom classes} \label{figure:userInt-1} \end{figure} \section{Status of this section} 27.06.05 design philosophy (from Geant4 general paper) and class design sections added by D.H. Wright \\