morph 0.1.0
Asynchronous bridge between GUI thread and business models
Loading...
Searching...
No Matches
backend.hpp File Reference

The backend contract: the retained widgets a mount drives, and the factory that makes them. More...

#include <cstddef>
#include <cstdint>
#include <functional>
#include <memory>
#include <optional>
#include <string>
#include <string_view>
#include <vector>
#include "../util/datetime.hpp"
#include "view.hpp"

Go to the source code of this file.

Classes

class  morph::ui::Widget
 A retained widget. A new widget is visible, enabled, content-sized, not draggable and not a drop target. More...
class  morph::ui::ContainerWidget
 A widget with children. A factory given this container appends the new widget as its last child. More...
class  morph::ui::FieldWidget
 A widget that shows a value: text, or an input. A new field is editable, not required, without errors and not stale. More...
class  morph::ui::TextWidget
 Read-only text. More...
class  morph::ui::ButtonWidget
 A push button. More...
class  morph::ui::TextInputWidget
 An editable text field. More...
class  morph::ui::CheckboxWidget
 A labelled check box. More...
class  morph::ui::SelectWidget
 A choice of one keyed option. More...
struct  morph::ui::MenuEntry
 One entry of a menu as a MenuWidget shows it. More...
class  morph::ui::MenuWidget
 A menu of commands, with nested submenus. More...
class  morph::ui::StackWidget
 Children stacked along one axis, fixed at creation. More...
class  morph::ui::GridWidget
 Children laid out row-major in columns. More...
class  morph::ui::SpacerWidget
 Empty space. More...
class  morph::ui::PanelWidget
 A titled frame around its children, optionally collapsible. More...
class  morph::ui::ScrollWidget
 A scrollable viewport, on the axis fixed at creation, that keeps the focused child visible. More...
class  morph::ui::SlotWidget
 A container that shows its children and nothing else: the host of a Switch's case and of a Tabs page. More...
class  morph::ui::TabsWidget
 A tab bar over page slots. More...
class  morph::ui::DialogWidget
 A modal overlay around its children, with a focus trap while open. A new dialog is closed. More...
class  morph::ui::BusyWidget
 A progress indicator. More...
class  morph::ui::TableWidget
 Keyed rows under column headers, with selection and activation by key. More...
class  morph::ui::DateTimeInputWidget
 A date or date-and-time field, in the mode and display zone fixed at creation. More...
class  morph::ui::SliderWidget
 An integer on a range. More...
class  morph::ui::FilePickerWidget
 A file path field, in the mode fixed at creation. More...
class  morph::ui::BannerWidget
 A message across the top of a region, with an optional action button and an optional dismissal. More...
class  morph::ui::ToastWidget
 A passive, transient message outside the normal flow: non-modal, dims nothing, and never takes keyboard focus. Auto-dismisses after a backend-chosen interval. More...
class  morph::ui::BadgeWidget
 A short label marking a state. More...
class  morph::ui::ProgressWidget
 A progress bar. More...
class  morph::ui::StepsWidget
 The steps of a process, each with its state. More...
class  morph::ui::KeyValueWidget
 Captions beside their values. More...
class  morph::ui::EmptyStateWidget
 What a region shows when it has nothing to show. More...
class  morph::ui::DrawerWidget
 A panel over the content that slides in from the side fixed at creation; it follows a dialog's rules. A new drawer is closed. More...
class  morph::ui::SplitterWidget
 Panes along the axis fixed at creation, with handles between them that the user drags. More...
class  morph::ui::CollapsibleWidget
 A titled section the user opens and closes. A new collapsible is open. More...
class  morph::ui::DropZoneWidget
 A region that takes files dropped from the operating system. More...
class  morph::ui::CustomWidget
 A component a renderer loaded in a custom node's place (spec 5 ยง10): a bundle's verified QML or a host component, given the props the document binds and handing back the events it raises. More...
struct  morph::ui::CustomRequest
 What IViewBackend::createCustom asks for. More...
class  morph::ui::IViewBackend
 Makes widgets. Each factory appends the new widget to parent, or makes a root when it is null, and never returns null, except createCustom, whose null shows a custom node's fallback. More...

Detailed Description

The backend contract: the retained widgets a mount drives, and the factory that makes them.

Specified in docs/spec/ui/backend_contract.md.

Definition in file backend.hpp.