mirror of
				https://github.com/ArthurSonzogni/FTXUI.git
				synced 2025-11-04 13:38:14 +08:00 
			
		
		
		
	Add hflow.
This commit is contained in:
		
							
								
								
									
										51
									
								
								examples/dom/hflow.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								examples/dom/hflow.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,51 @@
 | 
			
		||||
#include "ftxui/screen/screen.hpp"
 | 
			
		||||
#include "ftxui/screen/string.hpp"
 | 
			
		||||
#include "ftxui/dom/elements.hpp"
 | 
			
		||||
#include <iostream>
 | 
			
		||||
 | 
			
		||||
int main(int argc, const char *argv[])
 | 
			
		||||
{
 | 
			
		||||
  using namespace ftxui;
 | 
			
		||||
  auto make_box = [](size_t dimx, size_t dimy) {
 | 
			
		||||
    std::wstring title = to_wstring(dimx) + L"x" + to_wstring(dimy);
 | 
			
		||||
    return
 | 
			
		||||
      window(
 | 
			
		||||
        text(title) | hcenter | bold,
 | 
			
		||||
        text(L"content") | hcenter | dim
 | 
			
		||||
      ) | size(WIDTH, EQUAL, dimx)
 | 
			
		||||
        | size(HEIGHT, EQUAL, dimy)
 | 
			
		||||
        ;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  auto document =
 | 
			
		||||
    hflow(
 | 
			
		||||
      make_box(7,7),
 | 
			
		||||
      make_box(7,5),
 | 
			
		||||
      make_box(5,7),
 | 
			
		||||
      make_box(10,4),
 | 
			
		||||
      make_box(10,4),
 | 
			
		||||
      make_box(10,4),
 | 
			
		||||
      make_box(10,4),
 | 
			
		||||
      make_box(11,4),
 | 
			
		||||
      make_box(11,4),
 | 
			
		||||
      make_box(11,4),
 | 
			
		||||
      make_box(11,4),
 | 
			
		||||
      make_box(12,4),
 | 
			
		||||
      make_box(12,5),
 | 
			
		||||
      make_box(12,4),
 | 
			
		||||
      make_box(13,4),
 | 
			
		||||
      make_box(13,3),
 | 
			
		||||
      make_box(13,3),
 | 
			
		||||
      make_box(10,3)
 | 
			
		||||
    ) | size(WIDTH, GREATER_THAN, 20)
 | 
			
		||||
      | border
 | 
			
		||||
      | size(HEIGHT, GREATER_THAN, 30)
 | 
			
		||||
      | size(WIDTH, LESS_THAN, 50)
 | 
			
		||||
      ;
 | 
			
		||||
 | 
			
		||||
  auto screen = Screen::TerminalOutput(document);
 | 
			
		||||
  Render(screen, document.get());
 | 
			
		||||
  std::cout << screen.ToString() << std::endl;
 | 
			
		||||
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user