/* =========================================================================== Doom 3 BFG Edition GPL Source Code Copyright (C) 1993-2012 id Software LLC, a ZeniMax Media company. This file is part of the Doom 3 BFG Edition GPL Source Code ("Doom 3 BFG Edition Source Code"). Doom 3 BFG Edition Source Code is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Doom 3 BFG Edition Source Code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Doom 3 BFG Edition Source Code. If not, see . In addition, the Doom 3 BFG Edition Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the Doom 3 BFG Edition Source Code. If not, please request a copy in writing from id Software at the address below. If you have questions concerning this license or the applicable additional terms, you may contact in writing id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA. =========================================================================== */ #ifndef __STLIB__ #define __STLIB__ // We are referring to patches. #include "r_defs.h" // // Background and foreground screen numbers // #define BG 4 #define 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 qboolean stating // whether to update number qboolean* 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 qboolean stating // whether to update icon qboolean* 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 qboolean* val; // pointer to qboolean // stating whether to update icon qboolean* 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, qboolean* on, int width ); void STlib_updateNum ( st_number_t* n, qboolean refresh ); // Percent widget routines void STlib_initPercent ( st_percent_t* p, int x, int y, patch_t** pl, int* num, qboolean* 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, qboolean* on ); void STlib_updateMultIcon ( st_multicon_t* mi, qboolean refresh ); // Binary Icon widget routines void STlib_initBinIcon ( st_binicon_t* b, int x, int y, patch_t* i, qboolean* val, qboolean* on ); void STlib_updateBinIcon ( st_binicon_t* bi, qboolean refresh ); #endif