slint/api/cpp/tests/properties.cpp
Aurindam Jana 3523e86359
Simplify commercial license (#3063)
Base the commercial license on the Royalty-free license adding clauses pertaining to the fees.
2024-05-31 14:06:17 +02:00

41 lines
907 B
C++

// Copyright © SixtyFPS GmbH <info@slint.dev>
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
#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);
}