slint/api/cpp/tests/properties.cpp
Aurindam Jana 0cfeec1a31
Update Slint Community License (#4994)
Updated the version from 1.1 to 1.2 
Renamed the header to "Slint Royalty-free Desktop, Mobile, and Web Applications License"
Added definition of "Mobile Application" and grant of right
Moved "Limitations" to 3rd section and "License Conditions - Attributions" to 2nd section
Added flexibility to choose between showing "MadeWithSlint" as a dialog/splash screen or on a public webpage
Moved the para on copyright notices to section under "Limitations"
2024-04-15 15:18:55 +02:00

41 lines
905 B
C++

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