mirror of
				https://github.com/ArthurSonzogni/FTXUI.git
				synced 2025-11-01 02:58:12 +08:00 
			
		
		
		
	Add RadioBox.
This commit is contained in:
		| @@ -4,12 +4,13 @@ function(example name) | ||||
|   target_link_libraries(${name} PUBLIC component) | ||||
| endfunction(example) | ||||
|  | ||||
| example(checkbox) | ||||
| example(gallery) | ||||
| example(input) | ||||
| example(menu) | ||||
| example(menu2) | ||||
| example(menu_style) | ||||
| example(toggle) | ||||
| example(radiobox) | ||||
| example(tab_horizontal) | ||||
| example(tab_vertical) | ||||
| example(checkbox) | ||||
| example(toggle) | ||||
|   | ||||
| @@ -20,11 +20,21 @@ class MyComponent : public Component { | ||||
|       box_1_.label = L"Build examples"; | ||||
|       box_2_.label = L"Build tests"; | ||||
|       box_3_.label = L"Use WebAssembly"; | ||||
|       box_3_.state = true; | ||||
|     } | ||||
|  | ||||
|     Element Render() { | ||||
|       return | ||||
|         window(text(L" Checkbox "), | ||||
|           hbox( | ||||
|             container_.Render() | ||||
|           ) | ||||
|         ); | ||||
|     } | ||||
| }; | ||||
|  | ||||
| int main(int argc, const char *argv[]) { | ||||
|   auto screen = ScreenInteractive::TerminalOutput(); | ||||
|   auto screen = ScreenInteractive::FixedSize(30,5); | ||||
|   MyComponent component; | ||||
|   screen.Loop(&component); | ||||
|   return 0; | ||||
|   | ||||
							
								
								
									
										19
									
								
								examples/component/radiobox.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								examples/component/radiobox.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| #include "ftxui/component/radiobox.hpp" | ||||
| #include "ftxui/component/component.hpp" | ||||
| #include "ftxui/component/container.hpp" | ||||
| #include "ftxui/component/screen_interactive.hpp" | ||||
|  | ||||
| using namespace ftxui; | ||||
|  | ||||
| int main(int argc, const char* argv[]) { | ||||
|   auto screen = ScreenInteractive::TerminalOutput(); | ||||
|   RadioBox radiobox; | ||||
|   radiobox.entries = { | ||||
|       L"Use gcc", | ||||
|       L"Use clang", | ||||
|       L"Use emscripten", | ||||
|       L"Use tcc", | ||||
|   }; | ||||
|   screen.Loop(&radiobox); | ||||
|   return 0; | ||||
| } | ||||
| @@ -2,7 +2,7 @@ | ||||
| #include <thread> | ||||
|  | ||||
| #include "ftxui/component/container.hpp" | ||||
| #include "ftxui/component/menu.hpp" | ||||
| #include "ftxui/component/radiobox.hpp" | ||||
| #include "ftxui/component/screen_interactive.hpp" | ||||
| #include "ftxui/component/toggle.hpp" | ||||
| #include "ftxui/screen/string.hpp" | ||||
| @@ -10,55 +10,59 @@ | ||||
| using namespace ftxui; | ||||
|  | ||||
| class MyComponent : public Component { | ||||
|   public: | ||||
|    MyComponent() { | ||||
|      Add(&container_); | ||||
|      container_.Add(&toggle_); | ||||
|  public: | ||||
|   MyComponent() { | ||||
|     Add(&container_); | ||||
|     container_.Add(&toggle_); | ||||
|  | ||||
|      toggle_.entries = { | ||||
|        L"menu_1", | ||||
|        L"menu_2", | ||||
|        L"menu_3", | ||||
|      }; | ||||
|     toggle_.entries = { | ||||
|         L"tab_1", | ||||
|         L"tab_2", | ||||
|         L"tab_3", | ||||
|     }; | ||||
|  | ||||
|      container_.Add(&tab_container_); | ||||
|      | ||||
|      menu_1_.entries = { | ||||
|        L"Forest", | ||||
|        L"Water", | ||||
|        L"I don't know" | ||||
|      }; | ||||
|      tab_container_.Add(&menu_1_); | ||||
|     container_.Add(&tab_container_); | ||||
|  | ||||
|      menu_2_.entries = { | ||||
|        L"Hello", | ||||
|        L"Hi", | ||||
|        L"Hay", | ||||
|      }; | ||||
|      tab_container_.Add(&menu_2_); | ||||
|     radiobox_1_.entries = {L"Forest", L"Water", L"I don't know"}; | ||||
|     tab_container_.Add(&radiobox_1_); | ||||
|  | ||||
|      menu_3_.entries = { | ||||
|        L"Table", | ||||
|        L"Nothing", | ||||
|        L"Is", | ||||
|        L"Empty", | ||||
|      }; | ||||
|      tab_container_.Add(&menu_3_); | ||||
|    } | ||||
|     radiobox_2_.entries = { | ||||
|         L"Hello", | ||||
|         L"Hi", | ||||
|         L"Hay", | ||||
|     }; | ||||
|     tab_container_.Add(&radiobox_2_); | ||||
|  | ||||
|    std::function<void()> on_enter = [](){}; | ||||
|   private: | ||||
|    Toggle toggle_; | ||||
|    Container container_ = Container::Vertical(); | ||||
|    Container tab_container_ = Container::Tab(&(toggle_.selected)); | ||||
|    Menu menu_1_; | ||||
|    Menu menu_2_; | ||||
|    Menu menu_3_; | ||||
|     radiobox_3_.entries = { | ||||
|         L"Table", | ||||
|         L"Nothing", | ||||
|         L"Is", | ||||
|         L"Empty", | ||||
|     }; | ||||
|     tab_container_.Add(&radiobox_3_); | ||||
|   } | ||||
|  | ||||
|   std::function<void()> on_enter = []() {}; | ||||
|  | ||||
|   Element Render(){ | ||||
|     return | ||||
|       vbox( | ||||
|         toggle_.Render(), | ||||
|         separator(), | ||||
|         tab_container_.Render() | ||||
|       ) | frame; | ||||
|   } | ||||
|  | ||||
|  private: | ||||
|   Toggle toggle_; | ||||
|   Container container_ = Container::Vertical(); | ||||
|   Container tab_container_ = Container::Tab(&(toggle_.selected)); | ||||
|   RadioBox radiobox_1_; | ||||
|   RadioBox radiobox_2_; | ||||
|   RadioBox radiobox_3_; | ||||
| }; | ||||
|  | ||||
|   | ||||
| int main(int argc, const char *argv[]) | ||||
| { | ||||
| int main(int argc, const char* argv[]) { | ||||
|   auto screen = ScreenInteractive::TerminalOutput(); | ||||
|   MyComponent component; | ||||
|   component.on_enter = screen.ExitLoopClosure(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Arthur Sonzogni
					Arthur Sonzogni