home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / x / xibm.zip / common / ibmScreen.h < prev    next >
C/C++ Source or Header  |  1991-09-20  |  4KB  |  106 lines

  1. /*
  2.  * $Id: ibmScreen.h,v 1.1 1991/09/20 18:24:03 mtranle Exp $
  3.  *
  4.  * Copyright IBM Corporation 1987,1988,1989
  5.  *
  6.  * All Rights Reserved
  7.  *
  8.  * Permission to use, copy, modify, and distribute this software and its
  9.  * documentation for any purpose and without fee is hereby granted,
  10.  * provided that the above copyright notice appear in all copies and that 
  11.  * both that copyright notice and this permission notice appear in
  12.  * supporting documentation, and that the name of IBM not be
  13.  * used in advertising or publicity pertaining to distribution of the
  14.  * software without specific, written prior permission.
  15.  *
  16.  * IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  17.  * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
  18.  * IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
  19.  * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  20.  * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  21.  * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  22.  * SOFTWARE.
  23.  *
  24. */
  25. #ifndef IBMSCREEN_H
  26. #define IBMSCREEN_H
  27.  
  28.     /*
  29.      * IBM specific, per-screen information
  30.      */
  31.  
  32. typedef struct IBMPERSCRINFO {
  33.     BoxRec         ibm_ScreenBounds;
  34.  
  35.     int         ibm_NumFormats;
  36.     PixmapFormatRec    *ibm_ScreenFormats;
  37.  
  38.     Bool        (*ibm_InitFunc)();
  39.     int        (*ibm_ProbeFunc)(); /* returns file descriptor */
  40.     void        (*ibm_HideCursor)();
  41.  
  42.     char         *ibm_ScreenFlag;
  43.     char         *ibm_ScreenDevice;
  44.     char         *ibm_ScreenPointer;
  45.     void        (*ibm_SaveFunc)();
  46.     void        (*ibm_RestoreFunc)();
  47.  
  48.     ScreenPtr      ibm_Screen;
  49.  
  50.     int          ibm_ScreenFD;
  51.  
  52.     int          ibm_Wanted;
  53.  
  54.     short          ibm_CursorHotX;
  55.     short          ibm_CursorHotY;
  56.     void        (*ibm_CursorShow)();
  57.     CursorPtr      ibm_CurrentCursor;
  58.     int          ibm_ScreenState ;
  59.     unsigned      ibm_DeviceID;
  60. } ibmPerScreenInfo;
  61.  
  62. #define SCREEN_UNINITIALIZED    0
  63. #define    SCREEN_INACTIVE        1
  64. #define    SCREEN_ACTIVE        2
  65.  
  66. #define    ibmScreenBounds(n)    (&ibmScreens[(n)]->ibm_ScreenBounds)
  67. #define    ibmScreenMinX(n)    (ibmScreenBounds(n)->x1)
  68. #define    ibmScreenMinY(n)    (ibmScreenBounds(n)->y1)
  69. #define    ibmScreenMaxX(n)    (ibmScreenBounds(n)->x2)
  70. #define    ibmScreenMaxY(n)    (ibmScreenBounds(n)->y2)
  71. #define    ibmNumFormats(n)    (ibmScreens[(n)]->ibm_NumFormats)
  72. #define    ibmScreenFormats(n)    (ibmScreens[(n)]->ibm_ScreenFormats)
  73. #define    ibmScreenInit(n)    (ibmScreens[(n)]->ibm_InitFunc)
  74. #define    ibmHideCursor(n)    (ibmScreens[(n)]->ibm_HideCursor)
  75. #define    ibmScreenFlag(n)    (ibmScreens[(n)]->ibm_ScreenFlag)
  76. #define    ibmScreenDevice(n)    (ibmScreens[(n)]->ibm_ScreenDevice)
  77. #define    ibmScreenPointer(n)    (ibmScreens[(n)]->ibm_ScreenPointer)
  78. #define    ibmScreenFD(n)        (ibmScreens[(n)]->ibm_ScreenFD)
  79. #define    ibmCursorHotX(n)    (ibmScreens[(n)]->ibm_CursorHotX)
  80. #define    ibmCursorHotY(n)    (ibmScreens[(n)]->ibm_CursorHotY)
  81. #define    ibmCursorShow(n)    (ibmScreens[(n)]->ibm_CursorShow)
  82. #define    ibmCurrentCursor(n)    (ibmScreens[(n)]->ibm_CurrentCursor)
  83. #define    ibmScreen(n)        (ibmScreens[(n)]->ibm_Screen)
  84. #define    ibmScreenState(n)    (ibmScreens[(n)]->ibm_ScreenState)
  85. #define    ibmSetScreenState(n,s)    (ibmScreens[(n)]->ibm_ScreenState=(s))
  86. #define    ibmDeviceID(n)        (ibmScreens[(n)]->ibm_DeviceID)
  87.  
  88. /* Macro Calls For Dynamically changing the screen set */
  89. #define    ibmSaveScreenInfo(n)    (* ibmScreens[(n)]->ibm_SaveFunc)(n)
  90. #define    ibmRestoreScreenInfo(n)    (* ibmScreens[(n)]->ibm_RestoreFunc)(n)
  91.  
  92. extern    int         ibmSaveScreen();
  93. extern    ibmPerScreenInfo *ibmPossibleScreens[];
  94. extern    ibmPerScreenInfo *ibmScreens[MAXSCREENS];
  95. extern    int         ibmNumScreens;
  96. extern    int         ibmXWrapScreen;
  97. extern    int         ibmYWrapScreen;
  98. extern    int         ibmCurrentScreen;
  99. extern    int         ibmUseHardware;
  100. extern    int         ibmAllowBackingStore;
  101. extern  char         *ibmWhitePixelText;
  102. extern  char         *ibmBlackPixelText;
  103. extern  Bool         ibmDontZap;
  104.  
  105. #endif /* IBMSCREEN_H */
  106.