module nodes.preference_chain;

import core.time;

import fluid;

@safe:

alias preferenceTracker = nodeBuilder!PreferenceTracker;

class PreferenceTracker : Node {

    PreferenceIO preferenceIO;
    Duration doubleClickInterval;

    override void resizeImpl(Vector2) {
        require(preferenceIO);
    }

    override void drawImpl(Rectangle, Rectangle) {
        doubleClickInterval = preferenceIO.doubleClickInterval;
    }

}

@("PreferenceChain provides a double click interval")
unittest {

    auto preference = preferenceChain();
    auto tracker = preferenceTracker();
    auto root = chain(preference, tracker);

    root.draw();
    assert(tracker.doubleClickInterval != Duration.init);

}