home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0040 - 0049 / ibm0040-0049 / ibm0040.tar / ibm0040 / ZINC_6.ZIP / DOSSRC.ZIP / UI_DSP.HPP < prev    next >
Encoding:
C/C++ Source or Header  |  1991-06-01  |  18.4 KB  |  452 lines

  1. //    Zinc Interface Library - UI_DSP.HPP
  2. //    COPYRIGHT (C) 1990, 1991.  All Rights Reserved.
  3. //    Zinc Software Incorporated.  Pleasant Grove, Utah  USA
  4.  
  5. #ifndef UI_DSP_HPP
  6. #define UI_DSP_HPP
  7. #ifndef UI_GEN_HPP
  8. #include <ui_gen.hpp>
  9. #endif
  10.  
  11. #ifdef ZIL_MSWINDOWS // ---------------------------------------------------
  12.  
  13. // ----- MS Windows specific definitions ----------------------------------
  14.  
  15. // ----- UI_PALETTE -------------------------------------------------------
  16.  
  17. // --- hatchStyle (defined in windows.h). ---
  18. const int HS_NONE            = -1;
  19. // HS_CROSS                    +++++
  20. // HS_DIAGCROSS                xxxxx
  21. // HS_HORIZONTAL            -----
  22. // HS_VERTICAL                |||||
  23. // HS_FDIAGONAL                \\\\\
  24. // HS_BDIAGONAL                /////
  25.  
  26. // --- foregroundColor, backgroundColor (Use system color or RGB form) ---
  27. // System colors (defined in windows.h).
  28. // COLOR_ACTIVEBORDER
  29. // COLOR_ACTIVECAPTION
  30. // COLOR_APPWORKSPACE
  31. // COLOR_BACKGROUND
  32. // COLOR_BTNFACE
  33. // COLOR_BTNSHADOW
  34. // COLOR_BTNTEXT
  35. // COLOR_CAPTIONTEXT
  36. // COLOR_GRAYTEXT
  37. // COLOR_HIGHLIGHT
  38. // COLOR_HIGHLIGHTTEXT
  39. // COLOR_INACTIVEBORDER
  40. // COLOR_INACTIVECAPTION
  41. // COLOR_MENU
  42. // COLOR_MENUTEXT
  43. // COLOR_SCROLLBAR
  44. // COLOR_WINDOW
  45. // COLOR_WINDOWFRAME
  46. // COLOR_WINDOWTEXT
  47.  
  48. // Definitions of basic 16 colors for MS Windows.
  49. // This is in the RGB form 0x80bbggrr where bb is a value 0-255 with 255 (FFh)
  50. // being pure dark blue.  The gg and rr represent green and red.
  51. const DWORD BLACK            = 0x80000000L;            // Dark colors.
  52. const DWORD BLUE            = 0x80800000L;
  53. const DWORD GREEN            = 0x80008000L;
  54. const DWORD CYAN            = 0x80808000L;
  55. const DWORD RED                = 0x80000080L;
  56. const DWORD MAGENTA            = 0x80800080L;
  57. const DWORD BROWN            = 0x80008080L;
  58. const DWORD LIGHTGRAY        = 0x80C0C0C0L;
  59. const DWORD DARKGRAY        = 0x80808080L;            // Light colors.
  60. const DWORD LIGHTBLUE        = 0x80FF0000L;
  61. const DWORD LIGHTGREEN        = 0x8000FF00L;
  62. const DWORD LIGHTCYAN        = 0x80FFFF00L;
  63. const DWORD LIGHTRED        = 0x800000FFL;
  64. const DWORD LIGHTMAGENTA    = 0x80FF00FFL;
  65. const DWORD YELLOW            = 0x8000FFFFL;
  66. const DWORD WHITE            = 0x80FFFFFFL;
  67.  
  68. struct EXPORT UI_PALETTE
  69. {
  70.     int hatchStyle;                // Hatch style (HS_NONE for no hatch).
  71.     DWORD colorForeground;        // Foreground EGA/VGA colors.
  72.     DWORD colorBackground;        // Background EGA/VGA colors.
  73. };
  74.  
  75. typedef HWND SCREENID;
  76.  
  77. #else // Not MS Windows ----------------------------------------------------
  78.  
  79. // ----- DOS text and graphics specific definitions ------------------------
  80.  
  81. // ----- UI_PALETTE ---------------------------------------------------------
  82.  
  83. // --- palette macro ---
  84. #define attrib(foreground, background) (((background) << 4) + (foreground))
  85.  
  86. // --- monoAttribute ---
  87. #define MONO_BLACK                0x00
  88. #define MONO_DIM                0x08
  89. #define MONO_NORMAL                0x07
  90. #define MONO_HIGH                0x0F
  91.  
  92. // --- bwColor ---
  93. #define BW_BLACK                0x00
  94. #define BW_WHITE                0x01
  95.  
  96. // --- grayScaleColor ---
  97. #define GS_BLACK                0x00
  98. #define GS_GRAY                    0x01
  99. #define GS_BLINKING                0x02
  100. #define GS_WHITE                0x03
  101.  
  102. struct UI_PALETTE
  103. {
  104.     // Fields described in UI_PALETTE reference chapter.
  105.     // --- Text mode ---
  106.     UCHAR fillCharacter;        // Fill character.
  107.     UCHAR colorAttribute;        // Color attribute.
  108.     UCHAR monoAttribute;        // Mono attribute.
  109.  
  110.     // --- Graphics mode ---
  111.     UCHAR fillPattern;                // Fill pattern.
  112.     UCHAR colorForeground;            // EGA/VGA colors.
  113.     UCHAR colorBackground;
  114.     UCHAR bwForeground;                // Black & White colors (2 color).
  115.     UCHAR bwBackground;
  116.     UCHAR grayScaleForeground;        // Monochrome colors (3+ color).
  117.     UCHAR grayScaleBackground;
  118. };
  119.  
  120. typedef int SCREENID;
  121.  
  122. #endif // ZIL_MSWINDOWS --------------------------------------------------------
  123.  
  124. extern UI_PALETTE *_backgroundPalette;
  125. extern UI_PALETTE *_xorPalette;
  126.  
  127. // ----- UI_REGION_ELEMENT & UI_REGION_LIST ---------------------------------
  128. // ----- member functions found in DISPLAY.CPP ------------------------------
  129.  
  130. class EXPORT UI_REGION_ELEMENT : public UI_ELEMENT
  131. {
  132. public:
  133.     // Members described in UI_REGION_ELEMENT reference chapter.
  134.     SCREENID screenID;
  135.     UI_REGION region;
  136.  
  137.     UI_REGION_ELEMENT(SCREENID _screenID, const UI_REGION *_region) :
  138.         screenID(_screenID), region(*_region) { }
  139.     UI_REGION_ELEMENT(SCREENID _screenID, int left, int top, int right,
  140.         int bottom) : screenID(_screenID) { region.left = left,
  141.         region.top = top, region.right = right, region.bottom = bottom; }
  142.     int Encompassed(const UI_REGION &sRegion)
  143.         { return(region.left >= sRegion.left && region.top >= sRegion.top &&
  144.           region.right <= sRegion.right && region.bottom <= sRegion.bottom); }
  145.     int Overlap(const UI_POSITION &position)
  146.         { return(position.column >= region.left &&
  147.           position.column <= region.right && position.line >= region.top &&
  148.           position.line <= region.bottom); }
  149.     int Overlap(const UI_REGION &a_region);
  150.     int Overlap(const UI_REGION &s_region, UI_REGION &t_region);
  151.  
  152.     // Members described in UI_LIST reference chapter.
  153.     UI_REGION_ELEMENT *Next(void) { return((UI_REGION_ELEMENT *)next); }
  154.     UI_REGION_ELEMENT *Previous(void) { return((UI_REGION_ELEMENT *)previous); }
  155. };
  156.  
  157. class EXPORT UI_REGION_LIST : public UI_LIST
  158. {
  159. public:
  160.     // Members described in UI_REGION_LIST reference chapter.
  161.     void Split(SCREENID screenID, const UI_REGION ®ion);
  162.  
  163.     // Members described in UI_LIST reference chapter.
  164.     UI_REGION_ELEMENT *First(void) { return((UI_REGION_ELEMENT *)first); }
  165.     UI_REGION_ELEMENT *Last(void) { return((UI_REGION_ELEMENT *)last); }
  166. };
  167.  
  168. // ----- UI_DISPLAY ---------------------------------------------------------
  169. // ----- member functions found in DISPLAY.CPP ------------------------------
  170.  
  171. // --- Definition of screen identification ---
  172. const int ID_SCREEN                = 0;    // special value-see ui_map.hpp
  173.  
  174. enum DISPLAY_CODE
  175. {
  176.     DC_NO_DISPLAY         = 0x00,
  177.     DC_MONOCHROME         = 0x01,
  178.     DC_CGA                  = 0x02,
  179.     DC_EGA_COLOR          = 0x04,
  180.     DC_EGA_MONO           = 0x05,
  181.     DC_PGA_COLOR           = 0x06,
  182.     DC_PS2_ANALOG_MONO    = 0x07,
  183.     DC_PS2_ANALOG_COLOR = 0x08,
  184.     DC_M30_ANALOG_MONO  = 0x0B,
  185.     DC_M30_ANALOG_COLOR = 0x0C,
  186.     DC_UNKNOWN            = -1
  187. };
  188.  
  189. extern class EXPORT UI_EVENT_MANAGER;
  190. class EXPORT UI_DISPLAY : public UI_REGION_LIST
  191. {
  192. public:
  193.     // Members described in UI_DISPLAY reference chapter.
  194.     int installed;
  195.     const int isText;
  196.     const int cellWidth;
  197.     const int cellHeight;
  198.     int    columns;
  199.     int    lines;
  200.     USHORT onCursorValue;
  201.     USHORT offCursorValue;
  202.     UI_EVENT_MANAGER *eventManager;
  203.  
  204.     virtual ~UI_DISPLAY(void);
  205.     virtual void Bitmap(SCREENID screenID, int column, int line,
  206.         int bitmapWidth, int bitmapHeight, const UCHAR *bitmapArray,
  207.         const UI_PALETTE *palette = NULL, const UI_REGION *clipRegion = NULL) = 0;
  208.     virtual void Ellipse(SCREENID screenID, int column, int line,
  209.         int startAngle, int endAngle, int xRadius, int yRadius,
  210.         const UI_PALETTE *palette, int fill = FALSE, int xor = FALSE,
  211.         const UI_REGION *clipRegion = NULL) = 0;
  212.     virtual void Line(SCREENID screenID, int column1, int line1, int column2,
  213.         int line2, const UI_PALETTE *palette, int width = 1, int xor = FALSE,
  214.         const UI_REGION *clipRegion = NULL) = 0;
  215.     virtual void Polygon(SCREENID screenID, int numPoints, const int *polygonPoints,
  216.         const UI_PALETTE *palette, int fill = FALSE, int xor = FALSE,
  217.         const UI_REGION *clipRegion = NULL) = 0;
  218.     virtual void Rectangle(SCREENID screenID, const UI_REGION ®ion,
  219.         const UI_PALETTE *palette, int width = 1, int fill = FALSE,
  220.         int xor = FALSE, const UI_REGION *clipRegion = NULL)
  221.         { Rectangle(screenID, region.left, region.top, region.right,
  222.           region.bottom, palette, width, fill, xor, clipRegion); }
  223.     virtual void Rectangle(SCREENID screenID, int left, int top, int right,
  224.         int bottom, const UI_PALETTE *palette, int width = 1, int fill = FALSE,
  225.         int xor = FALSE, const UI_REGION *clipRegion = NULL) = 0;
  226.     virtual void RectangleXORDiff(const UI_REGION &oldRegion, const UI_REGION &newRegion) = 0;
  227.     virtual void RegionConvert(UI_REGION ®ion, USHORT *oldFlags, USHORT newFlags) = 0;
  228.     virtual void RegionDefine(SCREENID screenID, const UI_REGION ®ion)
  229.         { RegionDefine(screenID, region.left, region.top, region.right, region.bottom); }
  230.     virtual void RegionDefine(SCREENID screenID, int left, int top, int right, int bottom);
  231.     virtual void RegionMove(const UI_REGION &oldRegion, int newColumn, int newLine,
  232.         SCREENID oldScreenID = ID_SCREEN, SCREENID newScreenID = ID_SCREEN) = 0;
  233.     virtual void Text(SCREENID screenID, int left, int top, const char *text,
  234.         const UI_PALETTE *palette, int length = -1, int fill = TRUE,
  235.         int xor = FALSE, const UI_REGION *clipRegion = NULL) = 0;
  236.     virtual int TextHeight(const char *string, SCREENID screenID = ID_SCREEN) = 0;
  237.     virtual int TextWidth(const char *string, SCREENID screenID = ID_SCREEN) = 0;
  238.  
  239. protected:
  240.     // Members described in UI_DISPLAY reference chapter.
  241.     UI_DISPLAY(int isText, int cellWidth, int cellHeight);
  242. };
  243.  
  244. #ifdef ZIL_MSWINDOWS // ---------------------------------------------------
  245.  
  246. // ----- UI_MSWINDOWS_DISPLAY ---------------------------------------------
  247. // ----- member functions found in WINDSP.CPP -----------------------------
  248.  
  249. class EXPORT UI_MSWINDOWS_DISPLAY : public UI_DISPLAY
  250. {
  251. public:
  252.     // Members described in UI_MSWINDOWS_DISPLAY reference chapter.
  253.     HANDLE hInstance;
  254.     HANDLE hPrevInstance;
  255.     int nCmdShow;
  256.  
  257.     UI_MSWINDOWS_DISPLAY(HANDLE hInstance, HANDLE hPrevInstance, int nCmdShow);
  258.     virtual ~UI_MSWINDOWS_DISPLAY(void);
  259.  
  260.     virtual void Bitmap(SCREENID screenID, int column, int line,
  261.         int bitmapWidth, int bitmapHeight, const UCHAR *bitmapArray,
  262.         const UI_PALETTE *palette = NULL, const UI_REGION *clipRegion = NULL);
  263.     virtual void Ellipse(SCREENID screenID, int column, int line,
  264.         int startAngle, int endAngle, int xRadius, int yRadius,
  265.         const UI_PALETTE *palette, int fill = FALSE, int xor = FALSE,
  266.         const UI_REGION *clipRegion = NULL);
  267.     virtual void Line(SCREENID screenID, int column1, int line1, int column2,
  268.         int line2, const UI_PALETTE *palette, int width = 1, int xor = FALSE,
  269.         const UI_REGION *clipRegion = NULL);
  270.     virtual void Polygon(SCREENID screenID, int numPoints, const int *polygonPoints,
  271.         const UI_PALETTE *palette, int fill = FALSE, int xor = FALSE,
  272.         const UI_REGION *clipRegion = NULL);
  273.     virtual void Rectangle(SCREENID screenID, int left, int top, int right,
  274.         int bottom, const UI_PALETTE *palette, int width = 1, int fill = FALSE,
  275.         int xor = FALSE, const UI_REGION *clipRegion = NULL);
  276.     virtual void RectangleXORDiff(const UI_REGION &oldRegion, const UI_REGION &newRegion);
  277.     virtual void RegionConvert(UI_REGION ®ion, USHORT *oldFlags, USHORT newFlags);
  278.     virtual void RegionMove(const UI_REGION &oldRegion, int newColumn, int newLine,
  279.         SCREENID oldScreenID = ID_SCREEN, SCREENID newScreenID = ID_SCREEN);
  280.     virtual void Text(SCREENID screenID, int left, int top, const char *text,
  281.         const UI_PALETTE *palette, int length = -1, int fill = TRUE,
  282.         int xor = FALSE, const UI_REGION *clipRegion = NULL);
  283.     virtual int TextHeight(const char *string, SCREENID screenID = 0);
  284.     virtual int TextWidth(const char *string, SCREENID screenID = 0);
  285. };
  286.  
  287. #else // Not MS Windows ----------------------------------------------------
  288.  
  289. // ----- UI_DOS_BGI_DISPLAY -------------------------------------------------
  290. // ----- member functions found in BGIDSP.CPP -------------------------------
  291.  
  292. class UI_DOS_BGI_DISPLAY : public UI_DISPLAY
  293. {
  294. public:
  295.     // Members described in UI_DOS_BGI_DISPLAY reference chapter.
  296.     UI_DOS_BGI_DISPLAY(int driver = 0, int mode = 0);
  297.     virtual ~UI_DOS_BGI_DISPLAY(void);
  298.     virtual void Bitmap(SCREENID screenID, int column, int line,
  299.         int bitmapWidth, int bitmapHeight, const UCHAR *bitmapArray,
  300.         const UI_PALETTE *palette = NULL, const UI_REGION *clipRegion = NULL);
  301.     virtual void Ellipse(SCREENID screenID, int column, int line,
  302.         int startAngle, int endAngle, int xRadius, int yRadius,
  303.         const UI_PALETTE *palette, int fill = FALSE, int xor = FALSE,
  304.         const UI_REGION *clipRegion = NULL);
  305.     virtual void Line(SCREENID screenID, int column1, int line1, int column2,
  306.         int line2, const UI_PALETTE *palette, int width = 1, int xor = FALSE,
  307.         const UI_REGION *clipRegion = NULL);
  308.     virtual void Polygon(SCREENID screenID, int numPoints, const int *polygonPoints,
  309.         const UI_PALETTE *palette, int fill = FALSE, int xor = FALSE,
  310.         const UI_REGION *clipRegion = NULL);
  311.     virtual void Rectangle(SCREENID screenID, int left, int top, int right,
  312.         int bottom, const UI_PALETTE *palette, int width = 1, int fill = FALSE,
  313.         int xor = FALSE, const UI_REGION *clipRegion = NULL);
  314.     virtual void RectangleXORDiff(const UI_REGION &oldRegion, const UI_REGION &newRegion);
  315.     virtual void RegionConvert(UI_REGION ®ion, USHORT *oldFlags, USHORT newFlags);
  316.     virtual void RegionMove(const UI_REGION &oldRegion, int newColumn, int newLine,
  317.         SCREENID oldScreenID = ID_SCREEN, SCREENID newScreenID = ID_SCREEN);
  318.     virtual void Text(SCREENID screenID, int left, int top, const char *text,
  319.         const UI_PALETTE *palette, int length = -1, int fill = TRUE,
  320.         int xor = FALSE, const UI_REGION *clipRegion = NULL);
  321.     virtual int TextHeight(const char *string, SCREENID screenID = 0);
  322.     virtual int TextWidth(const char *string, SCREENID screenID = 0);
  323.  
  324. protected:
  325.     // Members described in UI_DOS_BGI_DISPLAY reference chapter.
  326.     int maxColor;
  327.  
  328.     int MapColor(const UI_PALETTE *palette, int isForeground);
  329. };
  330.  
  331. // ----- UI_DOS_FLASH_DISPLAY -----------------------------------------------
  332. // ----- member functions found in FLSHDSP.CPP ------------------------------
  333.  
  334. class UI_DOS_FLASH_DISPLAY : public UI_DISPLAY
  335. {
  336. public:
  337.     // Members described in UI_DOS_FLASH_DISPLAY reference chapter.
  338.     UI_DOS_FLASH_DISPLAY(void);
  339.     virtual ~UI_DOS_FLASH_DISPLAY(void);
  340.     virtual void Bitmap(SCREENID screenID, int column, int line,
  341.         int bitmapWidth, int bitmapHeight, const UCHAR *bitmapArray,
  342.         const UI_PALETTE *palette = NULL, const UI_REGION *clipRegion = NULL);
  343.     virtual void Ellipse(SCREENID screenID, int column, int line,
  344.         int startAngle, int endAngle, int xRadius, int yRadius,
  345.         const UI_PALETTE *palette, int fill = FALSE, int xor = FALSE,
  346.         const UI_REGION *clipRegion = NULL);
  347.     virtual void Line(SCREENID screenID, int column1, int line1, int column2,
  348.         int line2, const UI_PALETTE *palette, int width = 1, int xor = FALSE,
  349.         const UI_REGION *clipRegion = NULL);
  350.     virtual void Polygon(SCREENID screenID, int numPoints, const int *polygonPoints,
  351.         const UI_PALETTE *palette, int fill = FALSE, int xor = FALSE,
  352.         const UI_REGION *clipRegion = NULL);
  353.     virtual void Rectangle(SCREENID screenID, int left, int top, int right,
  354.         int bottom, const UI_PALETTE *palette, int width = 1, int fill = FALSE,
  355.         int xor = FALSE, const UI_REGION *clipRegion = NULL);
  356.     virtual void RectangleXORDiff(const UI_REGION &oldRegion, const UI_REGION &newRegion);
  357.     virtual void RegionConvert(UI_REGION ®ion, USHORT *oldFlags, USHORT newFlags);
  358.     virtual void RegionMove(const UI_REGION &oldRegion, int newColumn, int newLine,
  359.         SCREENID oldScreenID = ID_SCREEN, SCREENID newScreenID = ID_SCREEN);
  360.     virtual void Text(SCREENID screenID, int left, int top, const char *text,
  361.         const UI_PALETTE *palette, int length = -1, int fill = TRUE,
  362.         int xor = FALSE, const UI_REGION *clipRegion = NULL);
  363.     virtual int TextHeight(const char *string, SCREENID screenID = 0);
  364.     virtual int TextWidth(const char *string, SCREENID screenID = 0);
  365.  
  366. protected:
  367.     // Members described in UI_DOS_FLASH_DISPLAY reference chapter.
  368.     int maxColor;
  369.  
  370.     int MapColor(const UI_PALETTE *palette, int isForeground);
  371. };
  372.  
  373. // ----- UI_DOS_TEXT_DISPLAY ------------------------------------------------
  374. // ----- member functions found in TEXTDSP.CPP ------------------------------
  375.  
  376. #define TDM_AUTO        -1
  377. #define TDM_25x40         1
  378. #define TDM_25x80        3
  379. #define TDM_43x80        64
  380. #define TDM_MONO_25x80    7
  381. #define TDM_NONE        0xFFFF
  382.  
  383. class UI_DOS_TEXT_DISPLAY : public UI_DISPLAY
  384. {
  385. public:
  386.     // Members described in UI_DOS_TEXT_DISPLAY reference chapter.
  387.     static int forceMono;
  388.     int isMono;
  389.  
  390.     UI_DOS_TEXT_DISPLAY(int mode = TDM_AUTO);
  391.     virtual ~UI_DOS_TEXT_DISPLAY(void);
  392.     virtual void Bitmap(SCREENID screenID, int column, int line,
  393.         int bitmapWidth, int bitmapHeight, const UCHAR *bitmapArray,
  394.         const UI_PALETTE *palette = NULL, const UI_REGION *clipRegion = NULL);
  395.     virtual void Ellipse(SCREENID screenID, int column, int line,
  396.         int startAngle, int endAngle, int xRadius, int yRadius,
  397.         const UI_PALETTE *palette, int fill = FALSE, int xor = FALSE,
  398.         const UI_REGION *clipRegion = NULL);
  399.     virtual void Line(SCREENID screenID, int column1, int line1, int column2,
  400.         int line2, const UI_PALETTE *palette, int width = 1, int xor = FALSE,
  401.         const UI_REGION *clipRegion = NULL);
  402.     virtual void Polygon(SCREENID screenID, int numPoints, const int *polygonPoints,
  403.         const UI_PALETTE *palette, int fill = FALSE, int xor = FALSE,
  404.         const UI_REGION *clipRegion = NULL);
  405.     virtual void Rectangle(SCREENID screenID, int left, int top, int right,
  406.         int bottom, const UI_PALETTE *palette, int width = 1, int fill = FALSE,
  407.         int xor = FALSE, const UI_REGION *clipRegion = NULL);
  408.     virtual void RectangleXORDiff(const UI_REGION &oldRegion, const UI_REGION &newRegion);
  409.     virtual void RegionConvert(UI_REGION ®ion, USHORT *oldFlags, USHORT newFlags);
  410.     virtual void RegionMove(const UI_REGION &oldRegion, int newColumn, int newLine,
  411.         SCREENID oldScreenID = ID_SCREEN, SCREENID newScreenID = ID_SCREEN);
  412.     virtual void Text(SCREENID screenID, int left, int top, const char *text,
  413.         const UI_PALETTE *palette, int length = -1, int fill = TRUE,
  414.         int xor = FALSE, const UI_REGION *clipRegion = NULL);
  415.     virtual int TextHeight(const char *string, SCREENID screenID = 0);
  416.     virtual int TextWidth(const char *string, SCREENID screenID = 0);
  417.  
  418. private:
  419.     // Private UI_DISPLAY members are not described.
  420.     USHORT originalCursorValue;
  421.     UCHAR originalCursorEmulationBit;
  422.     UCHAR videoMode;
  423.     UCHAR retraceWait;
  424.     UCHAR desqview;
  425.     UCHAR topview;
  426.     USHORT segment;
  427.     USHORT offset;
  428.     UCHAR blinkState;
  429.     static UCHAR displayCode;
  430.     static UCHAR oldVideoMode;
  431.     void DrawText(const UI_PALETTE *palette, int column, int line,
  432.         const char *text, int length);
  433.     void Fill(SCREENID screenID, const UI_REGION ®ion,
  434.         const UI_PALETTE *palette);
  435.     void FillLine(int column, int line, int noOfCharacters,
  436.         const UI_PALETTE *palette);
  437.     void FillXOR(const UI_REGION ®ion);
  438.     void RectangleOnly(SCREENID screenID, const UI_REGION ®ion,
  439.         const UI_PALETTE *palette, int width);
  440.     void RectangleXOR(const UI_REGION ®ion);
  441.     void SetBlink(int enableBlink);
  442.     void TextXOR(int left, int top, int length);
  443.     void XorAttribute(int column, int line, int swapNibbles = FALSE);
  444. };
  445.  
  446. #endif // ZIL_MSWINDOWS
  447.  
  448. #ifndef UI_EVT_HPP
  449. #include <ui_evt.hpp>
  450. #endif
  451. #endif // UI_DSP_HPP
  452.