AmigaOS/MorphOS MUI C++ Wrapper Classes is a modern C++17 library that provides wrapper classes for the Magic User Interface (MUI) on AmigaOS and MorphOS. These classes simplify interaction with the MUI API, enabling developers to use C++ idioms and abstractions to build robust and maintainable user interfaces. The library encapsulates MUI elements within object-oriented classes, improving code readability and reducing the need for low-level MUI calls, thus allowing developers to focus on higher-level design and functionality.
Not all MUI classes/attributes/methods are implemented! (work in progress)
- AmigaOS.cpp.wrapper (https://github.com/tdolphin-org/AmigaOS.cpp.wrapper) located in path ../AmigaOS.cpp.wrapper
- MorphOS SDK3.18+
- TextEditor developer files
- NList developer files
- AmigaOS.cpp.wrapper (https://github.com/tdolphin-org/AmigaOS.cpp.wrapper) located in path ../AmigaOS.cpp.wrapper
- bebbo/amiga-gcc
- AmigaOS MUI5 developer files or AmigaOS MUI3.8 developer files
- TextEditor developer files
- NList developer files
Linux cross compilation for AmigaOS3 m68k
$ make aos_m68k
Linux rebuild (parallel on 4 threads/cores) for AmigaOS3 m68k
$ make clean ; make aos_m68k -j 4
MorphOS PowerPC compilation
$ make mos_ppc
MorphOS rebuild
$ make clean ; make mos_ppc
obj -> morphos -> ppc -> *.o
-> amigaos -> m68k -> *.o
lib -> morphos -> ppc -> libMUIcpp.a
-> amigaos -> m68k -> libMUIcpp.a
basic example
All code in one file, see: Main.cpp
advanced example
Code extended and divided in many files (Components), see: advanced
MUI class | C++ class | Wrapper | Builder | Source Notifier | Dest Notifier |
---|---|---|---|---|---|
MUIC_Application | MUI::Application | in progress | in progress | - | in progress |
MUIC_Area | MUI::Area | in progress | in progress | in progress | in progress |
MUIC_Argstring | - | - | - | - | - |
MUIC_Balance | MUI::Balance | Ready | Ready | not applicable | not applicable |
MUIC_Bitmap | - | - | - | - | - |
MUIC_Bodychunk | - | - | - | - | - |
MUIC_Boopsi | - | - | - | - | - |
MUIC_Coloradjust | MUI::Coloradjust | Ready | Ready | - | - |
MUIC_Colorfield | MUI::Colorfield | Ready | Ready | - | - |
MUIC_Cycle | MUI::Cycle | Ready | Ready | Ready | Ready |
MUIC_Datamap | - | - | - | - | - |
MUIC_Dataspace | - | - | - | - | - |
MUIC_Dirlist | - | - | - | - | - |
MUIC_Dtpic | MUI::Dtpict | Ready | Ready | - | - |
MUIC_Family | MUI::Family | in progress | in progress | in progress | in progress |
MUIC_Filepanel | - | - | - | - | - |
MUIC_Floattext | MUI::Floattext | in progress | in progress | - | - |
MUIC_Fontdisplay | - | - | - | - | - |
MUIC_Fontpanel | MUI::Fontpanel | Ready | Ready | - | - |
MUIC_Gadget | MUI::Gadget | Ready | Ready | not applicable | not applicable |
MUIC_Gauge | MUI::Gauge | Ready | Ready | - | - |
MUIC_Group | MUI::Group | in progress | in progress | in progress | in progress |
MUIC_Image | MUI::Image | in progress | in progress | - | - |
MUIC_Keyadjust | - | - | - | - | - |
MUIC_Knob | - | - | - | - | - |
MUIC_Levelmeter | - | - | - | - | - |
MUIC_List | MUI::List | in progress | in progress | in progress | in progress |
MUIC_Listview | MUI::Listview | in progress | in progress | - | - |
MUIC_Mccprefs | - | - | - | - | - |
MUIC_Menu | MUI::Menu | Ready | Ready | in progress | in progress |
MUIC_Menuitem | MUI::Menuitem | in progress | Ready | in progress | in progress |
MUIC_Menustrip | MUI::Menustrip | in progress | Ready | - | - |
MUIC_Notify | MUI::Notify | in progress | Ready | in progress | in progress |
MUIC_Numericbutton | - | - | - | - | - |
MUIC_Numeric | MUI::Numeric | Ready | Ready | - | - |
MUIC_Objectmap | - | - | - | - | - |
MUIC_Palette | - | - | - | - | - |
MUIC_Panel | MUI::Panel | Ready | Ready | not applicable | not applicable |
MUIC_Penadjust | - | - | - | - | - |
MUIC_Pendisplay | MUI::Pendisplay | Ready | Ready | in progress | in progress |
MUIC_Pixmap | - | - | - | - | - |
MUIC_Popasl | MUI::Popasl | Ready | Ready | - | - |
MUIC_Poplist | - | - | - | - | - |
MUIC_Popobject | - | - | - | - | - |
MUIC_Poppen | MUI::Poppen | Ready | Ready | not applicable | not applicable |
MUIC_Popscreen | - | - | - | - | - |
MUIC_Popstring | MUI::Popstring | Ready | Ready | - | - |
MUIC_Process | - | - | - | - | - |
MUIC_Prop | MUI::Prop | Ready | Ready | Ready | Ready |
MUIC_Radio | MUI::Radio | Ready | Ready | - | - |
MUIC_Rectangle | MUI::Rectangle | Ready | Ready | not applicable | - |
MUIC_Register | MUI::Register | Ready | Ready | not applicable | Ready |
MUIC_Scale | MUI::Scale | Ready | Ready | - | - |
MUIC_Screenmodepanel | - | - | - | - | - |
MUIC_Scrmodelist | - | - | - | - | - |
MUIC_Scrollbar | MUI::Scrollbar | Ready | Ready | - | - |
MUIC_Scrollgroup | MUI::Scrollgroup | in progress | Ready | - | - |
MUIC_Selectgroup | - | - | - | - | - |
MUIC_Semaphore | - | - | - | - | - |
MUIC_Slave | - | - | - | - | - |
MUIC_Slider | MUI::Slider | Ready | Ready | - | - |
MUIC_String | MUI::String | in progress | in progress | in progress | in progress |
MUIC_Textdata | - | - | - | - | - |
MUIC_Text | MUI::Text | in progress | in progress | - | - |
MUIC_Title | MUI::Title | in progress | Ready | - | - |
MUIC_Virtgroup | MUI::Virtgroup | in progress | Ready | - | - |
MUIC_Volumelist | - | - | - | - | - |
MUIC_Window | MUI::Window | in progress | in progress | in progress | in progress |
... | ... | - | - | - | - |
MCC class | C++ class | Wrapper | Builder | Source Notifier | Dest Notifier |
---|---|---|---|---|---|
MUIC_Busy | MUI::Busy | Ready | Ready | - | - |
... | ... | - | - | - | - |
Method comments in Wrapper classes are mostly from MUI documentation.