Skip to content

Latest commit

 

History

History
185 lines (156 loc) · 16.3 KB

File metadata and controls

185 lines (156 loc) · 16.3 KB

AmigaOS.MUI.cpp.wrapper

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)


Requirements for build

MorphOS compilation

Linux cross compilation for AmigaOS

Linux cross compilation for MorphOS


Build

AmigaOS3 m68k (Linux cross compilation)

$ make cross_aos_m68k

*AmigaOS3 m68k rebuild, parallel on 4 threads/cores (Linux cross compilation) *

$ make clean ; make cross_aos_m68k -j 4

MorphOS PowerPC compilation

$ make mos_ppc

MorphOS rebuild

$ make clean ; make mos_ppc

MorphOS PowerPC (Linux cross compilation)

$ make cross_mos_ppc

MorphOS PowerPC rebuild, parallel on 4 threads/cores (Linux cross compilation)

$ make clean ; make cross_mos_ppc -j 4

build structure in wrappers folder

obj -> morphos  -> ppc  -> *.o
    -> amigaos  -> m68k -> *.o

lib -> morphos  -> ppc  -> libMUIcpp.a
    -> amigaos  -> m68k -> libMUIcpp.a

Examples

basic example

All code in one file, see: Main.cpp

basic example window

advanced example

Code extended and divided in many files (Components), see: advanced

advanced example window


Implementation status

Column names descriptions

  • Wrapper 3.8 = status of wrapper implementation for MUI 3.8 if appicable
  • Wrapper AMUI5 = status of wrapper implementation of extra attributes and methods for AmigaOS MUI 5.0 if applicable
  • Wrapper MMUI5 = status of wrapper implementation of extra attributes and methods for MorphOS MUI 5.0 if applicable
  • Builder 3.8 = status of builder implementation for MUI 3.8 if appicable
  • Builder AMUI5 = status of builder implementation of extra attributes for AmigaOS MUI 5.0 if applicable
  • Builder MMUI5 = status of builder implementation of extra attributes for MorphOS MUI 5.0 if applicable

Version tags

  • 3.8 = MUI 3.8
  • AMUI5 = AmigaOS MUI 5.0
  • MMUI5 = MorphOS MUI 5.0
  • n/a = class/element is not available in that version (always apply to MUI 3.8 in this project)
MUI class C++ class Wrapper 3.8 Wrapper AMUI5 Wrapper MMUI5 Builder 3.8 Builder AMUI5 Builder MMUI5 Source Notifier Dest Notifier
MUIC_Application MUI::Application Ready Ready Ready Ready Ready Ready - in progress
MUIC_Aboutmui MUI::Aboutmui Ready - - Ready - - - -
MUIC_Area MUI::Area Ready in progress in progress Ready in progress in progress in progress in progress
MUIC_Argstring MUI::Argstring n/a Ready Ready n/a Ready Ready - -
MUIC_Balance MUI::Balance Ready in progress in progress Ready in progress in progress not applicable not applicable
MUIC_Bitmap MUI::Bitmap Ready in progress in progress Ready in progress in progress - -
MUIC_Bodychunk MUI::Bodychunk Ready - - Ready - - - -
MUIC_Boopsi MUI::Coloradjust Ready - - Ready - - - -
MUIC_Coloradjust MUI::Coloradjust Ready - in progress Ready - in progress - -
MUIC_Colorfield MUI::Colorfield Ready - - Ready - - - -
MUIC_Cycle MUI::Cycle Ready - - Ready - - Ready Ready
MUIC_Datamap - - - - - - - - -
MUIC_Dataspace - - - - - - - - -
MUIC_Dirlist MUI::Dirlist Ready Ready in progress Ready Ready in progress - -
MUIC_Dtpic MUI::Dtpic Ready in progress in progress Ready in progress in progress - -
MUIC_Family MUI::Family Ready in progress in progress Ready in progress in progress in progress in progress
MUIC_Filepanel MUI::Filepanel n/a Ready Ready n/a Ready Ready - -
MUIC_Floattext MUI::Floattext Ready in progress in progress Ready in progress in progress - -
MUIC_Fontdisplay MUI::Fontdisplay n/a Ready Ready n/a Ready Ready - -
MUIC_Fontpanel MUI::Fontpanel n/a Ready Ready n/a Ready Ready - -
MUIC_Gadget MUI::Gadget Ready - - Ready - - not applicable not applicable
MUIC_Gauge MUI::Gauge Ready in progress in progress Ready in progress in progress - -
MUIC_Group MUI::Group Ready in progress in progress Ready in progress in progress in progress in progress
MUIC_Image MUI::Image Ready Ready Ready Ready Ready Ready - -
MUIC_Keyadjust MUI::Keyadjust n/a Ready Ready n/a Ready Ready - -
MUIC_Knob MUI::Knob Ready - - Ready - - - -
MUIC_Levelmeter MUI::Levelmeter Ready - - Ready - - - -
MUIC_List MUI::List Ready in progress in progress in progress in progress in progress in progress in progress
MUIC_Listview MUI::Listview in progress in progress in progress in progress in progress in progress - -
MUIC_Mccprefs MUI::Mccprefs n/a Ready Ready n/a Ready Ready - -
MUIC_Menu MUI::Menu Ready in progress in progress Ready in progress in progress in progress in progress
MUIC_Menuitem MUI::Menuitem Ready in progress in progress Ready in progress in progress in progress in progress
MUIC_Menustrip MUI::Menustrip Ready in progress in progress Ready in progress in progress - -
MUIC_Notify MUI::Notify Ready in progress in progress Ready in progress in progress in progress in progress
MUIC_Numericbutton MUI::Numericbutton Ready - - Ready - - - -
MUIC_Numeric MUI::Numeric Ready - - Ready - - - -
MUIC_Objectmap - - - - - - - - -
MUIC_Palette - - - - - - - - -
MUIC_Panel MUI::Panel n/a Ready Ready n/a Ready Ready not applicable not applicable
MUIC_Penadjust MUI::Penadjust Ready - - Ready - - - -
MUIC_Pendisplay MUI::Pendisplay Ready - Ready Ready - Ready in progress in progress
MUIC_Pixmap MUI::Popasl n/a Ready n/a n/a Ready n/a - -
MUIC_Popasl MUI::Popasl Ready - in progress Ready - in progress - -
MUIC_Poplist MUI::Poplist Ready - - Ready - - - -
MUIC_Popobject MUI::Popobject Ready - - Ready - - - -
MUIC_Poppen MUI::Poppen Ready - - Ready - - not applicable not applicable
MUIC_Popscreen MUI::Popscreen Ready - - Ready - - - -
MUIC_Popstring MUI::Popstring Ready - - Ready - - - -
MUIC_Process - - - - - - - - -
MUIC_Prop MUI::Prop Ready in progress in progress Ready in progress in progress Ready Ready
MUIC_Radio MUI::Radio Ready - - Ready - - - -
MUIC_Rectangle MUI::Rectangle Ready - - Ready - - not applicable -
MUIC_Register MUI::Register Ready Ready in progress Ready Ready in progress not applicable Ready
MUIC_Scale MUI::Scale Ready - - Ready - - - -
MUIC_Screenmodepanel MUI::Screenmodepanel n/a Ready Ready n/a Ready Ready - -
MUIC_Scrmodelist MUI::Scrmodelist Ready - - Ready - - - -
MUIC_Scrollbar MUI::Scrollbar Ready in progress - Ready in progress - - -
MUIC_Scrollgroup MUI::Scrollgroup Ready in progress in progress Ready in progress in progress - -
MUIC_Selectgroup MUI::Selectgroup n/a Ready Ready n/a Ready Ready - -
MUIC_Semaphore - - - - - - - - -
MUIC_Slave - - - - - - - - -
MUIC_Slider MUI::Slider Ready - - Ready - - - -
MUIC_String MUI::String Ready in progress in progress Ready in progress in progress in progress in progress
MUIC_Textdata - - - - - - - - -
MUIC_Text MUI::Text in progress in progress in progress in progress in progress in progress - -
MUIC_Title MUI::Title n/a Ready Ready n/a Ready Ready - -
MUIC_Virtgroup MUI::Virtgroup Ready Ready Ready Ready Ready Ready - -
MUIC_Volumelist MUI::Volumelist Ready - - Ready Ready Ready - -
MUIC_Window MUI::Window Ready Ready Ready Ready Ready Ready in progress in progress
... ... - - - - - - - -
MCC class C++ class Wrapper Builder Source Notifier Dest Notifier
MUIC_Busy MUI::Busy Ready Ready - -
... ... - - - -

Additional info

Method comments in Wrapper classes are mostly from MUI documentation.