/** \page dw-overview Dillo Widget Overview Note: If you are already familiar with the Gtk+-based version of Dw, read \ref dw-changes. The module Dw (Dillo Widget) is responsible for the low-level rendering of all resources, e.g. images, plain text, and HTML pages (this is the most complex type). Dw is \em not responsible for parsing HTML, or decoding image data. Furthermore, the document tree, which is planned for CSS, is neither a part of Dw, instead, it is a new module on top of Dw. The rendering, as done by Dw, is split into two phases: The result of the layouting allocates an area, which is called \em canvas.

Structure

The whole Dw module can be split into the following parts: \dot digraph G { node [shape=record, fontname=Helvetica, fontsize=10]; edge [arrowhead="open", fontname=Helvetica, fontsize=10, labelfontname=Helvetica, labelfontsize=10, color="#404040", labelfontcolor="#000080"]; subgraph cluster_core { style="dashed"; color="#000080"; fontname=Helvetica; fontsize=10; label="Platform independent core"; Layout [URL="\ref dw::core::Layout"]; Platform [URL="\ref dw::core::Platform", color="#ff8080"]; View [URL="\ref dw::core::View", color="#ff8080"]; Widget [URL="\ref dw::core::Widget", color="#a0a0a0"]; } subgraph cluster_fltk { style="dashed"; color="#000080"; fontname=Helvetica; fontsize=10; label="FLTK specific part (as an\nexample for the platform specific\n\ implementations)"; subgraph cluster_fltkcore { style="dashed"; color="#000080"; fontname=Helvetica; fontsize=10; label="FLTK core"; FltkPlatform [URL="\ref dw::fltk::FltkPlatform"]; FltkView [URL="\ref dw::fltk::FltkView", color="#ff8080"]; } FltkViewport [URL="\ref dw::fltk::FltkViewport"]; FltkPreview [URL="\ref dw::fltk::FltkPreview"]; } subgraph cluster_widgets { style="dashed"; color="#000080"; fontname=Helvetica; fontsize=10; label="Platform independent widgets"; Textblock [URL="\ref dw::Textblock"]; AlignedTextblock [URL="\ref dw::AlignedTextblock", color="#a0a0a0"]; Table [URL="\ref dw::Table"]; Image [URL="\ref dw::Image"]; etc1 [label="..."]; etc2 [label="..."]; } Layout -> Platform [headlabel="1", taillabel="1"]; Layout -> View [headlabel="*", taillabel="1"]; Layout -> Widget [headlabel="1", taillabel="1", label="topLevel"]; Widget -> Widget [headlabel="*", taillabel="1", label="children"]; Widget -> Textblock [arrowhead="none", arrowtail="empty"]; Widget -> Table [arrowhead="none", arrowtail="empty"]; Widget -> Image [arrowhead="none", arrowtail="empty"]; Widget -> etc1 [arrowhead="none", arrowtail="empty"]; Textblock -> AlignedTextblock [arrowhead="none", arrowtail="empty"]; AlignedTextblock -> etc2 [arrowhead="none", arrowtail="empty"]; Platform -> FltkPlatform [arrowhead="none", arrowtail="empty", style="dashed"]; FltkPlatform -> FltkView [headlabel="*", taillabel="1"]; View -> FltkView [arrowhead="none", arrowtail="empty"]; FltkView -> FltkViewport [arrowhead="none", arrowtail="empty", style="dashed"]; FltkView -> FltkPreview [arrowhead="none", arrowtail="empty", style="dashed"]; } \enddot
[\ref uml-legend "legend"]
\em Platform means in most cases the underlying UI toolkit (e.g. FLTK). A layout is bound to a specific platform, but multiple platforms may be handled in one program. A short overview:

Header Files

The structures mentioned above can be found in the following header files:

Further Documentations

A complete map can be found at \ref dw-map. */