mirror of
				https://github.com/ArthurSonzogni/FTXUI.git
				synced 2025-10-31 18:48:11 +08:00 
			
		
		
		
	 40e1fac3d4
			
		
	
	40e1fac3d4
	
	
	
		
			
			Warn users they have defined the min/max macros which is not compatible with other code from the standard library or FTXUI. Co-authored-by: Sylko Olzscher <sylko.olzscher@solostec.ch> Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com>
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // 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 <chrono>                  // for operator""s, chrono_literals
 | |
| #include <ftxui/dom/elements.hpp>  // for Element, operator|, separator, filler, hbox, size, spinner, text, vbox, bold, border, Fit, EQUAL, WIDTH
 | |
| #include <ftxui/screen/screen.hpp>  // for Full, Screen
 | |
| #include <iostream>                 // for cout, endl, ostream
 | |
| #include <string>                   // for to_string, operator<<, string
 | |
| #include <thread>                   // for sleep_for
 | |
| #include <utility>                  // for move
 | |
| #include <vector>                   // for vector
 | |
| 
 | |
| #include "ftxui/dom/node.hpp"      // for Render
 | |
| #include "ftxui/screen/color.hpp"  // for ftxui
 | |
| 
 | |
| int main() {
 | |
|   using namespace ftxui;
 | |
|   using namespace std::chrono_literals;
 | |
| 
 | |
|   std::string reset_position;
 | |
|   for (int index = 0; index < 200; ++index) {
 | |
|     std::vector<Element> entries;
 | |
|     for (int i = 0; i < 23; ++i) {
 | |
|       if (i != 0) {
 | |
|         entries.push_back(separator());
 | |
|       }
 | |
|       entries.push_back(  //
 | |
|           hbox({
 | |
|               text(std::to_string(i)) | size(WIDTH, EQUAL, 2),
 | |
|               separator(),
 | |
|               spinner(i, index) | bold,
 | |
|           }));
 | |
|     }
 | |
|     auto document = hbox({
 | |
|         vbox(std::move(entries)) | border,
 | |
|         filler(),
 | |
|     });
 | |
|     auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(document));
 | |
|     Render(screen, document);
 | |
|     std::cout << reset_position;
 | |
|     screen.Print();
 | |
|     reset_position = screen.ResetPosition();
 | |
| 
 | |
|     std::this_thread::sleep_for(0.1s);
 | |
|   }
 | |
|   std::cout << std::endl;
 | |
| }
 |