but it is not mandatory. GUI Structure The Cockpit Display System (CDS) is the graphic Server which is responsible to show and manage the GUI A User Application (UA) is one system application which communicates with the CDS. The CDS manage one or more Definition Files for each User Application. At run-time, messages are exchanged between UAs and the CDS. A Definition File (DF) specifies the GUI definition associated with one User Application (note that a User Application may be associated by more than one DF). A Definition File contains the definition of one or more Layers A Layer (also named User Application Layer Definition or UALD) is a GUI container for widgets A widget is the basic building block of the GUI GUI definition Each DF binary file specifies the GUI definition for one User Application (UA) User interface. Several UA user interface trees can be combined to constitute the CDS display definition. A DF is composed of two parts : an optional symbol definition, and a widgets definition. The widget library is similar to Widgets used in computing. There are Containers, Lists, ScrollPanes, Buttons, Menus, Labels, EditBoxes, etc... Although the DF File is binary, the standard has also defined an associated XML definition, which is easier to manipulate in tools. Relationship with other UI languages The concepts used by ARINC 661 are close to those used in User interface markup languages, except that the UI language is binary and not XML based. Main similarities from other User interface markup languages: The interface definition is not hard-coded in the CDS. Instead, the CDS use a kernel which instantiate the widget tree at initialization, using a predefined widget library The widget list and the structure of the widget tree are similar to what can be found in common Widget toolkits The Look and feel is separated from the definition of the interface Main differences from other User interface markup languages : The widget library defined in the standard does not really take advantage of its object nature, contrary to other User interface markup languages. For example, there is no notion of inheritance in the standard, although the same properties can be used more than once for several widgets. Some Widget toolkits or User interface markup languages have the ability to lay out widgets automatically in a container (see for example the box model in XUL, or the layouts in Java