slint/api/cpp/include/slint_size.h
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

44 lines
1.2 KiB
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
#pragma once
#include <cstdint>
namespace slint {
/// The Size structure is used to represent a two-dimensional size
/// with width and height.
template<typename T>
struct Size
{
/// The width of the size
T width;
/// The height of the size
T height;
/// Compares with \a other and returns true if they are equal; false otherwise.
bool operator==(const Size &other) const = default;
};
namespace cbindgen_private {
// The Size types are expanded to the Size2D<...> type from the euclid crate which
// is binary compatible with Size<T>
template<typename T>
using Size2D = Size<T>;
}
/// A size given in logical pixels
struct LogicalSize : public Size<float>
{
/// Explicitly convert a Size<float> to a LogicalSize
explicit LogicalSize(const Size<float> s) : Size<float>(s) {};
};
/// A size given in physical pixels.
struct PhysicalSize : public Size<uint32_t>
{
/// Explicitly convert a Size<uint32_t> to a LogicalSize
explicit PhysicalSize(const Size<uint32_t> s) : Size<uint32_t>(s) {};
};
}