For some time now I've been trying to figure out the best and easiest way to build an MUI user interface. Each modern programming IDE seems to have its own methods. Most notably Visual Studio with its "Designer" tools in C Shart and the MFC Tools for C++ user interface design. Even Hollywood has MUI Royale for GUI design.
So I got an idea from how MUI Royale stores an MUI user interface as HTML code and how a few plugins exist for extensions to Visual Studio. So why not use Designer in C Sharp to fully design a user interface then save the project files then export them ( copy them or use SMB ) to AROS. On AROS open a small application to read the file with the designer code and translate it to MUI code that you can save once complete. Nice!
What do you think?
Edited by miker1264 on 20-10-2023 16:26, 1 year ago
I think anything that we can do to bring new things to AROS is a fantastic idea but this is beyond fantastic. Can you create a proof of concept and test it?
For inspiration you might want to have a look at MUI GUI editor (also named MUIClass ide) from alb42 ( https://blog.alb4...ui-editor/ ) the sourcecode can be found here: https://github.co...aster/ide. Ofc all we do is Pascal, not c so you're warned
Edited by magorium on 21-10-2023 04:09, 1 year ago
I remember there is also a MUI code generator called ChocolateCastle (https://github.com/kas1e/mui_ports_to_os4/tree/master/ChocolateCastle). Maybe you can take some of the generation code from it.
Ah, I forgot about chocolat. Thank you for reminding us deadwood.
@miker:
The gist of it all, imho, is the part where it is possible to store "the design" which would then allow you to load it again using code and auto-(re)create the GUI.
As long as there is enough information available in the 'storage' it is possible to (re-)create source-code as well as use runtime-code in order to (re-)create the GUI.
That's the concept. Three possible actions for the MUI Rebuilder ( we already built the GUI once) are Import, Export & Rebuild. I was thinking of using XML code as an intermediate storage format.
So Import would open either Visual Studio Designer Files (text files) or it opens a saved XML file (text file) then Rebuild will generate the MUI/Zune user interface code that can be compiled for a new program to use.
It isn't intended to be a complete IDE just a GUI translation program. Maybe the MUI Re-Builder will have a simple GUI of it's own with a text output window on top and three buttons on it.
Other Operating Systems have complex IDE's such as Visual Studio that can quickly & easily produce complex user interface designs. But AROS (& Amiga) don't have all those fancy toys. This might be a way to benefit from that by translating the user interface code for AROS.
One main issue is the coordinates for positioning gadgets. VS Designer uses absolute x, y coordinates from 0, 0 at the top left corner of the form (user interface). But MUI uses a proportional layout instead but I believe MUI gadgets can have actual location coordinates.
I wonder also if MUI/Zune will allow us to change the artwork (theme) for radio buttons & checkboxes for example or background color ?
@miker1264 - magorium
I was thinking of using XML code as an intermediate storage format.
To my knowledge both MUI royale and rapagui uses xml to describe the GUI. afaik neither of them let you visually design a GUI. For MUI royale see online manual
Quote
Other Operating Systems have complex IDE's such as Visual Studio that can quickly & easily produce complex user interface designs. But AROS (& Amiga) don't have all those fancy toys. This might be a way to benefit from that by translating the user interface code for AROS.
I am aware. Lazarus user myself meaning that I'm familiar with the concept
Quote
One main issue is the coordinates for positioning gadgets. VS Designer uses absolute x, y coordinates from 0, 0 at the top left corner of the form (user interface). But MUI uses a proportional layout instead but I believe MUI gadgets can have actual location coordinates.
Indeed. MUI can be persuaded but in basics you are fighting against MUI natural habits. It is one of the problems why it is so difficult to 'port' Lazarus widgets to MUI.
Quote
I wonder also if MUI/Zune will allow us to change the artwork (theme) for radio buttons & checkboxes for example or background color ?
It allows you to do whatever you please as long as you know what you are doing. Usually most global settings are that, global and the MUI/Zune preferences allows you to change the appearance/styles of MUI gadgets.
Edited by magorium on 22-10-2023 01:47, 1 year ago
ALL
Thanks for the information and helpful hints. My concept for the MUI Re-Builder is to have two main functionalities - import GUI designer files to be saved as XML and to build MUI source code directly from XML files.
I'd like to use the same XML storage format as MUI Royale so that the files can be used by MUI Re-Builder or MUI Royale.
The program itself will have a listview on top that is linked in a settings file or icon tool type to the XML directory. The directory can be shared with MUI Royale. The XML files in the directory will appear in the listview. There will be four buttons on the bottom - Preview, Import, Export, Rebuild. Select an XML file in the listview to Rebuild.
The other functionality of the program will be to Import designer source files such as from Visual Studio to convert and save as MUI XML files. The program will parse the source file looking for keywords, gathering information for each gadget. Then internally it will decide how to build an MUI Tree Structure before saving an XML output.
Optionally before rebuilding an MUI user interface choose Preview to show a png of the finished user interface. The png files are kept in the XML directory but they don't show in a listview. They have the same name as the selected XML. Maybe we can also choose the output language.
Edited by miker1264 on 22-10-2023 07:32, 1 year ago
There is sort of spreadsheet interface to position the gui items and popup form to fill the properties of each item. Once ready click on a button and the program generate the XML and the hws script to handle the gui. You can also test it immediately .
I have a new version that i will release next month
That makes sense that it would use a spreadsheet or text file to write the XML file. I will try to make some type of plugin method using gadget equivalents to read Designer source file and XML.
How would you test it immediately? In Hollywood using the XML file?
I haven't found a method to compile and run the MUI source file other than to use Hollywood with MUI Royale to test it (XML).
I was reading up on easyrapa on Hollywood Forum. Sounds like a useful program. Some of my own program have really messy source code especially the earlier ones when I had just started with c programming. Now I try to clean as I go to avoid all that. Even with comments I sometimes get lost in my own source code.
I'm sure this very ambitious project with the MUI Re-Builder will also have lots of trial and error with lots of code commented out during testing. We'll see how messy it gets. 🙂
Edited by miker1264 on 22-10-2023 13:38, 1 year ago
When i will release nexrversion, that is largely improved, it is my intention to open the source because i hold the project since some time and my be it can be useful to someone else.
ATM I m in vacation
You can view all discussion threads in this forum. You cannot start a new discussion thread in this forum. You cannot reply in this discussion thread. You cannot start on a poll in this forum. You cannot upload attachments in this forum. You cannot download attachments in this forum.