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.
- Source: extensions/Emily Short/Glulx Text Effects-v6.i7xd at 11.0 · i7/extensions · GitHub
- But as it’s now in the directory format you’ll probably just want to download the zip: https://github.com/i7/extensions/archive/refs/heads/11.0.zip
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.
- Source: extensions/Jon Ingold/Flexible Windows-v16.i7xd at 11.0 · i7/extensions · GitHub
- But as it’s now in the directory format you’ll probably just want to download the zip: https://github.com/i7/extensions/archive/refs/heads/11.0.zip
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!