RADLib
RADical C++ application framework

RADUi provides backend-neutral UI dispatching, reusable UI state models, Slint backend integration, plotting, terminal helpers, and an application-shell layer for desktop and embedded tools.

Application Shell

RADAppKit.h adds models for IDE-style applications:

  • AppShellModel combines menus, toolbars, status bars, docks, documents, commands, and notifications.
  • DockLayoutModel stores visible/selected panels and serializes layouts.
  • DocumentWorkspaceModel tracks open tabs, active tab, and modified state.
  • CommandPaletteModel filters and triggers commands.
  • NotificationModel stores toasts/status messages and action ids.
  • VirtualTableModel, FileBrowserModel, LogViewModel, SearchBoxModel, and ProgressModel cover common tool surfaces.

Theme System

RADTheme.h adds Theme, ThemeManager, and JSON persistence for color, spacing, typography, radius, toolbar, status bar, and icon-name tokens.

Use RADUi::Slint::bindTheme() to push theme changes into generated Slint components while keeping the C++ state backend-neutral.

Slint Backend

Slint remains the first concrete backend. Slint-specific helpers live under RADUi::Slint and should adapt generated components to backend-neutral RADUi models rather than storing application state directly in .slint files.

Examples

The beta SDK includes developer-tool examples:

  • RADStudioExample: IDE-style app shell with project tree, editor, terminal, browser/docs pane, output, commands, notifications, and theme switching.
  • RADUiSlintTextEditor, RADUiSlintTerminal, and RADWebBrowserExample: standalone developer tools.
  • RADEmbeddedDashboard, RADSerialMonitorUi, RADNetworkMonitorUi, and RADLogViewerUi: embedded/device and diagnostics surfaces.

OpenGL plot acceleration is available as an experimental mode; software rendering remains the compatibility path.