AUI Framework  master
Cross-platform base for C++ UI apps
Loading...
Searching...
No Matches
Expanding.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//
   13// Created by alex2 on 03.01.2021.
   14//
   15
   16#pragma once
   17
   18#include <AUI/Util/AMetric.h>
   19#include "IProperty.h"
   20
   21namespace ass {
   26    struct Expanding {
   27        unset_wrap<unsigned> expandingX;
   28        unset_wrap<unsigned> expandingY;
   29
   30        Expanding() : expandingX(2), expandingY(2) {}
   31        Expanding(const unset_wrap<unsigned>& expandingX, const unset_wrap<unsigned>& expandingY) : expandingX(expandingX), expandingY(expandingY) {}
   32        Expanding(const unset_wrap<unsigned>& expanding) : expandingX(expanding), expandingY(expanding) {}
   33    };
   34
   35
   36    namespace prop {
   37        template<>
   38        struct API_AUI_VIEWS Property<Expanding>: IPropertyBase {
   39        private:
   40            Expanding mInfo;
   41
   42        public:
   43            Property(const Expanding& info) : mInfo(info) {
   44            }
   45
   46            void applyFor(AView* view) override;
   47
   48            [[nodiscard]]
   49            const auto& value() const noexcept {
   50                return mInfo;
   51            }
   52        };
   53    }
   54}
Base class of all UI objects.
Definition AView.h:78
Controls the expanding of AView.
Definition Expanding.h:26
Base class for all properties.
Definition IPropertyBase.h:50
Definition unset.h:28