190 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			190 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// 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:$
 | 
						|
//
 | 
						|
//-----------------------------------------------------------------------------
 |