In the "what to display - Summary" page I introduced "Display Windows" seemingly out of the blue. I should now develop the idea to make sure that it makes sense.
A display window is conceptually simple. It provide no support to help with displaying a document. A "Display Window" is nearly a raw interface to the canvas widget which actually draws on the display. The document manager is required to create a description of a page and this is displayed as-is, possibly with vertical and horizontal scrolling.
The document manager needs to maintain enough context around the cursor to re-render the current page fairly efficiently. In some case it may be necessary to re-render from the start of the document, however doing this with every change would be too expensive.
The display window communicates with the document in terms of pages and lengths.
The document informs the window how many pages where are, and which page holds the cursor. The window then asks the document to render a particular page and to report where the cursor is. This page is displayed based on current scroll settings, possibly surrounding pages are then requested.
Whenever the document changes, the document instructs the window to refresh the image.
Each top-level window that the editor displays is a display window which contains a document the describes the sub-window structure of the display. Each subwindow might contain some document which is displayed according to the rules for that window.
