0,0 → 1,226 |
// 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 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 boolean stating |
// whether to update number |
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 boolean stating |
// whether to update icon |
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 |
boolean* val; |
|
// pointer to boolean |
// stating whether to update icon |
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, |
boolean* on, |
int width ); |
|
void |
STlib_updateNum |
( st_number_t* n, |
boolean refresh ); |
|
|
// Percent widget routines |
void |
STlib_initPercent |
( st_percent_t* p, |
int x, |
int y, |
patch_t** pl, |
int* num, |
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, |
boolean* on ); |
|
|
void |
STlib_updateMultIcon |
( st_multicon_t* mi, |
boolean refresh ); |
|
// Binary Icon widget routines |
|
void |
STlib_initBinIcon |
( st_binicon_t* b, |
int x, |
int y, |
patch_t* i, |
boolean* val, |
boolean* on ); |
|
void |
STlib_updateBinIcon |
( st_binicon_t* bi, |
boolean refresh ); |
|
#endif |
//----------------------------------------------------------------------------- |
// |
// $Log:$ |
// |
//----------------------------------------------------------------------------- |