Extract common struct Dimensions from Terminal (#171)

- Convert Dimension to namespace to allow defining Fit method from dom.
- Use Dimensions extracted from Terminal as replacement struct.
- Convert Terminal to namespace as it only defines static members.
- Remove dom references from screen library (circular dependency).
This commit is contained in:
Tushar Maheshwari
2021-08-03 02:49:29 +05:30
committed by GitHub
parent 34d955e9ac
commit 49e8cc57d3
6 changed files with 45 additions and 49 deletions

View File

@@ -7,10 +7,9 @@
#include "ftxui/screen/box.hpp"
#include "ftxui/screen/color.hpp"
#include "ftxui/screen/terminal.hpp"
namespace ftxui {
class Node;
using Element = std::shared_ptr<Node>;
/// @brief A unicode character and its associated style.
/// @ingroup screen
@@ -41,14 +40,10 @@ struct Pixel {
/// @brief Define how the Screen's dimensions should look like.
/// @ingroup screen
struct Dimension {
static Dimension Fixed(int);
static Dimension Fit(Element&);
static Dimension Full();
int dimx;
int dimy;
};
namespace Dimension {
Dimensions Fixed(int);
Dimensions Full();
} // namespace Dimension
/// @brief A rectangular grid of Pixel.
/// @ingroup screen
@@ -56,8 +51,8 @@ class Screen {
public:
// Constructors:
Screen(int dimx, int dimy);
static Screen Create(Dimension dimension);
static Screen Create(Dimension width, Dimension height);
static Screen Create(Dimensions dimension);
static Screen Create(Dimensions width, Dimensions height);
// Node write into the screen using Screen::at.
wchar_t& at(int x, int y);

View File

@@ -2,24 +2,23 @@
#define FTXUI_CORE_TERMINAL_HPP
namespace ftxui {
class Terminal {
public:
struct Dimensions {
int dimx;
int dimy;
};
static Dimensions Size();
enum Color {
Palette1,
Palette16,
Palette256,
TrueColor,
};
static Color ColorSupport();
struct Dimensions {
int dimx;
int dimy;
};
namespace Terminal {
Dimensions Size();
enum Color {
Palette1,
Palette16,
Palette256,
TrueColor,
};
Color ColorSupport();
} // namespace Terminal
} // namespace ftxui
#endif /* end of include guard: FTXUI_CORE_TERMINAL_HPP */