AUI Framework  master
Cross-platform module-based framework for developing C++20 desktop applications
BackgroundEffect.h
1/*
2 * AUI Framework - Declarative UI toolkit for modern C++20
3 * Copyright (C) 2020-2024 Alex2772 and Contributors
4 *
5 * SPDX-License-Identifier: MPL-2.0
6 *
7 * This Source Code Form is subject to the terms of the Mozilla Public
8 * License, v. 2.0. If a copy of the MPL was not distributed with this
9 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
10 */
11
12#pragma once
13
14#include "IProperty.h"
15
16namespace ass {
17
25
26 BackgroundEffect(std::nullptr_t) {}
27
28 template<typename... Args>
29 BackgroundEffect(Args&&... args): mEffects({ _new<Args>(std::move(args))... }) {}
30 };
31
32 namespace prop {
33 template<>
34 struct API_AUI_VIEWS Property<BackgroundEffect>: IPropertyBase {
35 private:
36 BackgroundEffect mInfo;
37
38 public:
39 Property(const BackgroundEffect& info) : mInfo(info) {
40
41 }
42
43 void renderFor(AView* view, const ARenderContext& ctx) override;
44
45 bool isNone() override;
46
47 PropertySlot getPropertySlot() const override;
48
49 [[nodiscard]]
50 const auto& value() const noexcept {
51 return mInfo;
52 }
53 };
54
55 }
56}
A std::vector with AUI extensions.
Definition: AVector.h:38
Base class of all UI objects.
Definition: AView.h:77
API_AUI_CORE const ACommandLineArgs & args() noexcept
Definition: OSAndroid.cpp:29
Render context passed to AView::render.
Definition: ARenderContext.h:43
Represents custom-rendered background effect.
Definition: BackgroundEffect.h:23
Base class for all properties.
Definition: IPropertyBase.h:49
Definition: IProperty.h:19