home *** CD-ROM | disk | FTP | other *** search
/ ST-Computer Leser-CD 2000 January / LCD_01_2000.iso / games / doom / pmdoom / include / st_lib.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-12-17  |  4.1 KB  |  227 lines

  1. /*  Emacs style mode select   -*- C++ -*-  */
  2. /* ----------------------------------------------------------------------------- */
  3. /*  */
  4. /*  $Id:$ */
  5. /*  */
  6. /*  Copyright (C) 1993-1996 by id Software, Inc. */
  7. /*  */
  8. /*  This source is available for distribution and/or modification */
  9. /*  only under the terms of the DOOM Source Code License as */
  10. /*  published by id Software. All rights reserved. */
  11. /*  */
  12. /*  The source is distributed in the hope that it will be useful, */
  13. /*  but WITHOUT ANY WARRANTY; without even the implied warranty of */
  14. /*  FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License */
  15. /*  for more details. */
  16. /*  */
  17. /*  DESCRIPTION: */
  18. /*      The status bar widget code. */
  19. /*  */
  20. /* ----------------------------------------------------------------------------- */
  21.  
  22. #ifndef __STLIB__
  23. #define __STLIB__
  24.  
  25.  
  26. /*  We are referring to patches. */
  27. #include "r_defs.h"
  28.  
  29.  
  30. /*  */
  31. /*  Background and foreground screen numbers */
  32. /*  */
  33. #define BG 4
  34. #define FG 0
  35.  
  36.  
  37.  
  38. /*  */
  39. /*  Typedefs of widgets */
  40. /*  */
  41.  
  42. /*  Number widget */
  43.  
  44. typedef struct
  45. {
  46.     /*  upper right-hand corner */
  47.     /*   of the number (right-justified) */
  48.     int        x;
  49.     int        y;
  50.  
  51.     /*  max # of digits in number */
  52.     int width;    
  53.  
  54.     /*  last number value */
  55.     int        oldnum;
  56.     
  57.     /*  pointer to current value */
  58.     int*    num;
  59.  
  60.     /*  pointer to boolean stating */
  61.     /*   whether to update number */
  62.     boolean*    on;
  63.  
  64.     /*  list of patches for 0-9 */
  65.     patch_t**    p;
  66.  
  67.     /*  user data */
  68.     int data;
  69.     
  70. } st_number_t;
  71.  
  72.  
  73.  
  74. /*  Percent widget ("child" of number widget, */
  75. /*   or, more precisely, contains a number widget.) */
  76. typedef struct
  77. {
  78.     /*  number information */
  79.     st_number_t        n;
  80.  
  81.     /*  percent sign graphic */
  82.     patch_t*        p;
  83.     
  84. } st_percent_t;
  85.  
  86.  
  87.  
  88. /*  Multiple Icon widget */
  89. typedef struct
  90. {
  91.      /*  center-justified location of icons */
  92.     int            x;
  93.     int            y;
  94.  
  95.     /*  last icon number */
  96.     int            oldinum;
  97.  
  98.     /*  pointer to current icon */
  99.     int*        inum;
  100.  
  101.     /*  pointer to boolean stating */
  102.     /*   whether to update icon */
  103.     boolean*        on;
  104.  
  105.     /*  list of icons */
  106.     patch_t**        p;
  107.     
  108.     /*  user data */
  109.     int            data;
  110.     
  111. } st_multicon_t;
  112.  
  113.  
  114.  
  115.  
  116. /*  Binary Icon widget */
  117.  
  118. typedef struct
  119. {
  120.     /*  center-justified location of icon */
  121.     int            x;
  122.     int            y;
  123.  
  124.     /*  last icon value */
  125.     int            oldval;
  126.  
  127.     /*  pointer to current icon status */
  128.     boolean*        val;
  129.  
  130.     /*  pointer to boolean */
  131.     /*   stating whether to update icon */
  132.     boolean*        on;  
  133.  
  134.  
  135.     patch_t*        p;    /*  icon */
  136.     int            data;   /*  user data */
  137.     
  138. } st_binicon_t;
  139.  
  140.  
  141.  
  142. /*  */
  143. /*  Widget creation, access, and update routines */
  144. /*  */
  145.  
  146. /*  Initializes widget library. */
  147. /*  More precisely, initialize STMINUS, */
  148. /*   everything else is done somewhere else. */
  149. /*  */
  150. void STlib_init(void);
  151.  
  152.  
  153.  
  154. /*  Number widget routines */
  155. void
  156. STlib_initNum
  157. ( st_number_t*        n,
  158.   int            x,
  159.   int            y,
  160.   patch_t**        pl,
  161.   int*            num,
  162.   boolean*        on,
  163.   int            width );
  164.  
  165. void
  166. STlib_updateNum
  167. ( st_number_t*        n,
  168.   boolean        refresh );
  169.  
  170.  
  171. /*  Percent widget routines */
  172. void
  173. STlib_initPercent
  174. ( st_percent_t*        p,
  175.   int            x,
  176.   int            y,
  177.   patch_t**        pl,
  178.   int*            num,
  179.   boolean*        on,
  180.   patch_t*        percent );
  181.  
  182.  
  183. void
  184. STlib_updatePercent
  185. ( st_percent_t*        per,
  186.   int            refresh );
  187.  
  188.  
  189. /*  Multiple Icon widget routines */
  190. void
  191. STlib_initMultIcon
  192. ( st_multicon_t*    mi,
  193.   int            x,
  194.   int            y,
  195.   patch_t**        il,
  196.   int*            inum,
  197.   boolean*        on );
  198.  
  199.  
  200. void
  201. STlib_updateMultIcon
  202. ( st_multicon_t*    mi,
  203.   boolean        refresh );
  204.  
  205. /*  Binary Icon widget routines */
  206.  
  207. void
  208. STlib_initBinIcon
  209. ( st_binicon_t*        b,
  210.   int            x,
  211.   int            y,
  212.   patch_t*        i,
  213.   boolean*        val,
  214.   boolean*        on );
  215.  
  216. void
  217. STlib_updateBinIcon
  218. ( st_binicon_t*        bi,
  219.   boolean        refresh );
  220.  
  221. #endif
  222. /* ----------------------------------------------------------------------------- */
  223. /*  */
  224. /*  $Log:$ */
  225. /*  */
  226. /* ----------------------------------------------------------------------------- */
  227.