Richard and I were having a discussion about the benefits of IUP to BBC4W users. Here is a BBC4W native version of the BUTTON.BBC example.
The native version is theming the button and takes less code to produce. It only detected the left mouse button and the click event as a whole but 95% of the time that is all you need.
UpdateI spent some time this evening going over the BBC BASIC for Windows documentation on Windows programming. I try to avoid any language that depends on translating and passing Windows messages as a means of communicating with the GUI. The Windows message system is the ugliest thing I've ever seen and mastering that mess has never been a goal of mine.
I think direct positioning is a legacy technique and containerized self resizing controls are the way things are now done. The message loop handler has to be a bit smarter than a REPEAT/UNTIL waiting for something to generate FALSE state. For the quick one screen utility/game the native BBC4W GUI interface would more than likely work out fine. I wouldn't try to write anything for my clients using that direction. (non-maintainable)
I think BBC BASIC for Windows is a great interactive interpreter and you should be proud of your efforts maturing it to this point. The built-in assembler sets it above the rest with that feature alone. Graphics are another area you excel in with the BASIC.
One of the features of
IUP I really like is the interactive GUI layout tool as an API call. Changes made via the dialog layout tool / property sheet are immediately reflected in the running application. Here is an example of our BUTTON.BBC demo using the
IupLayoutDialog() function.






Notice how the background of the dialog was changed via the property sheet and the dialog layout showing the expanded window size. I could add / remove controls from the layout tool and generate a C, LED or Lua source code with the changes.