RADLib
RADical C++ application framework
RADUi.h File Reference

Backend-neutral UI dispatch, frame scheduling, and RADCore-to-UI binding helpers. More...

#include <RADCore/RADCore.h>
#include <chrono>
#include <filesystem>
#include <functional>
#include <memory>
#include <mutex>
#include <set>
#include <stdexcept>
#include <string>
#include <thread>
#include <vector>
#include <RADUi/RADDesktopShell.h>
+ Include dependency graph for RADUi.h:

Go to the source code of this file.

Classes

class  RADUi::Binding
 RAII-style binding handle that keeps a bridge object alive until disconnected. More...
 
class  RADUi::Backend
 Abstract UI backend used to post tasks to a toolkit UI thread. More...
 
class  RADUi::FrameScheduler
 Coalesces UI updates so expensive redraws occur at a target frame rate. More...
 
struct  RADUi::DirectoryBrowserEntry
 One flattened row in a native-style expandable directory browser. More...
 
struct  RADUi::DirectoryBrowserOptions
 Options for DirectoryBrowserModel snapshots. More...
 
class  RADUi::DirectoryBrowserModel
 Backend-neutral expandable directory browser model. More...
 

Namespaces

 RADUi
 

Enumerations

enum class  RADUi::DirectoryBrowserEntryKind {
  RADUi::Parent , RADUi::Folder , RADUi::Project , RADUi::Midi ,
  RADUi::Audio , RADUi::Application , RADUi::File
}
 File type category for DirectoryBrowserEntry. More...
 

Functions

void RADUi::setBackend (std::shared_ptr< Backend > backend)
 Installs the process-wide UI backend used by RADUi helpers. More...
 
bool RADUi::hasBackend ()
 Returns true when a UI backend is installed. More...
 
Backend & RADUi::backend ()
 Returns the installed backend or throws when none is installed. More...
 
void RADUi::run ()
 Runs the installed backend's UI event loop. More...
 
void RADUi::quit ()
 Requests the installed backend to quit. More...
 
void RADUi::postToUi (std::function< void()> task)
 Posts task to the installed UI backend. More...
 
bool RADUi::isUiThread ()
 Returns true when the current thread is the installed UI backend thread. More...
 
template<typename F >
void RADUi::postToRad (RADCore::EventLoop &loop, F &&task)
 Posts task to a RADCore event loop from UI-side code. More...
 

Detailed Description

Backend-neutral UI dispatch, frame scheduling, and RADCore-to-UI binding helpers.