aboutsummaryrefslogtreecommitdiff
path: root/engines/glk/glk_types.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/glk/glk_types.h')
-rw-r--r--engines/glk/glk_types.h208
1 files changed, 208 insertions, 0 deletions
diff --git a/engines/glk/glk_types.h b/engines/glk/glk_types.h
new file mode 100644
index 0000000000..32b0968761
--- /dev/null
+++ b/engines/glk/glk_types.h
@@ -0,0 +1,208 @@
+/* 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_GLK_TYPES_H
+#define GLK_GLK_TYPES_H
+
+#include "common/scummsys.h"
+#include "common/stream.h"
+
+namespace Gargoyle {
+
+typedef uint32 glui32;
+typedef int32 glsi32;
+class Window;
+
+/**
+ * These are the compile-time conditionals that reveal various Glk optional modules.
+ */
+#define GLK_MODULE_LINE_ECHO
+#define GLK_MODULE_LINE_TERMINATORS
+#define GLK_MODULE_UNICODE
+#define GLK_MODULE_UNICODE_NORM
+#define GLK_MODULE_IMAGE
+#define GLK_MODULE_SOUND
+#define GLK_MODULE_SOUND2
+#define GLK_MODULE_HYPERLINKS
+#define GLK_MODULE_DATETIME
+#define GLK_MODULE_GARGLKTEXT
+
+typedef struct glk_schannel_struct *schanid_t;
+
+/**
+ * Usurp C1 space for ligatures and smart typography glyphs
+ */
+enum Enc {
+ ENC_LIG_FI = 128,
+ ENC_LIG_FL = 129,
+ ENC_LSQUO = 130,
+ ENC_RSQUO = 131,
+ ENC_LDQUO = 132,
+ ENC_RDQUO = 133,
+ ENC_NDASH = 134,
+ ENC_MDASH = 135,
+ ENC_FLOWBREAK = 136
+};
+
+/**
+ * These are the Unicode versions
+ */
+enum UniChars {
+ UNI_LIG_FI = 0xFB01,
+ UNI_LIG_FL = 0xFB02,
+ UNI_LSQUO = 0x2018,
+ UNI_RSQUO = 0x2019,
+ UNI_LDQUO = 0x201c,
+ UNI_RDQUO = 0x201d,
+ UNI_NDASH = 0x2013,
+ UNI_MDASH = 0x2014
+};
+
+enum Gestalt {
+ gestalt_Version = 0,
+ gestalt_CharInput = 1,
+ gestalt_LineInput = 2,
+ gestalt_CharOutput = 3,
+ gestalt_CharOutput_CannotPrint = 0,
+ gestalt_CharOutput_ApproxPrint = 1,
+ gestalt_CharOutput_ExactPrint = 2,
+ gestalt_MouseInput = 4,
+ gestalt_Timer = 5,
+ gestalt_Graphics = 6,
+ gestalt_DrawImage = 7,
+ gestalt_Sound = 8,
+ gestalt_SoundVolume = 9,
+ gestalt_SoundNotify = 10,
+ gestalt_Hyperlinks = 11,
+ gestalt_HyperlinkInput = 12,
+ gestalt_SoundMusic = 13,
+ gestalt_GraphicsTransparency = 14,
+ gestalt_Unicode = 15,
+ gestalt_UnicodeNorm = 16,
+ gestalt_LineInputEcho = 17,
+ gestalt_LineTerminators = 18,
+ gestalt_LineTerminatorKey = 19,
+ gestalt_DateTime = 20,
+ gestalt_Sound2 = 21,
+ gestalt_GarglkText = 0x1100
+};
+
+enum Style {
+ style_Normal = 0,
+ style_Emphasized = 1,
+ style_Preformatted = 2,
+ style_Header = 3,
+ style_Subheader = 4,
+ style_Alert = 5,
+ style_Note = 6,
+ style_BlockQuote = 7,
+ style_Input = 8,
+ style_User1 = 9,
+ style_User2 = 10,
+ style_NUMSTYLES = 11
+};
+
+enum WinType {
+ wintype_AllTypes = 0,
+ wintype_Pair = 1,
+ wintype_Blank = 2,
+ wintype_TextBuffer = 3,
+ wintype_TextGrid = 4,
+ wintype_Graphics = 5
+};
+
+enum WinMethod {
+ winmethod_Left = 0x00,
+ winmethod_Right = 0x01,
+ winmethod_Above = 0x02,
+ winmethod_Below = 0x03,
+ winmethod_DirMask = 0x0f,
+
+ winmethod_Fixed = 0x10,
+ winmethod_Proportional = 0x20,
+ winmethod_DivisionMask = 0xf0,
+
+ winmethod_Border = 0x000,
+ winmethod_NoBorder = 0x100,
+ winmethod_BorderMask = 0x100
+};
+
+enum StyleHint {
+ stylehint_Indentation = 0,
+ stylehint_ParaIndentation = 1,
+ stylehint_Justification = 2,
+ stylehint_Size = 3,
+ stylehint_Weight = 4,
+ stylehint_Oblique = 5,
+ stylehint_Proportional = 6,
+ stylehint_TextColor = 7,
+ stylehint_BackColor = 8,
+ stylehint_ReverseColor = 9,
+ stylehint_NUMHINTS = 10,
+
+ stylehint_just_LeftFlush = 0,
+ stylehint_just_LeftRight = 1,
+ stylehint_just_Centered = 2,
+ stylehint_just_RightFlush = 3
+};
+
+/**
+ * These constants define the classes of opaque objects. It's a bit ugly to put
+ * them in this header file, since more classes may be added in the future.
+ * But if you find yourself stuck with an obsolete version of this file,
+ * adding new class definitions will be easy enough -- they will be numbered
+ * sequentially, and the numeric constants can be found in the Glk specification.
+ */
+enum giDisp {
+ gidisp_Class_Window = 0,
+ gidisp_Class_Stream = 1,
+ gidisp_Class_Fileref = 2,
+ gidisp_Class_Schannel = 3
+};
+
+enum zcolor {
+ zcolor_Transparent = (uint32) - 4,
+ zcolor_Cursor = (uint32) - 3,
+ zcolor_Current = (uint32) - 2,
+ zcolor_Default = (uint32) - 1
+};
+
+#ifdef GLK_MODULE_IMAGE
+
+enum ImageAlign {
+ imagealign_InlineUp = 1,
+ imagealign_InlineDown = 2,
+ imagealign_InlineCenter = 3,
+ imagealign_MarginLeft = 4,
+ imagealign_MarginRight = 5
+};
+
+#endif /* GLK_MODULE_IMAGE */
+
+union gidispatch_rock_t {
+ glui32 num;
+ void *ptr;
+};
+
+} // End of namespace Gargoyle
+
+#endif