aboutsummaryrefslogtreecommitdiff
path: root/engines/glk/conf.h
blob: ca9de2ed0853fa932e9a9c4258cb40b5f331920c (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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
/* ScummVM - Graphic Adventure Engine
 *
 * ScummVM is the legal property of its developers, whose names
 * are too numerous to list here. Please refer to the COPYRIGHT
 * file distributed with this source distribution.
 *
 * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 *
 */

#ifndef GLK_CONF_H
#define GLK_CONF_H

#include "glk/glk_types.h"
#include "glk/windows.h"

namespace Glk {

/**
 * Engine configuration
 */
class Conf {
private:
	/**
	 * Get a string
	 */
	void get(const Common::String &key, Common::String &field, const char *defaultVal = nullptr);

	/**
	 * Get a color
	 */
	void get(const Common::String &key, byte *color, const byte *defaultColor = nullptr);

	/**
	 * Get a font name into a font Id
	 */
	void get(const Common::String &key, FACES &field, FACES defaultFont);

	/**
	 * Get a numeric value
	 */
	void get(const Common::String &key, int &field, int defaultVal = 0);

	/**
	 * Get a numeric value
	 */
	void get(const Common::String &key, bool &field, bool defaultVal = false);

	/**
	 * Get a double
	 */
	void get(const Common::String &key, double &field, double defaultVal = 0.0);

	/**
	 * Parse a color
	 */
	void parseColor(const Common::String &str, byte *color);
public:
	Common::String _morePrompt;
	byte _moreColor[3], _moreSave[3];
	FACES _moreFont;
	int _moreAlign;
	double _monoAspect;
	double _propAspect;
	double _monoSize;
	Common::String _monoR;
	Common::String _monoB;
	Common::String _monoI;
	Common::String _monoZ;
	Common::String _monoFont;
	double _propSize;
	Common::String _propR;
	Common::String _propB;
	Common::String _propI;
	Common::String _propZ;
	Common::String _propFont;
	int _leading;
	int _baseLine;
	int _cols, _rows;
	int _lockCols, _lockRows;
	int _wMarginX, _wMarginY;
	int _wMarginSaveX, _wMarginSaveY;
	int _wPaddingX, _wPaddingY;
	int _wBorderX, _wBorderY;
	int _tMarginX, _tMarginY;
	double _gamma;
	byte _caretColor[3], _caretSave[3];
	byte _linkColor[3], _linkSave[3];
	byte _borderColor[3], _borderSave[3];
	byte _windowColor[3], _windowSave[3];
	int _lcd;
	int _caretShape;
	int _linkStyle;
	int _scrollWidth;
	byte _scrollBg[3], _scrollFg[3];
	int _justify;
	int _quotes;
	int _dashes;
	int _spaces;
	int _caps;
	bool _graphics;
	bool _sound;
	bool _speak;
	bool _speakInput;
	Common::String _speakLanguage;
	int _styleHint;
	bool _safeClicks;
	WindowStyle _tStyles[style_NUMSTYLES];
	WindowStyle _gStyles[style_NUMSTYLES];
	WindowStyle _tStylesDefault[style_NUMSTYLES];
	WindowStyle _gStylesDefault[style_NUMSTYLES];

	int _imageW, _imageH;
	int _cellW, _cellH;
public:
	/**
	 * Constructor
	 */
	Conf(InterpreterType interpType);
};

extern Conf *g_conf;

} // End of namespace Glk

#endif