AUI Framework  develop
Cross-platform base for C++ UI apps
Loading...
Searching...
No Matches
ABorderStyle.h
    1/*
    2 * AUI Framework - Declarative UI toolkit for modern C++20
    3 * Copyright (C) 2020-2025 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 <glm/glm.hpp>
   15#include <variant>
   16#include "AUI/Traits/concepts.h"
   17#include <AUI/Reflect/AEnumerate.h>
   18
   19
   28class ABorderStyle {
   29public:
   30    struct Solid {};
   31    
   35    struct Dashed {
   45
   55    };
   56
   57    using Impl = std::variant<Solid, Dashed>;
   58
   59    template<aui::convertible_to<Impl> T>
   60    ABorderStyle(T&& rhs) noexcept: mValue(std::move(rhs)) {}
   61
   62    const Impl& value() const noexcept {
   63        return mValue;
   64    }
   65
   66private:
   67    Impl mValue;
   68};
Utility wrapper implementing the stack-allocated (fast) optional idiom.
Definition AOptional.h:33
Displays a series of short square-ended dashes or line segments.
Definition ABorderStyle.h:35
AOptional< float > spaceBetweenDashes
If set, renderer would be forced to keep specified space between dashes.
Definition ABorderStyle.h:54
AOptional< float > dashWidth
If set, renderer would be forced to keep specified space between dashes.
Definition ABorderStyle.h:44
Definition ABorderStyle.h:30