Icy Board Menu System
PCBoard had a built in menu system - there were several hooks where a .mnu file could be used instead of a display file or .ppe.
IcyBoard will support custom menus as well the .mnu files get translated to icyboard menu files and there is an editor "mkicbmnu" to edit them.
MKICBMNU |
The original one:
MKPCBMNU |
The general idea a menu system like RemoteAccess/MysticBBS. The original menus supported hot keys and commands. IcyBoard menus will add lightbars on top of these.
The commands are more complex than the original PCBoard commands, therefore the setup is a bit different. And has two parts - a command list:
Command list |
And a setup screen where the command can be set up:
Setup screen |
For lightbars the commands need to display a selected/non selected text. For the other types display & highlight text can be empty. Each command has an action list attached these actions can run on selection or activation.
This command has 3 actions - gotoxy & print text which is run on selection and prints an information text about this item and the "WhoIsOnline" action which is run on activation.
Lightbar commands can be activated with "return" or the hotkey (W in that case). For hotkey & lightbar menusu the keyword should be just one char or the command can't be activated with a keyboard hotkey.
Menus contradict the PCBoard spirit a bit but give the flexibility to make a more "modern" BBS. I probably wouldn't have implemented a menu system (the idea of IcyBoard is to utilize the PPE ecosystem) but pcboard covered that and therefore it's a core feature.
The lightbar menu system in action inside icy board:
Note that the selection behavior currently isn't configurable. IcyBoard handles the cursor keys & selection behavior.
Comments/thoughts? Is there something I should consider/look at?
Very good stuff man. You will want to make sure to implement FIRSTCMD, EVERYTIME, ONLYONCE, etc. too. This allows the menu system to be used for modding without coding any PPL stuff.
ReplyDelete3. When editing menus, the following can be used in the "hot key"
field of the menu command:
FIRSTCMD : Automatically run the command each time the menu is
loaded.
EVERY : Automatically run the command each time the menu is
redrawn (before its actually redrawn)
AFTER : Automatically run the command each time the menu is
redrawn, just before the prompt is displayed.
From here: https://github.com/KALRONG/mysticbbs/blob/f6e9b4a92a245a662b6e106bd332addf15ead3d3/mystic/docs/mystic.txt#L105
This is an interesting feature. I'll look at how I can provide that functionality. In the hot key field it's hard to find that - maybe I'll take a look at mystic what's their approach is. Thanks
ReplyDeleteBut yes the idea is that for menus PPL isn't required. If a feature like that is provided by IcyBoard it should be a good implementation. (that the commands are ~1:1 the old PCB commands is by design. I'll try to provide alternatives for as many as possible over the time).