// Emacs style mode select -*- C++ -*- //----------------------------------------------------------------------------- // // $Id:$ // // Copyright (C) 1993-1996 by id Software, Inc. // // This source is available for distribution and/or modification // only under the terms of the DOOM Source Code License as // published by id Software. All rights reserved. // // The source is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License // for more details. // // DESCRIPTION: // The status bar widget code. // //----------------------------------------------------------------------------- #ifndef __STLIB__ #define __STLIB__ // We are referring to patches. #include "r_defs.h" // // Background and foreground screen numbers // #define STLIB_BG 4 #define STLIB_FG 0 // // Typedefs of widgets // // Number widget typedef struct { // upper right-hand corner // of the number (right-justified) int x; int y; // max # of digits in number int width; // last number value int oldnum; // pointer to current value int* num; // pointer to doom_boolean stating // whether to update number doom_boolean* on; // list of patches for 0-9 patch_t** p; // user data int data; } st_number_t; // Percent widget ("child" of number widget, // or, more precisely, contains a number widget.) typedef struct { // number information st_number_t n; // percent sign graphic patch_t* p; } st_percent_t; // Multiple Icon widget typedef struct { // center-justified location of icons int x; int y; // last icon number int oldinum; // pointer to current icon int* inum; // pointer to doom_boolean stating // whether to update icon doom_boolean* on; // list of icons patch_t** p; // user data int data; } st_multicon_t; // Binary Icon widget typedef struct { // center-justified location of icon int x; int y; // last icon value int oldval; // pointer to current icon status doom_boolean* val; // pointer to doom_boolean // stating whether to update icon doom_boolean* on; patch_t* p; // icon int data; // user data } st_binicon_t; // // Widget creation, access, and update routines // // Initializes widget library. // More precisely, initialize STMINUS, // everything else is done somewhere else. // void STlib_init(void); // Number widget routines void STlib_initNum(st_number_t* n, int x, int y, patch_t** pl, int* num, doom_boolean* on, int width); void STlib_updateNum(st_number_t* n, doom_boolean refresh); // Percent widget routines void STlib_initPercent(st_percent_t* p, int x, int y, patch_t** pl, int* num, doom_boolean* on, patch_t* percent); void STlib_updatePercent(st_percent_t* per, int refresh); // Multiple Icon widget routines void STlib_initMultIcon(st_multicon_t* mi, int x, int y, patch_t** il, int* inum, doom_boolean* on); void STlib_updateMultIcon(st_multicon_t* mi, doom_boolean refresh); // Binary Icon widget routines void STlib_initBinIcon(st_binicon_t* b, int x, int y, patch_t* i, doom_boolean* val, doom_boolean* on); void STlib_updateBinIcon(st_binicon_t* bi, doom_boolean refresh); #endif //----------------------------------------------------------------------------- // // $Log:$ // //-----------------------------------------------------------------------------