le2d v0.4.7
2D game engine framework
 
Loading...
Searching...
No Matches
terminal_builder.hpp
Go to the documentation of this file.
1#pragma once
4#include <kvf/color.hpp>
5#include <kvf/time.hpp>
6#include <gsl/pointers>
7
8namespace le {
9class IFont;
10} // namespace le
11
12namespace le::console {
14 struct {
15 std::size_t history{32};
16 std::size_t buffer{128};
18
19 struct {
21 float line_spacing{1.1f};
22 float separator_height{2.0f};
23 float x_pad{15.0f};
24 char caret{'>'};
25 char cursor{'|'};
26 } style{};
27
28 struct {
29 float slide_speed{4000.0f};
30 float scroll_speed{30.0f};
31 kvf::Seconds blink_period{1s};
32 } motion{};
33
34 struct {
35 kvf::Color cursor{kvf::magenta_v};
36 kvf::Color separator{kvf::white_v};
37 kvf::Color input{kvf::yellow_v};
38 kvf::Color output{0xccccccff};
39 kvf::Color error{kvf::red_v};
40 } colors{};
41};
42
44 public:
46
47 [[nodiscard]] auto build(gsl::not_null<IFont*> font) const -> std::unique_ptr<ITerminal>;
48
49 [[nodiscard]] auto operator()(gsl::not_null<IFont*> font) const -> std::unique_ptr<ITerminal> { return build(font); }
50
53};
54
55[[nodiscard]] auto build_null_terminal() -> std::unique_ptr<ITerminal>;
56} // namespace le::console
Definition terminal_builder.hpp:43
CreateInfo create_info
Definition terminal_builder.hpp:51
auto operator()(gsl::not_null< IFont * > font) const -> std::unique_ptr< ITerminal >
Definition terminal_builder.hpp:49
auto build(gsl::not_null< IFont * > font) const -> std::unique_ptr< ITerminal >
bool add_builtin_tweaks
Definition terminal_builder.hpp:52
Definition junction.hpp:6
auto build_null_terminal() -> std::unique_ptr< ITerminal >
Definition animation.hpp:8
TextHeight
Strongly typed integer for text height.
Definition text_height.hpp:6
Definition terminal_builder.hpp:13
TextHeight text_height
Definition terminal_builder.hpp:20
struct le::console::TerminalCreateInfo::@2 motion
kvf::Color separator
Definition terminal_builder.hpp:36
float line_spacing
Definition terminal_builder.hpp:21
char cursor
Definition terminal_builder.hpp:25
kvf::Color output
Definition terminal_builder.hpp:38
kvf::Color error
Definition terminal_builder.hpp:39
float x_pad
Definition terminal_builder.hpp:23
struct le::console::TerminalCreateInfo::@0 storage
float scroll_speed
Definition terminal_builder.hpp:30
std::size_t history
Definition terminal_builder.hpp:15
kvf::Color input
Definition terminal_builder.hpp:37
float separator_height
Definition terminal_builder.hpp:22
char caret
Definition terminal_builder.hpp:24
kvf::Seconds blink_period
Definition terminal_builder.hpp:31
float slide_speed
Definition terminal_builder.hpp:29
std::size_t buffer
Definition terminal_builder.hpp:16
struct le::console::TerminalCreateInfo::@3 colors
struct le::console::TerminalCreateInfo::@1 style