Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- QWIKC20 & Multi-Level Virtual Windows - Norton Guide http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]

           D A T A   S T R U C T U R E

  BASIC TYPES

  Basic Types - These types are used for all windows and modes to define the
  data structure.  This will describe the purpose of each type.

    Type          Description
    ------------  -----------------------------------------------------------
    borders       This enumerated type gives a name for 15 different border
                  styles each having 15 different parts already assigned in
                  the static array brdr.  The name NO_BORDER is reserved.

                    NO_BORDER           - No border at all.  Just the text
                                          area.
                    BLANK_BORDER        - Blank character on all sides.
                    SINGLE_BORDER       - Single lines on all sides.
                    DOUBLE_BORDER       - Double lines on all sides.
                    HDOUBLE_BORDER      - Horizontal double lines.  Single
                                          vertical lines.
                    VDOUBLE_BORDER      - Vertical double lines.  Single
                                          horizontal lines.
                    SOLID_BORDER        - Solid box character on all sides.
                    EVEN_SOLID_BORDER   - Vertical solid box.  Horizontal
                                          half box.
                    THIN_SOLID_BORDER_1 - Half box on all sides.  Squeezed
                                          horizontally.
                    THIN_SOLID_BORDER_2 - Half box on all sides.  Squeezed
                                          vertically.
                    LHATCH_BORDER       - Light hatch character on all sides.
                    MHATCH_BORDER       - Medium hatch character on all
                                          sides.
                    HHATCH_BORDER       - Heavy hatch character on all sides.
                    USER_BORDER_1       - User defined border.
                    USER_BORDER_2       - User defined border.

    brdrparts     Each border has 15 different parts.  This enumerated type
                  identifies each part by name.  Using acronyms, the relative
                  position can be easily identified.  For example, BRDR_TL
                  means the Top Left border part.  The order corresponds with
                  the brdr_t type:

                    Relative Position      The first letter means:
                    ------------------        T = Top         B = Bottom
                    TL  TH  TT  TH  TR        V = Vertical    H = Horizontal
                    LV      VL      RV        L = Left        R = Right
                    LT  HL  CL  HL  RT        C = Cross
                    LV      VL      RV     Second letter exceptions:
                    BL  BH  BT  BH  BR        T = Tee         L = Line

    brdr_t        This type provides the array for storing a border.  All 15
                  different border parts can be accessed by merely indexing
                  the array.

    dir_t         This enumerated type identifies various directions.  They
                  can be extended.

    margin_t      Groups the margins used for moving or resizing windows.

    windownames   This enumerated type gives a name or handle for each window
                  to uniquely identify a window structure for random access.
                  Any additional name can be used, but three are reserved:

                    Name       Description
                    ---------- ---------------------------------------------
                    WINDOW0    Identifies the initial base screen and must be
                               first in the list.
                    FREEWINDOW Identifies virtual screen records that are
                               free to be overwritten.
                    AWINDOW    A generic name to be used when the window does
                               not need to be unique.  It is usually used for
                               temporary windows like error messages.


    wndwstat_t    This type sets up the window structure.  Each field in the
                  structure is worth describing.  The "ws" prefix is an
                  acronym meaning wndwstat.  There are 50 bytes per
                  structure.

                    wsrow .. wscol2 - These variables identify the location
                    and size of the window INCLUDING the border if any.  The
                    "2" suffix means the right column or bottom row location.

                    wrow .. wcol2 - These variables identify the location and
                    size of the window EXCLUDING the border if any.  The "2"
                    suffix means the right column or bottom row location.

                    wndwattr/brdrattr/origattr - These the attributes for the
                    window and border respectively.  They can even be set to
                    SAMEATTR.  origattr is a second copy of wndwattr used to
                    restore wndwattr to its original value.

                    wsbrdr/wsline - The former is the current border style
                    while the latter is a line set that can be used within
                    the window.  When a window is made, these two values are
                    the same, but wsline is available to be changed to the
                    needed line set.

                    wsname - The unique name assigned to the window
                    structure.

                    wswherer/wswherec - These variables save the window-
                    relative row and column of the cursor.

                    wsmodes - Saves all the modes that created the window
                    including the current status.

                    wscursor - Save the cursor mode used with this window.

                    ulcol .. ulbytes - Saves the location and size of the
                    underlay of a window including the border and shadow if
                    any.

                    ulptr - Points to the saved underlay in the heap.

                    vscr - Holds the QWIKC screen data for this window.

                    refrow/refcol - These two scratch coordinates are used
                    for two cases.  It saves the absolute row/col where a
                    window is positioned before it is hidden.  For virtual
                    screen stats, it saves the view reference point.

                    viewbrdr - Saves the border style originally created with
                    the window.  wsbrdr differs from viewbrdr in that wsbrdr
                    contains the current border.  For virtual screens, wsbrdr
                    is always set to NO_BORDER even though the view on the
                    CRT may be a different style.

                    vi - Virtual screen index for its associated virtual
                    window stat if any.


Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson