morph 0.1.0
Asynchronous bridge between GUI thread and business models
Loading...
Searching...
No Matches
morph::ui::Widget Class Referenceabstract

A retained widget. A new widget is visible, enabled, content-sized, not draggable and not a drop target. More...

#include <backend.hpp>

Inheritance diagram for morph::ui::Widget:
morph::ui::BadgeWidget morph::ui::BannerWidget morph::ui::BusyWidget morph::ui::ButtonWidget morph::ui::ContainerWidget morph::ui::CustomWidget morph::ui::EmptyStateWidget morph::ui::FieldWidget morph::ui::KeyValueWidget morph::ui::MenuWidget morph::ui::ProgressWidget morph::ui::SpacerWidget morph::ui::StepsWidget morph::ui::ToastWidget

Public Member Functions

 Widget (Widget const &)=delete
Widget & operator= (Widget const &)=delete
 Widget (Widget &&)=delete
Widget & operator= (Widget &&)=delete
virtual void setVisible (bool visible)=0
 Shows or hides the widget and everything inside it.
virtual void setEnabled (bool enabled)=0
 Enables or disables input on the widget and everything inside it.
virtual void setLayout (LayoutHints const &hints)=0
 Sets the size request.
virtual void setDragKey (std::optional< Key > const &key)=0
 Makes the widget draggable, carrying key, or not draggable.
virtual void setDropHandler (std::function< bool(Key const &)> accepts, std::function< void(Key)> onDrop)=0
 Makes the widget a drop target.
virtual void setAccessibleName (std::string_view name)=0
 Sets the name assistive technology reads for the widget.
virtual void setAccessibleRole (std::string_view role)=0
 Sets the role assistive technology announces for the widget.
virtual void setTestId (std::string_view testId)=0
 Sets the stable identifier an automated test finds the widget by.
virtual void setTooltip (std::string_view text)=0
 Sets the text shown while the pointer rests on the widget.
virtual void setSurface (std::string_view surface)=0
 Styles the widget and everything inside it with a named token set of the theme.
virtual void setKeys (std::vector< std::string > const &chords, std::function< void(std::string)> onChord)=0
 Declares the keyboard chords the widget handles while focus is inside it.
virtual void focus ()=0
 Moves keyboard focus to the widget.
virtual void setOnHover (std::function< void()> onHover)
 Calls onHover each time the pointer comes to rest over the widget. A backend without a pointer, or one that does not report hovering, keeps the default, which never calls it: hovering is a hint, such as a prefetch, never something a widget relies on.

Detailed Description

A retained widget. A new widget is visible, enabled, content-sized, not draggable and not a drop target.

Its destructor detaches it from its parent and frees its native resources; no handler of the widget runs after the destructor returns. A handler may destroy its own widget: the backend keeps the handler alive until that call returns, for example by calling a copy. A backend may assume a handler, a drop's accepts predicate included, never throws: the mount catches and reports what one throws. Every setter takes UTF-8.

A setter called with the value the widget already shows changes nothing: a text input keeps its cursor, its selection and an input method's composition. Input widgets are controlled: a user's action changes what the widget shows, as the toolkit does, and reports the request through the handler; the mount then shows what the application's slot says, in a turn posted after the request's flush, so a refused request snaps back.

Definition at line 34 of file backend.hpp.

Member Function Documentation

◆ setVisible()

virtual void morph::ui::Widget::setVisible ( bool visible)
pure virtual

Shows or hides the widget and everything inside it.

Parameters
visibleWhether it is shown.

Implemented in morph::ui::testing::detail::FakeLeaf< BadgeWidget >, morph::ui::testing::detail::FakeLeaf< BannerWidget >, morph::ui::testing::detail::FakeLeaf< BusyWidget >, morph::ui::testing::detail::FakeLeaf< ButtonWidget >, morph::ui::testing::detail::FakeLeaf< CheckboxWidget >, morph::ui::testing::detail::FakeLeaf< CollapsibleWidget >, morph::ui::testing::detail::FakeLeaf< CustomWidget >, morph::ui::testing::detail::FakeLeaf< DateTimeInputWidget >, morph::ui::testing::detail::FakeLeaf< DialogWidget >, morph::ui::testing::detail::FakeLeaf< DrawerWidget >, morph::ui::testing::detail::FakeLeaf< DropZoneWidget >, morph::ui::testing::detail::FakeLeaf< EmptyStateWidget >, morph::ui::testing::detail::FakeLeaf< FilePickerWidget >, morph::ui::testing::detail::FakeLeaf< GridWidget >, morph::ui::testing::detail::FakeLeaf< KeyValueWidget >, morph::ui::testing::detail::FakeLeaf< MenuWidget >, morph::ui::testing::detail::FakeLeaf< morph::ui::SlotWidget >, morph::ui::testing::detail::FakeLeaf< PanelWidget >, morph::ui::testing::detail::FakeLeaf< ProgressWidget >, morph::ui::testing::detail::FakeLeaf< SelectWidget >, morph::ui::testing::detail::FakeLeaf< SliderWidget >, morph::ui::testing::detail::FakeLeaf< SplitterWidget >, morph::ui::testing::detail::FakeLeaf< StackWidget >, morph::ui::testing::detail::FakeLeaf< StepsWidget >, morph::ui::testing::detail::FakeLeaf< TableWidget >, morph::ui::testing::detail::FakeLeaf< TabsWidget >, morph::ui::testing::detail::FakeLeaf< TextInputWidget >, morph::ui::testing::detail::FakeLeaf< TextWidget >, and morph::ui::testing::detail::FakeLeaf< ToastWidget >.

◆ setEnabled()

virtual void morph::ui::Widget::setEnabled ( bool enabled)
pure virtual

Enables or disables input on the widget and everything inside it.

Parameters
enabledWhether it accepts input.

Implemented in morph::ui::testing::detail::FakeLeaf< BadgeWidget >, morph::ui::testing::detail::FakeLeaf< BannerWidget >, morph::ui::testing::detail::FakeLeaf< BusyWidget >, morph::ui::testing::detail::FakeLeaf< ButtonWidget >, morph::ui::testing::detail::FakeLeaf< CheckboxWidget >, morph::ui::testing::detail::FakeLeaf< CollapsibleWidget >, morph::ui::testing::detail::FakeLeaf< CustomWidget >, morph::ui::testing::detail::FakeLeaf< DateTimeInputWidget >, morph::ui::testing::detail::FakeLeaf< DialogWidget >, morph::ui::testing::detail::FakeLeaf< DrawerWidget >, morph::ui::testing::detail::FakeLeaf< DropZoneWidget >, morph::ui::testing::detail::FakeLeaf< EmptyStateWidget >, morph::ui::testing::detail::FakeLeaf< FilePickerWidget >, morph::ui::testing::detail::FakeLeaf< GridWidget >, morph::ui::testing::detail::FakeLeaf< KeyValueWidget >, morph::ui::testing::detail::FakeLeaf< MenuWidget >, morph::ui::testing::detail::FakeLeaf< morph::ui::SlotWidget >, morph::ui::testing::detail::FakeLeaf< PanelWidget >, morph::ui::testing::detail::FakeLeaf< ProgressWidget >, morph::ui::testing::detail::FakeLeaf< SelectWidget >, morph::ui::testing::detail::FakeLeaf< SliderWidget >, morph::ui::testing::detail::FakeLeaf< SplitterWidget >, morph::ui::testing::detail::FakeLeaf< StackWidget >, morph::ui::testing::detail::FakeLeaf< StepsWidget >, morph::ui::testing::detail::FakeLeaf< TableWidget >, morph::ui::testing::detail::FakeLeaf< TabsWidget >, morph::ui::testing::detail::FakeLeaf< TextInputWidget >, morph::ui::testing::detail::FakeLeaf< TextWidget >, and morph::ui::testing::detail::FakeLeaf< ToastWidget >.

◆ setLayout()

virtual void morph::ui::Widget::setLayout ( LayoutHints const & hints)
pure virtual

Sets the size request.

Parameters
hintsThe request in both dimensions.

Implemented in morph::ui::testing::detail::FakeLeaf< BadgeWidget >, morph::ui::testing::detail::FakeLeaf< BannerWidget >, morph::ui::testing::detail::FakeLeaf< BusyWidget >, morph::ui::testing::detail::FakeLeaf< ButtonWidget >, morph::ui::testing::detail::FakeLeaf< CheckboxWidget >, morph::ui::testing::detail::FakeLeaf< CollapsibleWidget >, morph::ui::testing::detail::FakeLeaf< CustomWidget >, morph::ui::testing::detail::FakeLeaf< DateTimeInputWidget >, morph::ui::testing::detail::FakeLeaf< DialogWidget >, morph::ui::testing::detail::FakeLeaf< DrawerWidget >, morph::ui::testing::detail::FakeLeaf< DropZoneWidget >, morph::ui::testing::detail::FakeLeaf< EmptyStateWidget >, morph::ui::testing::detail::FakeLeaf< FilePickerWidget >, morph::ui::testing::detail::FakeLeaf< GridWidget >, morph::ui::testing::detail::FakeLeaf< KeyValueWidget >, morph::ui::testing::detail::FakeLeaf< MenuWidget >, morph::ui::testing::detail::FakeLeaf< morph::ui::SlotWidget >, morph::ui::testing::detail::FakeLeaf< PanelWidget >, morph::ui::testing::detail::FakeLeaf< ProgressWidget >, morph::ui::testing::detail::FakeLeaf< SelectWidget >, morph::ui::testing::detail::FakeLeaf< SliderWidget >, morph::ui::testing::detail::FakeLeaf< SplitterWidget >, morph::ui::testing::detail::FakeLeaf< StackWidget >, morph::ui::testing::detail::FakeLeaf< StepsWidget >, morph::ui::testing::detail::FakeLeaf< TableWidget >, morph::ui::testing::detail::FakeLeaf< TabsWidget >, morph::ui::testing::detail::FakeLeaf< TextInputWidget >, morph::ui::testing::detail::FakeLeaf< TextWidget >, and morph::ui::testing::detail::FakeLeaf< ToastWidget >.

◆ setDragKey()

virtual void morph::ui::Widget::setDragKey ( std::optional< Key > const & key)
pure virtual

Makes the widget draggable, carrying key, or not draggable.

Parameters
keyEngaged: the key a drop delivers. nullopt: not draggable.

Implemented in morph::ui::testing::detail::FakeLeaf< BadgeWidget >, morph::ui::testing::detail::FakeLeaf< BannerWidget >, morph::ui::testing::detail::FakeLeaf< BusyWidget >, morph::ui::testing::detail::FakeLeaf< ButtonWidget >, morph::ui::testing::detail::FakeLeaf< CheckboxWidget >, morph::ui::testing::detail::FakeLeaf< CollapsibleWidget >, morph::ui::testing::detail::FakeLeaf< CustomWidget >, morph::ui::testing::detail::FakeLeaf< DateTimeInputWidget >, morph::ui::testing::detail::FakeLeaf< DialogWidget >, morph::ui::testing::detail::FakeLeaf< DrawerWidget >, morph::ui::testing::detail::FakeLeaf< DropZoneWidget >, morph::ui::testing::detail::FakeLeaf< EmptyStateWidget >, morph::ui::testing::detail::FakeLeaf< FilePickerWidget >, morph::ui::testing::detail::FakeLeaf< GridWidget >, morph::ui::testing::detail::FakeLeaf< KeyValueWidget >, morph::ui::testing::detail::FakeLeaf< MenuWidget >, morph::ui::testing::detail::FakeLeaf< morph::ui::SlotWidget >, morph::ui::testing::detail::FakeLeaf< PanelWidget >, morph::ui::testing::detail::FakeLeaf< ProgressWidget >, morph::ui::testing::detail::FakeLeaf< SelectWidget >, morph::ui::testing::detail::FakeLeaf< SliderWidget >, morph::ui::testing::detail::FakeLeaf< SplitterWidget >, morph::ui::testing::detail::FakeLeaf< StackWidget >, morph::ui::testing::detail::FakeLeaf< StepsWidget >, morph::ui::testing::detail::FakeLeaf< TableWidget >, morph::ui::testing::detail::FakeLeaf< TabsWidget >, morph::ui::testing::detail::FakeLeaf< TextInputWidget >, morph::ui::testing::detail::FakeLeaf< TextWidget >, and morph::ui::testing::detail::FakeLeaf< ToastWidget >.

◆ setDropHandler()

virtual void morph::ui::Widget::setDropHandler ( std::function< bool(Key const &)> accepts,
std::function< void(Key)> onDrop )
pure virtual

Makes the widget a drop target.

Parameters
acceptsWhether a dragged key may be dropped here; the backend asks before highlighting.
onDropCalled with the key on a drop that accepts allowed.

Implemented in morph::ui::testing::detail::FakeLeaf< BadgeWidget >, morph::ui::testing::detail::FakeLeaf< BannerWidget >, morph::ui::testing::detail::FakeLeaf< BusyWidget >, morph::ui::testing::detail::FakeLeaf< ButtonWidget >, morph::ui::testing::detail::FakeLeaf< CheckboxWidget >, morph::ui::testing::detail::FakeLeaf< CollapsibleWidget >, morph::ui::testing::detail::FakeLeaf< CustomWidget >, morph::ui::testing::detail::FakeLeaf< DateTimeInputWidget >, morph::ui::testing::detail::FakeLeaf< DialogWidget >, morph::ui::testing::detail::FakeLeaf< DrawerWidget >, morph::ui::testing::detail::FakeLeaf< DropZoneWidget >, morph::ui::testing::detail::FakeLeaf< EmptyStateWidget >, morph::ui::testing::detail::FakeLeaf< FilePickerWidget >, morph::ui::testing::detail::FakeLeaf< GridWidget >, morph::ui::testing::detail::FakeLeaf< KeyValueWidget >, morph::ui::testing::detail::FakeLeaf< MenuWidget >, morph::ui::testing::detail::FakeLeaf< morph::ui::SlotWidget >, morph::ui::testing::detail::FakeLeaf< PanelWidget >, morph::ui::testing::detail::FakeLeaf< ProgressWidget >, morph::ui::testing::detail::FakeLeaf< SelectWidget >, morph::ui::testing::detail::FakeLeaf< SliderWidget >, morph::ui::testing::detail::FakeLeaf< SplitterWidget >, morph::ui::testing::detail::FakeLeaf< StackWidget >, morph::ui::testing::detail::FakeLeaf< StepsWidget >, morph::ui::testing::detail::FakeLeaf< TableWidget >, morph::ui::testing::detail::FakeLeaf< TabsWidget >, morph::ui::testing::detail::FakeLeaf< TextInputWidget >, morph::ui::testing::detail::FakeLeaf< TextWidget >, and morph::ui::testing::detail::FakeLeaf< ToastWidget >.

◆ setAccessibleName()

virtual void morph::ui::Widget::setAccessibleName ( std::string_view name)
pure virtual

Sets the name assistive technology reads for the widget.

Parameters
nameThe accessible name; empty leaves the widget's own text as its name.

Implemented in morph::ui::testing::detail::FakeLeaf< BadgeWidget >, morph::ui::testing::detail::FakeLeaf< BannerWidget >, morph::ui::testing::detail::FakeLeaf< BusyWidget >, morph::ui::testing::detail::FakeLeaf< ButtonWidget >, morph::ui::testing::detail::FakeLeaf< CheckboxWidget >, morph::ui::testing::detail::FakeLeaf< CollapsibleWidget >, morph::ui::testing::detail::FakeLeaf< CustomWidget >, morph::ui::testing::detail::FakeLeaf< DateTimeInputWidget >, morph::ui::testing::detail::FakeLeaf< DialogWidget >, morph::ui::testing::detail::FakeLeaf< DrawerWidget >, morph::ui::testing::detail::FakeLeaf< DropZoneWidget >, morph::ui::testing::detail::FakeLeaf< EmptyStateWidget >, morph::ui::testing::detail::FakeLeaf< FilePickerWidget >, morph::ui::testing::detail::FakeLeaf< GridWidget >, morph::ui::testing::detail::FakeLeaf< KeyValueWidget >, morph::ui::testing::detail::FakeLeaf< MenuWidget >, morph::ui::testing::detail::FakeLeaf< morph::ui::SlotWidget >, morph::ui::testing::detail::FakeLeaf< PanelWidget >, morph::ui::testing::detail::FakeLeaf< ProgressWidget >, morph::ui::testing::detail::FakeLeaf< SelectWidget >, morph::ui::testing::detail::FakeLeaf< SliderWidget >, morph::ui::testing::detail::FakeLeaf< SplitterWidget >, morph::ui::testing::detail::FakeLeaf< StackWidget >, morph::ui::testing::detail::FakeLeaf< StepsWidget >, morph::ui::testing::detail::FakeLeaf< TableWidget >, morph::ui::testing::detail::FakeLeaf< TabsWidget >, morph::ui::testing::detail::FakeLeaf< TextInputWidget >, morph::ui::testing::detail::FakeLeaf< TextWidget >, and morph::ui::testing::detail::FakeLeaf< ToastWidget >.

◆ setAccessibleRole()

virtual void morph::ui::Widget::setAccessibleRole ( std::string_view role)
pure virtual

Sets the role assistive technology announces for the widget.

Parameters
roleThe role, such as "heading"; empty leaves the kind's own role.

Implemented in morph::ui::testing::detail::FakeLeaf< BadgeWidget >, morph::ui::testing::detail::FakeLeaf< BannerWidget >, morph::ui::testing::detail::FakeLeaf< BusyWidget >, morph::ui::testing::detail::FakeLeaf< ButtonWidget >, morph::ui::testing::detail::FakeLeaf< CheckboxWidget >, morph::ui::testing::detail::FakeLeaf< CollapsibleWidget >, morph::ui::testing::detail::FakeLeaf< CustomWidget >, morph::ui::testing::detail::FakeLeaf< DateTimeInputWidget >, morph::ui::testing::detail::FakeLeaf< DialogWidget >, morph::ui::testing::detail::FakeLeaf< DrawerWidget >, morph::ui::testing::detail::FakeLeaf< DropZoneWidget >, morph::ui::testing::detail::FakeLeaf< EmptyStateWidget >, morph::ui::testing::detail::FakeLeaf< FilePickerWidget >, morph::ui::testing::detail::FakeLeaf< GridWidget >, morph::ui::testing::detail::FakeLeaf< KeyValueWidget >, morph::ui::testing::detail::FakeLeaf< MenuWidget >, morph::ui::testing::detail::FakeLeaf< morph::ui::SlotWidget >, morph::ui::testing::detail::FakeLeaf< PanelWidget >, morph::ui::testing::detail::FakeLeaf< ProgressWidget >, morph::ui::testing::detail::FakeLeaf< SelectWidget >, morph::ui::testing::detail::FakeLeaf< SliderWidget >, morph::ui::testing::detail::FakeLeaf< SplitterWidget >, morph::ui::testing::detail::FakeLeaf< StackWidget >, morph::ui::testing::detail::FakeLeaf< StepsWidget >, morph::ui::testing::detail::FakeLeaf< TableWidget >, morph::ui::testing::detail::FakeLeaf< TabsWidget >, morph::ui::testing::detail::FakeLeaf< TextInputWidget >, morph::ui::testing::detail::FakeLeaf< TextWidget >, and morph::ui::testing::detail::FakeLeaf< ToastWidget >.

◆ setTestId()

virtual void morph::ui::Widget::setTestId ( std::string_view testId)
pure virtual

Sets the stable identifier an automated test finds the widget by.

Parameters
testIdThe identifier; empty means none.

Implemented in morph::ui::testing::detail::FakeLeaf< BadgeWidget >, morph::ui::testing::detail::FakeLeaf< BannerWidget >, morph::ui::testing::detail::FakeLeaf< BusyWidget >, morph::ui::testing::detail::FakeLeaf< ButtonWidget >, morph::ui::testing::detail::FakeLeaf< CheckboxWidget >, morph::ui::testing::detail::FakeLeaf< CollapsibleWidget >, morph::ui::testing::detail::FakeLeaf< CustomWidget >, morph::ui::testing::detail::FakeLeaf< DateTimeInputWidget >, morph::ui::testing::detail::FakeLeaf< DialogWidget >, morph::ui::testing::detail::FakeLeaf< DrawerWidget >, morph::ui::testing::detail::FakeLeaf< DropZoneWidget >, morph::ui::testing::detail::FakeLeaf< EmptyStateWidget >, morph::ui::testing::detail::FakeLeaf< FilePickerWidget >, morph::ui::testing::detail::FakeLeaf< GridWidget >, morph::ui::testing::detail::FakeLeaf< KeyValueWidget >, morph::ui::testing::detail::FakeLeaf< MenuWidget >, morph::ui::testing::detail::FakeLeaf< morph::ui::SlotWidget >, morph::ui::testing::detail::FakeLeaf< PanelWidget >, morph::ui::testing::detail::FakeLeaf< ProgressWidget >, morph::ui::testing::detail::FakeLeaf< SelectWidget >, morph::ui::testing::detail::FakeLeaf< SliderWidget >, morph::ui::testing::detail::FakeLeaf< SplitterWidget >, morph::ui::testing::detail::FakeLeaf< StackWidget >, morph::ui::testing::detail::FakeLeaf< StepsWidget >, morph::ui::testing::detail::FakeLeaf< TableWidget >, morph::ui::testing::detail::FakeLeaf< TabsWidget >, morph::ui::testing::detail::FakeLeaf< TextInputWidget >, morph::ui::testing::detail::FakeLeaf< TextWidget >, and morph::ui::testing::detail::FakeLeaf< ToastWidget >.

◆ setTooltip()

virtual void morph::ui::Widget::setTooltip ( std::string_view text)
pure virtual

Sets the text shown while the pointer rests on the widget.

Parameters
textThe tooltip; empty shows none.

Implemented in morph::ui::testing::detail::FakeLeaf< BadgeWidget >, morph::ui::testing::detail::FakeLeaf< BannerWidget >, morph::ui::testing::detail::FakeLeaf< BusyWidget >, morph::ui::testing::detail::FakeLeaf< ButtonWidget >, morph::ui::testing::detail::FakeLeaf< CheckboxWidget >, morph::ui::testing::detail::FakeLeaf< CollapsibleWidget >, morph::ui::testing::detail::FakeLeaf< CustomWidget >, morph::ui::testing::detail::FakeLeaf< DateTimeInputWidget >, morph::ui::testing::detail::FakeLeaf< DialogWidget >, morph::ui::testing::detail::FakeLeaf< DrawerWidget >, morph::ui::testing::detail::FakeLeaf< DropZoneWidget >, morph::ui::testing::detail::FakeLeaf< EmptyStateWidget >, morph::ui::testing::detail::FakeLeaf< FilePickerWidget >, morph::ui::testing::detail::FakeLeaf< GridWidget >, morph::ui::testing::detail::FakeLeaf< KeyValueWidget >, morph::ui::testing::detail::FakeLeaf< MenuWidget >, morph::ui::testing::detail::FakeLeaf< morph::ui::SlotWidget >, morph::ui::testing::detail::FakeLeaf< PanelWidget >, morph::ui::testing::detail::FakeLeaf< ProgressWidget >, morph::ui::testing::detail::FakeLeaf< SelectWidget >, morph::ui::testing::detail::FakeLeaf< SliderWidget >, morph::ui::testing::detail::FakeLeaf< SplitterWidget >, morph::ui::testing::detail::FakeLeaf< StackWidget >, morph::ui::testing::detail::FakeLeaf< StepsWidget >, morph::ui::testing::detail::FakeLeaf< TableWidget >, morph::ui::testing::detail::FakeLeaf< TabsWidget >, morph::ui::testing::detail::FakeLeaf< TextInputWidget >, morph::ui::testing::detail::FakeLeaf< TextWidget >, and morph::ui::testing::detail::FakeLeaf< ToastWidget >.

◆ setSurface()

virtual void morph::ui::Widget::setSurface ( std::string_view surface)
pure virtual

Styles the widget and everything inside it with a named token set of the theme.

Parameters
surfaceThe surface's name; empty is the theme's default.

Implemented in morph::ui::testing::detail::FakeLeaf< BadgeWidget >, morph::ui::testing::detail::FakeLeaf< BannerWidget >, morph::ui::testing::detail::FakeLeaf< BusyWidget >, morph::ui::testing::detail::FakeLeaf< ButtonWidget >, morph::ui::testing::detail::FakeLeaf< CheckboxWidget >, morph::ui::testing::detail::FakeLeaf< CollapsibleWidget >, morph::ui::testing::detail::FakeLeaf< CustomWidget >, morph::ui::testing::detail::FakeLeaf< DateTimeInputWidget >, morph::ui::testing::detail::FakeLeaf< DialogWidget >, morph::ui::testing::detail::FakeLeaf< DrawerWidget >, morph::ui::testing::detail::FakeLeaf< DropZoneWidget >, morph::ui::testing::detail::FakeLeaf< EmptyStateWidget >, morph::ui::testing::detail::FakeLeaf< FilePickerWidget >, morph::ui::testing::detail::FakeLeaf< GridWidget >, morph::ui::testing::detail::FakeLeaf< KeyValueWidget >, morph::ui::testing::detail::FakeLeaf< MenuWidget >, morph::ui::testing::detail::FakeLeaf< morph::ui::SlotWidget >, morph::ui::testing::detail::FakeLeaf< PanelWidget >, morph::ui::testing::detail::FakeLeaf< ProgressWidget >, morph::ui::testing::detail::FakeLeaf< SelectWidget >, morph::ui::testing::detail::FakeLeaf< SliderWidget >, morph::ui::testing::detail::FakeLeaf< SplitterWidget >, morph::ui::testing::detail::FakeLeaf< StackWidget >, morph::ui::testing::detail::FakeLeaf< StepsWidget >, morph::ui::testing::detail::FakeLeaf< TableWidget >, morph::ui::testing::detail::FakeLeaf< TabsWidget >, morph::ui::testing::detail::FakeLeaf< TextInputWidget >, morph::ui::testing::detail::FakeLeaf< TextWidget >, and morph::ui::testing::detail::FakeLeaf< ToastWidget >.

◆ setKeys()

virtual void morph::ui::Widget::setKeys ( std::vector< std::string > const & chords,
std::function< void(std::string)> onChord )
pure virtual

Declares the keyboard chords the widget handles while focus is inside it.

A chord pressed while focus is inside several widgets that declare it goes to the innermost of them only.

Parameters
chordsThe chords, each modifiers joined to a key name, such as "Ctrl+S".
onChordCalled with the chord that was pressed.

Implemented in morph::ui::testing::detail::FakeLeaf< BadgeWidget >, morph::ui::testing::detail::FakeLeaf< BannerWidget >, morph::ui::testing::detail::FakeLeaf< BusyWidget >, morph::ui::testing::detail::FakeLeaf< ButtonWidget >, morph::ui::testing::detail::FakeLeaf< CheckboxWidget >, morph::ui::testing::detail::FakeLeaf< CollapsibleWidget >, morph::ui::testing::detail::FakeLeaf< CustomWidget >, morph::ui::testing::detail::FakeLeaf< DateTimeInputWidget >, morph::ui::testing::detail::FakeLeaf< DialogWidget >, morph::ui::testing::detail::FakeLeaf< DrawerWidget >, morph::ui::testing::detail::FakeLeaf< DropZoneWidget >, morph::ui::testing::detail::FakeLeaf< EmptyStateWidget >, morph::ui::testing::detail::FakeLeaf< FilePickerWidget >, morph::ui::testing::detail::FakeLeaf< GridWidget >, morph::ui::testing::detail::FakeLeaf< KeyValueWidget >, morph::ui::testing::detail::FakeLeaf< MenuWidget >, morph::ui::testing::detail::FakeLeaf< morph::ui::SlotWidget >, morph::ui::testing::detail::FakeLeaf< PanelWidget >, morph::ui::testing::detail::FakeLeaf< ProgressWidget >, morph::ui::testing::detail::FakeLeaf< SelectWidget >, morph::ui::testing::detail::FakeLeaf< SliderWidget >, morph::ui::testing::detail::FakeLeaf< SplitterWidget >, morph::ui::testing::detail::FakeLeaf< StackWidget >, morph::ui::testing::detail::FakeLeaf< StepsWidget >, morph::ui::testing::detail::FakeLeaf< TableWidget >, morph::ui::testing::detail::FakeLeaf< TabsWidget >, morph::ui::testing::detail::FakeLeaf< TextInputWidget >, morph::ui::testing::detail::FakeLeaf< TextWidget >, and morph::ui::testing::detail::FakeLeaf< ToastWidget >.

◆ focus()

virtual void morph::ui::Widget::focus ( )
pure virtual

Moves keyboard focus to the widget.

Implemented in morph::ui::testing::detail::FakeLeaf< BadgeWidget >, morph::ui::testing::detail::FakeLeaf< BannerWidget >, morph::ui::testing::detail::FakeLeaf< BusyWidget >, morph::ui::testing::detail::FakeLeaf< ButtonWidget >, morph::ui::testing::detail::FakeLeaf< CheckboxWidget >, morph::ui::testing::detail::FakeLeaf< CollapsibleWidget >, morph::ui::testing::detail::FakeLeaf< CustomWidget >, morph::ui::testing::detail::FakeLeaf< DateTimeInputWidget >, morph::ui::testing::detail::FakeLeaf< DialogWidget >, morph::ui::testing::detail::FakeLeaf< DrawerWidget >, morph::ui::testing::detail::FakeLeaf< DropZoneWidget >, morph::ui::testing::detail::FakeLeaf< EmptyStateWidget >, morph::ui::testing::detail::FakeLeaf< FilePickerWidget >, morph::ui::testing::detail::FakeLeaf< GridWidget >, morph::ui::testing::detail::FakeLeaf< KeyValueWidget >, morph::ui::testing::detail::FakeLeaf< MenuWidget >, morph::ui::testing::detail::FakeLeaf< morph::ui::SlotWidget >, morph::ui::testing::detail::FakeLeaf< PanelWidget >, morph::ui::testing::detail::FakeLeaf< ProgressWidget >, morph::ui::testing::detail::FakeLeaf< SelectWidget >, morph::ui::testing::detail::FakeLeaf< SliderWidget >, morph::ui::testing::detail::FakeLeaf< SplitterWidget >, morph::ui::testing::detail::FakeLeaf< StackWidget >, morph::ui::testing::detail::FakeLeaf< StepsWidget >, morph::ui::testing::detail::FakeLeaf< TableWidget >, morph::ui::testing::detail::FakeLeaf< TabsWidget >, morph::ui::testing::detail::FakeLeaf< TextInputWidget >, morph::ui::testing::detail::FakeLeaf< TextWidget >, and morph::ui::testing::detail::FakeLeaf< ToastWidget >.

◆ setOnHover()

virtual void morph::ui::Widget::setOnHover ( std::function< void()> onHover)
inlinevirtual

Calls onHover each time the pointer comes to rest over the widget. A backend without a pointer, or one that does not report hovering, keeps the default, which never calls it: hovering is a hint, such as a prefetch, never something a widget relies on.

Parameters
onHoverThe handler; empty stops calling one.

Reimplemented in morph::ui::testing::detail::FakeLeaf< BadgeWidget >, morph::ui::testing::detail::FakeLeaf< BannerWidget >, morph::ui::testing::detail::FakeLeaf< BusyWidget >, morph::ui::testing::detail::FakeLeaf< ButtonWidget >, morph::ui::testing::detail::FakeLeaf< CheckboxWidget >, morph::ui::testing::detail::FakeLeaf< CollapsibleWidget >, morph::ui::testing::detail::FakeLeaf< CustomWidget >, morph::ui::testing::detail::FakeLeaf< DateTimeInputWidget >, morph::ui::testing::detail::FakeLeaf< DialogWidget >, morph::ui::testing::detail::FakeLeaf< DrawerWidget >, morph::ui::testing::detail::FakeLeaf< DropZoneWidget >, morph::ui::testing::detail::FakeLeaf< EmptyStateWidget >, morph::ui::testing::detail::FakeLeaf< FilePickerWidget >, morph::ui::testing::detail::FakeLeaf< GridWidget >, morph::ui::testing::detail::FakeLeaf< KeyValueWidget >, morph::ui::testing::detail::FakeLeaf< MenuWidget >, morph::ui::testing::detail::FakeLeaf< morph::ui::SlotWidget >, morph::ui::testing::detail::FakeLeaf< PanelWidget >, morph::ui::testing::detail::FakeLeaf< ProgressWidget >, morph::ui::testing::detail::FakeLeaf< SelectWidget >, morph::ui::testing::detail::FakeLeaf< SliderWidget >, morph::ui::testing::detail::FakeLeaf< SplitterWidget >, morph::ui::testing::detail::FakeLeaf< StackWidget >, morph::ui::testing::detail::FakeLeaf< StepsWidget >, morph::ui::testing::detail::FakeLeaf< TableWidget >, morph::ui::testing::detail::FakeLeaf< TabsWidget >, morph::ui::testing::detail::FakeLeaf< TextInputWidget >, morph::ui::testing::detail::FakeLeaf< TextWidget >, and morph::ui::testing::detail::FakeLeaf< ToastWidget >.

Definition at line 99 of file backend.hpp.


The documentation for this class was generated from the following file: