mirror of
https://github.com/slint-ui/slint.git
synced 2025-07-19 19:15:45 +00:00
41 lines
871 B
C++
41 lines
871 B
C++
// Copyright © SixtyFPS GmbH <info@slint-ui.com>
|
|
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-commercial
|
|
|
|
#include <chrono>
|
|
#define CATCH_CONFIG_MAIN
|
|
#include "catch2/catch.hpp"
|
|
|
|
#include <slint.h>
|
|
#include <slint_image.h>
|
|
|
|
using slint::private_api::Property;
|
|
|
|
SCENARIO("Basic usage")
|
|
{
|
|
Property<int> prop;
|
|
REQUIRE(prop.get() == 0);
|
|
|
|
prop.set(42);
|
|
REQUIRE(prop.get() == 42);
|
|
|
|
{
|
|
Property<int> prop2;
|
|
prop2.set_binding([&] { return prop.get() + 4; });
|
|
REQUIRE(prop2.get() == 42 + 4);
|
|
prop.set(55);
|
|
REQUIRE(prop2.get() == 55 + 4);
|
|
}
|
|
|
|
REQUIRE(prop.get() == 55);
|
|
prop.set(33);
|
|
REQUIRE(prop.get() == 33);
|
|
}
|
|
|
|
SCENARIO("Set after binding")
|
|
{
|
|
Property<int> prop;
|
|
REQUIRE(prop.get() == 0);
|
|
prop.set_binding([] { return 55; });
|
|
prop.set(0);
|
|
REQUIRE(prop.get() == 0);
|
|
}
|