mirror of
https://github.com/ArthurSonzogni/FTXUI.git
synced 2024-11-21 18:24:20 +08:00
Generate compile commands for clangd. (#855)
Fix all the diagnostics reported. Bug: https://github.com/ArthurSonzogni/FTXUI/issues/828
This commit is contained in:
parent
6a755f3760
commit
8a2a9b0799
@ -27,6 +27,8 @@ else()
|
||||
${FTXUI_MICROSOFT_TERMINAL_FALLBACK_HELP_TEXT} OFF)
|
||||
endif()
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
|
||||
include(cmake/ftxui_message.cmake)
|
||||
|
||||
add_library(screen
|
||||
|
@ -32,7 +32,7 @@ A simple cross-platform C++ library for terminal based user interfaces!
|
||||
|
||||
## Feature
|
||||
* Functional style. Inspired by
|
||||
[[1]](https://hackernoon.com/building-reactive-terminal-interfaces-in-c-d392ce34e649?gi=d9fb9ce35901)
|
||||
[1](https://hackernoon.com/building-reactive-terminal-interfaces-in-c-d392ce34e649?gi=d9fb9ce35901)
|
||||
and [React](https://reactjs.org/)
|
||||
* Simple and elegant syntax (in my opinion)
|
||||
* Keyboard & mouse navigation.
|
||||
|
@ -7,11 +7,7 @@
|
||||
#include <chrono> // for milliseconds, duration, steady_clock, time_point
|
||||
#include <functional> // for function
|
||||
|
||||
#include "ftxui/component/event.hpp"
|
||||
|
||||
namespace ftxui {
|
||||
|
||||
namespace animation {
|
||||
namespace ftxui::animation {
|
||||
// Components who haven't completed their animation can call this function to
|
||||
// request a new frame to be drawn later.
|
||||
//
|
||||
@ -26,7 +22,7 @@ using Duration = std::chrono::duration<float>;
|
||||
// Parameter of Component::OnAnimation(param).
|
||||
class Params {
|
||||
public:
|
||||
Params(Duration duration) : duration_(duration) {}
|
||||
explicit Params(Duration duration) : duration_(duration) {}
|
||||
|
||||
/// The duration this animation step represents.
|
||||
Duration duration() const { return duration_; }
|
||||
@ -93,11 +89,11 @@ float BounceInOut(float p);
|
||||
|
||||
class Animator {
|
||||
public:
|
||||
Animator(float* from,
|
||||
float to = 0.f,
|
||||
Duration duration = std::chrono::milliseconds(250),
|
||||
easing::Function easing_function = easing::Linear,
|
||||
Duration delay = std::chrono::milliseconds(0));
|
||||
explicit Animator(float* from,
|
||||
float to = 0.f,
|
||||
Duration duration = std::chrono::milliseconds(250),
|
||||
easing::Function easing_function = easing::Linear,
|
||||
Duration delay = std::chrono::milliseconds(0));
|
||||
|
||||
void OnAnimation(Params&);
|
||||
|
||||
@ -112,7 +108,6 @@ class Animator {
|
||||
Duration current_;
|
||||
};
|
||||
|
||||
} // namespace animation
|
||||
} // namespace ftxui
|
||||
} // namespace ftxui::animation
|
||||
|
||||
#endif /* end of include guard: FTXUI_ANIMATION_HPP */
|
||||
|
@ -9,6 +9,11 @@
|
||||
namespace ftxui {
|
||||
class CapturedMouseInterface {
|
||||
public:
|
||||
CapturedMouseInterface() = default;
|
||||
CapturedMouseInterface(const CapturedMouseInterface&) = default;
|
||||
CapturedMouseInterface(CapturedMouseInterface&&) = delete;
|
||||
CapturedMouseInterface& operator=(const CapturedMouseInterface&) = default;
|
||||
CapturedMouseInterface& operator=(CapturedMouseInterface&&) = delete;
|
||||
virtual ~CapturedMouseInterface() = default;
|
||||
};
|
||||
using CapturedMouse = std::unique_ptr<CapturedMouseInterface>;
|
||||
|
@ -6,9 +6,7 @@
|
||||
|
||||
#include <functional> // for function
|
||||
#include <memory> // for make_shared, shared_ptr
|
||||
#include <string> // for wstring
|
||||
#include <utility> // for forward
|
||||
#include <vector> // for vector
|
||||
|
||||
#include "ftxui/component/component_base.hpp" // for Component, Components
|
||||
#include "ftxui/component/component_options.hpp" // for ButtonOption, CheckboxOption, MenuOption
|
||||
@ -96,9 +94,9 @@ Component Slider(ConstStringRef label,
|
||||
ConstRef<float> increment = 5.f);
|
||||
Component Slider(ConstStringRef label,
|
||||
Ref<long> value,
|
||||
ConstRef<long> min = 0l,
|
||||
ConstRef<long> max = 100l,
|
||||
ConstRef<long> increment = 5l);
|
||||
ConstRef<long> min = 0L,
|
||||
ConstRef<long> max = 100L,
|
||||
ConstRef<long> increment = 5L);
|
||||
|
||||
Component ResizableSplit(ResizableSplitOption options);
|
||||
Component ResizableSplitLeft(Component main, Component back, int* main_size);
|
||||
|
@ -29,14 +29,16 @@ using Components = std::vector<Component>;
|
||||
/// @ingroup component
|
||||
class ComponentBase {
|
||||
public:
|
||||
// virtual Destructor.
|
||||
explicit ComponentBase(Components children)
|
||||
: children_(std::move(children)) {}
|
||||
virtual ~ComponentBase();
|
||||
|
||||
ComponentBase() = default;
|
||||
|
||||
// A component is not copiable.
|
||||
// A component is not copyable/movable.
|
||||
ComponentBase(const ComponentBase&) = delete;
|
||||
void operator=(const ComponentBase&) = delete;
|
||||
ComponentBase(ComponentBase&&) = delete;
|
||||
ComponentBase& operator=(const ComponentBase&) = delete;
|
||||
ComponentBase& operator=(ComponentBase&&) = delete;
|
||||
|
||||
// Component hierarchy:
|
||||
ComponentBase* Parent() const;
|
||||
|
@ -10,7 +10,6 @@
|
||||
#include <ftxui/dom/elements.hpp> // for Element, separator
|
||||
#include <ftxui/util/ref.hpp> // for Ref, ConstRef, StringRef
|
||||
#include <functional> // for function
|
||||
#include <optional> // for optional
|
||||
#include <string> // for string
|
||||
|
||||
#include "ftxui/component/component_base.hpp" // for Component
|
||||
|
@ -5,9 +5,7 @@
|
||||
#define FTXUI_COMPONENT_EVENT_HPP
|
||||
|
||||
#include <ftxui/component/mouse.hpp> // for Mouse
|
||||
#include <functional>
|
||||
#include <string> // for string, operator==
|
||||
#include <vector>
|
||||
#include <string> // for string, operator==
|
||||
|
||||
namespace ftxui {
|
||||
|
||||
|
@ -24,11 +24,14 @@ class Loop {
|
||||
void RunOnceBlocking();
|
||||
void Run();
|
||||
|
||||
private:
|
||||
// This class is non copyable.
|
||||
// This class is non copyable/movable.
|
||||
Loop(const Loop&) = default;
|
||||
Loop(Loop&&) = delete;
|
||||
Loop& operator=(Loop&&) = delete;
|
||||
Loop(const ScreenInteractive&) = delete;
|
||||
Loop& operator=(const Loop&) = delete;
|
||||
|
||||
private:
|
||||
ScreenInteractive* screen_;
|
||||
Component component_;
|
||||
};
|
||||
|
@ -7,12 +7,10 @@
|
||||
#include <algorithm> // for copy, max
|
||||
#include <atomic> // for atomic, __atomic_base
|
||||
#include <condition_variable> // for condition_variable
|
||||
#include <functional>
|
||||
#include <iostream>
|
||||
#include <memory> // for unique_ptr, make_unique
|
||||
#include <mutex> // for mutex, unique_lock
|
||||
#include <queue> // for queue
|
||||
#include <utility> // for move
|
||||
#include <memory> // for unique_ptr, make_unique
|
||||
#include <mutex> // for mutex, unique_lock
|
||||
#include <queue> // for queue
|
||||
#include <utility> // for move
|
||||
|
||||
namespace ftxui {
|
||||
|
||||
@ -54,6 +52,10 @@ template<class T> Receiver<T> MakeReceiver();
|
||||
template <class T>
|
||||
class SenderImpl {
|
||||
public:
|
||||
SenderImpl(const SenderImpl&) = delete;
|
||||
SenderImpl(SenderImpl&&) = delete;
|
||||
SenderImpl& operator=(const SenderImpl&) = delete;
|
||||
SenderImpl& operator=(SenderImpl&&) = delete;
|
||||
void Send(T t) { receiver_->Receive(std::move(t)); }
|
||||
~SenderImpl() { receiver_->ReleaseSender(); }
|
||||
|
||||
@ -61,7 +63,7 @@ class SenderImpl {
|
||||
|
||||
private:
|
||||
friend class ReceiverImpl<T>;
|
||||
SenderImpl(ReceiverImpl<T>* consumer) : receiver_(consumer) {}
|
||||
explicit SenderImpl(ReceiverImpl<T>* consumer) : receiver_(consumer) {}
|
||||
ReceiverImpl<T>* receiver_;
|
||||
};
|
||||
|
||||
@ -73,15 +75,17 @@ class ReceiverImpl {
|
||||
senders_++;
|
||||
return std::unique_ptr<SenderImpl<T>>(new SenderImpl<T>(this));
|
||||
}
|
||||
ReceiverImpl() { senders_ = 0; }
|
||||
ReceiverImpl() = default;
|
||||
|
||||
bool Receive(T* t) {
|
||||
while (senders_ || !queue_.empty()) {
|
||||
std::unique_lock<std::mutex> lock(mutex_);
|
||||
if (queue_.empty())
|
||||
if (queue_.empty()) {
|
||||
notifier_.wait(lock);
|
||||
if (queue_.empty())
|
||||
}
|
||||
if (queue_.empty()) {
|
||||
continue;
|
||||
}
|
||||
*t = std::move(queue_.front());
|
||||
queue_.pop();
|
||||
return true;
|
||||
@ -91,8 +95,9 @@ class ReceiverImpl {
|
||||
|
||||
bool ReceiveNonBlocking(T* t) {
|
||||
std::unique_lock<std::mutex> lock(mutex_);
|
||||
if (queue_.empty())
|
||||
if (queue_.empty()) {
|
||||
return false;
|
||||
}
|
||||
*t = queue_.front();
|
||||
queue_.pop();
|
||||
return true;
|
||||
@ -127,7 +132,7 @@ class ReceiverImpl {
|
||||
std::mutex mutex_;
|
||||
std::queue<T> queue_;
|
||||
std::condition_variable notifier_;
|
||||
std::atomic<int> senders_;
|
||||
std::atomic<int> senders_{0};
|
||||
};
|
||||
|
||||
template <class T>
|
||||
|
@ -4,7 +4,8 @@
|
||||
#ifndef FTXUI_DOM_DEPRECATED_HPP
|
||||
#define FTXUI_DOM_DEPRECATED_HPP
|
||||
|
||||
#include "ftxui/dom/elements.hpp"
|
||||
#include <ftxui/dom/node.hpp>
|
||||
#include <string>
|
||||
|
||||
namespace ftxui {
|
||||
Element text(std::wstring text);
|
||||
|
@ -14,7 +14,6 @@
|
||||
#include "ftxui/dom/node.hpp"
|
||||
#include "ftxui/screen/box.hpp"
|
||||
#include "ftxui/screen/color.hpp"
|
||||
#include "ftxui/screen/screen.hpp"
|
||||
#include "ftxui/screen/terminal.hpp"
|
||||
#include "ftxui/util/ref.hpp"
|
||||
|
||||
@ -80,9 +79,7 @@ Decorator borderStyled(BorderStyle);
|
||||
Decorator borderStyled(BorderStyle, Color);
|
||||
Decorator borderStyled(Color);
|
||||
Decorator borderWith(const Pixel&);
|
||||
Element window(Element title,
|
||||
Element content,
|
||||
BorderStyle border = ROUNDED);
|
||||
Element window(Element title, Element content, BorderStyle border = ROUNDED);
|
||||
Element spinner(int charset_index, size_t image_index);
|
||||
Element paragraph(const std::string& text);
|
||||
Element paragraphAlignLeft(const std::string& text);
|
||||
|
@ -22,7 +22,7 @@ using Elements = std::vector<Element>;
|
||||
class Node {
|
||||
public:
|
||||
Node();
|
||||
Node(Elements children);
|
||||
explicit Node(Elements children);
|
||||
Node(const Node&) = delete;
|
||||
Node(const Node&&) = delete;
|
||||
Node& operator=(const Node&) = delete;
|
||||
|
@ -4,7 +4,6 @@
|
||||
#ifndef FTXUI_DOM_TABLE
|
||||
#define FTXUI_DOM_TABLE
|
||||
|
||||
#include <memory>
|
||||
#include <string> // for string
|
||||
#include <vector> // for vector
|
||||
|
||||
@ -37,8 +36,8 @@ class TableSelection;
|
||||
class Table {
|
||||
public:
|
||||
Table();
|
||||
Table(std::vector<std::vector<std::string>>);
|
||||
Table(std::vector<std::vector<Element>>);
|
||||
explicit Table(std::vector<std::vector<std::string>>);
|
||||
explicit Table(std::vector<std::vector<Element>>);
|
||||
TableSelection SelectAll();
|
||||
TableSelection SelectCell(int column, int row);
|
||||
TableSelection SelectRow(int row_index);
|
||||
|
@ -5,7 +5,7 @@
|
||||
#define FTXUI_DOM_TAKE_ANY_ARGS_HPP
|
||||
|
||||
// IWYU pragma: private, include "ftxui/dom/elements.hpp"
|
||||
#include <type_traits>
|
||||
#include <ftxui/dom/node.hpp>
|
||||
|
||||
namespace ftxui {
|
||||
|
||||
@ -19,8 +19,9 @@ inline void Merge(Elements& container, Element element) {
|
||||
|
||||
template <>
|
||||
inline void Merge(Elements& container, Elements elements) {
|
||||
for (auto& element : elements)
|
||||
for (auto& element : elements) {
|
||||
container.push_back(std::move(element));
|
||||
}
|
||||
}
|
||||
|
||||
// Turn a set of arguments into a vector.
|
||||
|
@ -6,7 +6,6 @@
|
||||
|
||||
#include <cstdint> // for uint8_t
|
||||
#include <string> // for string
|
||||
#include <vector> // for vector
|
||||
|
||||
#ifdef RGB
|
||||
// Workaround for wingdi.h (via Windows.h) defining macros that break things.
|
||||
@ -24,10 +23,12 @@ class Color {
|
||||
enum Palette16 : uint8_t;
|
||||
enum Palette256 : uint8_t;
|
||||
|
||||
// NOLINTBEGIN
|
||||
Color(); // Transparent.
|
||||
Color(Palette1 index); // Transparent.
|
||||
Color(Palette16 index); // Implicit conversion from index to Color.
|
||||
Color(Palette256 index); // Implicit conversion from index to Color.
|
||||
// NOLINTEND
|
||||
Color(uint8_t red, uint8_t green, uint8_t blue);
|
||||
static Color RGB(uint8_t red, uint8_t green, uint8_t blue);
|
||||
static Color HSV(uint8_t hue, uint8_t saturation, uint8_t value);
|
||||
|
@ -4,8 +4,6 @@
|
||||
#ifndef FTXUI_SCREEN_IMAGE_HPP
|
||||
#define FTXUI_SCREEN_IMAGE_HPP
|
||||
|
||||
#include <cstdint> // for uint8_t
|
||||
#include <memory>
|
||||
#include <string> // for string, basic_string, allocator
|
||||
#include <vector> // for vector
|
||||
|
||||
|
@ -5,11 +5,9 @@
|
||||
#define FTXUI_SCREEN_SCREEN_HPP
|
||||
|
||||
#include <cstdint> // for uint8_t
|
||||
#include <memory>
|
||||
#include <string> // for string, basic_string, allocator
|
||||
#include <vector> // for vector
|
||||
#include <string> // for string, basic_string, allocator
|
||||
#include <vector> // for vector
|
||||
|
||||
#include "ftxui/screen/color.hpp" // for Color, Color::Default
|
||||
#include "ftxui/screen/image.hpp" // for Pixel, Image
|
||||
#include "ftxui/screen/terminal.hpp" // for Dimensions
|
||||
|
||||
|
@ -4,10 +4,8 @@
|
||||
#ifndef FTXUI_SCREEN_STRING_HPP
|
||||
#define FTXUI_SCREEN_STRING_HPP
|
||||
|
||||
#include <stddef.h> // for size_t
|
||||
#include <cstdint> // for uint8_t
|
||||
#include <string> // for string, wstring, to_string
|
||||
#include <vector> // for vector
|
||||
#include <string> // for string, wstring, to_string
|
||||
#include <vector> // for vector
|
||||
|
||||
namespace ftxui {
|
||||
std::string to_string(const std::wstring& s);
|
||||
@ -30,6 +28,4 @@ std::vector<int> CellToGlyphIndex(const std::string& input);
|
||||
|
||||
} // namespace ftxui
|
||||
|
||||
#include "ftxui/screen/deprecated.hpp"
|
||||
|
||||
#endif /* end of include guard: FTXUI_SCREEN_STRING_HPP */
|
||||
|
@ -16,6 +16,10 @@ class AutoReset {
|
||||
: variable_(variable), previous_value_(std::move(*variable)) {
|
||||
*variable_ = std::move(new_value);
|
||||
}
|
||||
AutoReset(const AutoReset&) = delete;
|
||||
AutoReset(AutoReset&&) = delete;
|
||||
AutoReset& operator=(const AutoReset&) = delete;
|
||||
AutoReset& operator=(AutoReset&&) = delete;
|
||||
~AutoReset() { *variable_ = std::move(previous_value_); }
|
||||
|
||||
private:
|
||||
|
@ -15,10 +15,12 @@ template <typename T>
|
||||
class ConstRef {
|
||||
public:
|
||||
ConstRef() = default;
|
||||
ConstRef(T t) : variant_(std::move(t)) {} // NOLINT
|
||||
ConstRef(const T* t) : variant_(t) {} // NOLINT
|
||||
ConstRef& operator=(ConstRef&&) noexcept = default;
|
||||
ConstRef(const ConstRef<T>&) = default;
|
||||
ConstRef(ConstRef<T>&&) = default;
|
||||
ConstRef(T t) : variant_(std::move(t)) {}
|
||||
ConstRef(const T* t) : variant_(t) {}
|
||||
ConstRef(ConstRef<T>&&) noexcept = default;
|
||||
~ConstRef() = default;
|
||||
|
||||
// Make a "reseatable" reference
|
||||
ConstRef<T>& operator=(const ConstRef<T>&) = default;
|
||||
@ -42,10 +44,12 @@ template <typename T>
|
||||
class Ref {
|
||||
public:
|
||||
Ref() = default;
|
||||
Ref(T t) : variant_(std::move(t)) {} // NOLINT
|
||||
Ref(T* t) : variant_(t) {} // NOLINT
|
||||
~Ref() = default;
|
||||
Ref& operator=(Ref&&) noexcept = default;
|
||||
Ref(const Ref<T>&) = default;
|
||||
Ref(Ref<T>&&) = default;
|
||||
Ref(T t) : variant_(std::move(t)) {}
|
||||
Ref(T* t) : variant_(t) {}
|
||||
Ref(Ref<T>&&) noexcept = default;
|
||||
|
||||
// Make a "reseatable" reference.
|
||||
Ref<T>& operator=(const Ref<T>&) = default;
|
||||
@ -77,8 +81,10 @@ class StringRef : public Ref<std::string> {
|
||||
public:
|
||||
using Ref<std::string>::Ref;
|
||||
|
||||
StringRef(const wchar_t* ref) : StringRef(to_string(std::wstring(ref))) {}
|
||||
StringRef(const char* ref) : StringRef(std::string(ref)) {}
|
||||
StringRef(const wchar_t* ref) // NOLINT
|
||||
: StringRef(to_string(std::wstring(ref))) {}
|
||||
StringRef(const char* ref) // NOLINT
|
||||
: StringRef(std::string(ref)) {}
|
||||
};
|
||||
|
||||
/// @brief An adapter. Own or reference a constant string. For convenience, this
|
||||
@ -87,19 +93,27 @@ class ConstStringRef : public ConstRef<std::string> {
|
||||
public:
|
||||
using ConstRef<std::string>::ConstRef;
|
||||
|
||||
ConstStringRef(const std::wstring* ref) : ConstStringRef(to_string(*ref)) {}
|
||||
ConstStringRef(const std::wstring ref) : ConstStringRef(to_string(ref)) {}
|
||||
ConstStringRef(const wchar_t* ref)
|
||||
ConstStringRef(const std::wstring* ref) // NOLINT
|
||||
: ConstStringRef(to_string(*ref)) {}
|
||||
ConstStringRef(const std::wstring ref) // NOLINT
|
||||
: ConstStringRef(to_string(ref)) {}
|
||||
ConstStringRef(const wchar_t* ref) // NOLINT
|
||||
: ConstStringRef(to_string(std::wstring(ref))) {}
|
||||
ConstStringRef(const char* ref) : ConstStringRef(std::string(ref)) {}
|
||||
ConstStringRef(const char* ref) // NOLINT
|
||||
: ConstStringRef(std::string(ref)) {}
|
||||
};
|
||||
|
||||
/// @brief An adapter. Reference a list of strings.
|
||||
class ConstStringListRef {
|
||||
public:
|
||||
ConstStringListRef() = default;
|
||||
ConstStringListRef(const std::vector<std::string>* ref) : ref_(ref) {}
|
||||
ConstStringListRef(const std::vector<std::wstring>* ref) : ref_wide_(ref) {}
|
||||
~ConstStringListRef() = default;
|
||||
ConstStringListRef(ConstStringListRef&&) = delete;
|
||||
ConstStringListRef& operator=(ConstStringListRef&&) = delete;
|
||||
ConstStringListRef(const std::vector<std::string>* ref) // NOLINT
|
||||
: ref_(ref) {}
|
||||
ConstStringListRef(const std::vector<std::wstring>* ref) // NOLINT
|
||||
: ref_wide_(ref) {}
|
||||
ConstStringListRef(const ConstStringListRef& other) = default;
|
||||
ConstStringListRef& operator=(const ConstStringListRef& other) = default;
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
#include <cmath> // for sin, pow, sqrt, cos
|
||||
#include <ratio> // for ratio
|
||||
#include <utility> // for move
|
||||
|
||||
#include "ftxui/component/animation.hpp"
|
||||
|
@ -3,12 +3,10 @@
|
||||
// the LICENSE file.
|
||||
|
||||
#include <functional> // for function
|
||||
#include <memory> // for shared_ptr
|
||||
#include <utility> // for move
|
||||
|
||||
#include "ftxui/component/animation.hpp" // for Animator, Params (ptr only)
|
||||
#include "ftxui/component/captured_mouse.hpp" // for CapturedMouse
|
||||
#include "ftxui/component/component.hpp" // for Make, Button
|
||||
#include "ftxui/component/component.hpp" // for Make, Button
|
||||
#include "ftxui/component/component_base.hpp" // for ComponentBase
|
||||
#include "ftxui/component/component_options.hpp" // for ButtonOption, AnimatedColorOption, AnimatedColorsOption, EntryState
|
||||
#include "ftxui/component/event.hpp" // for Event, Event::Return
|
||||
|
@ -1,8 +1,6 @@
|
||||
// Copyright 2022 Arthur Sonzogni. All rights reserved.
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <chrono> // for operator""s, chrono_literals
|
||||
#include <memory> // for __shared_ptr_access, shared_ptr, allocator
|
||||
#include <string> // for string
|
||||
|
||||
#include "ftxui/component/animation.hpp" // for Duration, Params
|
||||
|
@ -2,9 +2,7 @@
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <functional> // for function
|
||||
#include <memory> // for __shared_ptr_access, __shared_ptr_access<>::element_type, shared_ptr
|
||||
#include <type_traits> // for remove_reference, remove_reference<>::type
|
||||
#include <utility> // for move
|
||||
#include <utility> // for move
|
||||
|
||||
#include "ftxui/component/component.hpp" // for Make, CatchEvent, ComponentDecorator
|
||||
#include "ftxui/component/component_base.hpp" // for Component, ComponentBase
|
||||
|
@ -4,7 +4,6 @@
|
||||
#include <functional> // for function
|
||||
#include <utility> // for move
|
||||
|
||||
#include "ftxui/component/captured_mouse.hpp" // for CapturedMouse
|
||||
#include "ftxui/component/component.hpp" // for Make, Checkbox
|
||||
#include "ftxui/component/component_base.hpp" // for Component, ComponentBase
|
||||
#include "ftxui/component/component_options.hpp" // for CheckboxOption, EntryState
|
||||
@ -137,7 +136,7 @@ Component Checkbox(CheckboxOption option) {
|
||||
/// ```
|
||||
// NOLINTNEXTLINE
|
||||
Component Checkbox(ConstStringRef label, bool* checked, CheckboxOption option) {
|
||||
option.label = label;
|
||||
option.label = std::move(label);
|
||||
option.checked = checked;
|
||||
return Make<CheckboxBase>(std::move(option));
|
||||
}
|
||||
|
@ -2,7 +2,6 @@
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <functional> // for function
|
||||
#include <memory> // for shared_ptr, allocator
|
||||
#include <utility> // for move
|
||||
|
||||
#include "ftxui/component/component.hpp" // for Checkbox, Maybe, Make, Vertical, Collapsible
|
||||
|
@ -1,4 +1,3 @@
|
||||
#include <memory> // for __shared_ptr_access, shared_ptr, allocator
|
||||
#include <string> // for string
|
||||
|
||||
#include "ftxui/component/component.hpp" // for Collapsible, Renderer
|
||||
|
@ -2,7 +2,6 @@
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <cassert>
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include "ftxui/component/component.hpp"
|
||||
#include "ftxui/component/terminal_input_parser.hpp"
|
||||
@ -11,8 +10,9 @@ using namespace ftxui;
|
||||
namespace {
|
||||
|
||||
bool GeneratorBool(const char*& data, size_t& size) {
|
||||
if (size == 0)
|
||||
if (size == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
auto out = bool(data[0] % 2);
|
||||
data++;
|
||||
|
@ -2,7 +2,6 @@
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <memory> // for shared_ptr, __shared_ptr_access, allocator, __shared_ptr_access<>::element_type, make_shared
|
||||
#include <string> // for string
|
||||
|
||||
#include "ftxui/component/component.hpp" // for Make
|
||||
#include "ftxui/component/component_base.hpp" // for ComponentBase, Component
|
||||
|
@ -5,7 +5,6 @@
|
||||
#include <cstddef> // for size_t
|
||||
#include <memory> // for make_shared, __shared_ptr_access, allocator, shared_ptr, allocator_traits<>::value_type
|
||||
#include <utility> // for move
|
||||
#include <vector> // for vector, __alloc_traits<>::value_type
|
||||
|
||||
#include "ftxui/component/component.hpp" // for Horizontal, Vertical, Tab
|
||||
#include "ftxui/component/component_base.hpp" // for Components, Component, ComponentBase
|
||||
|
@ -1,8 +1,6 @@
|
||||
// Copyright 2020 Arthur Sonzogni. All rights reserved.
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <memory> // for __shared_ptr_access, shared_ptr, allocator
|
||||
#include <string> // for string
|
||||
|
||||
#include "ftxui/component/component.hpp" // for Horizontal, Vertical, Button, Tab
|
||||
#include "ftxui/component/component_base.hpp" // for ComponentBase, Component
|
||||
|
@ -1,9 +1,9 @@
|
||||
// Copyright 2021 Arthur Sonzogni. All rights reserved.
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <cstddef> // for size_t
|
||||
#include <cstddef> // for size_t
|
||||
#include <ftxui/component/event.hpp>
|
||||
#include <functional> // for function
|
||||
#include <memory> // for __shared_ptr_access, allocator, shared_ptr
|
||||
#include <string> // for string
|
||||
|
||||
#include "ftxui/component/component.hpp" // for Maybe, Checkbox, Make, Radiobox, Vertical, Dropdown
|
||||
@ -96,14 +96,14 @@ Component Dropdown(DropdownOption option) {
|
||||
if (is_open) {
|
||||
const int max_height = 12;
|
||||
return vbox({
|
||||
checkbox_element,
|
||||
std::move(checkbox_element),
|
||||
separator(),
|
||||
radiobox_element | vscroll_indicator | frame |
|
||||
std::move(radiobox_element) | vscroll_indicator | frame |
|
||||
size(HEIGHT, LESS_THAN, max_height),
|
||||
}) |
|
||||
border;
|
||||
}
|
||||
return vbox({checkbox_element, filler()}) | border;
|
||||
return vbox({std::move(checkbox_element), filler()}) | border;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -2,8 +2,7 @@
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <ftxui/dom/elements.hpp> // for Element, text
|
||||
#include <memory> // for shared_ptr, __shared_ptr_access, allocator
|
||||
#include <string> // for string
|
||||
#include <string> // for string
|
||||
|
||||
#include "ftxui/component/component.hpp" // for Hoverable, Horizontal, operator|=, Renderer
|
||||
#include "ftxui/component/component_base.hpp" // for ComponentBase, Component
|
||||
|
@ -1,7 +1,6 @@
|
||||
// Copyright 2023 Arthur Sonzogni. All rights reserved.
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <memory> // for __shared_ptr_access, shared_ptr, allocator
|
||||
#include <string> // for string
|
||||
|
||||
#include "ftxui/component/component.hpp" // for Input
|
||||
|
@ -15,8 +15,8 @@ namespace ftxui {
|
||||
/// @see Component, ScreenInteractive.
|
||||
/// @see ScreenInteractive::Loop().
|
||||
/// @see ScreenInteractive::ExitLoop().
|
||||
/// @param screen The screen to use.
|
||||
/// @param component The component to run.
|
||||
/// @param[in] screen The screen to use.
|
||||
/// @param[in] component The component to run.
|
||||
// NOLINTNEXTLINE
|
||||
Loop::Loop(ScreenInteractive* screen, Component component)
|
||||
: screen_(screen), component_(std::move(component)) {
|
||||
|
@ -3,8 +3,7 @@
|
||||
// the LICENSE file.
|
||||
#include <functional> // for function
|
||||
#include <memory> // for make_unique, __shared_ptr_access, __shared_ptr_access<>::element_type, shared_ptr
|
||||
#include <type_traits> // for remove_reference, remove_reference<>::type
|
||||
#include <utility> // for move
|
||||
#include <utility> // for move
|
||||
|
||||
#include "ftxui/component/component.hpp" // for ComponentDecorator, Maybe, Make
|
||||
#include "ftxui/component/component_base.hpp" // for Component, ComponentBase
|
||||
|
@ -5,13 +5,11 @@
|
||||
#include <chrono> // for milliseconds
|
||||
#include <ftxui/dom/direction.hpp> // for Direction, Direction::Down, Direction::Left, Direction::Right, Direction::Up
|
||||
#include <functional> // for function
|
||||
#include <memory> // for allocator_traits<>::value_type, swap
|
||||
#include <string> // for operator+, string
|
||||
#include <utility> // for move
|
||||
#include <vector> // for vector, __alloc_traits<>::value_type
|
||||
|
||||
#include "ftxui/component/animation.hpp" // for Animator, Linear
|
||||
#include "ftxui/component/captured_mouse.hpp" // for CapturedMouse
|
||||
#include "ftxui/component/animation.hpp" // for Animator, Linear
|
||||
#include "ftxui/component/component.hpp" // for Make, Menu, MenuEntry, Toggle
|
||||
#include "ftxui/component/component_base.hpp" // for ComponentBase
|
||||
#include "ftxui/component/component_options.hpp" // for MenuOption, MenuEntryOption, UnderlineOption, AnimatedColorOption, AnimatedColorsOption, EntryState
|
||||
@ -70,7 +68,7 @@ bool IsHorizontal(Direction direction) {
|
||||
/// @ingroup component
|
||||
class MenuBase : public ComponentBase, public MenuOption {
|
||||
public:
|
||||
explicit MenuBase(MenuOption option) : MenuOption(std::move(option)) {}
|
||||
explicit MenuBase(const MenuOption& option) : MenuOption(option) {}
|
||||
|
||||
bool IsHorizontal() { return ftxui::IsHorizontal(direction); }
|
||||
void OnChange() {
|
||||
@ -547,7 +545,7 @@ Component Menu(MenuOption option) {
|
||||
Component Menu(ConstStringListRef entries, int* selected, MenuOption option) {
|
||||
option.entries = entries;
|
||||
option.selected = selected;
|
||||
return Menu(std::move(option));
|
||||
return Menu(option);
|
||||
}
|
||||
|
||||
/// @brief An horizontal list of elements. The user can navigate through them.
|
||||
@ -586,7 +584,7 @@ Component Toggle(ConstStringListRef entries, int* selected) {
|
||||
/// entry 3
|
||||
/// ```
|
||||
Component MenuEntry(ConstStringRef label, MenuEntryOption option) {
|
||||
option.label = label;
|
||||
option.label = std::move(label);
|
||||
return MenuEntry(std::move(option));
|
||||
}
|
||||
|
||||
|
@ -2,11 +2,9 @@
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <gtest/gtest.h> // for Test, EXPECT_EQ, Message, TestPartResult, TestInfo (ptr only), TEST
|
||||
#include <chrono> // for operator""s, chrono_literals
|
||||
#include <ftxui/dom/direction.hpp> // for Direction, Direction::Down, Direction::Left, Direction::Right, Direction::Up
|
||||
#include <memory> // for __shared_ptr_access, shared_ptr, allocator
|
||||
#include <string> // for string, basic_string
|
||||
#include <vector> // for vector
|
||||
#include <string> // for string, basic_string
|
||||
#include <vector> // for vector
|
||||
|
||||
#include "ftxui/component/animation.hpp" // for Duration, Params
|
||||
#include "ftxui/component/component.hpp" // for Menu
|
||||
|
@ -3,7 +3,6 @@
|
||||
// the LICENSE file.
|
||||
#include <gtest/gtest.h>
|
||||
#include <ftxui/dom/elements.hpp> // for Element, operator|, text, border
|
||||
#include <memory> // for shared_ptr, allocator, __shared_ptr_access
|
||||
|
||||
#include "ftxui/component/component.hpp" // for Renderer, Modal
|
||||
#include "ftxui/component/component_base.hpp" // for ComponentBase
|
||||
|
@ -2,11 +2,9 @@
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <functional> // for function
|
||||
#include <memory> // for allocator_traits<>::value_type
|
||||
#include <utility> // for move
|
||||
#include <vector> // for vector
|
||||
|
||||
#include "ftxui/component/captured_mouse.hpp" // for CapturedMouse
|
||||
#include "ftxui/component/component.hpp" // for Make, Radiobox
|
||||
#include "ftxui/component/component_base.hpp" // for ComponentBase
|
||||
#include "ftxui/component/component_options.hpp" // for RadioboxOption, EntryState
|
||||
@ -26,7 +24,8 @@ namespace {
|
||||
/// @ingroup component
|
||||
class RadioboxBase : public ComponentBase, public RadioboxOption {
|
||||
public:
|
||||
explicit RadioboxBase(RadioboxOption option) : RadioboxOption(option) {}
|
||||
explicit RadioboxBase(const RadioboxOption& option)
|
||||
: RadioboxOption(option) {}
|
||||
|
||||
private:
|
||||
Element Render() override {
|
||||
|
@ -4,9 +4,8 @@
|
||||
#include <ftxui/dom/elements.hpp> // for yframe
|
||||
#include <ftxui/dom/node.hpp> // for Render
|
||||
#include <ftxui/screen/screen.hpp> // for Screen
|
||||
#include <memory> // for __shared_ptr_access, shared_ptr, allocator
|
||||
#include <string> // for string, basic_string
|
||||
#include <vector> // for vector
|
||||
#include <string> // for string, basic_string
|
||||
#include <vector> // for vector
|
||||
|
||||
#include "ftxui/component/component.hpp" // for Radiobox, operator|
|
||||
#include "ftxui/component/component_base.hpp" // for ComponentBase, Component
|
||||
|
@ -1,7 +1,6 @@
|
||||
// Copyright 2020 Arthur Sonzogni. All rights reserved.
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <string> // for string
|
||||
#include <thread> // for thread
|
||||
#include <utility> // for move
|
||||
|
||||
|
@ -2,10 +2,8 @@
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <functional> // for function
|
||||
#include <memory> // for __shared_ptr_access, shared_ptr
|
||||
#include <utility> // for move
|
||||
|
||||
#include "ftxui/component/captured_mouse.hpp" // for CapturedMouse
|
||||
#include "ftxui/component/component.hpp" // for Make, Renderer
|
||||
#include "ftxui/component/component_base.hpp" // for Component, ComponentBase
|
||||
#include "ftxui/component/event.hpp" // for Event
|
||||
|
@ -5,8 +5,7 @@
|
||||
#include <ftxui/dom/direction.hpp> // for Direction, Direction::Down, Direction::Left, Direction::Right, Direction::Up
|
||||
#include <ftxui/util/ref.hpp> // for Ref
|
||||
#include <functional> // for function
|
||||
#include <memory> // for __shared_ptr_access, shared_ptr, allocator
|
||||
#include <utility> // for move
|
||||
#include <utility> // for move
|
||||
|
||||
#include "ftxui/component/captured_mouse.hpp" // for CapturedMouse
|
||||
#include "ftxui/component/component.hpp" // for Horizontal, Make, ResizableSplit, ResizableSplitBottom, ResizableSplitLeft, ResizableSplitRight, ResizableSplitTop
|
||||
|
@ -2,8 +2,7 @@
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <ftxui/dom/direction.hpp> // for Direction, Direction::Down, Direction::Left, Direction::Right, Direction::Up
|
||||
#include <memory> // for __shared_ptr_access, shared_ptr, allocator
|
||||
#include <string> // for string
|
||||
#include <string> // for string
|
||||
|
||||
#include "ftxui/component/component.hpp" // for ResizableSplit, Renderer, ResizableSplitBottom, ResizableSplitLeft, ResizableSplitRight, ResizableSplitTop
|
||||
#include "ftxui/component/component_base.hpp" // for ComponentBase, Component
|
||||
|
@ -248,7 +248,7 @@ void ExecuteSignalHandlers() {
|
||||
|
||||
void InstallSignalHandler(int sig) {
|
||||
auto old_signal_handler = std::signal(sig, RecordSignal);
|
||||
on_exit_functions.push(
|
||||
on_exit_functions.emplace(
|
||||
[=] { std::ignore = std::signal(sig, old_signal_handler); });
|
||||
}
|
||||
|
||||
@ -590,14 +590,14 @@ void ScreenInteractive::Install() {
|
||||
|
||||
// After uninstalling the new configuration, flush it to the terminal to
|
||||
// ensure it is fully applied:
|
||||
on_exit_functions.push([] { Flush(); });
|
||||
on_exit_functions.emplace([] { Flush(); });
|
||||
|
||||
on_exit_functions.push([this] { ExitLoopClosure()(); });
|
||||
on_exit_functions.emplace([this] { ExitLoopClosure()(); });
|
||||
|
||||
// Request the terminal to report the current cursor shape. We will restore it
|
||||
// on exit.
|
||||
std::cout << DECRQSS_DECSCUSR;
|
||||
on_exit_functions.push([=] {
|
||||
on_exit_functions.emplace([=] {
|
||||
std::cout << "\033[?25h"; // Enable cursor.
|
||||
std::cout << "\033[" + std::to_string(cursor_reset_shape_) + " q";
|
||||
});
|
||||
@ -646,7 +646,8 @@ void ScreenInteractive::Install() {
|
||||
|
||||
struct termios terminal; // NOLINT
|
||||
tcgetattr(STDIN_FILENO, &terminal);
|
||||
on_exit_functions.push([=] { tcsetattr(STDIN_FILENO, TCSANOW, &terminal); });
|
||||
on_exit_functions.emplace(
|
||||
[=] { tcsetattr(STDIN_FILENO, TCSANOW, &terminal); });
|
||||
|
||||
// Enabling raw terminal input mode
|
||||
terminal.c_iflag &= ~IGNBRK; // Disable ignoring break condition
|
||||
@ -680,12 +681,12 @@ void ScreenInteractive::Install() {
|
||||
|
||||
auto enable = [&](const std::vector<DECMode>& parameters) {
|
||||
std::cout << Set(parameters);
|
||||
on_exit_functions.push([=] { std::cout << Reset(parameters); });
|
||||
on_exit_functions.emplace([=] { std::cout << Reset(parameters); });
|
||||
};
|
||||
|
||||
auto disable = [&](const std::vector<DECMode>& parameters) {
|
||||
std::cout << Reset(parameters);
|
||||
on_exit_functions.push([=] { std::cout << Set(parameters); });
|
||||
on_exit_functions.emplace([=] { std::cout << Set(parameters); });
|
||||
};
|
||||
|
||||
if (use_alternative_screen_) {
|
||||
|
@ -1,8 +1,7 @@
|
||||
// Copyright 2020 Arthur Sonzogni. All rights reserved.
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <algorithm> // for max, min
|
||||
#include <cstdint> // for uint8_t, uint16_t, uint32_t, uint64_t
|
||||
#include <algorithm> // for max, min
|
||||
#include <ftxui/component/component_options.hpp> // for SliderOption
|
||||
#include <ftxui/dom/direction.hpp> // for Direction, Direction::Down, Direction::Left, Direction::Right, Direction::Up
|
||||
#include <string> // for allocator
|
||||
|
@ -6,8 +6,7 @@
|
||||
#include <ftxui/component/mouse.hpp> // for Mouse, Mouse::Left, Mouse::Pressed, Mouse::Released
|
||||
#include <ftxui/dom/direction.hpp> // for Direction, Direction::Down, Direction::Left, Direction::Right, Direction::Up
|
||||
#include <ftxui/dom/elements.hpp> // for frame
|
||||
#include <memory> // for shared_ptr, __shared_ptr_access, allocator
|
||||
#include <string> // for string, to_string
|
||||
#include <string> // for string, to_string
|
||||
|
||||
#include "ftxui/component/component.hpp" // for Slider, Vertical, operator|=
|
||||
#include "ftxui/component/component_base.hpp" // for ComponentBase
|
||||
|
@ -4,11 +4,9 @@
|
||||
#ifndef FTXUI_COMPONENT_TERMINAL_INPUT_PARSER
|
||||
#define FTXUI_COMPONENT_TERMINAL_INPUT_PARSER
|
||||
|
||||
#include <memory> // for unique_ptr
|
||||
#include <string> // for string
|
||||
#include <vector> // for vector
|
||||
|
||||
#include "ftxui/component/event.hpp" // for Event (ptr only)
|
||||
#include "ftxui/component/mouse.hpp" // for Mouse
|
||||
#include "ftxui/component/receiver.hpp" // for Sender
|
||||
#include "ftxui/component/task.hpp" // for Task
|
||||
@ -19,7 +17,7 @@ struct Event;
|
||||
// Parse a sequence of |char| accross |time|. Produces |Event|.
|
||||
class TerminalInputParser {
|
||||
public:
|
||||
TerminalInputParser(Sender<Task> out);
|
||||
explicit TerminalInputParser(Sender<Task> out);
|
||||
void Timeout(int time);
|
||||
void Add(char c);
|
||||
|
||||
@ -46,11 +44,12 @@ class TerminalInputParser {
|
||||
Type type;
|
||||
union {
|
||||
Mouse mouse;
|
||||
CursorPosition cursor;
|
||||
CursorPosition cursor{};
|
||||
int cursor_shape;
|
||||
};
|
||||
|
||||
Output(Type t) : type(t) {}
|
||||
Output(Type t) // NOLINT
|
||||
: type(t) {}
|
||||
};
|
||||
|
||||
void Send(Output output);
|
||||
|
@ -5,7 +5,6 @@
|
||||
#include <ftxui/component/task.hpp> // for Task
|
||||
#include <initializer_list> // for initializer_list
|
||||
#include <memory> // for allocator, unique_ptr
|
||||
#include <variant> // for get
|
||||
|
||||
#include "ftxui/component/event.hpp" // for Event, Event::Return, Event::ArrowDown, Event::ArrowLeft, Event::ArrowRight, Event::ArrowUp, Event::Backspace, Event::End, Event::Home, Event::Custom, Event::Delete, Event::F1, Event::F10, Event::F11, Event::F12, Event::F2, Event::F3, Event::F4, Event::F5, Event::F6, Event::F7, Event::F8, Event::F9, Event::PageDown, Event::PageUp, Event::Tab, Event::TabReverse, Event::Escape
|
||||
#include "ftxui/component/receiver.hpp" // for MakeReceiver, ReceiverImpl
|
||||
|
@ -1,7 +1,6 @@
|
||||
// Copyright 2021 Arthur Sonzogni. All rights reserved.
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <vector>
|
||||
#include "ftxui/component/terminal_input_parser.hpp"
|
||||
|
||||
extern "C" int LLVMFuzzerTestOneInput(const char* data, size_t size) {
|
||||
@ -9,12 +8,14 @@ extern "C" int LLVMFuzzerTestOneInput(const char* data, size_t size) {
|
||||
auto event_receiver = MakeReceiver<Task>();
|
||||
{
|
||||
auto parser = TerminalInputParser(event_receiver->MakeSender());
|
||||
for (size_t i = 0; i < size; ++i)
|
||||
for (size_t i = 0; i < size; ++i) {
|
||||
parser.Add(data[i]);
|
||||
}
|
||||
}
|
||||
|
||||
Task received;
|
||||
while (event_receiver->Receive(&received))
|
||||
;
|
||||
while (event_receiver->Receive(&received)) {
|
||||
// Do nothing.
|
||||
}
|
||||
return 0; // Non-zero return values are reserved for future use.
|
||||
}
|
||||
|
@ -2,7 +2,6 @@
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <functional> // for function
|
||||
#include <memory> // for __shared_ptr_access, shared_ptr, allocator
|
||||
#include <string> // for string, basic_string
|
||||
#include <vector> // for vector
|
||||
|
||||
|
@ -6,8 +6,7 @@
|
||||
|
||||
#include <vector>
|
||||
|
||||
namespace ftxui {
|
||||
namespace box_helper {
|
||||
namespace ftxui::box_helper {
|
||||
|
||||
struct Element {
|
||||
// Input:
|
||||
@ -21,7 +20,6 @@ struct Element {
|
||||
|
||||
void Compute(std::vector<Element>* elements, int target_size);
|
||||
|
||||
} // namespace box_helper
|
||||
} // namespace ftxui
|
||||
} // namespace ftxui::box_helper
|
||||
|
||||
#endif /* end of include guard: FTXUI_DOM_BOX_HELPER_HPP */
|
||||
|
@ -341,7 +341,7 @@ void Canvas::DrawPointEllipse(int x1,
|
||||
int dy = x * x;
|
||||
int err = dx + dy;
|
||||
|
||||
do {
|
||||
do { // NOLINT
|
||||
DrawPoint(x1 - x, y1 + y, true, s);
|
||||
DrawPoint(x1 + x, y1 + y, true, s);
|
||||
DrawPoint(x1 + x, y1 - y, true, s);
|
||||
@ -405,7 +405,7 @@ void Canvas::DrawPointEllipseFilled(int x1,
|
||||
int dy = x * x;
|
||||
int err = dx + dy;
|
||||
|
||||
do {
|
||||
do { // NOLINT
|
||||
for (int xx = x1 + x; xx <= x1 - x; ++xx) {
|
||||
DrawPoint(xx, y1 + y, true, s);
|
||||
DrawPoint(xx, y1 - y, true, s);
|
||||
@ -686,7 +686,7 @@ void Canvas::DrawBlockEllipse(int x1,
|
||||
int dy = x * x;
|
||||
int err = dx + dy;
|
||||
|
||||
do {
|
||||
do { // NOLINT
|
||||
DrawBlock(x1 - x, 2 * (y1 + y), true, s);
|
||||
DrawBlock(x1 + x, 2 * (y1 + y), true, s);
|
||||
DrawBlock(x1 + x, 2 * (y1 - y), true, s);
|
||||
@ -752,7 +752,7 @@ void Canvas::DrawBlockEllipseFilled(int x1,
|
||||
int dy = x * x;
|
||||
int err = dx + dy;
|
||||
|
||||
do {
|
||||
do { // NOLINT
|
||||
for (int xx = x1 + x; xx <= x1 - x; ++xx) {
|
||||
DrawBlock(xx, 2 * (y1 + y), true, s);
|
||||
DrawBlock(xx, 2 * (y1 - y), true, s);
|
||||
|
@ -4,7 +4,6 @@
|
||||
#include <algorithm> // for max
|
||||
#include <memory> // for __shared_ptr_access, shared_ptr, make_shared
|
||||
#include <utility> // for move
|
||||
#include <vector> // for vector
|
||||
|
||||
#include "ftxui/dom/elements.hpp" // for Element, Elements, dbox
|
||||
#include "ftxui/dom/node.hpp" // for Node, Elements
|
||||
|
@ -6,7 +6,6 @@
|
||||
#include <algorithm> // for max, min
|
||||
#include <cstddef> // for size_t
|
||||
#include <ftxui/dom/flexbox_config.hpp> // for FlexboxConfig, FlexboxConfig::Direction, FlexboxConfig::AlignContent, FlexboxConfig::JustifyContent, FlexboxConfig::Wrap, FlexboxConfig::Direction::RowInversed, FlexboxConfig::AlignItems, FlexboxConfig::Direction::Row, FlexboxConfig::Direction::Column, FlexboxConfig::Direction::ColumnInversed, FlexboxConfig::Wrap::WrapInversed, FlexboxConfig::AlignContent::Stretch, FlexboxConfig::JustifyContent::Stretch, FlexboxConfig::Wrap::Wrap, FlexboxConfig::AlignContent::Center, FlexboxConfig::AlignContent::FlexEnd, FlexboxConfig::AlignContent::FlexStart, FlexboxConfig::AlignContent::SpaceAround, FlexboxConfig::AlignContent::SpaceBetween, FlexboxConfig::AlignContent::SpaceEvenly, FlexboxConfig::AlignItems::Center, FlexboxConfig::AlignItems::FlexEnd, FlexboxConfig::AlignItems::FlexStart, FlexboxConfig::AlignItems::Stretch, FlexboxConfig::JustifyContent::Center, FlexboxConfig::JustifyContent::FlexEnd, FlexboxConfig::JustifyContent::FlexStart, FlexboxConfig::JustifyContent::SpaceAround, FlexboxConfig::JustifyContent::SpaceBetween, FlexboxConfig::JustifyContent::SpaceEvenly, FlexboxConfig::Wrap::NoWrap
|
||||
#include <memory> // for allocator_traits<>::value_type
|
||||
#include <utility> // for swap, move
|
||||
|
||||
#include "ftxui/dom/box_helper.hpp" // for Element, Compute
|
||||
|
@ -7,8 +7,7 @@
|
||||
#include <vector>
|
||||
#include "ftxui/dom/flexbox_config.hpp"
|
||||
|
||||
namespace ftxui {
|
||||
namespace flexbox_helper {
|
||||
namespace ftxui::flexbox_helper {
|
||||
|
||||
struct Block {
|
||||
// Input:
|
||||
@ -20,8 +19,8 @@ struct Block {
|
||||
int flex_shrink_y = 0;
|
||||
|
||||
// Output:
|
||||
int line;
|
||||
int line_position;
|
||||
int line{};
|
||||
int line_position{};
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
int dim_x = 0;
|
||||
@ -38,7 +37,6 @@ struct Global {
|
||||
|
||||
void Compute(Global& global);
|
||||
|
||||
} // namespace flexbox_helper
|
||||
} // namespace ftxui
|
||||
} // namespace ftxui::flexbox_helper
|
||||
|
||||
#endif /* end of include guard: FTXUI_DOM_FLEXBOX_HELPER_HPP*/
|
||||
|
@ -3,7 +3,6 @@
|
||||
// the LICENSE file.
|
||||
#include <gtest/gtest.h>
|
||||
#include <ftxui/dom/flexbox_config.hpp> // for FlexboxConfig, FlexboxConfig::Direction, FlexboxConfig::Direction::Column, FlexboxConfig::Direction::ColumnInversed, FlexboxConfig::Direction::Row, FlexboxConfig::Direction::RowInversed
|
||||
#include <memory> // for allocator_traits<>::value_type
|
||||
|
||||
#include "ftxui/dom/flexbox_helper.hpp"
|
||||
|
||||
|
@ -4,7 +4,6 @@
|
||||
#include <algorithm> // for max, min
|
||||
#include <memory> // for make_shared, __shared_ptr_access
|
||||
#include <utility> // for move
|
||||
#include <vector> // for __alloc_traits<>::value_type
|
||||
|
||||
#include "ftxui/dom/elements.hpp" // for Element, unpack, Elements, focus, frame, select, xframe, yframe
|
||||
#include "ftxui/dom/node.hpp" // for Node, Elements
|
||||
|
@ -2,7 +2,6 @@
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <gtest/gtest.h>
|
||||
#include <memory> // for allocator
|
||||
|
||||
#include "ftxui/dom/elements.hpp" // for gauge, gaugeUp
|
||||
#include "ftxui/dom/node.hpp" // for Render
|
||||
|
@ -35,7 +35,7 @@ int Integrate(std::vector<int>& elements) {
|
||||
class GridBox : public Node {
|
||||
public:
|
||||
explicit GridBox(std::vector<Elements> lines) : lines_(std::move(lines)) {
|
||||
y_size = lines_.size();
|
||||
y_size = static_cast<int>(lines_.size());
|
||||
for (const auto& line : lines_) {
|
||||
x_size = std::max(x_size, int(line.size()));
|
||||
}
|
||||
|
@ -4,7 +4,6 @@
|
||||
#include <gtest/gtest.h>
|
||||
#include <algorithm> // for remove
|
||||
#include <cstddef> // for size_t
|
||||
#include <memory> // for shared_ptr
|
||||
#include <string> // for allocator, basic_string, string
|
||||
#include <vector> // for vector
|
||||
|
||||
|
@ -3,7 +3,6 @@
|
||||
// the LICENSE file.
|
||||
#include <gtest/gtest.h> // for Test, EXPECT_EQ, Message, TestPartResult, TestInfo (ptr only), TEST
|
||||
#include <ftxui/dom/linear_gradient.hpp> // for LinearGradient::Stop, LinearGradient
|
||||
#include <memory> // for allocator_traits<>::value_type
|
||||
|
||||
#include "ftxui/dom/elements.hpp" // for operator|, text, bgcolor, color, Element
|
||||
#include "ftxui/dom/node.hpp" // for Render
|
||||
|
@ -2,8 +2,6 @@
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <ftxui/dom/node.hpp> // for Node, Elements
|
||||
#include <memory> // for __shared_ptr_access
|
||||
#include <vector> // for __alloc_traits<>::value_type
|
||||
|
||||
#include "ftxui/dom/node_decorator.hpp"
|
||||
#include "ftxui/dom/requirement.hpp" // for Requirement
|
||||
|
@ -15,7 +15,7 @@ struct Box;
|
||||
// Helper class.
|
||||
class NodeDecorator : public Node {
|
||||
public:
|
||||
NodeDecorator(Element child) : Node(unpack(std::move(child))) {}
|
||||
explicit NodeDecorator(Element child) : Node(unpack(std::move(child))) {}
|
||||
void ComputeRequirement() override;
|
||||
void SetBox(Box box) override;
|
||||
};
|
||||
|
@ -3,7 +3,6 @@
|
||||
// the LICENSE file.
|
||||
#include <memory> // for make_shared, __shared_ptr_access
|
||||
#include <utility> // for move
|
||||
#include <vector> // for __alloc_traits<>::value_type
|
||||
|
||||
#include "ftxui/dom/elements.hpp" // for Element, unpack, Decorator, reflect
|
||||
#include "ftxui/dom/node.hpp" // for Node, Elements
|
||||
|
@ -5,7 +5,6 @@
|
||||
#include <memory> // for make_shared, __shared_ptr_access
|
||||
#include <string> // for string
|
||||
#include <utility> // for move
|
||||
#include <vector> // for __alloc_traits<>::value_type
|
||||
|
||||
#include "ftxui/dom/elements.hpp" // for Element, vscroll_indicator, hscroll_indicator
|
||||
#include "ftxui/dom/node.hpp" // for Node, Elements
|
||||
|
@ -2,7 +2,6 @@
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <gtest/gtest.h>
|
||||
#include <memory> // for shared_ptr
|
||||
#include <string> // for allocator, to_string, string
|
||||
#include <utility> // for move
|
||||
|
||||
|
@ -4,7 +4,6 @@
|
||||
#include <algorithm> // for min, max
|
||||
#include <memory> // for make_shared, __shared_ptr_access
|
||||
#include <utility> // for move
|
||||
#include <vector> // for __alloc_traits<>::value_type
|
||||
|
||||
#include "ftxui/dom/elements.hpp" // for Constraint, WidthOrHeight, EQUAL, GREATER_THAN, LESS_THAN, WIDTH, unpack, Decorator, Element, size
|
||||
#include "ftxui/dom/node.hpp" // for Node, Elements
|
||||
|
@ -2,7 +2,6 @@
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <cstddef> // for size_t
|
||||
#include <memory> // for allocator, allocator_traits<>::value_type
|
||||
#include <string> // for basic_string, string
|
||||
#include <utility> // for move
|
||||
#include <vector> // for vector, __alloc_traits<>::value_type
|
||||
|
@ -2,7 +2,6 @@
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <gtest/gtest.h>
|
||||
#include <string> // for allocator
|
||||
|
||||
#include "ftxui/dom/elements.hpp" // for spinner
|
||||
#include "ftxui/dom/node.hpp" // for Render
|
||||
|
@ -73,7 +73,7 @@ Table::Table(std::vector<std::vector<Element>> input) {
|
||||
|
||||
// private
|
||||
void Table::Initialize(std::vector<std::vector<Element>> input) {
|
||||
input_dim_y_ = input.size();
|
||||
input_dim_y_ = static_cast<int>(input.size());
|
||||
input_dim_x_ = 0;
|
||||
for (auto& row : input) {
|
||||
input_dim_x_ = std::max(input_dim_x_, int(row.size()));
|
||||
|
@ -2,7 +2,6 @@
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <gtest/gtest.h>
|
||||
#include <memory> // for allocator
|
||||
|
||||
#include "ftxui/dom/elements.hpp" // for LIGHT, flex, center, EMPTY, DOUBLE
|
||||
#include "ftxui/dom/node.hpp" // for Render
|
||||
|
@ -5,7 +5,6 @@
|
||||
#include <memory> // for make_shared
|
||||
#include <string> // for string, wstring
|
||||
#include <utility> // for move
|
||||
#include <vector> // for vector
|
||||
|
||||
#include "ftxui/dom/deprecated.hpp" // for text, vtext
|
||||
#include "ftxui/dom/elements.hpp" // for Element, text, vtext
|
||||
|
@ -1,12 +1,10 @@
|
||||
// Copyright 2020 Arthur Sonzogni. All rights reserved.
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <algorithm> // for min
|
||||
#include <functional> // for function
|
||||
#include <memory> // for __shared_ptr_access, make_unique
|
||||
#include <type_traits> // for remove_reference, remove_reference<>::type
|
||||
#include <utility> // for move
|
||||
#include <vector> // for vector
|
||||
#include <algorithm> // for min
|
||||
#include <functional> // for function
|
||||
#include <memory> // for __shared_ptr_access, make_unique
|
||||
#include <utility> // for move
|
||||
|
||||
#include "ftxui/dom/elements.hpp" // for Element, Decorator, Elements, operator|, Fit, emptyElement, nothing, operator|=
|
||||
#include "ftxui/dom/node.hpp" // for Node, Node::Status
|
||||
|
@ -6,7 +6,6 @@
|
||||
#include <array> // for array
|
||||
#include <cmath>
|
||||
#include <cstdint>
|
||||
#include <string_view> // for literals
|
||||
|
||||
#include "ftxui/screen/color_info.hpp" // for GetColorInfo, ColorInfo
|
||||
#include "ftxui/screen/terminal.hpp" // for ColorSupport, Color, Palette256, TrueColor
|
||||
|
@ -1,16 +1,9 @@
|
||||
// Copyright 2020 Arthur Sonzogni. All rights reserved.
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.
|
||||
#include <cstdint> // for size_t
|
||||
#include <iostream> // for operator<<, stringstream, basic_ostream, flush, cout, ostream
|
||||
#include <limits>
|
||||
#include <map> // for _Rb_tree_const_iterator, map, operator!=, operator==
|
||||
#include <memory> // for allocator, allocator_traits<>::value_type
|
||||
#include <sstream> // IWYU pragma: keep
|
||||
#include <utility> // for pair
|
||||
|
||||
#include "ftxui/screen/image.hpp"
|
||||
#include "ftxui/screen/string.hpp" // for string_width
|
||||
|
||||
namespace ftxui {
|
||||
|
||||
|
@ -5,7 +5,6 @@
|
||||
#include <iostream> // for operator<<, stringstream, basic_ostream, flush, cout, ostream
|
||||
#include <limits>
|
||||
#include <map> // for _Rb_tree_const_iterator, map, operator!=, operator==
|
||||
#include <memory> // for allocator, allocator_traits<>::value_type
|
||||
#include <sstream> // IWYU pragma: keep
|
||||
#include <utility> // for pair
|
||||
|
||||
|
@ -5,6 +5,8 @@
|
||||
#define FTXUI_SCREEN_STRING_INTERNAL_HPP
|
||||
|
||||
#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
namespace ftxui {
|
||||
|
||||
|
@ -4,8 +4,7 @@
|
||||
#ifndef FTXUI_SCREEN_UTIL_HPP
|
||||
#define FTXUI_SCREEN_UTIL_HPP
|
||||
|
||||
namespace ftxui {
|
||||
namespace util {
|
||||
namespace ftxui::util {
|
||||
|
||||
// Similar to std::clamp, but allow hi to be lower than lo.
|
||||
template <class T>
|
||||
@ -13,7 +12,6 @@ constexpr const T& clamp(const T& v, const T& lo, const T& hi) {
|
||||
return v < lo ? lo : hi < v ? hi : v;
|
||||
}
|
||||
|
||||
} // namespace util
|
||||
} // namespace ftxui
|
||||
} // namespace ftxui::util
|
||||
|
||||
#endif /* end of include guard: FTXUI_SCREEN_UTIL_HPP */
|
||||
|
Loading…
Reference in New Issue
Block a user