mirror of
https://github.com/slint-ui/slint.git
synced 2025-10-01 06:11:16 +00:00

A few changes were required: * `LinearGradient(LinearGradient)` as enum variant unfortunately won't compile because the cbindgen generated constructor function (`LinearGradient()`) will try to also instantiate the variant type inside (`LinearGradient`) and that won't find the type but the function itself and error out. So the inner type is now called `LinearGradientBrush`. * The same name dance was required for `Color`, where the enum variant instead is called `SolidColor` * `BrushInner` was removed in favor of just `Brush`. The nicer Rust API will be the public variant, and for cbindgen we can just put the generated enum into an internal namespace, like we do for Resource for example * A `NoBrush` variant was added. Maybe that name could be improved?
32 lines
933 B
C++
32 lines
933 B
C++
/* LICENSE BEGIN
|
|
This file is part of the SixtyFPS Project -- https://sixtyfps.io
|
|
Copyright (c) 2020 Olivier Goffart <olivier.goffart@sixtyfps.io>
|
|
Copyright (c) 2020 Simon Hausmann <simon.hausmann@sixtyfps.io>
|
|
|
|
SPDX-License-Identifier: GPL-3.0-only
|
|
This file is also available under commercial licensing terms.
|
|
Please contact info@sixtyfps.io for more information.
|
|
LICENSE END */
|
|
#pragma once
|
|
#include <string_view>
|
|
#include "sixtyfps_color.h"
|
|
#include "sixtyfps_brush_internal.h"
|
|
#include "sixtyfps_string.h"
|
|
|
|
namespace sixtyfps {
|
|
|
|
struct Brush
|
|
{
|
|
public:
|
|
Brush() : data(Inner::NoBrush()) { }
|
|
|
|
friend bool operator==(const Brush &a, const Brush &b) { return a.data == b.data; }
|
|
friend bool operator!=(const Brush &a, const Brush &b) { return a.data != b.data; }
|
|
|
|
private:
|
|
using Tag = cbindgen_private::types::Brush::Tag;
|
|
using Inner = cbindgen_private::types::Brush;
|
|
Inner data;
|
|
};
|
|
|
|
}
|