42#ifndef STAGE_MODEL_ELEMENT_ACCESS_H
43#define STAGE_MODEL_ELEMENT_ACCESS_H
65 using interact::UICoord;
139 TAR* downcasted =
dynamic_cast<TAR*
> (pb);
168 targetElm.
accept (converter);
185 return targetLocation;
Helper for accessing a value, employing either a conversion or downcast, depending on the relation of...
Representation of the result of some operation, EITHER a value or a failure.
to be implemented by the client for visitation
void accept(Visitor &visitor)
Derived specific exceptions within Lumiera's exception hierarchy.
Describe a location within the UI through structural/topological coordinates.
Interface: access UI elements by navigating the UI topology.
UICoord locate_or_create(UICoord const &destination, size_t limitCreation=LUMIERA_MAX_ORDINAL_NUMBER)
Navigate to the designated component, possibly create the element and parents.
lib::Result< TAR & > access(UICoord const &destination)
Navigate the UI topology to access the designated component.
virtual RawResult performAccessTo(UICoord::Builder &, size_t limitCreation)=0
virtual ~ElementAccess()
this is an interface
Any copy and copy construction prohibited.
Lumiera error handling (C++ interface).
hard wired safety limits.
#define LUMIERA_MAX_ORDINAL_NUMBER
Helper to pick the first type from a type sequence, which fulfils the predicate (meta function) given...
LumieraError< LERR_(STATE)> State
Lumiera GTK UI implementation root.
Mix-Ins to allow or prohibit various degrees of copying and cloning.
Intermediary value object to represent »either« an operation result or a failure.
std::is_convertible< TAR *, X > canUpcast
RawResult::FirstMatching< canUpcast >::Type Base
lib::Result< TAR & > result
virtual void handle(Base &pb) override
Metaprogramming: Helpers for manipulating lists-of-types.
A topological addressing scheme to designate structural locations within the UI.
A typesafe union record to carry embedded values of unrelated type.