mirror of
				https://github.com/ArthurSonzogni/FTXUI.git
				synced 2025-11-04 13:38:14 +08:00 
			
		
		
		
	Add menu styles.
This commit is contained in:
		@@ -1,3 +1,6 @@
 | 
			
		||||
example(color)
 | 
			
		||||
example(dbox)
 | 
			
		||||
example(frame)
 | 
			
		||||
example(gauge)
 | 
			
		||||
example(separator)
 | 
			
		||||
example(vbox_hbox)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										58
									
								
								examples/dom/color.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								examples/dom/color.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,58 @@
 | 
			
		||||
#include "ftxui/screen.hpp"
 | 
			
		||||
#include "ftxui/dom/elements.hpp"
 | 
			
		||||
#include <iostream>
 | 
			
		||||
 | 
			
		||||
int main(int argc, const char *argv[])
 | 
			
		||||
{
 | 
			
		||||
  using namespace ftxui;
 | 
			
		||||
  using namespace ftxui::dom;
 | 
			
		||||
  auto document =
 | 
			
		||||
    hbox(
 | 
			
		||||
      vbox(
 | 
			
		||||
        color(Color::Default, text(L"Default")),
 | 
			
		||||
        color(Color::Black, text(L"Black")),
 | 
			
		||||
        color(Color::GrayDark, text(L"GrayDark")),
 | 
			
		||||
        color(Color::GrayLight, text(L"GrayLight")),
 | 
			
		||||
        color(Color::White, text(L"White")),
 | 
			
		||||
        color(Color::Blue, text(L"Blue")),
 | 
			
		||||
        color(Color::BlueLight, text(L"BlueLight")),
 | 
			
		||||
        color(Color::Cyan, text(L"Cyan")),
 | 
			
		||||
        color(Color::CyanLight, text(L"CyanLight")),
 | 
			
		||||
        color(Color::Green, text(L"Green")),
 | 
			
		||||
        color(Color::GreenLight, text(L"GreenLight")),
 | 
			
		||||
        color(Color::Magenta, text(L"Magenta")),
 | 
			
		||||
        color(Color::MagentaLight, text(L"MagentaLight")),
 | 
			
		||||
        color(Color::Red, text(L"Red")),
 | 
			
		||||
        color(Color::RedLight, text(L"RedLight")),
 | 
			
		||||
        color(Color::Yellow, text(L"Yellow")),
 | 
			
		||||
        color(Color::YellowLight, text(L"YellowLight"))
 | 
			
		||||
      ),
 | 
			
		||||
      vbox(
 | 
			
		||||
        bgcolor(Color::Default, text(L"Default")),
 | 
			
		||||
        bgcolor(Color::Black, text(L"Black")),
 | 
			
		||||
        bgcolor(Color::GrayDark, text(L"GrayDark")),
 | 
			
		||||
        bgcolor(Color::GrayLight, text(L"GrayLight")),
 | 
			
		||||
        bgcolor(Color::White, text(L"White")),
 | 
			
		||||
        bgcolor(Color::Blue, text(L"Blue")),
 | 
			
		||||
        bgcolor(Color::BlueLight, text(L"BlueLight")),
 | 
			
		||||
        bgcolor(Color::Cyan, text(L"Cyan")),
 | 
			
		||||
        bgcolor(Color::CyanLight, text(L"CyanLight")),
 | 
			
		||||
        bgcolor(Color::Green, text(L"Green")),
 | 
			
		||||
        bgcolor(Color::GreenLight, text(L"GreenLight")),
 | 
			
		||||
        bgcolor(Color::Magenta, text(L"Magenta")),
 | 
			
		||||
        bgcolor(Color::MagentaLight, text(L"MagentaLight")),
 | 
			
		||||
        bgcolor(Color::Red, text(L"Red")),
 | 
			
		||||
        bgcolor(Color::RedLight, text(L"RedLight")),
 | 
			
		||||
        bgcolor(Color::Yellow, text(L"Yellow")),
 | 
			
		||||
        bgcolor(Color::YellowLight, text(L"YellowLight"))
 | 
			
		||||
      ),
 | 
			
		||||
      flex()
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
  auto screen = ftxui::Screen::TerminalOutput(document);
 | 
			
		||||
  Render(screen, document.get());
 | 
			
		||||
 | 
			
		||||
  std::cout << screen.ToString();
 | 
			
		||||
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										31
									
								
								examples/dom/dbox.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								examples/dom/dbox.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
#include "ftxui/screen.hpp"
 | 
			
		||||
#include "ftxui/dom/elements.hpp"
 | 
			
		||||
#include <iostream>
 | 
			
		||||
 | 
			
		||||
int main(int argc, const char *argv[])
 | 
			
		||||
{
 | 
			
		||||
  using namespace ftxui::dom;
 | 
			
		||||
  auto document =
 | 
			
		||||
    dbox(
 | 
			
		||||
      frame(
 | 
			
		||||
        vbox(
 | 
			
		||||
          text(L"line_1"),
 | 
			
		||||
          text(L"line_2"),
 | 
			
		||||
          text(L"line_3"),
 | 
			
		||||
          text(L"line_4"),
 | 
			
		||||
          text(L"line_5")
 | 
			
		||||
        )
 | 
			
		||||
      ),
 | 
			
		||||
      center(
 | 
			
		||||
        frame(
 | 
			
		||||
          text(L"overlay")
 | 
			
		||||
        )
 | 
			
		||||
      )
 | 
			
		||||
    );
 | 
			
		||||
  auto screen = ftxui::Screen::TerminalOutput(document);
 | 
			
		||||
  Render(screen, document.get());
 | 
			
		||||
 | 
			
		||||
  std::cout << screen.ToString();
 | 
			
		||||
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										28
									
								
								examples/dom/gauge.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								examples/dom/gauge.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
#include <chrono>
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include <thread>
 | 
			
		||||
 | 
			
		||||
#include "ftxui/screen.hpp"
 | 
			
		||||
#include "ftxui/dom/elements.hpp"
 | 
			
		||||
 | 
			
		||||
int main(int argc, const char *argv[])
 | 
			
		||||
{
 | 
			
		||||
  for(float percentage = 0; percentage <= 1.0; percentage+=0.002) {
 | 
			
		||||
    std::wstring data_downloaded =
 | 
			
		||||
        std::to_wstring(int(percentage * 5000)) + L"/5000";
 | 
			
		||||
    using namespace ftxui::dom;
 | 
			
		||||
    auto document =
 | 
			
		||||
        hbox(
 | 
			
		||||
          text(L"downloading:"),
 | 
			
		||||
          flex(gauge(percentage)),
 | 
			
		||||
          text(L" " + data_downloaded)
 | 
			
		||||
        );
 | 
			
		||||
    auto screen = ftxui::Screen(100, 1);
 | 
			
		||||
    Render(screen, document.get());
 | 
			
		||||
    std::cout << '\r' << screen.ToString() << std::flush;
 | 
			
		||||
 | 
			
		||||
    using namespace std::chrono_literals;
 | 
			
		||||
    std::this_thread::sleep_for(0.01s);
 | 
			
		||||
  }
 | 
			
		||||
  std::cout << std::endl;
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user