class EE::UI::UIValueValidationState

Overview

Observable current validation result shared by UI value binding implementations. More…

#include <uivaluevalidation.hpp>

class UIValueValidationState {
public:
    // typedefs

    typedef std::function<void(const UIValueValidationResult&result)> Callback;
    typedef ObservableValue<UIValueValidationResult>::Connection Connection;

    // construction

    UIValueValidationState();
    UIValueValidationState(const UIValueValidationState&);
    UIValueValidationState(UIValueValidationState&&);

    // methods

    UIValueValidationState& operator=(const UIValueValidationState&);
    UIValueValidationState& operator=(UIValueValidationState&&);
    bool isValid() const;
    const UIValueValidationResult& result() const;
    const std::optional<UIValueValidationResult::Code>& code() const;
    const std::optional<std::string>& debugMessage() const;
    Connection observe(Callback callback);
    void set(UIValueValidationResult result);
    void clear();
};

Detailed Documentation

Observable current validation result shared by UI value binding implementations.

Reading validity never allocates. Observer storage is created lazily by observe(), keeping the ordinary unobserved binding path inexpensive. Notifications are synchronous and use the same snapshot semantics as ObservableValue.

Methods

Connection observe(Callback callback)

Observes later result changes. The current result is available through result().

void set(UIValueValidationResult result)

Updates the current result and notifies observers only when it actually changed.