mirror of
				https://github.com/ArthurSonzogni/FTXUI.git
				synced 2025-10-31 18:48:11 +08:00 
			
		
		
		
	Use shared_ptr instead of unique_ptr for elements.
This allow users to pass it into initializer list. Then clang-format will produce 'acceptable' indentations. This fixes: https://github.com/ArthurSonzogni/FTXUI/issues/18
This commit is contained in:
		| @@ -6,20 +6,22 @@ | ||||
| #define FTXUI_DOM_ELEMENTS_HPP | ||||
|  | ||||
| #include <functional> | ||||
| #include <memory> | ||||
|  | ||||
| #include "ftxui/dom/node.hpp" | ||||
| #include "ftxui/screen/color.hpp" | ||||
| #include "ftxui/screen/screen.hpp" | ||||
|  | ||||
| namespace ftxui { | ||||
|  | ||||
| using Element = std::unique_ptr<Node>; | ||||
| class Node; | ||||
| using Element = std::shared_ptr<Node>; | ||||
| using Elements = std::vector<Element>; | ||||
| using Decorator = std::function<Element(Element)>; | ||||
| using GraphFunction = std::function<std::vector<int>(int, int)>; | ||||
|  | ||||
| // --- Widget --- | ||||
| Element text(std::wstring text); | ||||
| Element separator(); | ||||
| Element separator(void); | ||||
| Element separator(Pixel); | ||||
| Element gauge(float ratio); | ||||
| Element border(Element); | ||||
|   | ||||
| @@ -14,10 +14,13 @@ | ||||
|  | ||||
| namespace ftxui { | ||||
|  | ||||
| using Element = std::shared_ptr<Node>; | ||||
| using Elements = std::vector<std::shared_ptr<Node>>; | ||||
|  | ||||
| class Node { | ||||
|  public: | ||||
|   Node(); | ||||
|   Node(std::vector<std::unique_ptr<Node>> children); | ||||
|   Node(Elements children); | ||||
|   virtual ~Node(); | ||||
|  | ||||
|   // Step 1: Compute layout requirement. Tell parent what dimensions this | ||||
| @@ -33,7 +36,7 @@ class Node { | ||||
|   // Step 3: Draw this element. | ||||
|   virtual void Render(Screen& screen); | ||||
|  | ||||
|   std::vector<std::unique_ptr<Node>> children; | ||||
|   std::vector<Element> children; | ||||
|  | ||||
|  protected: | ||||
|   Requirement requirement_; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 ArthurSonzogni
					ArthurSonzogni