1 /* Wlib.h 2 3 * Include file for the Windowing interface. 4 * 5 * Kevin P. Smith 6/11/89 6 * 7 * The deal is this: 8 * Call W_Initialize(), and then you may call any of the listed fuinctions. 9 * Also, externals you are allowed to pass or use include W_BigFont, 10 * W_RegularFont, W_UnderlineFont, W_HighlightFont, W_White, W_Black, 11 * W_Red, W_Green, W_Yellow, W_Cyan, W_Grey, W_Textwidth, and W_Textheight. 12 * 13 */ 14 15 #ifndef _h_Wlib 16 #define _h_Wlib 17 18 19 #include "copyright2.h" 20 #include "defs.h" 21 22 typedef void (*W_Callback) (); 23 24 typedef char *W_Window; 25 26 typedef struct event 27 { 28 int type; 29 W_Window Window; 30 unsigned char key; 31 int x, y; 32 #ifdef MOUSE_AS_SHIFT 33 int modifier; 34 #endif 35 } 36 W_Event; 37 38 /* mapping for some X11 keys that are not represented by ASCII or Latin-1 */ 39 #define W_Key_Up 1 40 #define W_Key_Down 2 41 42 extern W_Callback W_GetWindowKeyDownHandler (W_Window w); 43 extern W_Callback W_GetWindowKeyUpHandler (W_Window w); 44 extern W_Callback W_GetWindowButtonHandler (W_Window w); 45 extern W_Callback W_GetWindowExposeHandler (W_Window w); 46 extern void W_SetWindowKeyDownHandler (W_Window w, W_Callback c); 47 extern void W_SetWindowKeyUpHandler (W_Window w, W_Callback c); 48 extern void W_SetWindowButtonHandler (W_Window w, W_Callback c); 49 extern void W_SetWindowExposeHandler (W_Window w, W_Callback c); 50 51 typedef char *W_Icon; 52 typedef char *W_Font; 53 typedef int W_Color; 54 55 extern W_Font W_BigFont, W_RegularFont, W_UnderlineFont, W_HighlightFont, 56 W_IndyFont; 57 extern W_Color W_White, W_Black, W_Red, W_Green, W_Yellow, W_Cyan, W_Grey; 58 #ifdef RACE_COLORS 59 extern W_Color W_Ind, W_Fed, W_Rom, W_Kli, W_Ori; 60 #endif 61 extern int W_BigTextwidth, W_BigTextheight, W_Textwidth, W_Textheight; 62 extern int W_FastClear; 63 extern W_Font W_MyPlanetFont, W_FriendlyPlanetFont, W_EnemyPlanetFont; 64 65 extern void W_Initialize (char *str); 66 extern void W_GetPixmaps(W_Window t, W_Window g); 67 extern void W_RenameWindow(W_Window window, char *str); 68 extern W_Window W_MakeWindow (char *name, int x, int y, int width, int height, W_Window parent, int border, W_Color color); 69 extern W_Icon W_StoreBitmap (int width, int height, char *data, W_Window window); 70 extern W_Window W_MakeTextWindow (char *name, int x, int y, int width, int height, W_Window parent, int border); 71 extern W_Window W_MakeScrollingWindow (char *name, int x, int y, int width, int height, W_Window parent, int border); 72 extern void W_FlushScrollingWindow(W_Window window); 73 extern void W_SetSensitive(W_Window w, int v); 74 extern W_Window W_MakeMenu (char *name, int x, int y, int width, int height, W_Window parent, int border); 75 extern void W_WriteText (W_Window window, int x, int y, W_Color color, char *str, int len, W_Font font); 76 extern void W_MaskText (W_Window window, int x, int y, W_Color color, char *str, int len, W_Font font); 77 extern void W_WriteBitmap (int x, int y, W_Icon bit, W_Color color); 78 extern void W_ClearArea (W_Window window, int x, int y, int width, int height); 79 extern void W_MakeLine (W_Window window, int x0, int y0, int x1, int y1, W_Color color); 80 extern void W_MapWindow (W_Window window); 81 extern void W_UnmapWindow (W_Window window); 82 extern int W_EventsPending (void); 83 extern void W_NextEvent (W_Event *wevent); 84 extern void W_SetWindowName(W_Window window, char *name); 85 extern void W_TileWindow (W_Window window, W_Icon bit); 86 extern void W_UnTileWindow (W_Window window); 87 extern void W_ChangeBorder (W_Window window, int color); 88 void W_DefineMapcursor(W_Window window); 89 void W_DefineLocalcursor(W_Window window); 90 void W_DefineFedCursor(W_Window window); 91 void W_DefineRomCursor(W_Window window); 92 void W_DefineKliCursor(W_Window window); 93 void W_DefineOriCursor(W_Window window); 94 void W_DefineTrekCursor(W_Window window); 95 void W_DefineWarningCursor(W_Window window); 96 void W_DefineTextCursor(W_Window window); 97 extern void W_DefineCursor (W_Window window, int width, int height, char *bits, char *mask, int xhot, int yhot); 98 extern int W_IsMapped (W_Window window); 99 void W_ReinitMenu(W_Window window, int neww, int newh); 100 void W_ResizeMenu(W_Window window, int neww, int newh); 101 void W_ResizeWindow(W_Window window, int neww, int newh); 102 extern void W_Beep (void); 103 extern void W_DestroyWindow (W_Window window); 104 extern int W_WindowWidth (W_Window window); 105 extern int W_WindowHeight (W_Window window); 106 extern int W_Socket (void); 107 extern void W_ClearWindow (W_Window window); 108 extern void W_SetIconWindow (W_Window main, W_Window icon); 109 extern void W_CacheLine(W_Window, int, int, int, int, int); 110 extern void W_MakeTractLine(W_Window, int, int, int, int, W_Color); 111 extern void W_MakePhaserLine(W_Window, int, int, int, int, W_Color); 112 extern void W_WriteCircle(W_Window, int, int, int, W_Color); 113 extern void W_WriteTriangle(W_Window, int, int, int, int, W_Color); 114 extern void W_CacheClearArea(W_Window, int, int, int, int); 115 extern void W_FlushClearAreaCache(W_Window); 116 extern void W_FlushLineCaches(W_Window); 117 extern void W_ResizeTextWindow(W_Window, int, int); 118 extern int W_Mono(void); 119 extern int W_EventsQueuedCk(void); 120 extern void W_OverlayBitmap(int, int, W_Icon, W_Color); 121 extern void W_WriteTriangle(W_Window, int, int, int, int, W_Color); 122 extern void W_Flush(void); 123 124 #define W_EV_EXPOSE 1 125 #define W_EV_KEY 2 126 #define W_EV_BUTTON 3 127 128 #ifdef MOUSE_AS_SHIFT 129 #define W_EV_MKEY 4 130 #endif 131 132 #ifdef AUTOKEY 133 #define W_EV_KEY_OFF 4 134 #endif /*AUTOKEY */ 135 136 #ifdef MOTION_MOUSE 137 #define W_EV_CM_BUTTON 5 138 #endif 139 140 #define W_EV_CLOSED 6 /* window was closed by user action */ 141 142 #define W_LBUTTON 1 143 #define W_MBUTTON 2 144 #define W_RBUTTON 3 145 #define W_WUBUTTON 4 // Mouse wheel up 146 #define W_WDBUTTON 5 // wheel down 147 #define W_X1BUTTON 6 // future extra keys 148 #define W_X2BUTTON 7 149 150 151 #ifdef SHIFTED_MOUSE 152 #define W_SHIFT_BUTTON 0x08 153 #define W_CTRL_BUTTON 0x10 154 #define W_BUTTON_RANGE 0x20 155 #else 156 #define W_BUTTON_RANGE 8 157 #endif 158 159 #define W_BoldFont W_HighlightFont 160 161 void W_FillArea(W_Window window, int x, int y, int width, int height, W_Color color); 162 void W_DefineArrowCursor(W_Window window); 163 void W_GalacticBgd(int which); 164 void W_LocalBgd(int which); 165 166 int W_TTSTextHeight(void); 167 int W_TTSTextWidth(char *s, int l); 168 void W_EraseTTSText(W_Window window, int max_width, int y, int width); 169 void W_WriteTTSText(W_Window window, int max_width, int y, int width, char *str, int len); 170 void W_Halo(int x, int y, W_Color color); 171 172 void W_FullScreenOn(W_Window window); 173 void W_FullScreenOff(W_Window window); 174 void W_FullScreenInitialise(void); 175 int W_FullScreenToggle(W_Window window); 176 #define FULLSCREEN_NOT_COMPILED -1 177 #define FULLSCREEN_OK 0 178 #define FULLSCREEN_FAILED 1 179 void W_FullScreenBegin(W_Window window); 180 void W_FullScreen(W_Window window); 181 void W_CameraSnap(W_Window window); 182 int W_SpNextEvent(W_Event *wevent); 183 int findMouseInWin(int *x, int *y, W_Window w); 184 int W_EventsQueued(void); 185 int W_EventsQueuedCk(void); 186 187 void W_SetBackground(W_Window w, int which); 188 void *W_SetBackgroundImage(W_Window w, char *name); 189 190 void W_NextScreenShot(W_Window w, int x, int y); 191 void W_DrawScreenShot(W_Window w, int x, int y); 192 193 void *W_ReadImage(W_Window w, char *name); 194 void W_DrawImage(int x, int y, void *sprite_v); 195 void W_DropImage(void *sprite_v); 196 197 #endif /* _h_Wlib */ 198