Updated Glulx Text Effects, Flexible Windows, and hyperlink framework for Inform-git

If anyone out there is using a version of Inform that they built from the Git source themselves, then I’m here to announce that updates for Glulx Text Effects, Flexible Windows, and a new hyperlinks framework are ready for testing!

These are significant updates, and now depend on the “Glk Foundations”. What started as a proposal to incorporate the base Glk extensions has become a built-in layer of Glk support that is significantly more user friendly than anything we’ve had before. Glk windows and events now have built in representations. Take a look at the Glulx and Glk section of the Basic Inform extension to see what is supported now.

Glulx Text Effects

GTE has had minor changes, mostly just being updated to be designed to use the new built-in Glk window kind.

Flexible Windows

FW has had more substantial changes. Although a Glk window kind is built in now you still need FW in order to create additional windows. Pretty much everything from the old version is still possible, and there are now also some dynamic window split methods, and phrases for measuring the screen in pixels.

Hyperlinks framework

I’ve finally implemented my old idea for tagged hyperlinks. In short, hyperlinks will now contain a tag to identify what type of hyperlink they are so that the right hyperlink handling rule will be used. An explicit registry is no longer needed however, simply defining a new hyperlink tag is enough. For example, this is the entire implementation of the keypress hyperlink (clicking a hyperlink will submit a keypress instead):

Keypress hyperlink is a hyperlink tag.

To say link (C - unicode character):
	(- MakeTaggedHyperlink((+ keypress hyperlink +), {-by-reference:C}, UNICODE_CHARACTER_TY); -).

Hyperlink handling rule for a keypress hyperlink (this is the keypress hyperlink rule):
	replace current event with a character event with (hyperlink value as a unicode character) in (window of the current glk event initialiser);

This hyperlink framework is being evaluated by Graham, but the pull request has not been merged yet. So if you want to use it you’ll have to use my Git branch instead of the master branch: GitHub - curiousdannii/inform at hyperlinks

All of these are broadly stable and ready for use, but no doubt there will be some bugs. If you find any bugs, or have any questions or additional feature requests, please let me know!

6 Likes

Hmm.. I’ve just realised that FW and the hyperlinks framework won’t really work together at present. I should probably turn hyperlink into an extension (with optional compatibility with FW), and then when the pull request is merged I can update FW.