What is XUI?
XUI started as a collection of user interface (UI) controls that I needed for my own projects but has grown over the years into a comprehensive suite of additional classes, modules and extensions that simplify and speed up Xojo app development.
XUI contains many awesome UI controls including the insanely powerful XUICodeEditor and beautiful everyday components such as tab bars, source lists and tag canvases.
In addition to UI controls XUI provides methods for working with Markdown, handling in-app notifications, handling undo, parsing TOML and a robust string and maths library.
XUI is 100% API 2.0 compliant, is actively developed and suggestions for new controls are always welcome.
XUI is sold as unencrypted Xojo source code that is extensively documented and has been battle-tested in multiple projects over several years. It's so well documented in fact that this entire documentation website is built from the source code comments using a custom command line tool that uses several of the XUI components itself!
Use the sidebar to peruse the various components included in the framework.
XUI is always developed on a Mac using the latest version of the Xojo IDE. It's designed to be cross-platform and widely compatible, avoiding the use of declares and only ever using 100% Xojo code.
The only non-Xojo requirement to use XUI in a project is that the open source
DesktopTextInputCanvas plugin is required
to be installed. This is included in the XUI framework download. You can read more about this plugin, why it is required and how to install it here.
Since XUI is designed with Xojo's best practices in mind it is 100% API 2.0 code. This means it relies on the new API 2.0 UI controls
provided by the Xojo IDE (such as
DesktopWindow) to function correctly. Therefore, XUI may not be compatible with all API 1.0
projects out of the box. That does not mean that it won't work in older projects only that it may require a little bit of work on your part. If you put a XUI control on a Xojo
DesktopWindow it should work fine. If you need to put a XUI control on an old API 1.0
Window you will need to manually change the
Super of controls using a
Desktop-prefixed control (such as
XUISourceList which uses
DesktopContainer) to the API 1.0 equivalent control (
Container in this instance) and then rename several events on the control (such as
Opening back to
Open). Finally, controls that inherit from
DesktopTextInputCanvas (such as
XUICodeEditor) would need their
Super changing to
TextInputCanvas and you would need to download this open source plugin direct from Einhugur's website.