summaryrefslogtreecommitdiff
path: root/gui.h
blob: c6c0b8db6c1ad146826177a43212867937123987 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/*

    viDOOM - level editor for DOOM

    Copyright (C) 2000  Ian Cowburn (ianc@noddybox.demon.co.uk)

    This program 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 2 of the License, or
    (at your option) any later version.

    This program 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 this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

    -------------------------------------------------------------------------

    Generic GUI routines

    $Id$

*/

#ifndef VIDOOM_GUI_H
#define VIDOOM_GUI_H

#include "gfx.h"


/* If the platform specific GUI wants to provide a bas-relief GUI
   in the same colours as the generic GUI it should use these colours.

   Note these values are not initialised until after GuiSetScreen() has been
   called.
*/
extern int GUI_HI;
extern int GUI_MID;
extern int GUI_LO;
extern int GUI_TEXT;
extern int GUI_TEXTSHADOW;
extern int GUI_TEXTBOLD;


/* These values can be passed to the InfoBox functions and the box will be
   positioned accordingly.  CENTRE can be used for both X and Y co-ords.
*/
#define GUI_CENTRE	-1000
#define GUI_FLUSH_TOP	-1002
#define GUI_FLUSH_LEFT	-1003
#define GUI_FLUSH_RIGHT	-1004
#define GUI_FLUSH_LOWER	-1005


/* Inform GUI of screen size if required
*/
void	GuiSetScreen(int w,int h);

/* Draw a box with filled with the supplied formatted text and wait for a
   key/mouse button.  Text is split into lines with a | char.
*/
void	GuiInfoBox(char *title, char *fmt,...);

/* Draw a box identical to the Alert one, but don't wait for any input.  Also
   allows a position to be supplied for the top-left of the box.  If any
   position is -1 then the box is centred on that axis.  If centre is set then
   the text in the box is centred.
*/
void	GuiDrawInfoBox(char *title, int x, int y, int centre, char *fmt,...);

/* Returns a string in the form MAPxx or ExMy, depending on the game type
   defined in globals.  Returns NULL if cancelled.

   Note the return is static and must be copied elsewhere if permanence is
   required.
*/
char	*GuiPickLevel(char *prompt);


#endif