Files
FTXUI/menu_8cpp_source.html
2025-04-30 10:23:00 +00:00

938 lines
183 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- HTML header for doxygen 1.8.14-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="cache-control" content="max-age=86400"/>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>FTXUI: src/ftxui/component/menu.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen_extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">FTXUI
&#160;<span id="projectnumber">6.1.1</span>
</div>
<div id="projectbrief">C++ functional terminal UI.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function() { init_codefold(0); });
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('menu_8cpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">menu.cpp</div></div>
</div><!--header-->
<div class="contents">
<a href="menu_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">// Copyright 2020 Arthur Sonzogni. All rights reserved.</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">// Use of this source code is governed by the MIT license that can be found in</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">// the LICENSE file.</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include &lt;algorithm&gt;</span> <span class="comment">// for max, fill_n, reverse</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include &lt;chrono&gt;</span> <span class="comment">// for milliseconds</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include &lt;<a class="code" href="direction_8hpp.html">ftxui/dom/direction.hpp</a>&gt;</span> <span class="comment">// for Direction, Direction::Down, Direction::Left, Direction::Right, Direction::Up</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include &lt;functional&gt;</span> <span class="comment">// for function</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &lt;string&gt;</span> <span class="comment">// for operator+, string</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &lt;utility&gt;</span> <span class="comment">// for move</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &lt;vector&gt;</span> <span class="comment">// for vector, __alloc_traits&lt;&gt;::value_type</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &quot;<a class="code" href="animation_8hpp.html">ftxui/component/animation.hpp</a>&quot;</span> <span class="comment">// for Animator, Linear</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &quot;<a class="code" href="component_8hpp.html">ftxui/component/component.hpp</a>&quot;</span> <span class="comment">// for Make, Menu, MenuEntry, Toggle</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &quot;<a class="code" href="component__base_8hpp.html">ftxui/component/component_base.hpp</a>&quot;</span> <span class="comment">// for ComponentBase</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &quot;<a class="code" href="component__options_8hpp.html">ftxui/component/component_options.hpp</a>&quot;</span> <span class="comment">// for MenuOption, MenuEntryOption, UnderlineOption, AnimatedColorOption, AnimatedColorsOption, EntryState</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &quot;<a class="code" href="event_8hpp.html">ftxui/component/event.hpp</a>&quot;</span> <span class="comment">// for Event, Event::ArrowDown, Event::ArrowLeft, Event::ArrowRight, Event::ArrowUp, Event::End, Event::Home, Event::PageDown, Event::PageUp, Event::Return, Event::Tab, Event::TabReverse</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &quot;<a class="code" href="mouse_8hpp.html">ftxui/component/mouse.hpp</a>&quot;</span> <span class="comment">// for Mouse, Mouse::Left, Mouse::Released, Mouse::WheelDown, Mouse::WheelUp, Mouse::None</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &quot;<a class="code" href="screen__interactive_8hpp.html">ftxui/component/screen_interactive.hpp</a>&quot;</span> <span class="comment">// for Component</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &quot;<a class="code" href="elements_8hpp.html">ftxui/dom/elements.hpp</a>&quot;</span> <span class="comment">// for operator|, Element, reflect, Decorator, nothing, Elements, bgcolor, color, hbox, separatorHSelector, separatorVSelector, vbox, xflex, yflex, text, bold, focus, inverted, select</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &quot;<a class="code" href="box_8hpp.html">ftxui/screen/box.hpp</a>&quot;</span> <span class="comment">// for Box</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &quot;<a class="code" href="color_8hpp.html">ftxui/screen/color.hpp</a>&quot;</span> <span class="comment">// for Color</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &quot;<a class="code" href="util_8hpp.html">ftxui/screen/util.hpp</a>&quot;</span> <span class="comment">// for clamp</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include &quot;<a class="code" href="ref_8hpp.html">ftxui/util/ref.hpp</a>&quot;</span> <span class="comment">// for Ref, ConstStringListRef, ConstStringRef</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceftxui.html">ftxui</a> {</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="keyword">namespace </span>{</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><a class="code hl_typedef" href="namespaceftxui.html#a26a62b91b796ce76a5582cf194da3fb2">Element</a> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">DefaultOptionTransform</a>(<span class="keyword">const</span> EntryState&amp; state) {</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> std::string label = (state.active ? <span class="stringliteral">&quot;&gt; &quot;</span> : <span class="stringliteral">&quot; &quot;</span>) + state.label; <span class="comment">// NOLINT</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <a class="code hl_typedef" href="namespaceftxui.html#a26a62b91b796ce76a5582cf194da3fb2">Element</a> e = <a class="code hl_function" href="namespaceftxui.html#a75baaa2734ed76a9f478beaafa87ae57">text</a>(std::move(label));</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">if</span> (state.focused) {</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> e = e | <a class="code hl_function" href="namespaceftxui.html#a672456b8f2091b615a30ff755418b37b">inverted</a>;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> }</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordflow">if</span> (state.active) {</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> e = e | <a class="code hl_function" href="namespaceftxui.html#a353c769068e25303eb41fa2da565c604">bold</a>;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> }</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">return</span> e;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span>}</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">IsInverted</a>(<a class="code hl_enumeration" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aa">Direction</a> direction) {</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordflow">switch</span> (direction) {</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa258f49887ef8d14ac268c92b02503aaa">Direction::Up</a>:</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa945d5e233cf7d6240f6b783b36a374ff">Direction::Left</a>:</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa08a38277b0309070706f6652eeae9a53">Direction::Down</a>:</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa92b09c7c48c520c3c55e497875da437c">Direction::Right</a>:</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> }</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// NOT_REACHED()</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span>}</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="keywordtype">bool</span> IsHorizontal(<a class="code hl_enumeration" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aa">Direction</a> direction) {</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">switch</span> (direction) {</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa945d5e233cf7d6240f6b783b36a374ff">Direction::Left</a>:</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa92b09c7c48c520c3c55e497875da437c">Direction::Right</a>:</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa08a38277b0309070706f6652eeae9a53">Direction::Down</a>:</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa258f49887ef8d14ac268c92b02503aaa">Direction::Up</a>:</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> }</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// NOT_REACHED()</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span>}</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span>} <span class="comment">// namespace</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="comment"></span> </div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="comment">/// @brief A list of items. The user can navigate through them.</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="comment">/// @ingroup component</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="comment"></span><span class="keyword">class </span>MenuBase : <span class="keyword">public</span> ComponentBase, <span class="keyword">public</span> MenuOption {</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">explicit</span> MenuBase(<span class="keyword">const</span> MenuOption&amp; <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">option</a>) : MenuOption(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">option</a>) {}</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordtype">bool</span> IsHorizontal() { <span class="keywordflow">return</span> ftxui::IsHorizontal(<a class="code hl_variable" href="structftxui_1_1MenuOption.html#a53421c695d00016ab925777d423b4eb6">direction</a>); }</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordtype">void</span> OnChange() {</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="structftxui_1_1MenuOption.html#abdfe3c83deeec2323ff90248815b8f0a">on_change</a>) {</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#abdfe3c83deeec2323ff90248815b8f0a">on_change</a>();</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> }</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> }</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordtype">void</span> OnEnter() {</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="structftxui_1_1MenuOption.html#a4ba9530701be07334a17c0184747c535">on_enter</a>) {</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a4ba9530701be07334a17c0184747c535">on_enter</a>();</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> }</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> }</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="keywordtype">void</span> Clamp() {</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>() != selected_previous_) {</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> SelectedTakeFocus();</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> }</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> boxes_.resize(<a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>());</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>() = <a class="code hl_function" href="namespaceftxui_1_1util.html#aab9f0232e41c960b4a09629eac33aef3">util::clamp</a>(<a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>(), 0, <a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>() - 1);</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> selected_previous_ = <a class="code hl_function" href="namespaceftxui_1_1util.html#aab9f0232e41c960b4a09629eac33aef3">util::clamp</a>(selected_previous_, 0, <a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>() - 1);</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> selected_focus_ = <a class="code hl_function" href="namespaceftxui_1_1util.html#aab9f0232e41c960b4a09629eac33aef3">util::clamp</a>(selected_focus_, 0, <a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>() - 1);</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a93d5d37708b77971a666b73486017835">focused_entry</a>() = <a class="code hl_function" href="namespaceftxui_1_1util.html#aab9f0232e41c960b4a09629eac33aef3">util::clamp</a>(<a class="code hl_variable" href="structftxui_1_1MenuOption.html#a93d5d37708b77971a666b73486017835">focused_entry</a>(), 0, <a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>() - 1);</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> }</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordtype">void</span> OnAnimation(animation::Params&amp; <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">params</a>)<span class="keyword"> override </span>{</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> animator_first_.OnAnimation(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">params</a>);</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> animator_second_.OnAnimation(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">params</a>);</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">animator</a> : animator_background_) {</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">animator</a>.OnAnimation(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">params</a>);</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> }</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">animator</a> : animator_foreground_) {</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">animator</a>.OnAnimation(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">params</a>);</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> }</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> }</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <a class="code hl_typedef" href="namespaceftxui.html#a26a62b91b796ce76a5582cf194da3fb2">Element</a> OnRender()<span class="keyword"> override </span>{</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> Clamp();</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> UpdateAnimationTarget();</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> </div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <a class="code hl_typedef" href="namespaceftxui.html#a792071ccdd115df37a515b3e49d174ef">Elements</a> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">elements</a>;</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">is_menu_focused</a> = <a class="code hl_function" href="classftxui_1_1ComponentBase.html#a0cc612fa3d753b456e0f480f44654a9f">Focused</a>();</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="structftxui_1_1MenuOption.html#a11476ea3dc58bf17777879693fb2985a">elements_prefix</a>) {</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">elements</a>.push_back(<a class="code hl_variable" href="structftxui_1_1MenuOption.html#a11476ea3dc58bf17777879693fb2985a">elements_prefix</a>());</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> }</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">elements</a>.reserve(<a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>());</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>(); ++i) {</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keywordflow">if</span> (i != 0 &amp;&amp; <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a9504d8d3bfa1daaab000e5455536b20d">elements_infix</a>) {</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">elements</a>.push_back(<a class="code hl_variable" href="structftxui_1_1MenuOption.html#a9504d8d3bfa1daaab000e5455536b20d">elements_infix</a>());</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> }</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">is_focused</a> = (<a class="code hl_variable" href="structftxui_1_1MenuOption.html#a93d5d37708b77971a666b73486017835">focused_entry</a>() == i) &amp;&amp; <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">is_menu_focused</a>;</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">is_selected</a> = (<a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>() == i);</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keyword">const</span> EntryState state = {</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a7b534b117dbbe826d34ba17af85f1e93">entries</a>[i], <span class="keyword">false</span>, <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">is_selected</a>, <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">is_focused</a>, i,</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> };</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <a class="code hl_typedef" href="namespaceftxui.html#a26a62b91b796ce76a5582cf194da3fb2">Element</a> element = (<a class="code hl_variable" href="structftxui_1_1MenuOption.html#a2076e7253c5acce2321c067e9b7a1823">entries_option</a>.<a class="code hl_variable" href="namespaceftxui.html#a5641c45021a8cc20bdd21498563825a0">transform</a> ? <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a2076e7253c5acce2321c067e9b7a1823">entries_option</a>.<a class="code hl_variable" href="namespaceftxui.html#a5641c45021a8cc20bdd21498563825a0">transform</a></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> : <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">DefaultOptionTransform</a>) <span class="comment">//</span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> (state);</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keywordflow">if</span> (selected_focus_ == i) {</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> element |= <a class="code hl_function" href="namespaceftxui.html#aa2d7d671f184f85e0f396f2610fa6c2e">focus</a>;</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> }</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> element |= AnimatedColorStyle(i);</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> element |= <a class="code hl_function" href="namespaceftxui.html#aaff8245861617a3d9e846e99de582a63">reflect</a>(boxes_[i]);</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">elements</a>.push_back(element);</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> }</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="structftxui_1_1MenuOption.html#ab08362a5698543aec0fbb37f99777119">elements_postfix</a>) {</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">elements</a>.push_back(<a class="code hl_variable" href="structftxui_1_1MenuOption.html#ab08362a5698543aec0fbb37f99777119">elements_postfix</a>());</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> }</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> </div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">IsInverted</a>(<a class="code hl_variable" href="structftxui_1_1MenuOption.html#a53421c695d00016ab925777d423b4eb6">direction</a>)) {</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> std::reverse(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">elements</a>.begin(), <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">elements</a>.end());</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> }</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> </div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keyword">const</span> <a class="code hl_typedef" href="namespaceftxui.html#a26a62b91b796ce76a5582cf194da3fb2">Element</a> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">bar</a> = IsHorizontal()</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> ? <a class="code hl_function" href="namespaceftxui.html#a552ba6d33b3c9bec586b99fba4c243ac">hbox</a>(std::move(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">elements</a>), selected_focus_)</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> : <a class="code hl_function" href="namespaceftxui.html#afd28058f0ccbbdf34691a85a7cc9b2e3">vbox</a>(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">std</a>::<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">move</a>(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">elements</a>), selected_focus_);</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="structftxui_1_1MenuOption.html#a55b558727e02acce3f5259811b2dfe5b">underline</a>.<a class="code hl_variable" href="structftxui_1_1UnderlineOption.html#a8740ba80e30dd75e71d09fa1dcf04f3d">enabled</a>) {</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">bar</a> | <a class="code hl_function" href="namespaceftxui.html#aaff8245861617a3d9e846e99de582a63">reflect</a>(box_);</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> }</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> </div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keywordflow">if</span> (IsHorizontal()) {</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceftxui.html#afd28058f0ccbbdf34691a85a7cc9b2e3">vbox</a>({</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">bar</a> | <a class="code hl_function" href="namespaceftxui.html#a0dbba98e14f63f1dd5163cbdc4f42da8">xflex</a>,</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <a class="code hl_function" href="namespaceftxui.html#a50413065cee4757447b35c3a500667d3">separatorHSelector</a>(first_, second_, <span class="comment">//</span></div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a55b558727e02acce3f5259811b2dfe5b">underline</a>.<a class="code hl_variable" href="structftxui_1_1UnderlineOption.html#a593f1ba15add21d1972c01372db369df">color_active</a>,</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a55b558727e02acce3f5259811b2dfe5b">underline</a>.<a class="code hl_variable" href="structftxui_1_1UnderlineOption.html#ad5a77e0bc0ce649271a13949a7a0a635">color_inactive</a>),</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> }) |</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <a class="code hl_function" href="namespaceftxui.html#aaff8245861617a3d9e846e99de582a63">reflect</a>(box_);</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceftxui.html#a552ba6d33b3c9bec586b99fba4c243ac">hbox</a>({</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <a class="code hl_function" href="namespaceftxui.html#a1a0211233bacd4eb4d31a8e3d58b5f48">separatorVSelector</a>(first_, second_, <span class="comment">//</span></div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a55b558727e02acce3f5259811b2dfe5b">underline</a>.<a class="code hl_variable" href="structftxui_1_1UnderlineOption.html#a593f1ba15add21d1972c01372db369df">color_active</a>,</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a55b558727e02acce3f5259811b2dfe5b">underline</a>.<a class="code hl_variable" href="structftxui_1_1UnderlineOption.html#ad5a77e0bc0ce649271a13949a7a0a635">color_inactive</a>),</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">bar</a> | <a class="code hl_function" href="namespaceftxui.html#a42c7a33df6d890de30fc1ebb2d1b3ca6">yflex</a>,</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> }) |</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <a class="code hl_function" href="namespaceftxui.html#aaff8245861617a3d9e846e99de582a63">reflect</a>(box_);</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> }</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> }</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> </div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <span class="keywordtype">void</span> SelectedTakeFocus() {</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> selected_previous_ = <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>();</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> selected_focus_ = <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>();</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> }</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> </div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <span class="keywordtype">void</span> OnUp() {</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="keywordflow">switch</span> (<a class="code hl_variable" href="structftxui_1_1MenuOption.html#a53421c695d00016ab925777d423b4eb6">direction</a>) {</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa258f49887ef8d14ac268c92b02503aaa">Direction::Up</a>:</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>()++;</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa08a38277b0309070706f6652eeae9a53">Direction::Down</a>:</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>()--;</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa945d5e233cf7d6240f6b783b36a374ff">Direction::Left</a>:</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa92b09c7c48c520c3c55e497875da437c">Direction::Right</a>:</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> }</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> }</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> </div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="keywordtype">void</span> OnDown() {</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <span class="keywordflow">switch</span> (<a class="code hl_variable" href="structftxui_1_1MenuOption.html#a53421c695d00016ab925777d423b4eb6">direction</a>) {</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa258f49887ef8d14ac268c92b02503aaa">Direction::Up</a>:</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>()--;</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa08a38277b0309070706f6652eeae9a53">Direction::Down</a>:</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>()++;</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa945d5e233cf7d6240f6b783b36a374ff">Direction::Left</a>:</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa92b09c7c48c520c3c55e497875da437c">Direction::Right</a>:</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> }</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> }</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> </div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <span class="keywordtype">void</span> OnLeft() {</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="keywordflow">switch</span> (<a class="code hl_variable" href="structftxui_1_1MenuOption.html#a53421c695d00016ab925777d423b4eb6">direction</a>) {</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa945d5e233cf7d6240f6b783b36a374ff">Direction::Left</a>:</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>()++;</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa92b09c7c48c520c3c55e497875da437c">Direction::Right</a>:</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>()--;</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa08a38277b0309070706f6652eeae9a53">Direction::Down</a>:</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa258f49887ef8d14ac268c92b02503aaa">Direction::Up</a>:</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> }</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> }</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> </div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <span class="keywordtype">void</span> OnRight() {</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <span class="keywordflow">switch</span> (<a class="code hl_variable" href="structftxui_1_1MenuOption.html#a53421c695d00016ab925777d423b4eb6">direction</a>) {</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa945d5e233cf7d6240f6b783b36a374ff">Direction::Left</a>:</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>()--;</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa92b09c7c48c520c3c55e497875da437c">Direction::Right</a>:</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>()++;</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa08a38277b0309070706f6652eeae9a53">Direction::Down</a>:</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa258f49887ef8d14ac268c92b02503aaa">Direction::Up</a>:</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> }</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> }</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> </div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> <span class="comment">// NOLINTNEXTLINE(readability-function-cognitive-complexity)</span></div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="keywordtype">bool</span> OnEvent(Event <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>)<span class="keyword"> override </span>{</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> Clamp();</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classftxui_1_1ComponentBase.html#a164d10a2cf367bdd4ae14318a6c7d769">CaptureMouse</a>(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>)) {</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> }</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> </div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>.is_mouse()) {</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> <span class="keywordflow">return</span> OnMouseEvent(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>);</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> }</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> </div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classftxui_1_1ComponentBase.html#a0cc612fa3d753b456e0f480f44654a9f">Focused</a>()) {</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">old_selected</a> = <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>();</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a> == <a class="code hl_variable" href="structftxui_1_1Event.html#a916bd0ae3c86941b660d9a07980bb0c9">Event::ArrowUp</a> || <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a> == Event::Character(<span class="charliteral">&#39;k&#39;</span>)) {</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> OnUp();</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> }</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a> == <a class="code hl_variable" href="structftxui_1_1Event.html#a9d2a831cf68bf2185a3c56c2e09b2f23">Event::ArrowDown</a> || <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a> == Event::Character(<span class="charliteral">&#39;j&#39;</span>)) {</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> OnDown();</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> }</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a> == <a class="code hl_variable" href="structftxui_1_1Event.html#ae1b59315a513c99ac3095bc42dff0d94">Event::ArrowLeft</a> || <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a> == Event::Character(<span class="charliteral">&#39;h&#39;</span>)) {</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> OnLeft();</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> }</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a> == <a class="code hl_variable" href="structftxui_1_1Event.html#afed9a747f55d4564e4f749bea1de4022">Event::ArrowRight</a> || <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a> == Event::Character(<span class="charliteral">&#39;l&#39;</span>)) {</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> OnRight();</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> }</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a> == <a class="code hl_variable" href="structftxui_1_1Event.html#a21ae13b6dcbc80ed6549a5afab248477">Event::PageUp</a>) {</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>() -= box_.y_max - box_.y_min;</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> }</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a> == <a class="code hl_variable" href="structftxui_1_1Event.html#acc3462fea2a9b2085734ff87dc881b4c">Event::PageDown</a>) {</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>() += box_.y_max - box_.y_min;</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> }</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a> == <a class="code hl_variable" href="structftxui_1_1Event.html#aad7d2ec712d40ad87d330e5e4399fdbc">Event::Home</a>) {</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>() = 0;</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> }</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a> == <a class="code hl_variable" href="structftxui_1_1Event.html#a9e841cb4b2ac7a46cfd26806a40fe3b5">Event::End</a>) {</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>() = <a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>() - 1;</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> }</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a> == <a class="code hl_variable" href="structftxui_1_1Event.html#a94bd9090f8bf9eea776c867113afb86c">Event::Tab</a> &amp;&amp; <a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>()) {</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>() = (<a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>() + 1) % <a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>();</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> }</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a> == <a class="code hl_variable" href="structftxui_1_1Event.html#a00f063998a734c338531f38c5e3d6428">Event::TabReverse</a> &amp;&amp; <a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>()) {</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>() = (<a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>() + <a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>() - 1) % <a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>();</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> }</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> </div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>() = <a class="code hl_function" href="namespaceftxui_1_1util.html#aab9f0232e41c960b4a09629eac33aef3">util::clamp</a>(<a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>(), 0, <a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>() - 1);</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> </div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>() != <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">old_selected</a>) {</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a93d5d37708b77971a666b73486017835">focused_entry</a>() = <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>();</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> SelectedTakeFocus();</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> OnChange();</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> }</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> }</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> </div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a> == <a class="code hl_variable" href="structftxui_1_1Event.html#ad3ab0b5bcc923c4b994080d45b97e36b">Event::Return</a>) {</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> OnEnter();</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> }</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> </div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> }</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> </div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> <span class="keywordtype">bool</span> OnMouseEvent(Event <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>) {</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>.mouse().button == <a class="code hl_enumvalue" href="structftxui_1_1Mouse.html#a03bfec859eac87be20f8952c1eb89de0afd8a27c9d7eac3486f6fbd2d608da0db">Mouse::WheelDown</a> ||</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>.mouse().button == <a class="code hl_enumvalue" href="structftxui_1_1Mouse.html#a03bfec859eac87be20f8952c1eb89de0ab51f2e2fc1697565b732263f86a976d6">Mouse::WheelUp</a>) {</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> <span class="keywordflow">return</span> OnMouseWheel(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>);</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> }</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> </div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>.mouse().button != <a class="code hl_enumvalue" href="structftxui_1_1Mouse.html#a03bfec859eac87be20f8952c1eb89de0ac9d3e887722f2bc482bcca9d41c512af">Mouse::None</a> &amp;&amp;</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>.mouse().button != <a class="code hl_enumvalue" href="structftxui_1_1Mouse.html#a03bfec859eac87be20f8952c1eb89de0a9d4d8b0b72fc2659da772d761a3c5ecb">Mouse::Left</a>) {</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> }</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classftxui_1_1ComponentBase.html#a164d10a2cf367bdd4ae14318a6c7d769">CaptureMouse</a>(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>)) {</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> }</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>(); ++i) {</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> <span class="keywordflow">if</span> (!boxes_[i].Contain(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>.mouse().x, <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>.mouse().y)) {</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> }</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> </div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> <a class="code hl_function" href="classftxui_1_1ComponentBase.html#a2cf27e9d7128a6a4b3263ecd34c19105">TakeFocus</a>();</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a93d5d37708b77971a666b73486017835">focused_entry</a>() = i;</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> </div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>.mouse().button == <a class="code hl_enumvalue" href="structftxui_1_1Mouse.html#a03bfec859eac87be20f8952c1eb89de0a9d4d8b0b72fc2659da772d761a3c5ecb">Mouse::Left</a> &amp;&amp;</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>.mouse().motion == <a class="code hl_enumvalue" href="structftxui_1_1Mouse.html#a099c889d2b948b264c7a665b66e3a9b6a05f4abb2322aa023aba9570c327aff25">Mouse::Pressed</a>) {</div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>() != i) {</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>() = i;</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> selected_previous_ = <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>();</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> OnChange();</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> }</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> }</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> }</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> }</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> </div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> <span class="keywordtype">bool</span> OnMouseWheel(Event <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>) {</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> <span class="keywordflow">if</span> (!box_.Contain(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>.mouse().x, <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>.mouse().y)) {</div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> }</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">old_selected</a> = <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>();</div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> </div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>.mouse().button == <a class="code hl_enumvalue" href="structftxui_1_1Mouse.html#a03bfec859eac87be20f8952c1eb89de0ab51f2e2fc1697565b732263f86a976d6">Mouse::WheelUp</a>) {</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>()--;</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> }</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>.mouse().button == <a class="code hl_enumvalue" href="structftxui_1_1Mouse.html#a03bfec859eac87be20f8952c1eb89de0afd8a27c9d7eac3486f6fbd2d608da0db">Mouse::WheelDown</a>) {</div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>()++;</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> }</div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> </div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>() = <a class="code hl_function" href="namespaceftxui_1_1util.html#aab9f0232e41c960b4a09629eac33aef3">util::clamp</a>(<a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>(), 0, <a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>() - 1);</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> </div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>() != <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">old_selected</a>) {</div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> SelectedTakeFocus();</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> OnChange();</div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> }</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> }</div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> </div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> <span class="keywordtype">void</span> UpdateAnimationTarget() {</div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> UpdateColorTarget();</div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> UpdateUnderlineTarget();</div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> }</div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> </div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span> <span class="keywordtype">void</span> UpdateColorTarget() {</div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>() != <span class="keywordtype">int</span>(animation_background_.size())) {</div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> animation_background_.resize(<a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>());</div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> animation_foreground_.resize(<a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>());</div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> animator_background_.clear();</div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> animator_foreground_.clear();</div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> </div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">len</a> = <a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>();</div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> animator_background_.reserve(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">len</a>);</div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> animator_foreground_.reserve(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">len</a>);</div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">len</a>; ++i) {</div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> animation_background_[i] = 0.F;</div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> animation_foreground_[i] = 0.F;</div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span> animator_background_.emplace_back(&amp;animation_background_[i], 0.F,</div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> std::chrono::milliseconds(0),</div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> animation::easing::Linear);</div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> animator_foreground_.emplace_back(&amp;animation_foreground_[i], 0.F,</div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> std::chrono::milliseconds(0),</div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> animation::easing::Linear);</div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> }</div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> }</div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span> </div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">is_menu_focused</a> = <a class="code hl_function" href="classftxui_1_1ComponentBase.html#a0cc612fa3d753b456e0f480f44654a9f">Focused</a>();</div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>(); ++i) {</div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">is_focused</a> = (<a class="code hl_variable" href="structftxui_1_1MenuOption.html#a93d5d37708b77971a666b73486017835">focused_entry</a>() == i) &amp;&amp; <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">is_menu_focused</a>;</div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">is_selected</a> = (<a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>() == i);</div>
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span> <span class="keywordtype">float</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">target</a> = <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">is_selected</a> ? 1.F : <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">is_focused</a> ? 0.5F : 0.F; <span class="comment">// NOLINT</span></div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span> <span class="keywordflow">if</span> (animator_background_[i].to() != <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">target</a>) {</div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span> animator_background_[i] = animation::Animator(</div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> &amp;animation_background_[i], <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">target</a>,</div>
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a2076e7253c5acce2321c067e9b7a1823">entries_option</a>.<a class="code hl_variable" href="namespaceftxui.html#ab7131557fbe84a6b4b2f2ffcff7d44f0">animated_colors</a>.<a class="code hl_variable" href="namespaceftxui.html#a550692ff465684652d29385a6b24304d">background</a>.<a class="code hl_variable" href="structftxui_1_1AnimatedColorOption.html#a7449575119a6168a323351fb04a7eb64">duration</a>,</div>
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a2076e7253c5acce2321c067e9b7a1823">entries_option</a>.<a class="code hl_variable" href="namespaceftxui.html#ab7131557fbe84a6b4b2f2ffcff7d44f0">animated_colors</a>.<a class="code hl_variable" href="namespaceftxui.html#a550692ff465684652d29385a6b24304d">background</a>.<a class="code hl_variable" href="structftxui_1_1AnimatedColorOption.html#a23a21de13ab9c6644225966245df3fe3">function</a>);</div>
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> animator_foreground_[i] = animation::Animator(</div>
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> &amp;animation_foreground_[i], <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">target</a>,</div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a2076e7253c5acce2321c067e9b7a1823">entries_option</a>.<a class="code hl_variable" href="namespaceftxui.html#ab7131557fbe84a6b4b2f2ffcff7d44f0">animated_colors</a>.<a class="code hl_variable" href="namespaceftxui.html#a1acdd8b06eb18ae37ffb815462c4374a">foreground</a>.<a class="code hl_variable" href="structftxui_1_1AnimatedColorOption.html#a7449575119a6168a323351fb04a7eb64">duration</a>,</div>
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a2076e7253c5acce2321c067e9b7a1823">entries_option</a>.<a class="code hl_variable" href="namespaceftxui.html#ab7131557fbe84a6b4b2f2ffcff7d44f0">animated_colors</a>.<a class="code hl_variable" href="namespaceftxui.html#a1acdd8b06eb18ae37ffb815462c4374a">foreground</a>.<a class="code hl_variable" href="structftxui_1_1AnimatedColorOption.html#a23a21de13ab9c6644225966245df3fe3">function</a>);</div>
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> }</div>
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> }</div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> }</div>
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span> </div>
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> <a class="code hl_typedef" href="namespaceftxui.html#a164021903e9ac6f1357e4186582891e3">Decorator</a> AnimatedColorStyle(<span class="keywordtype">int</span> i) {</div>
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> <a class="code hl_typedef" href="namespaceftxui.html#a164021903e9ac6f1357e4186582891e3">Decorator</a> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">style</a> = <a class="code hl_function" href="namespaceftxui.html#a1bfd3885ac8b40dc82a1103725003c07">nothing</a>;</div>
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="structftxui_1_1MenuOption.html#a2076e7253c5acce2321c067e9b7a1823">entries_option</a>.<a class="code hl_variable" href="namespaceftxui.html#ab7131557fbe84a6b4b2f2ffcff7d44f0">animated_colors</a>.<a class="code hl_variable" href="namespaceftxui.html#a1acdd8b06eb18ae37ffb815462c4374a">foreground</a>.<a class="code hl_variable" href="structftxui_1_1AnimatedColorOption.html#a8740ba80e30dd75e71d09fa1dcf04f3d">enabled</a>) {</div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">style</a> = <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">style</a> | <a class="code hl_function" href="namespaceftxui.html#af61b489da39ca5e24b68e6e1a2b09c0d">color</a>(<a class="code hl_function" href="classftxui_1_1Color.html#ae5d82c5fbae4f6561c9471c11c0a461b">Color::Interpolate</a>(</div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> animation_foreground_[i],</div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a2076e7253c5acce2321c067e9b7a1823">entries_option</a>.<a class="code hl_variable" href="namespaceftxui.html#ab7131557fbe84a6b4b2f2ffcff7d44f0">animated_colors</a>.<a class="code hl_variable" href="namespaceftxui.html#a1acdd8b06eb18ae37ffb815462c4374a">foreground</a>.<a class="code hl_variable" href="structftxui_1_1AnimatedColorOption.html#a898e4eb6c2a93ea3b71fc373f39854eb">inactive</a>,</div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a2076e7253c5acce2321c067e9b7a1823">entries_option</a>.<a class="code hl_variable" href="namespaceftxui.html#ab7131557fbe84a6b4b2f2ffcff7d44f0">animated_colors</a>.<a class="code hl_variable" href="namespaceftxui.html#a1acdd8b06eb18ae37ffb815462c4374a">foreground</a>.<a class="code hl_variable" href="structftxui_1_1AnimatedColorOption.html#a5c04e41d802330270ae14a9861c1e2df">active</a>));</div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> }</div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> </div>
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="structftxui_1_1MenuOption.html#a2076e7253c5acce2321c067e9b7a1823">entries_option</a>.<a class="code hl_variable" href="namespaceftxui.html#ab7131557fbe84a6b4b2f2ffcff7d44f0">animated_colors</a>.<a class="code hl_variable" href="namespaceftxui.html#a550692ff465684652d29385a6b24304d">background</a>.<a class="code hl_variable" href="structftxui_1_1AnimatedColorOption.html#a8740ba80e30dd75e71d09fa1dcf04f3d">enabled</a>) {</div>
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">style</a> = <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">style</a> | <a class="code hl_function" href="namespaceftxui.html#a01d4c5aaf0447e862246849111782245">bgcolor</a>(<a class="code hl_function" href="classftxui_1_1Color.html#ae5d82c5fbae4f6561c9471c11c0a461b">Color::Interpolate</a>(</div>
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> animation_background_[i],</div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a2076e7253c5acce2321c067e9b7a1823">entries_option</a>.<a class="code hl_variable" href="namespaceftxui.html#ab7131557fbe84a6b4b2f2ffcff7d44f0">animated_colors</a>.<a class="code hl_variable" href="namespaceftxui.html#a550692ff465684652d29385a6b24304d">background</a>.<a class="code hl_variable" href="structftxui_1_1AnimatedColorOption.html#a898e4eb6c2a93ea3b71fc373f39854eb">inactive</a>,</div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a2076e7253c5acce2321c067e9b7a1823">entries_option</a>.<a class="code hl_variable" href="namespaceftxui.html#ab7131557fbe84a6b4b2f2ffcff7d44f0">animated_colors</a>.<a class="code hl_variable" href="namespaceftxui.html#a550692ff465684652d29385a6b24304d">background</a>.<a class="code hl_variable" href="structftxui_1_1AnimatedColorOption.html#a5c04e41d802330270ae14a9861c1e2df">active</a>));</div>
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> }</div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">style</a>;</div>
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span> }</div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> </div>
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</span> <span class="keywordtype">void</span> UpdateUnderlineTarget() {</div>
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="structftxui_1_1MenuOption.html#a55b558727e02acce3f5259811b2dfe5b">underline</a>.<a class="code hl_variable" href="structftxui_1_1UnderlineOption.html#a8740ba80e30dd75e71d09fa1dcf04f3d">enabled</a>) {</div>
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> }</div>
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> </div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> <span class="keywordflow">if</span> (FirstTarget() == animator_first_.to() &amp;&amp;</div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> SecondTarget() == animator_second_.to()) {</div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> }</div>
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span> </div>
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span> <span class="keywordflow">if</span> (FirstTarget() &gt;= animator_first_.to()) {</div>
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> animator_first_ = animation::Animator(</div>
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> &amp;first_, FirstTarget(), <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a55b558727e02acce3f5259811b2dfe5b">underline</a>.<a class="code hl_variable" href="structftxui_1_1UnderlineOption.html#a13a6488c25b667256590c85aacb1f518">follower_duration</a>,</div>
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a55b558727e02acce3f5259811b2dfe5b">underline</a>.<a class="code hl_variable" href="structftxui_1_1UnderlineOption.html#a7dca406bc24422caeb8f39705334dbd1">follower_function</a>, <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a55b558727e02acce3f5259811b2dfe5b">underline</a>.<a class="code hl_variable" href="structftxui_1_1UnderlineOption.html#a2b5d480250b61cd7e62e7c6567345e38">follower_delay</a>);</div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> </div>
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> animator_second_ = animation::Animator(</div>
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> &amp;second_, SecondTarget(), <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a55b558727e02acce3f5259811b2dfe5b">underline</a>.<a class="code hl_variable" href="structftxui_1_1UnderlineOption.html#a6112ea2b5db5a4c50fe7d5ae70dfd016">leader_duration</a>,</div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a55b558727e02acce3f5259811b2dfe5b">underline</a>.<a class="code hl_variable" href="structftxui_1_1UnderlineOption.html#a1886d86b757123859c89f3336631b1f8">leader_function</a>, <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a55b558727e02acce3f5259811b2dfe5b">underline</a>.<a class="code hl_variable" href="structftxui_1_1UnderlineOption.html#ae29bb2e2c1e7f6eca70781e6fcd63a64">leader_delay</a>);</div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span> animator_first_ = animation::Animator(</div>
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span> &amp;first_, FirstTarget(), <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a55b558727e02acce3f5259811b2dfe5b">underline</a>.<a class="code hl_variable" href="structftxui_1_1UnderlineOption.html#a6112ea2b5db5a4c50fe7d5ae70dfd016">leader_duration</a>,</div>
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a55b558727e02acce3f5259811b2dfe5b">underline</a>.<a class="code hl_variable" href="structftxui_1_1UnderlineOption.html#a1886d86b757123859c89f3336631b1f8">leader_function</a>, <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a55b558727e02acce3f5259811b2dfe5b">underline</a>.<a class="code hl_variable" href="structftxui_1_1UnderlineOption.html#ae29bb2e2c1e7f6eca70781e6fcd63a64">leader_delay</a>);</div>
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span> </div>
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span> animator_second_ = animation::Animator(</div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> &amp;second_, SecondTarget(), <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a55b558727e02acce3f5259811b2dfe5b">underline</a>.<a class="code hl_variable" href="structftxui_1_1UnderlineOption.html#a13a6488c25b667256590c85aacb1f518">follower_duration</a>,</div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a55b558727e02acce3f5259811b2dfe5b">underline</a>.<a class="code hl_variable" href="structftxui_1_1UnderlineOption.html#a7dca406bc24422caeb8f39705334dbd1">follower_function</a>, <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a55b558727e02acce3f5259811b2dfe5b">underline</a>.<a class="code hl_variable" href="structftxui_1_1UnderlineOption.html#a2b5d480250b61cd7e62e7c6567345e38">follower_delay</a>);</div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> }</div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span> }</div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> </div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> <span class="keywordtype">bool</span> Focusable() <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">const</a> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">final</a> { <span class="keywordflow">return</span> <a class="code hl_variable" href="structftxui_1_1MenuOption.html#a7b534b117dbbe826d34ba17af85f1e93">entries</a>.<a class="code hl_function" href="classftxui_1_1ConstStringListRef.html#a259cb5a711406a8c3e5d937eb9350cca">size</a>(); }</div>
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span> <span class="keywordtype">int</span> <a class="code hl_function" href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">size</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">int</a>(<a class="code hl_variable" href="structftxui_1_1MenuOption.html#a7b534b117dbbe826d34ba17af85f1e93">entries</a>.<a class="code hl_function" href="classftxui_1_1ConstStringListRef.html#a259cb5a711406a8c3e5d937eb9350cca">size</a>()); }</div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span> <span class="keywordtype">float</span> FirstTarget() {</div>
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span> <span class="keywordflow">if</span> (boxes_.empty()) {</div>
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span> <span class="keywordflow">return</span> 0.F;</div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> }</div>
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span> <span class="keyword">const</span> <span class="keywordtype">int</span> value = IsHorizontal() ? boxes_[<a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>()].x_min - box_.x_min</div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span> : boxes_[<a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>()].y_min - box_.y_min;</div>
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">float</a>(value);</div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span> }</div>
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span> <span class="keywordtype">float</span> SecondTarget() {</div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span> <span class="keywordflow">if</span> (boxes_.empty()) {</div>
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> <span class="keywordflow">return</span> 0.F;</div>
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> }</div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> <span class="keyword">const</span> <span class="keywordtype">int</span> value = IsHorizontal() ? boxes_[<a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>()].x_max - box_.x_min</div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> : boxes_[<a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>()].y_max - box_.y_min;</div>
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">float</a>(value);</div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> }</div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> </div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> <span class="keywordtype">int</span> selected_previous_ = <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>();</div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> <span class="keywordtype">int</span> selected_focus_ = <a class="code hl_variable" href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">selected</a>();</div>
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span> </div>
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span> <span class="comment">// Mouse click support:</span></div>
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span> std::vector&lt;Box&gt; boxes_;</div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span> Box box_;</div>
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> </div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> <span class="comment">// Animation support:</span></div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> <span class="keywordtype">float</span> first_ = 0.F;</div>
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> <span class="keywordtype">float</span> second_ = 0.F;</div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> animation::Animator animator_first_ = animation::Animator(&amp;first_, 0.F);</div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> animation::Animator animator_second_ = animation::Animator(&amp;second_, 0.F);</div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> std::vector&lt;animation::Animator&gt; animator_background_;</div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> std::vector&lt;animation::Animator&gt; animator_foreground_;</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> std::vector&lt;float&gt; animation_background_;</div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> std::vector&lt;float&gt; animation_foreground_;</div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span>};</div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span><span class="comment"></span> </div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span><span class="comment">/// @brief A list of text. The focused element is selected.</span></div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span><span class="comment">/// @param option a structure containing all the paramters.</span></div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span><span class="comment">/// @ingroup component</span></div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span><span class="comment">///</span></div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span><span class="comment">/// ### Example</span></div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span><span class="comment">///</span></div>
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span><span class="comment">/// ```cpp</span></div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span><span class="comment">/// auto screen = ScreenInteractive::TerminalOutput();</span></div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span><span class="comment">/// std::vector&lt;std::string&gt; entries = {</span></div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span><span class="comment">/// &quot;entry 1&quot;,</span></div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span><span class="comment">/// &quot;entry 2&quot;,</span></div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span><span class="comment">/// &quot;entry 3&quot;,</span></div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span><span class="comment">/// };</span></div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span><span class="comment">/// int selected = 0;</span></div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span><span class="comment">/// auto menu = Menu({</span></div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span><span class="comment">/// .entries = &amp;entries,</span></div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span><span class="comment">/// .selected = &amp;selected,</span></div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span><span class="comment">/// });</span></div>
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span><span class="comment">/// screen.Loop(menu);</span></div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span><span class="comment">/// ```</span></div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span><span class="comment">///</span></div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span><span class="comment">/// ### Output</span></div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span><span class="comment">///</span></div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span><span class="comment">/// ```bash</span></div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span><span class="comment">/// &gt; entry 1</span></div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span><span class="comment">/// entry 2</span></div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span><span class="comment">/// entry 3</span></div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span><span class="comment">/// ```</span></div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span><span class="comment"></span><span class="comment">// NOLINTNEXTLINE</span></div>
<div class="foldopen" id="foldopen00512" data-start="{" data-end="}">
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"><a class="line" href="namespaceftxui.html#a27828fc39da10a18478ba84b1b162039"> 512</a></span><a class="code hl_typedef" href="namespaceftxui.html#a3149fb57ff17207d2516790b82503002">Component</a> <a class="code hl_function" href="namespaceftxui.html#a27828fc39da10a18478ba84b1b162039">Menu</a>(<a class="code hl_struct" href="structftxui_1_1MenuOption.html">MenuOption</a> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">option</a>) {</div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">Make&lt;MenuBase&gt;</a>(std::move(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">option</a>));</div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span>}</div>
</div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span><span class="comment"></span> </div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span><span class="comment">/// @brief A list of text. The focused element is selected.</span></div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span><span class="comment">/// @param entries The list of entries in the menu.</span></div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span><span class="comment">/// @param selected The index of the currently selected element.</span></div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span><span class="comment">/// @param option Additional optional parameters.</span></div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span><span class="comment">/// @ingroup component</span></div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span><span class="comment">///</span></div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span><span class="comment">/// ### Example</span></div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span><span class="comment">///</span></div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span><span class="comment">/// ```cpp</span></div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span><span class="comment">/// auto screen = ScreenInteractive::TerminalOutput();</span></div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span><span class="comment">/// std::vector&lt;std::string&gt; entries = {</span></div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span><span class="comment">/// &quot;entry 1&quot;,</span></div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span><span class="comment">/// &quot;entry 2&quot;,</span></div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span><span class="comment">/// &quot;entry 3&quot;,</span></div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span><span class="comment">/// };</span></div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span><span class="comment">/// int selected = 0;</span></div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span><span class="comment">/// auto menu = Menu(&amp;entries, &amp;selected);</span></div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span><span class="comment">/// screen.Loop(menu);</span></div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span><span class="comment">/// ```</span></div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span><span class="comment">///</span></div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span><span class="comment">/// ### Output</span></div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span><span class="comment">///</span></div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span><span class="comment">/// ```bash</span></div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span><span class="comment">/// &gt; entry 1</span></div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span><span class="comment">/// entry 2</span></div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span><span class="comment">/// entry 3</span></div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span><span class="comment">/// ```</span></div>
<div class="foldopen" id="foldopen00543" data-start="{" data-end="}">
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"><a class="line" href="namespaceftxui.html#ad793a3a507766ffa711c4332a3815e24"> 543</a></span><span class="comment"></span><a class="code hl_typedef" href="namespaceftxui.html#a3149fb57ff17207d2516790b82503002">Component</a> <a class="code hl_function" href="namespaceftxui.html#a27828fc39da10a18478ba84b1b162039">Menu</a>(<a class="code hl_class" href="classftxui_1_1ConstStringListRef.html">ConstStringListRef</a> entries, <span class="keywordtype">int</span>* selected, <a class="code hl_struct" href="structftxui_1_1MenuOption.html">MenuOption</a> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">option</a>) {</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">option</a>.entries = std::move(entries);</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">option</a>.selected = selected;</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceftxui.html#a27828fc39da10a18478ba84b1b162039">Menu</a>(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">option</a>);</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span>}</div>
</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span><span class="comment"></span> </div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span><span class="comment">/// @brief An horizontal list of elements. The user can navigate through them.</span></div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span><span class="comment">/// @param entries The list of selectable entries to display.</span></div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span><span class="comment">/// @param selected Reference the selected entry.</span></div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span><span class="comment">/// See also |Menu|.</span></div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span><span class="comment">/// @ingroup component</span></div>
<div class="foldopen" id="foldopen00554" data-start="{" data-end="}">
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"><a class="line" href="namespaceftxui.html#a3537fccac66b07cd792874c9a6086811"> 554</a></span><span class="comment"></span><a class="code hl_typedef" href="namespaceftxui.html#a3149fb57ff17207d2516790b82503002">Component</a> <a class="code hl_function" href="namespaceftxui.html#a3537fccac66b07cd792874c9a6086811">Toggle</a>(<a class="code hl_class" href="classftxui_1_1ConstStringListRef.html">ConstStringListRef</a> entries, <span class="keywordtype">int</span>* selected) {</div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceftxui.html#a27828fc39da10a18478ba84b1b162039">Menu</a>(std::move(entries), selected, <a class="code hl_function" href="structftxui_1_1MenuOption.html#a133a8caaf0246db0902f7abce37a9b6d">MenuOption::Toggle</a>());</div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span>}</div>
</div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span><span class="comment"></span> </div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span><span class="comment">/// @brief A specific menu entry. They can be put into a Container::Vertical to</span></div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span><span class="comment">/// form a menu.</span></div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span><span class="comment">/// @param label The text drawn representing this element.</span></div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span><span class="comment">/// @param option Additional optional parameters.</span></div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span><span class="comment">/// @ingroup component</span></div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span><span class="comment">///</span></div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span><span class="comment">/// ### Example</span></div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span><span class="comment">///</span></div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span><span class="comment">/// ```cpp</span></div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span><span class="comment">/// auto screen = ScreenInteractive::TerminalOutput();</span></div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span><span class="comment">/// int selected = 0;</span></div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span><span class="comment">/// auto menu = Container::Vertical({</span></div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span><span class="comment">/// MenuEntry(&quot;entry 1&quot;),</span></div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span><span class="comment">/// MenuEntry(&quot;entry 2&quot;),</span></div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span><span class="comment">/// MenuEntry(&quot;entry 3&quot;),</span></div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span><span class="comment">/// }, &amp;selected);</span></div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span><span class="comment">/// screen.Loop(menu);</span></div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span><span class="comment">/// ```</span></div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span><span class="comment">///</span></div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span><span class="comment">/// ### Output</span></div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span><span class="comment">///</span></div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span><span class="comment">/// ```bash</span></div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span><span class="comment">/// &gt; entry 1</span></div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span><span class="comment">/// entry 2</span></div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span><span class="comment">/// entry 3</span></div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span><span class="comment">/// ```</span></div>
<div class="foldopen" id="foldopen00584" data-start="{" data-end="}">
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"><a class="line" href="namespaceftxui.html#afca94c5cdae5fbf3c6aa81fc1cd7b1c0"> 584</a></span><span class="comment"></span><a class="code hl_typedef" href="namespaceftxui.html#a3149fb57ff17207d2516790b82503002">Component</a> <a class="code hl_function" href="namespaceftxui.html#a2c0a27959e6a5d90109f6d4506e00f69">MenuEntry</a>(<a class="code hl_class" href="classftxui_1_1ConstStringRef.html">ConstStringRef</a> label, <a class="code hl_struct" href="namespaceftxui.html#structftxui_1_1MenuEntryOption">MenuEntryOption</a> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">option</a>) {</div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">option</a>.label = std::move(label);</div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceftxui.html#a2c0a27959e6a5d90109f6d4506e00f69">MenuEntry</a>(std::move(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">option</a>));</div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span>}</div>
</div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span><span class="comment"></span> </div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span><span class="comment">/// @brief A specific menu entry. They can be put into a Container::Vertical to</span></div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span><span class="comment">/// form a menu.</span></div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span><span class="comment">/// @param option The parameters.</span></div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span><span class="comment">/// @ingroup component</span></div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span><span class="comment">///</span></div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span><span class="comment">/// ### Example</span></div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span><span class="comment">///</span></div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span><span class="comment">/// ```cpp</span></div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span><span class="comment">/// auto screen = ScreenInteractive::TerminalOutput();</span></div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span><span class="comment">/// int selected = 0;</span></div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span><span class="comment">/// auto menu = Container::Vertical({</span></div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span><span class="comment">/// MenuEntry({.label = &quot;entry 1&quot;}),</span></div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span><span class="comment">/// MenuEntry({.label = &quot;entry 2&quot;}),</span></div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span><span class="comment">/// MenuEntry({.label = &quot;entry 3&quot;}),</span></div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span><span class="comment">/// }, &amp;selected);</span></div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span><span class="comment">/// screen.Loop(menu);</span></div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span><span class="comment">/// ```</span></div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span><span class="comment">///</span></div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span><span class="comment">/// ### Output</span></div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span><span class="comment">///</span></div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span><span class="comment">/// ```bash</span></div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span><span class="comment">/// &gt; entry 1</span></div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span><span class="comment">/// entry 2</span></div>
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span><span class="comment">/// entry 3</span></div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span><span class="comment">/// ```</span></div>
<div class="foldopen" id="foldopen00614" data-start="{" data-end="}">
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"><a class="line" href="namespaceftxui.html#a2c0a27959e6a5d90109f6d4506e00f69"> 614</a></span><span class="comment"></span><a class="code hl_typedef" href="namespaceftxui.html#a3149fb57ff17207d2516790b82503002">Component</a> <a class="code hl_function" href="namespaceftxui.html#a2c0a27959e6a5d90109f6d4506e00f69">MenuEntry</a>(<a class="code hl_struct" href="namespaceftxui.html#structftxui_1_1MenuEntryOption">MenuEntryOption</a> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">option</a>) {</div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> <span class="keyword">class </span><a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">Impl</a> : <span class="keyword">public</span> <a class="code hl_class" href="classftxui_1_1ComponentBase.html">ComponentBase</a>, <span class="keyword">public</span> <a class="code hl_struct" href="namespaceftxui.html#structftxui_1_1MenuEntryOption">MenuEntryOption</a> {</div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span> <span class="keyword">explicit</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">Impl</a>(<a class="code hl_struct" href="namespaceftxui.html#structftxui_1_1MenuEntryOption">MenuEntryOption</a> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">option</a>)</div>
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span> : <a class="code hl_struct" href="namespaceftxui.html#structftxui_1_1MenuEntryOption">MenuEntryOption</a>(std::move(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">option</a>)) {}</div>
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"> 619</span> </div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span> <a class="code hl_typedef" href="namespaceftxui.html#a26a62b91b796ce76a5582cf194da3fb2">Element</a> OnRender()<span class="keyword"> override </span>{</div>
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">is_focused</a> = Focused();</div>
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> UpdateAnimationTarget();</div>
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span> </div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> <span class="keyword">const</span> <a class="code hl_struct" href="namespaceftxui.html#structftxui_1_1EntryState">EntryState</a> state{</div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span> label(), <span class="keyword">false</span>, hovered_, <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">is_focused</a>, Index(),</div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> };</div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span> </div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span> <a class="code hl_typedef" href="namespaceftxui.html#a26a62b91b796ce76a5582cf194da3fb2">Element</a> element = (transform ? transform : <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">DefaultOptionTransform</a>) <span class="comment">//</span></div>
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> (state);</div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span> </div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">is_focused</a>) {</div>
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"> 633</span> element |= <a class="code hl_function" href="namespaceftxui.html#aa2d7d671f184f85e0f396f2610fa6c2e">focus</a>;</div>
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span> }</div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span> </div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span> <span class="keywordflow">return</span> element | AnimatedColorStyle() | <a class="code hl_function" href="namespaceftxui.html#aaff8245861617a3d9e846e99de582a63">reflect</a>(box_);</div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> }</div>
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span> </div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> <span class="keywordtype">void</span> UpdateAnimationTarget() {</div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> focused = Focused();</div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> <span class="keywordtype">float</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">target</a> = focused ? 1.F : hovered_ ? 0.5F : 0.F; <span class="comment">// NOLINT</span></div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">target</a> == animator_background_.to()) {</div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> }</div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> animator_background_ = <a class="code hl_class" href="classftxui_1_1animation_1_1Animator.html">animation::Animator</a>(</div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> &amp;animation_background_, <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">target</a>, animated_colors.background.duration,</div>
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span> animated_colors.background.function);</div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> animator_foreground_ = <a class="code hl_class" href="classftxui_1_1animation_1_1Animator.html">animation::Animator</a>(</div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> &amp;animation_foreground_, <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">target</a>, animated_colors.foreground.duration,</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> animated_colors.foreground.function);</div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> }</div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> </div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> <a class="code hl_typedef" href="namespaceftxui.html#a164021903e9ac6f1357e4186582891e3">Decorator</a> AnimatedColorStyle() {</div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span> <a class="code hl_typedef" href="namespaceftxui.html#a164021903e9ac6f1357e4186582891e3">Decorator</a> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">style</a> = <a class="code hl_function" href="namespaceftxui.html#a1bfd3885ac8b40dc82a1103725003c07">nothing</a>;</div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> <span class="keywordflow">if</span> (animated_colors.foreground.enabled) {</div>
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">style</a> = <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">style</a> |</div>
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span> <a class="code hl_function" href="namespaceftxui.html#af61b489da39ca5e24b68e6e1a2b09c0d">color</a>(<a class="code hl_function" href="classftxui_1_1Color.html#ae5d82c5fbae4f6561c9471c11c0a461b">Color::Interpolate</a>(animation_foreground_,</div>
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span> animated_colors.foreground.inactive,</div>
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span> animated_colors.foreground.active));</div>
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span> }</div>
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</span> </div>
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span> <span class="keywordflow">if</span> (animated_colors.background.enabled) {</div>
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">style</a> = <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">style</a> |</div>
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span> <a class="code hl_function" href="namespaceftxui.html#a01d4c5aaf0447e862246849111782245">bgcolor</a>(<a class="code hl_function" href="classftxui_1_1Color.html#ae5d82c5fbae4f6561c9471c11c0a461b">Color::Interpolate</a>(animation_background_,</div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> animated_colors.background.inactive,</div>
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span> animated_colors.background.active));</div>
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> }</div>
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">style</a>;</div>
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span> }</div>
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span> </div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span> <span class="keywordtype">bool</span> Focusable()<span class="keyword"> const override </span>{ <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> <span class="keywordtype">bool</span> OnEvent(<a class="code hl_struct" href="structftxui_1_1Event.html">Event</a> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>)<span class="keyword"> override </span>{</div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>.is_mouse()) {</div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> }</div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span> </div>
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span> hovered_ = box_.Contain(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>.mouse().x, <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>.mouse().y);</div>
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span> </div>
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span> <span class="keywordflow">if</span> (!hovered_) {</div>
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"> 680</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</span> }</div>
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno"> 682</span> </div>
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno"> 683</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>.mouse().button == <a class="code hl_enumvalue" href="structftxui_1_1Mouse.html#a03bfec859eac87be20f8952c1eb89de0a9d4d8b0b72fc2659da772d761a3c5ecb">Mouse::Left</a> &amp;&amp;</div>
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">event</a>.mouse().motion == <a class="code hl_enumvalue" href="structftxui_1_1Mouse.html#a099c889d2b948b264c7a665b66e3a9b6a05f4abb2322aa023aba9570c327aff25">Mouse::Pressed</a>) {</div>
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span> TakeFocus();</div>
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span> }</div>
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span> </div>
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"> 690</span> }</div>
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span> </div>
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span> <span class="keywordtype">void</span> OnAnimation(<a class="code hl_class" href="classftxui_1_1animation_1_1Params.html">animation::Params</a>&amp; <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">params</a>)<span class="keyword"> override </span>{</div>
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</span> animator_background_.OnAnimation(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">params</a>);</div>
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</span> animator_foreground_.OnAnimation(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">params</a>);</div>
<div class="line"><a id="l00695" name="l00695"></a><span class="lineno"> 695</span> }</div>
<div class="line"><a id="l00696" name="l00696"></a><span class="lineno"> 696</span> </div>
<div class="line"><a id="l00697" name="l00697"></a><span class="lineno"> 697</span> <a class="code hl_struct" href="structftxui_1_1Box.html">Box</a> box_;</div>
<div class="line"><a id="l00698" name="l00698"></a><span class="lineno"> 698</span> <span class="keywordtype">bool</span> hovered_ = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno"> 699</span> </div>
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span> <span class="keywordtype">float</span> animation_background_ = 0.F;</div>
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span> <span class="keywordtype">float</span> animation_foreground_ = 0.F;</div>
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span> <a class="code hl_class" href="classftxui_1_1animation_1_1Animator.html">animation::Animator</a> animator_background_ =</div>
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span> <a class="code hl_class" href="classftxui_1_1animation_1_1Animator.html">animation::Animator</a>(&amp;animation_background_, 0.F);</div>
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span> <a class="code hl_class" href="classftxui_1_1animation_1_1Animator.html">animation::Animator</a> animator_foreground_ =</div>
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span> <a class="code hl_class" href="classftxui_1_1animation_1_1Animator.html">animation::Animator</a>(&amp;animation_foreground_, 0.F);</div>
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span> };</div>
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span> </div>
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">Make&lt;Impl&gt;</a>(std::move(<a class="code hl_function" href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">option</a>));</div>
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno"> 709</span>}</div>
</div>
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno"> 710</span> </div>
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno"> 711</span>} <span class="comment">// namespace ftxui</span></div>
<div class="ttc" id="aanimation_8hpp_html"><div class="ttname"><a href="animation_8hpp.html">animation.hpp</a></div></div>
<div class="ttc" id="abox_8hpp_html"><div class="ttname"><a href="box_8hpp.html">box.hpp</a></div></div>
<div class="ttc" id="aclassftxui_1_1Color_html_ae5d82c5fbae4f6561c9471c11c0a461b"><div class="ttname"><a href="classftxui_1_1Color.html#ae5d82c5fbae4f6561c9471c11c0a461b">ftxui::Color::Interpolate</a></div><div class="ttdeci">static Color Interpolate(float t, const Color &amp;a, const Color &amp;b)</div><div class="ttdef"><b>Definition</b> <a href="screen_2color_8cpp_source.html#l00212">color.cpp:212</a></div></div>
<div class="ttc" id="aclassftxui_1_1ComponentBase_html"><div class="ttname"><a href="classftxui_1_1ComponentBase.html">ftxui::ComponentBase</a></div><div class="ttdoc">It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ft...</div><div class="ttdef"><b>Definition</b> <a href="component__base_8hpp_source.html#l00030">component_base.hpp:30</a></div></div>
<div class="ttc" id="aclassftxui_1_1ComponentBase_html_a0cc612fa3d753b456e0f480f44654a9f"><div class="ttname"><a href="classftxui_1_1ComponentBase.html#a0cc612fa3d753b456e0f480f44654a9f">ftxui::ComponentBase::Focused</a></div><div class="ttdeci">bool Focused() const</div><div class="ttdoc">Returns if the elements if focused by the user. True when the ComponentBase is focused by the user....</div><div class="ttdef"><b>Definition</b> <a href="component_8cpp_source.html#l00216">component.cpp:216</a></div></div>
<div class="ttc" id="aclassftxui_1_1ComponentBase_html_a164d10a2cf367bdd4ae14318a6c7d769"><div class="ttname"><a href="classftxui_1_1ComponentBase.html#a164d10a2cf367bdd4ae14318a6c7d769">ftxui::ComponentBase::CaptureMouse</a></div><div class="ttdeci">CapturedMouse CaptureMouse(const Event &amp;event)</div><div class="ttdoc">Take the CapturedMouse if available. There is only one component of them. It represents a component t...</div><div class="ttdef"><b>Definition</b> <a href="component_8cpp_source.html#l00250">component.cpp:250</a></div></div>
<div class="ttc" id="aclassftxui_1_1ComponentBase_html_a2cf27e9d7128a6a4b3263ecd34c19105"><div class="ttname"><a href="classftxui_1_1ComponentBase.html#a2cf27e9d7128a6a4b3263ecd34c19105">ftxui::ComponentBase::TakeFocus</a></div><div class="ttdeci">void TakeFocus()</div><div class="ttdoc">Configure all the ancestors to give focus to this component.</div><div class="ttdef"><b>Definition</b> <a href="component_8cpp_source.html#l00238">component.cpp:238</a></div></div>
<div class="ttc" id="aclassftxui_1_1ConstStringListRef_html"><div class="ttname"><a href="classftxui_1_1ConstStringListRef.html">ftxui::ConstStringListRef</a></div><div class="ttdoc">An adapter. Reference a list of strings.</div><div class="ttdef"><b>Definition</b> <a href="ref_8hpp_source.html#l00116">ref.hpp:116</a></div></div>
<div class="ttc" id="aclassftxui_1_1ConstStringListRef_html_a259cb5a711406a8c3e5d937eb9350cca"><div class="ttname"><a href="classftxui_1_1ConstStringListRef.html#a259cb5a711406a8c3e5d937eb9350cca">ftxui::ConstStringListRef::size</a></div><div class="ttdeci">size_t size() const</div><div class="ttdef"><b>Definition</b> <a href="ref_8hpp_source.html#l00167">ref.hpp:167</a></div></div>
<div class="ttc" id="aclassftxui_1_1ConstStringRef_html"><div class="ttname"><a href="classftxui_1_1ConstStringRef.html">ftxui::ConstStringRef</a></div><div class="ttdoc">An adapter. Own or reference a constant string. For convenience, this class convert multiple immutabl...</div><div class="ttdef"><b>Definition</b> <a href="ref_8hpp_source.html#l00094">ref.hpp:94</a></div></div>
<div class="ttc" id="aclassftxui_1_1animation_1_1Animator_html"><div class="ttname"><a href="classftxui_1_1animation_1_1Animator.html">ftxui::animation::Animator</a></div><div class="ttdef"><b>Definition</b> <a href="animation_8hpp_source.html#l00090">animation.hpp:90</a></div></div>
<div class="ttc" id="aclassftxui_1_1animation_1_1Params_html"><div class="ttname"><a href="classftxui_1_1animation_1_1Params.html">ftxui::animation::Params</a></div><div class="ttdef"><b>Definition</b> <a href="animation_8hpp_source.html#l00023">animation.hpp:23</a></div></div>
<div class="ttc" id="acolor_8hpp_html"><div class="ttname"><a href="color_8hpp.html">color.hpp</a></div></div>
<div class="ttc" id="acomponent_8hpp_html"><div class="ttname"><a href="component_8hpp.html">component.hpp</a></div></div>
<div class="ttc" id="acomponent__base_8hpp_html"><div class="ttname"><a href="component__base_8hpp.html">component_base.hpp</a></div></div>
<div class="ttc" id="acomponent__options_8hpp_html"><div class="ttname"><a href="component__options_8hpp.html">component_options.hpp</a></div></div>
<div class="ttc" id="adirection_8hpp_html"><div class="ttname"><a href="direction_8hpp.html">direction.hpp</a></div></div>
<div class="ttc" id="aelements_8hpp_html"><div class="ttname"><a href="elements_8hpp.html">elements.hpp</a></div></div>
<div class="ttc" id="aevent_8hpp_html"><div class="ttname"><a href="event_8hpp.html">event.hpp</a></div></div>
<div class="ttc" id="amouse_8hpp_html"><div class="ttname"><a href="mouse_8hpp.html">mouse.hpp</a></div></div>
<div class="ttc" id="anamespaceftxui_1_1util_html_aab9f0232e41c960b4a09629eac33aef3"><div class="ttname"><a href="namespaceftxui_1_1util.html#aab9f0232e41c960b4a09629eac33aef3">ftxui::util::clamp</a></div><div class="ttdeci">constexpr const T &amp; clamp(const T &amp;v, const T &amp;lo, const T &amp;hi)</div><div class="ttdef"><b>Definition</b> <a href="util_8hpp_source.html#l00011">util.hpp:11</a></div></div>
<div class="ttc" id="anamespaceftxui_html"><div class="ttname"><a href="namespaceftxui.html">ftxui</a></div><div class="ttdef"><b>Definition</b> <a href="animation_8hpp_source.html#l00010">animation.hpp:10</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a01d4c5aaf0447e862246849111782245"><div class="ttname"><a href="namespaceftxui.html#a01d4c5aaf0447e862246849111782245">ftxui::bgcolor</a></div><div class="ttdeci">Decorator bgcolor(Color)</div><div class="ttdoc">Decorate using a background color.</div><div class="ttdef"><b>Definition</b> <a href="dom_2color_8cpp_source.html#l00124">color.cpp:124</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a0dbba98e14f63f1dd5163cbdc4f42da8"><div class="ttname"><a href="namespaceftxui.html#a0dbba98e14f63f1dd5163cbdc4f42da8">ftxui::xflex</a></div><div class="ttdeci">Element xflex(Element)</div><div class="ttdoc">Expand/Minimize if possible/needed on the X axis.</div><div class="ttdef"><b>Definition</b> <a href="flex_8cpp_source.html#l00129">flex.cpp:129</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a164021903e9ac6f1357e4186582891e3"><div class="ttname"><a href="namespaceftxui.html#a164021903e9ac6f1357e4186582891e3">ftxui::Decorator</a></div><div class="ttdeci">std::function&lt; Element(Element)&gt; Decorator</div><div class="ttdef"><b>Definition</b> <a href="elements_8hpp_source.html#l00024">elements.hpp:24</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a1a0211233bacd4eb4d31a8e3d58b5f48"><div class="ttname"><a href="namespaceftxui.html#a1a0211233bacd4eb4d31a8e3d58b5f48">ftxui::separatorVSelector</a></div><div class="ttdeci">Element separatorVSelector(float up, float down, Color unselected_color, Color selected_color)</div><div class="ttdoc">Draw an vertical bar, with the area in between up/downcolored differently.</div><div class="ttdef"><b>Definition</b> <a href="separator_8cpp_source.html#l00512">separator.cpp:512</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a1acdd8b06eb18ae37ffb815462c4374a"><div class="ttname"><a href="namespaceftxui.html#a1acdd8b06eb18ae37ffb815462c4374a">ftxui::AnimatedColorsOption::foreground</a></div><div class="ttdeci">AnimatedColorOption foreground</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00072">component_options.hpp:72</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a1bfd3885ac8b40dc82a1103725003c07"><div class="ttname"><a href="namespaceftxui.html#a1bfd3885ac8b40dc82a1103725003c07">ftxui::nothing</a></div><div class="ttdeci">Element nothing(Element element)</div><div class="ttdoc">A decoration doing absolutely nothing.</div><div class="ttdef"><b>Definition</b> <a href="dom_2util_8cpp_source.html#l00028">util.cpp:28</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a201220986fbdc539e42efe067985cbdb"><div class="ttname"><a href="namespaceftxui.html#a201220986fbdc539e42efe067985cbdb">ftxui::size</a></div><div class="ttdeci">Decorator size(WidthOrHeight, Constraint, int value)</div><div class="ttdoc">Apply a constraint on the size of an element.</div><div class="ttdef"><b>Definition</b> <a href="size_8cpp_source.html#l00089">size.cpp:89</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a224b9163917ac32fc95a60d8c1eec3aa"><div class="ttname"><a href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aa">ftxui::Direction</a></div><div class="ttdeci">Direction</div><div class="ttdef"><b>Definition</b> <a href="direction_8hpp_source.html#l00008">direction.hpp:8</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a224b9163917ac32fc95a60d8c1eec3aaa08a38277b0309070706f6652eeae9a53"><div class="ttname"><a href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa08a38277b0309070706f6652eeae9a53">ftxui::Direction::Down</a></div><div class="ttdeci">@ Down</div></div>
<div class="ttc" id="anamespaceftxui_html_a224b9163917ac32fc95a60d8c1eec3aaa258f49887ef8d14ac268c92b02503aaa"><div class="ttname"><a href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa258f49887ef8d14ac268c92b02503aaa">ftxui::Direction::Up</a></div><div class="ttdeci">@ Up</div></div>
<div class="ttc" id="anamespaceftxui_html_a224b9163917ac32fc95a60d8c1eec3aaa92b09c7c48c520c3c55e497875da437c"><div class="ttname"><a href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa92b09c7c48c520c3c55e497875da437c">ftxui::Direction::Right</a></div><div class="ttdeci">@ Right</div></div>
<div class="ttc" id="anamespaceftxui_html_a224b9163917ac32fc95a60d8c1eec3aaa945d5e233cf7d6240f6b783b36a374ff"><div class="ttname"><a href="namespaceftxui.html#a224b9163917ac32fc95a60d8c1eec3aaa945d5e233cf7d6240f6b783b36a374ff">ftxui::Direction::Left</a></div><div class="ttdeci">@ Left</div></div>
<div class="ttc" id="anamespaceftxui_html_a26a62b91b796ce76a5582cf194da3fb2"><div class="ttname"><a href="namespaceftxui.html#a26a62b91b796ce76a5582cf194da3fb2">ftxui::Element</a></div><div class="ttdeci">std::shared_ptr&lt; Node &gt; Element</div><div class="ttdef"><b>Definition</b> <a href="elements_8hpp_source.html#l00022">elements.hpp:22</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a27828fc39da10a18478ba84b1b162039"><div class="ttname"><a href="namespaceftxui.html#a27828fc39da10a18478ba84b1b162039">ftxui::Menu</a></div><div class="ttdeci">Component Menu(MenuOption options)</div><div class="ttdoc">A list of text. The focused element is selected.</div><div class="ttdef"><b>Definition</b> <a href="menu_8cpp_source.html#l00512">menu.cpp:512</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a2b8973dc71334f1d98e2e6f55de8b5ae"><div class="ttname"><a href="namespaceftxui.html#a2b8973dc71334f1d98e2e6f55de8b5ae">ftxui::Make</a></div><div class="ttdeci">std::shared_ptr&lt; T &gt; Make(Args &amp;&amp;... args)</div><div class="ttdef"><b>Definition</b> <a href="component_8hpp_source.html#l00026">component.hpp:26</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a2c0a27959e6a5d90109f6d4506e00f69"><div class="ttname"><a href="namespaceftxui.html#a2c0a27959e6a5d90109f6d4506e00f69">ftxui::MenuEntry</a></div><div class="ttdeci">Component MenuEntry(MenuEntryOption options)</div><div class="ttdoc">A specific menu entry. They can be put into a Container::Vertical to form a menu.</div><div class="ttdef"><b>Definition</b> <a href="menu_8cpp_source.html#l00614">menu.cpp:614</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a3149fb57ff17207d2516790b82503002"><div class="ttname"><a href="namespaceftxui.html#a3149fb57ff17207d2516790b82503002">ftxui::Component</a></div><div class="ttdeci">std::shared_ptr&lt; ComponentBase &gt; Component</div><div class="ttdef"><b>Definition</b> <a href="component__base_8hpp_source.html#l00024">component_base.hpp:24</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a3537fccac66b07cd792874c9a6086811"><div class="ttname"><a href="namespaceftxui.html#a3537fccac66b07cd792874c9a6086811">ftxui::Toggle</a></div><div class="ttdeci">Component Toggle(ConstStringListRef entries, int *selected)</div><div class="ttdoc">An horizontal list of elements. The user can navigate through them.</div><div class="ttdef"><b>Definition</b> <a href="menu_8cpp_source.html#l00554">menu.cpp:554</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a353c769068e25303eb41fa2da565c604"><div class="ttname"><a href="namespaceftxui.html#a353c769068e25303eb41fa2da565c604">ftxui::bold</a></div><div class="ttdeci">Element bold(Element)</div><div class="ttdoc">Use a bold font, for elements with more emphasis.</div><div class="ttdef"><b>Definition</b> <a href="bold_8cpp_source.html#l00033">bold.cpp:33</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a42c7a33df6d890de30fc1ebb2d1b3ca6"><div class="ttname"><a href="namespaceftxui.html#a42c7a33df6d890de30fc1ebb2d1b3ca6">ftxui::yflex</a></div><div class="ttdeci">Element yflex(Element)</div><div class="ttdoc">Expand/Minimize if possible/needed on the Y axis.</div><div class="ttdef"><b>Definition</b> <a href="flex_8cpp_source.html#l00135">flex.cpp:135</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a50413065cee4757447b35c3a500667d3"><div class="ttname"><a href="namespaceftxui.html#a50413065cee4757447b35c3a500667d3">ftxui::separatorHSelector</a></div><div class="ttdeci">Element separatorHSelector(float left, float right, Color unselected_color, Color selected_color)</div><div class="ttdoc">Draw an horizontal bar, with the area in between left/right colored differently.</div><div class="ttdef"><b>Definition</b> <a href="separator_8cpp_source.html#l00442">separator.cpp:442</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a550692ff465684652d29385a6b24304d"><div class="ttname"><a href="namespaceftxui.html#a550692ff465684652d29385a6b24304d">ftxui::AnimatedColorsOption::background</a></div><div class="ttdeci">AnimatedColorOption background</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00071">component_options.hpp:71</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a552ba6d33b3c9bec586b99fba4c243ac"><div class="ttname"><a href="namespaceftxui.html#a552ba6d33b3c9bec586b99fba4c243ac">ftxui::hbox</a></div><div class="ttdeci">Element hbox(Elements)</div><div class="ttdoc">A container displaying elements horizontally one by one.</div><div class="ttdef"><b>Definition</b> <a href="hbox_8cpp_source.html#l00094">hbox.cpp:94</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a5641c45021a8cc20bdd21498563825a0"><div class="ttname"><a href="namespaceftxui.html#a5641c45021a8cc20bdd21498563825a0">ftxui::MenuEntryOption::transform</a></div><div class="ttdeci">std::function&lt; Element(const EntryState &amp;state)&gt; transform</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00079">component_options.hpp:79</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a672456b8f2091b615a30ff755418b37b"><div class="ttname"><a href="namespaceftxui.html#a672456b8f2091b615a30ff755418b37b">ftxui::inverted</a></div><div class="ttdeci">Element inverted(Element)</div><div class="ttdoc">Add a filter that will invert the foreground and the background colors.</div><div class="ttdef"><b>Definition</b> <a href="inverted_8cpp_source.html#l00034">inverted.cpp:34</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a75baaa2734ed76a9f478beaafa87ae57"><div class="ttname"><a href="namespaceftxui.html#a75baaa2734ed76a9f478beaafa87ae57">ftxui::text</a></div><div class="ttdeci">Element text(std::wstring text)</div><div class="ttdoc">Display a piece of unicode text.</div><div class="ttdef"><b>Definition</b> <a href="text_8cpp_source.html#l00160">text.cpp:160</a></div></div>
<div class="ttc" id="anamespaceftxui_html_a792071ccdd115df37a515b3e49d174ef"><div class="ttname"><a href="namespaceftxui.html#a792071ccdd115df37a515b3e49d174ef">ftxui::Elements</a></div><div class="ttdeci">std::vector&lt; Element &gt; Elements</div><div class="ttdef"><b>Definition</b> <a href="elements_8hpp_source.html#l00023">elements.hpp:23</a></div></div>
<div class="ttc" id="anamespaceftxui_html_aa2d7d671f184f85e0f396f2610fa6c2e"><div class="ttname"><a href="namespaceftxui.html#aa2d7d671f184f85e0f396f2610fa6c2e">ftxui::focus</a></div><div class="ttdeci">Element focus(Element)</div><div class="ttdoc">Set the child to be the one focused among its siblings.</div><div class="ttdef"><b>Definition</b> <a href="frame_8cpp_source.html#l00101">frame.cpp:101</a></div></div>
<div class="ttc" id="anamespaceftxui_html_aaff8245861617a3d9e846e99de582a63"><div class="ttname"><a href="namespaceftxui.html#aaff8245861617a3d9e846e99de582a63">ftxui::reflect</a></div><div class="ttdeci">Decorator reflect(Box &amp;box)</div><div class="ttdef"><b>Definition</b> <a href="reflect_8cpp_source.html#l00043">reflect.cpp:43</a></div></div>
<div class="ttc" id="anamespaceftxui_html_ab7131557fbe84a6b4b2f2ffcff7d44f0"><div class="ttname"><a href="namespaceftxui.html#ab7131557fbe84a6b4b2f2ffcff7d44f0">ftxui::MenuEntryOption::animated_colors</a></div><div class="ttdeci">AnimatedColorsOption animated_colors</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00080">component_options.hpp:80</a></div></div>
<div class="ttc" id="anamespaceftxui_html_af61b489da39ca5e24b68e6e1a2b09c0d"><div class="ttname"><a href="namespaceftxui.html#af61b489da39ca5e24b68e6e1a2b09c0d">ftxui::color</a></div><div class="ttdeci">Decorator color(Color)</div><div class="ttdoc">Decorate using a foreground color.</div><div class="ttdef"><b>Definition</b> <a href="dom_2color_8cpp_source.html#l00110">color.cpp:110</a></div></div>
<div class="ttc" id="anamespaceftxui_html_afd28058f0ccbbdf34691a85a7cc9b2e3"><div class="ttname"><a href="namespaceftxui.html#afd28058f0ccbbdf34691a85a7cc9b2e3">ftxui::vbox</a></div><div class="ttdeci">Element vbox(Elements)</div><div class="ttdoc">A container displaying elements vertically one by one.</div><div class="ttdef"><b>Definition</b> <a href="vbox_8cpp_source.html#l00096">vbox.cpp:96</a></div></div>
<div class="ttc" id="anamespaceftxui_html_structftxui_1_1EntryState"><div class="ttname"><a href="namespaceftxui.html#structftxui_1_1EntryState">ftxui::EntryState</a></div><div class="ttdoc">arguments for |ButtonOption::transform|, |CheckboxOption::transform|, |Radiobox::transform|,...</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00023">component_options.hpp:23</a></div></div>
<div class="ttc" id="anamespaceftxui_html_structftxui_1_1MenuEntryOption"><div class="ttname"><a href="namespaceftxui.html#structftxui_1_1MenuEntryOption">ftxui::MenuEntryOption</a></div><div class="ttdoc">Option for the MenuEntry component.</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00077">component_options.hpp:77</a></div></div>
<div class="ttc" id="aref_8hpp_html"><div class="ttname"><a href="ref_8hpp.html">ref.hpp</a></div></div>
<div class="ttc" id="ascreen__interactive_8hpp_html"><div class="ttname"><a href="screen__interactive_8hpp.html">screen_interactive.hpp</a></div></div>
<div class="ttc" id="astructftxui_1_1AnimatedColorOption_html_a23a21de13ab9c6644225966245df3fe3"><div class="ttname"><a href="structftxui_1_1AnimatedColorOption.html#a23a21de13ab9c6644225966245df3fe3">ftxui::AnimatedColorOption::function</a></div><div class="ttdeci">animation::easing::Function function</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00067">component_options.hpp:67</a></div></div>
<div class="ttc" id="astructftxui_1_1AnimatedColorOption_html_a5c04e41d802330270ae14a9861c1e2df"><div class="ttname"><a href="structftxui_1_1AnimatedColorOption.html#a5c04e41d802330270ae14a9861c1e2df">ftxui::AnimatedColorOption::active</a></div><div class="ttdeci">Color active</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00065">component_options.hpp:65</a></div></div>
<div class="ttc" id="astructftxui_1_1AnimatedColorOption_html_a7449575119a6168a323351fb04a7eb64"><div class="ttname"><a href="structftxui_1_1AnimatedColorOption.html#a7449575119a6168a323351fb04a7eb64">ftxui::AnimatedColorOption::duration</a></div><div class="ttdeci">animation::Duration duration</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00066">component_options.hpp:66</a></div></div>
<div class="ttc" id="astructftxui_1_1AnimatedColorOption_html_a8740ba80e30dd75e71d09fa1dcf04f3d"><div class="ttname"><a href="structftxui_1_1AnimatedColorOption.html#a8740ba80e30dd75e71d09fa1dcf04f3d">ftxui::AnimatedColorOption::enabled</a></div><div class="ttdeci">bool enabled</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00063">component_options.hpp:63</a></div></div>
<div class="ttc" id="astructftxui_1_1AnimatedColorOption_html_a898e4eb6c2a93ea3b71fc373f39854eb"><div class="ttname"><a href="structftxui_1_1AnimatedColorOption.html#a898e4eb6c2a93ea3b71fc373f39854eb">ftxui::AnimatedColorOption::inactive</a></div><div class="ttdeci">Color inactive</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00064">component_options.hpp:64</a></div></div>
<div class="ttc" id="astructftxui_1_1Box_html"><div class="ttname"><a href="structftxui_1_1Box.html">ftxui::Box</a></div><div class="ttdef"><b>Definition</b> <a href="box_8hpp_source.html#l00009">box.hpp:9</a></div></div>
<div class="ttc" id="astructftxui_1_1Event_html"><div class="ttname"><a href="structftxui_1_1Event.html">ftxui::Event</a></div><div class="ttdoc">Represent an event. It can be key press event, a terminal resize, or more ...</div><div class="ttdef"><b>Definition</b> <a href="event_8hpp_source.html#l00027">event.hpp:27</a></div></div>
<div class="ttc" id="astructftxui_1_1Event_html_a00f063998a734c338531f38c5e3d6428"><div class="ttname"><a href="structftxui_1_1Event.html#a00f063998a734c338531f38c5e3d6428">ftxui::Event::TabReverse</a></div><div class="ttdeci">static const Event TabReverse</div><div class="ttdef"><b>Definition</b> <a href="event_8hpp_source.html#l00054">event.hpp:54</a></div></div>
<div class="ttc" id="astructftxui_1_1Event_html_a21ae13b6dcbc80ed6549a5afab248477"><div class="ttname"><a href="structftxui_1_1Event.html#a21ae13b6dcbc80ed6549a5afab248477">ftxui::Event::PageUp</a></div><div class="ttdeci">static const Event PageUp</div><div class="ttdef"><b>Definition</b> <a href="event_8hpp_source.html#l00060">event.hpp:60</a></div></div>
<div class="ttc" id="astructftxui_1_1Event_html_a916bd0ae3c86941b660d9a07980bb0c9"><div class="ttname"><a href="structftxui_1_1Event.html#a916bd0ae3c86941b660d9a07980bb0c9">ftxui::Event::ArrowUp</a></div><div class="ttdeci">static const Event ArrowUp</div><div class="ttdef"><b>Definition</b> <a href="event_8hpp_source.html#l00040">event.hpp:40</a></div></div>
<div class="ttc" id="astructftxui_1_1Event_html_a94bd9090f8bf9eea776c867113afb86c"><div class="ttname"><a href="structftxui_1_1Event.html#a94bd9090f8bf9eea776c867113afb86c">ftxui::Event::Tab</a></div><div class="ttdeci">static const Event Tab</div><div class="ttdef"><b>Definition</b> <a href="event_8hpp_source.html#l00053">event.hpp:53</a></div></div>
<div class="ttc" id="astructftxui_1_1Event_html_a9d2a831cf68bf2185a3c56c2e09b2f23"><div class="ttname"><a href="structftxui_1_1Event.html#a9d2a831cf68bf2185a3c56c2e09b2f23">ftxui::Event::ArrowDown</a></div><div class="ttdeci">static const Event ArrowDown</div><div class="ttdef"><b>Definition</b> <a href="event_8hpp_source.html#l00041">event.hpp:41</a></div></div>
<div class="ttc" id="astructftxui_1_1Event_html_a9e841cb4b2ac7a46cfd26806a40fe3b5"><div class="ttname"><a href="structftxui_1_1Event.html#a9e841cb4b2ac7a46cfd26806a40fe3b5">ftxui::Event::End</a></div><div class="ttdeci">static const Event End</div><div class="ttdef"><b>Definition</b> <a href="event_8hpp_source.html#l00059">event.hpp:59</a></div></div>
<div class="ttc" id="astructftxui_1_1Event_html_aad7d2ec712d40ad87d330e5e4399fdbc"><div class="ttname"><a href="structftxui_1_1Event.html#aad7d2ec712d40ad87d330e5e4399fdbc">ftxui::Event::Home</a></div><div class="ttdeci">static const Event Home</div><div class="ttdef"><b>Definition</b> <a href="event_8hpp_source.html#l00058">event.hpp:58</a></div></div>
<div class="ttc" id="astructftxui_1_1Event_html_acc3462fea2a9b2085734ff87dc881b4c"><div class="ttname"><a href="structftxui_1_1Event.html#acc3462fea2a9b2085734ff87dc881b4c">ftxui::Event::PageDown</a></div><div class="ttdeci">static const Event PageDown</div><div class="ttdef"><b>Definition</b> <a href="event_8hpp_source.html#l00061">event.hpp:61</a></div></div>
<div class="ttc" id="astructftxui_1_1Event_html_ad3ab0b5bcc923c4b994080d45b97e36b"><div class="ttname"><a href="structftxui_1_1Event.html#ad3ab0b5bcc923c4b994080d45b97e36b">ftxui::Event::Return</a></div><div class="ttdeci">static const Event Return</div><div class="ttdef"><b>Definition</b> <a href="event_8hpp_source.html#l00051">event.hpp:51</a></div></div>
<div class="ttc" id="astructftxui_1_1Event_html_ae1b59315a513c99ac3095bc42dff0d94"><div class="ttname"><a href="structftxui_1_1Event.html#ae1b59315a513c99ac3095bc42dff0d94">ftxui::Event::ArrowLeft</a></div><div class="ttdeci">static const Event ArrowLeft</div><div class="ttdef"><b>Definition</b> <a href="event_8hpp_source.html#l00038">event.hpp:38</a></div></div>
<div class="ttc" id="astructftxui_1_1Event_html_afed9a747f55d4564e4f749bea1de4022"><div class="ttname"><a href="structftxui_1_1Event.html#afed9a747f55d4564e4f749bea1de4022">ftxui::Event::ArrowRight</a></div><div class="ttdeci">static const Event ArrowRight</div><div class="ttdef"><b>Definition</b> <a href="event_8hpp_source.html#l00039">event.hpp:39</a></div></div>
<div class="ttc" id="astructftxui_1_1MenuOption_html"><div class="ttname"><a href="structftxui_1_1MenuOption.html">ftxui::MenuOption</a></div><div class="ttdoc">Option for the Menu component.</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00085">component_options.hpp:85</a></div></div>
<div class="ttc" id="astructftxui_1_1MenuOption_html_a11476ea3dc58bf17777879693fb2985a"><div class="ttname"><a href="structftxui_1_1MenuOption.html#a11476ea3dc58bf17777879693fb2985a">ftxui::MenuOption::elements_prefix</a></div><div class="ttdeci">std::function&lt; Element()&gt; elements_prefix</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00100">component_options.hpp:100</a></div></div>
<div class="ttc" id="astructftxui_1_1MenuOption_html_a133a8caaf0246db0902f7abce37a9b6d"><div class="ttname"><a href="structftxui_1_1MenuOption.html#a133a8caaf0246db0902f7abce37a9b6d">ftxui::MenuOption::Toggle</a></div><div class="ttdeci">static MenuOption Toggle()</div><div class="ttdoc">Standard options for a horitontal menu with some separator. This can be useful to implement a tab bar...</div><div class="ttdef"><b>Definition</b> <a href="component__options_8cpp_source.html#l00155">component_options.cpp:155</a></div></div>
<div class="ttc" id="astructftxui_1_1MenuOption_html_a2076e7253c5acce2321c067e9b7a1823"><div class="ttname"><a href="structftxui_1_1MenuOption.html#a2076e7253c5acce2321c067e9b7a1823">ftxui::MenuOption::entries_option</a></div><div class="ttdeci">MenuEntryOption entries_option</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00098">component_options.hpp:98</a></div></div>
<div class="ttc" id="astructftxui_1_1MenuOption_html_a4ba9530701be07334a17c0184747c535"><div class="ttname"><a href="structftxui_1_1MenuOption.html#a4ba9530701be07334a17c0184747c535">ftxui::MenuOption::on_enter</a></div><div class="ttdeci">std::function&lt; void()&gt; on_enter</div><div class="ttdoc">Called when the selected entry changes.</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00106">component_options.hpp:106</a></div></div>
<div class="ttc" id="astructftxui_1_1MenuOption_html_a53421c695d00016ab925777d423b4eb6"><div class="ttname"><a href="structftxui_1_1MenuOption.html#a53421c695d00016ab925777d423b4eb6">ftxui::MenuOption::direction</a></div><div class="ttdeci">Direction direction</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00099">component_options.hpp:99</a></div></div>
<div class="ttc" id="astructftxui_1_1MenuOption_html_a55b558727e02acce3f5259811b2dfe5b"><div class="ttname"><a href="structftxui_1_1MenuOption.html#a55b558727e02acce3f5259811b2dfe5b">ftxui::MenuOption::underline</a></div><div class="ttdeci">UnderlineOption underline</div><div class="ttdoc">The index of the selected entry.</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00097">component_options.hpp:97</a></div></div>
<div class="ttc" id="astructftxui_1_1MenuOption_html_a7b534b117dbbe826d34ba17af85f1e93"><div class="ttname"><a href="structftxui_1_1MenuOption.html#a7b534b117dbbe826d34ba17af85f1e93">ftxui::MenuOption::entries</a></div><div class="ttdeci">ConstStringListRef entries</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00093">component_options.hpp:93</a></div></div>
<div class="ttc" id="astructftxui_1_1MenuOption_html_a93d5d37708b77971a666b73486017835"><div class="ttname"><a href="structftxui_1_1MenuOption.html#a93d5d37708b77971a666b73486017835">ftxui::MenuOption::focused_entry</a></div><div class="ttdeci">Ref&lt; int &gt; focused_entry</div><div class="ttdoc">Called when the user presses enter.</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00107">component_options.hpp:107</a></div></div>
<div class="ttc" id="astructftxui_1_1MenuOption_html_a9504d8d3bfa1daaab000e5455536b20d"><div class="ttname"><a href="structftxui_1_1MenuOption.html#a9504d8d3bfa1daaab000e5455536b20d">ftxui::MenuOption::elements_infix</a></div><div class="ttdeci">std::function&lt; Element()&gt; elements_infix</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00101">component_options.hpp:101</a></div></div>
<div class="ttc" id="astructftxui_1_1MenuOption_html_ab08362a5698543aec0fbb37f99777119"><div class="ttname"><a href="structftxui_1_1MenuOption.html#ab08362a5698543aec0fbb37f99777119">ftxui::MenuOption::elements_postfix</a></div><div class="ttdeci">std::function&lt; Element()&gt; elements_postfix</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00102">component_options.hpp:102</a></div></div>
<div class="ttc" id="astructftxui_1_1MenuOption_html_abdfe3c83deeec2323ff90248815b8f0a"><div class="ttname"><a href="structftxui_1_1MenuOption.html#abdfe3c83deeec2323ff90248815b8f0a">ftxui::MenuOption::on_change</a></div><div class="ttdeci">std::function&lt; void()&gt; on_change</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00105">component_options.hpp:105</a></div></div>
<div class="ttc" id="astructftxui_1_1MenuOption_html_ac42a32c3439d08be9c5626a5fbc3a0c4"><div class="ttname"><a href="structftxui_1_1MenuOption.html#ac42a32c3439d08be9c5626a5fbc3a0c4">ftxui::MenuOption::selected</a></div><div class="ttdeci">Ref&lt; int &gt; selected</div><div class="ttdoc">The list of entries.</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00094">component_options.hpp:94</a></div></div>
<div class="ttc" id="astructftxui_1_1Mouse_html_a03bfec859eac87be20f8952c1eb89de0a9d4d8b0b72fc2659da772d761a3c5ecb"><div class="ttname"><a href="structftxui_1_1Mouse.html#a03bfec859eac87be20f8952c1eb89de0a9d4d8b0b72fc2659da772d761a3c5ecb">ftxui::Mouse::Left</a></div><div class="ttdeci">@ Left</div><div class="ttdef"><b>Definition</b> <a href="mouse_8hpp_source.html#l00013">mouse.hpp:13</a></div></div>
<div class="ttc" id="astructftxui_1_1Mouse_html_a03bfec859eac87be20f8952c1eb89de0ab51f2e2fc1697565b732263f86a976d6"><div class="ttname"><a href="structftxui_1_1Mouse.html#a03bfec859eac87be20f8952c1eb89de0ab51f2e2fc1697565b732263f86a976d6">ftxui::Mouse::WheelUp</a></div><div class="ttdeci">@ WheelUp</div><div class="ttdef"><b>Definition</b> <a href="mouse_8hpp_source.html#l00017">mouse.hpp:17</a></div></div>
<div class="ttc" id="astructftxui_1_1Mouse_html_a03bfec859eac87be20f8952c1eb89de0ac9d3e887722f2bc482bcca9d41c512af"><div class="ttname"><a href="structftxui_1_1Mouse.html#a03bfec859eac87be20f8952c1eb89de0ac9d3e887722f2bc482bcca9d41c512af">ftxui::Mouse::None</a></div><div class="ttdeci">@ None</div><div class="ttdef"><b>Definition</b> <a href="mouse_8hpp_source.html#l00016">mouse.hpp:16</a></div></div>
<div class="ttc" id="astructftxui_1_1Mouse_html_a03bfec859eac87be20f8952c1eb89de0afd8a27c9d7eac3486f6fbd2d608da0db"><div class="ttname"><a href="structftxui_1_1Mouse.html#a03bfec859eac87be20f8952c1eb89de0afd8a27c9d7eac3486f6fbd2d608da0db">ftxui::Mouse::WheelDown</a></div><div class="ttdeci">@ WheelDown</div><div class="ttdef"><b>Definition</b> <a href="mouse_8hpp_source.html#l00018">mouse.hpp:18</a></div></div>
<div class="ttc" id="astructftxui_1_1Mouse_html_a099c889d2b948b264c7a665b66e3a9b6a05f4abb2322aa023aba9570c327aff25"><div class="ttname"><a href="structftxui_1_1Mouse.html#a099c889d2b948b264c7a665b66e3a9b6a05f4abb2322aa023aba9570c327aff25">ftxui::Mouse::Pressed</a></div><div class="ttdeci">@ Pressed</div><div class="ttdef"><b>Definition</b> <a href="mouse_8hpp_source.html#l00025">mouse.hpp:25</a></div></div>
<div class="ttc" id="astructftxui_1_1UnderlineOption_html_a13a6488c25b667256590c85aacb1f518"><div class="ttname"><a href="structftxui_1_1UnderlineOption.html#a13a6488c25b667256590c85aacb1f518">ftxui::UnderlineOption::follower_duration</a></div><div class="ttdeci">animation::Duration follower_duration</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00044">component_options.hpp:44</a></div></div>
<div class="ttc" id="astructftxui_1_1UnderlineOption_html_a1886d86b757123859c89f3336631b1f8"><div class="ttname"><a href="structftxui_1_1UnderlineOption.html#a1886d86b757123859c89f3336631b1f8">ftxui::UnderlineOption::leader_function</a></div><div class="ttdeci">animation::easing::Function leader_function</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00037">component_options.hpp:37</a></div></div>
<div class="ttc" id="astructftxui_1_1UnderlineOption_html_a2b5d480250b61cd7e62e7c6567345e38"><div class="ttname"><a href="structftxui_1_1UnderlineOption.html#a2b5d480250b61cd7e62e7c6567345e38">ftxui::UnderlineOption::follower_delay</a></div><div class="ttdeci">animation::Duration follower_delay</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00045">component_options.hpp:45</a></div></div>
<div class="ttc" id="astructftxui_1_1UnderlineOption_html_a593f1ba15add21d1972c01372db369df"><div class="ttname"><a href="structftxui_1_1UnderlineOption.html#a593f1ba15add21d1972c01372db369df">ftxui::UnderlineOption::color_active</a></div><div class="ttdeci">Color color_active</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00034">component_options.hpp:34</a></div></div>
<div class="ttc" id="astructftxui_1_1UnderlineOption_html_a6112ea2b5db5a4c50fe7d5ae70dfd016"><div class="ttname"><a href="structftxui_1_1UnderlineOption.html#a6112ea2b5db5a4c50fe7d5ae70dfd016">ftxui::UnderlineOption::leader_duration</a></div><div class="ttdeci">animation::Duration leader_duration</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00042">component_options.hpp:42</a></div></div>
<div class="ttc" id="astructftxui_1_1UnderlineOption_html_a7dca406bc24422caeb8f39705334dbd1"><div class="ttname"><a href="structftxui_1_1UnderlineOption.html#a7dca406bc24422caeb8f39705334dbd1">ftxui::UnderlineOption::follower_function</a></div><div class="ttdeci">animation::easing::Function follower_function</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00039">component_options.hpp:39</a></div></div>
<div class="ttc" id="astructftxui_1_1UnderlineOption_html_a8740ba80e30dd75e71d09fa1dcf04f3d"><div class="ttname"><a href="structftxui_1_1UnderlineOption.html#a8740ba80e30dd75e71d09fa1dcf04f3d">ftxui::UnderlineOption::enabled</a></div><div class="ttdeci">bool enabled</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00032">component_options.hpp:32</a></div></div>
<div class="ttc" id="astructftxui_1_1UnderlineOption_html_ad5a77e0bc0ce649271a13949a7a0a635"><div class="ttname"><a href="structftxui_1_1UnderlineOption.html#ad5a77e0bc0ce649271a13949a7a0a635">ftxui::UnderlineOption::color_inactive</a></div><div class="ttdeci">Color color_inactive</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00035">component_options.hpp:35</a></div></div>
<div class="ttc" id="astructftxui_1_1UnderlineOption_html_ae29bb2e2c1e7f6eca70781e6fcd63a64"><div class="ttname"><a href="structftxui_1_1UnderlineOption.html#ae29bb2e2c1e7f6eca70781e6fcd63a64">ftxui::UnderlineOption::leader_delay</a></div><div class="ttdeci">animation::Duration leader_delay</div><div class="ttdef"><b>Definition</b> <a href="component__options_8hpp_source.html#l00043">component_options.hpp:43</a></div></div>
<div class="ttc" id="autil_8hpp_html"><div class="ttname"><a href="util_8hpp.html">util.hpp</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.14-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
</div>
</body>
</html>