CYD-UI
A C++ library for building native graphic user interfaces
Loading...
Searching...
No Matches
component_types.cppm
Go to the documentation of this file.
1// Copyright (c) 2024, Víctor Castillo Agüero.
2// SPDX-License-Identifier: GPL-3.0-or-later
3
5
6import std;
7
8export import reflect;
9export import quantify;
10
11export import cydui.dimensions;
12
13export namespace cydui::components {
14 template<std::size_t N>
16 constexpr str_literal_t(const char (& str)[N]) {
17 std::copy_n(str, N, value);
18 }
19
20 char value[N];
21 };
22
25 using component_state_ref = std::shared_ptr<component_state_t>;
26 class component_base_t;
27 struct component_actor_t;
28
29 template <typename C>
30 concept ComponentConcept = requires(C c) {
31 requires std::
32 derived_from<std::remove_reference_t<C>, component_base_t>;
33 typename C::props_t;
34 typename C::state_t;
35 typename C::event_handler_t;
36 };
37
44
63} // namespace cydui::components
std::shared_ptr< component_state_t > component_state_ref
dimensions::dimension< dimensions::screen_measure > dimension_t
constexpr str_literal_t(const char(&str)[N])