![]() |
![]() |
Conglomerate Programmer's Reference Manual | ![]() |
---|
There is a single CongApp object representing the entire application; this owns a collection of CongPrimaryWindow objects, each represents one of the application's primary windows. A primary window corresponds to a particular CongDocument.
In addition, the CongApp
owns certain
global resources, including the CongDispspecRegistry.
A CongDocument
is a wrapper around
the libxml2 document tree, together with a cursor location, and a
selection range. It references a CongDispspec. It is a
GObject
, and it emits signals when things
change.
There is also an earlier system, in which there are CongView structs which
manually register themselves with
CongDocument
objects and receive all
updates. This is now deprecated.
A dispspec is a "display specification"; it is a way of looking up tags in the xml document and deciding if they are "structural" and hence should appear as big blocks in the view, or "spans", in which case they can merely be rendered as an underline. It also supports looking up icons to use, and, in theory, localisation of the tag names.
The display specifications are generally loaded from ".xds" files, but can also be created at run-time.