Quick-reference Window-data chart
=================================

(version 1.00, 6/4/92 - Jason Williams)

Window data for various Wimp_ window-based calls.
Note that some of the data presented here are actually unions, so where you
see (e.g.) "flagword.data." and "flagword.value", they are not two seperate
items... The main purpose of this is to give you the naming structure to
save you thrashing through the header files to figure it out for yourself.

---

window_outline (as returned by Wimp_GetWindowOutline)
outline->window
outline->screenrect.min.x                          ; screen rect of window
                   .min.y
                   .max.x
                   .max.y

---

window_redrawblock
-as used for redraws: RedrawWindow, UpdateWindow, GetRectangle,
                      ForceRedraw, and as returned by Wimp_Poll for redraw
                      request events

redraw->window
      ->rect.min.x             Rectangle to be redrawn (in workarea or screen
            .min.y             coordinates depending on context)
            .max.x
            .max.y
      ->scroll.x               Scroll offsets of window
              .y
      ->cliprect.min.x         Clip rectangle (graphics "viewport")
                .min.y         -Screen coordinates of rectangle limiting
                .max.x         drawing operations. All output should be clipped
                .max.y         to be plotted only within this area

---

window_state
-as returned by Wimp_GetWindowState

wstate->openblock.window       a window_openblock
            .screenrect.min.x  The screen rect of the visible workarea region
                       .min.y
                       .max.x
                       .max.y
                 .scroll.x     The current scrollbar positions
                        .y
                 .behind       The handle of the window this one is behind
      ->flags.value
             .data.            window flags: choose from:
                  .hastitle
                  .moveable
                  .hasvscroll
                  .hashscroll
                  .autoredraw
                  .pane
                  .nobounds
                  .nobackclose
                  .scrollrq
                  .scrollrqdebounced
                  .realcolours
                  .backwindow
                  .hotkeys
                  .open
                  .top
                  .fullsize
                  .istoggling
                  .focus
                  .backicon
                  .closeicon
                  .titlebar
                  .toggleicon
                  .vscroll
                  .adjusticon
                  .hscroll
                  .newflags
---

window_info
-as used for creating windows: Wimp_CreateWindow, Wimp_GetWindowInfo

winfo->window
     ->block.screenrect.min.x                Screen position of window
                       .min.y
                       .max.x
                       .max.y
            .scroll.x                        Scrollbar offsets
            .scroll.y
            .behind                          Handle of window this is behind
                                             (-1 == window is at front)
            .flags.value }                   window flag word value
                  .data. }                   window flags: choose from:
                       .hastitle
                       .moveable
                       .hasvscroll
                       .hashscroll
                       .autoredraw
                       .pane
                       .nobounds
                       .nobackclose
                       .scrollrq
                       .scrollrqdebounced
                       .realcolours
                       .backwindow
                       .hotkeys
                       .open
                       .top
                       .fullsize
                       .istoggling
                       .focus
                       .backicon
                       .closeicon
                       .titlebar
                       .toggleicon
                       .vscroll
                       .adjusticon
                       .hscroll
                       .newflags
            .colours[8]                      WIMP colours for the window
            .workarearect.min.x              Work area extent of the window
                         .min.y
                         .max.x
                         .max.y
            .titleflags. ...                 } icon flag words for title and
            .workflags. ...                  } work area defaults
                                               - see QuickRefs.IconData

            .spritearea                      pointer to window's sprite area
            .minsize.x                       min. width (0 == limit to title)
                    .y                       min. height (0 == default)
            .title.
                  .text                      ; 12-char text string
                  .spritename                ; 12-char sprite name

                  .indirecttext.buffer       ; ptr to text buffer
                  .indirecttext.validstring  ; ptr to validation string
                                             ; (-1 == none)
                  .indirecttext.bufflen      ; length of buffer (including
                                             ; terminating character)

                  .indirectsprite.name       ; ptr to sprite-name/sprite-data
                  .indirectsprite.spritearea ; ptr to sprite area sprite in
                  .indirectsprite.nameisname ; flag: TRUE means name points to
                                             ; string, FALSE means it points to
                                             ; the actual sprite data.
            .numicons                        number of icons in window

