FTXUI
6.1.9
C++ functional terminal UI.
Toggle main menu visibility
Loading...
Searching...
No Matches
linear_gradient.hpp
Go to the documentation of this file.
1
// Copyright 2023 Arthur Sonzogni. All rights reserved.
2
// Use of this source code is governed by the MIT license that can be found in
3
// the LICENSE file.
4
#ifndef FTXUI_DOM_LINEAR_GRADIENT_HPP
5
#define FTXUI_DOM_LINEAR_GRADIENT_HPP
6
7
#include <optional>
8
#include <vector>
9
10
#include "
ftxui/screen/color.hpp
"
// for Colors
11
12
namespace
ftxui
{
13
14
/// @brief A class representing the settings for linear-gradient color effect.
15
///
16
/// Example:
17
/// ```cpp
18
/// LinearGradient()
19
/// .Angle(45)
20
/// .Stop(Color::Red, 0.0)
21
/// .Stop(Color::Green, 0.5)
22
/// .Stop(Color::Blue, 1.0);
23
/// ```
24
///
25
/// There are also shorthand constructors:
26
/// ```cpp
27
/// LinearGradient(Color::Red, Color::Blue);
28
/// LinearGradient(45, Color::Red, Color::Blue);
29
/// ```
30
struct
LinearGradient
{
31
float
angle
= 0.f;
32
struct
Stop
{
33
Color
color
=
Color::Default
;
34
std::optional<float>
position
;
35
};
36
std::vector<Stop>
stops
;
37
38
// Simple constructor
39
LinearGradient
();
40
LinearGradient
(
Color
begin,
Color
end);
41
LinearGradient
(
float
angle
,
Color
begin,
Color
end);
42
43
// Modifier using the builder pattern.
44
LinearGradient
&
Angle
(
float
angle
);
45
LinearGradient
&
Stop
(
Color
color
,
float
position);
46
LinearGradient
&
Stop
(
Color
color
);
47
};
48
49
}
// namespace ftxui
50
51
#endif
// FTXUI_DOM_LINEAR_GRADIENT_HPP
ftxui::Color
A class representing terminal colors.
Definition
color.hpp:20
ftxui::Color::Default
@ Default
Definition
color.hpp:48
color.hpp
ftxui
Definition
animation.hpp:10
ftxui::color
Decorator color(Color)
Decorate using a foreground color.
Definition
color.cpp:110
ftxui::LinearGradient::Stop
LinearGradient & Stop(Color color, float position)
Add a color stop to the gradient.
Definition
linear_gradient.cpp:225
ftxui::LinearGradient::Angle
LinearGradient & Angle(float angle)
Set the angle of the gradient.
Definition
linear_gradient.cpp:216
ftxui::LinearGradient::Stop::position
std::optional< float > position
Definition
linear_gradient.hpp:34
ftxui::LinearGradient::LinearGradient
LinearGradient()
Build the "empty" gradient. This is often followed by calls to LinearGradient::Angle() and LinearGrad...
ftxui::LinearGradient::stops
std::vector< Stop > stops
Definition
linear_gradient.hpp:36
ftxui::LinearGradient::Stop::color
Color color
Definition
linear_gradient.hpp:33
ftxui::LinearGradient::angle
float angle
Definition
linear_gradient.hpp:31
ftxui::LinearGradient::Stop
Definition
linear_gradient.hpp:32