Maguma Workbench incorporates modular plug-in architecture keeping the core product small and fast, while providing maximum flexibility and features. Flexibilty for end-users to make Maguma Workbench do what they want it to do is part of the thinking behind the cross-platform architecture.
Beyond an IDE
Maguma Workbench is built on the philosophy that a craftmans’ workbench is the base on which all activities are accomplished, hence the name. A workbench is flexible, expandable, and easy to modify for whatever task is at hand. Maguma Workbench is designed to function just this way.
Maguma Workbench was developed in C++ to allow for flexibility across platforms. The intention was to create a product that could be developed similtaneously on more than one platform, namely Linux, Windows and Mac OS X. Using C++ was a preferred alternative to Java, which is considered by many to be sluggish in execution. The core of Maguma Workbench uses only a small footprint on system resources.
Maguma Workbench uses wxWidgets (formerly wxWindows) for its frontend (interface handling). wxWidgets applies an XML layer that is used to display the menu bars and windows in the product. This approach allows flexibility in custom setups and manipulation of windows and menus, providing end-users the freedom to shape the product to their liking. wxWidgets also complies to cross-platform needs between the different operating systems, complimenting the C++ core.
Maguma Workbench was built to be expandable through modules (plugins) that increase the functionality of the product. This expansion comes from building through C++ or creation of modules using the Phyton scripting engine.
The Workbench SDK allows anyone to extend the functionality of the Workbench platform by exposing the interfaces to external modules. Using a C++ compiler (future extensions will be able to use Python) you can compile a drop-in module that will be loaded at runtime by the Core and offer users whatever your mind can dream up.
Compiling either a DLL for Windows or a Shared Library for Linux the SDK will give you the power to access the features already available to Workbench user. Whether it is creating a module that will launch an external utility from the menu or it might be something that creates HTML tables quickly from a database definition. Access to all the core functionality of the editor object, the remote server configuration, the file extension definitions or just about anything.
Even the framelayout engine has an accessible interface where you can create GUIs using wxWidgets and then register them with the main frame so that the user has control over the new tool.