#include <stddef.h> /* Surprisingly, the only symbol needed is NULL */
+#include <config.h>
#include "glk.h"
/* Version of the Glk specification implemented by this library */
/* All characters are printed as one character, in any case */
if(arr && arrlen > 0)
*arr = 1;
- /* Cannot print control chars except \n, or chars > 255 */
- if( (val < 32 && val != 10) || (val >= 127 && val <= 159) || (val > 255) )
+ /* Cannot print control chars except \n */
+ if( (val < 32 && val != 10) || (val >= 127 && val <= 159) )
return gestalt_CharOutput_CannotPrint;
- /* Can print all other Latin-1 characters */
+ /* Can print all other characters */
return gestalt_CharOutput_ExactPrint;
/* Unicode capabilities present */
/* Timer capabilities present */
case gestalt_Timer:
return 1;
-
- /* Unsupported capabilities */
+
+ /* Hyperlink capabilities present */
+ case gestalt_Hyperlinks:
+ return 1;
+
+ /* Hyperlinks supported on textbuffers and textgrids */
+ case gestalt_HyperlinkInput:
+ return val == wintype_TextBuffer || val == wintype_TextGrid;
+
+ /* Mouse support present in textgrids */
case gestalt_MouseInput:
+ return val == wintype_TextGrid;
+
case gestalt_Graphics:
+ return 1;
+
case gestalt_DrawImage:
+ return val == wintype_Graphics || val == wintype_TextBuffer;
+
+ case gestalt_GraphicsTransparency:
+ return 1;
+
+ /* Capabilities supported if compiled with GStreamer */
case gestalt_Sound:
case gestalt_SoundVolume:
case gestalt_SoundNotify:
- case gestalt_Hyperlinks:
- case gestalt_HyperlinkInput:
+#ifdef GSTREAMER_SOUND
+ return 1;
+#else
+ return 0;
+#endif
+
+ /* Unsupported capabilities */
case gestalt_SoundMusic:
- case gestalt_GraphicsTransparency:
/* Selector not supported */
default:
return 0;