18#include "AAssSelector.h"
19#include <AUI/View/AViewContainer.h>
22 template <
typename L,
typename R>
29 ParentSubSelector(L l, R r) : l(std::move(l)), r(std::move(r)) {}
31 bool isPossiblyApplicable(
AView* view)
override {
32 if (r.isPossiblyApplicable(view)) {
34 if (l.isPossiblyApplicable(v)) {
42 bool isStateApplicable(
AView* view)
override {
43 if (r.isStateApplicable(view)) {
45 if (l.isStateApplicable(v) && l.isPossiblyApplicable(v)) {
54 if (r.isPossiblyApplicable(view)) {
56 if (l.isPossiblyApplicable(v)) {
57 l.setupConnections(v, helper);
58 r.setupConnections(view, helper);
88 template <
typename L,
typename R, std::enable_if_t<std::is_base_of_v<IAssSubSelector, L> && std::is_base_of_v<IAssSubSelector, R>,
bool> = true>
Base class of all UI objects.
Definition AView.h:78
AViewContainerBase * getParent() const
Parent AView.
Definition AView.h:406
An std::weak_ptr with AUI extensions.
Definition SharedPtrTypes.h:178
Definition AAssSelector.h:28
ParentSubSelector< L, R > operator>>(L l, R r)
Makes indirect parent subselector.
Definition ParentSelector.h:89
#define AUI_ASSERT(condition)
Asserts that the passed condition evaluates to true.
Definition Assert.h:55
Definition ParentSelector.h:23
void setupConnections(AView *view, const _< AAssHelper > &helper) override
Definition ParentSelector.h:53