<!DOCTYPE html> <html>

<head>
  <meta charset="utf-8">

<meta name=“viewport” content=“width=device-width, initial-scale=1.0”> <title>

Class: RubyText::Window

  &mdash; Documentation by YARD 0.9.24

</title>

<link rel="stylesheet" href="../css/style.css" type="text/css" />

<link rel="stylesheet" href="../css/common.css" type="text/css" />

<script type=“text/javascript”>

pathId = "RubyText::Window";
relpath = '../';

</script>

<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>

<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>

</head>
<body>
  <div class="nav_wrap">
    <iframe id="nav" src="../class_list.html?1"></iframe>
    <div id="resizer"></div>
  </div>

  <div id="main" tabindex="-1">
    <div id="header">
      <div id="menu">

  <a href="../_index.html">Index (W)</a> &raquo;
  <span class='title'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span>
   &raquo; 
  <span class="title">Window</span>

</div>

    <div id="search">

<a class="full_list_link" id="class_list_link"
    href="../class_list.html">

    <svg width="24" height="24">
      <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
      <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
      <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
    </svg>
</a>

</div>

  <div class="clear"></div>
</div>

<div id="content"><h1>Class: RubyText::Window

</h1> <div class=“box_info”>

<dl>
  <dt>Inherits:</dt>
  <dd>
    <span class="inheritName">Object</span>

      <ul class="fullTree">
        <li>Object</li>

          <li class="next">RubyText::Window</li>

      </ul>
      <a href="#" class="inheritanceTree">show all</a>

  </dd>
</dl>

<dl>
    <dt>Includes:</dt>
    <dd><span class='object_link'><a href="Keys.html" title="RubyText::Keys (module)">Keys</a></span></dd>
</dl>

<dl>
  <dt>Defined in:</dt>
  <dd>menu.rb<span class="defines">,<br />
navigation.rb,<br /> output.rb,<br /> rubytext.rb,<br /> window.rb,<br /> color.rb</span>

</dd>

</dl>

</div>

<h2>Overview</h2><div class=“docstring”>

<div class="discussion">

<p>Reopening: Wrapper for curses windows</p>

</div>

</div> <div class=“tags”>

</div><h2>Defined Under Namespace</h2> <p class=“children”>

<strong class="classes">Classes:</strong> <span class='object_link'><a href="Window/GetString.html" title="RubyText::Window::GetString (class)">GetString</a></span>

</p>

  <h2>
    Constant Summary
    <small><a href="#" class="constants_summary_toggle">collapse</a></small>
  </h2>

  <dl class="constants">

      <dt id="ScreenStack-constant" class="">ScreenStack =

      </dt>
      <dd><pre class="code"><span class='lbracket'>[</span><span class='rbracket'>]</span></pre></dd>

  </dl>

<h3 class="inherited">Constants included
   from <span class='object_link'><a href="Keys.html" title="RubyText::Keys (module)">Keys</a></span></h3>
<p class="inherited"><span class='object_link'><a href="Keys.html#BS-constant" title="RubyText::Keys::BS (constant)">Keys::BS</a></span>, <span class='object_link'><a href="Keys.html#Back-constant" title="RubyText::Keys::Back (constant)">Keys::Back</a></span>, <span class='object_link'><a href="Keys.html#CtlD-constant" title="RubyText::Keys::CtlD (constant)">Keys::CtlD</a></span>, <span class='object_link'><a href="Keys.html#DEL-constant" title="RubyText::Keys::DEL (constant)">Keys::DEL</a></span>, <span class='object_link'><a href="Keys.html#Del-constant" title="RubyText::Keys::Del (constant)">Keys::Del</a></span>, <span class='object_link'><a href="Keys.html#Delete-constant" title="RubyText::Keys::Delete (constant)">Keys::Delete</a></span>, <span class='object_link'><a href="Keys.html#Down-constant" title="RubyText::Keys::Down (constant)">Keys::Down</a></span>, <span class='object_link'><a href="Keys.html#EOF-constant" title="RubyText::Keys::EOF (constant)">Keys::EOF</a></span>, <span class='object_link'><a href="Keys.html#ESC-constant" title="RubyText::Keys::ESC (constant)">Keys::ESC</a></span>, <span class='object_link'><a href="Keys.html#Enter-constant" title="RubyText::Keys::Enter (constant)">Keys::Enter</a></span>, <span class='object_link'><a href="Keys.html#Esc-constant" title="RubyText::Keys::Esc (constant)">Keys::Esc</a></span>, <span class='object_link'><a href="Keys.html#Escape-constant" title="RubyText::Keys::Escape (constant)">Keys::Escape</a></span>, <span class='object_link'><a href="Keys.html#F1-constant" title="RubyText::Keys::F1 (constant)">Keys::F1</a></span>, <span class='object_link'><a href="Keys.html#F10-constant" title="RubyText::Keys::F10 (constant)">Keys::F10</a></span>, <span class='object_link'><a href="Keys.html#F11-constant" title="RubyText::Keys::F11 (constant)">Keys::F11</a></span>, <span class='object_link'><a href="Keys.html#F12-constant" title="RubyText::Keys::F12 (constant)">Keys::F12</a></span>, <span class='object_link'><a href="Keys.html#F2-constant" title="RubyText::Keys::F2 (constant)">Keys::F2</a></span>, <span class='object_link'><a href="Keys.html#F3-constant" title="RubyText::Keys::F3 (constant)">Keys::F3</a></span>, <span class='object_link'><a href="Keys.html#F4-constant" title="RubyText::Keys::F4 (constant)">Keys::F4</a></span>, <span class='object_link'><a href="Keys.html#F5-constant" title="RubyText::Keys::F5 (constant)">Keys::F5</a></span>, <span class='object_link'><a href="Keys.html#F6-constant" title="RubyText::Keys::F6 (constant)">Keys::F6</a></span>, <span class='object_link'><a href="Keys.html#F7-constant" title="RubyText::Keys::F7 (constant)">Keys::F7</a></span>, <span class='object_link'><a href="Keys.html#F8-constant" title="RubyText::Keys::F8 (constant)">Keys::F8</a></span>, <span class='object_link'><a href="Keys.html#F9-constant" title="RubyText::Keys::F9 (constant)">Keys::F9</a></span>, <span class='object_link'><a href="Keys.html#LF-constant" title="RubyText::Keys::LF (constant)">Keys::LF</a></span>, <span class='object_link'><a href="Keys.html#Left-constant" title="RubyText::Keys::Left (constant)">Keys::Left</a></span>, <span class='object_link'><a href="Keys.html#NL-constant" title="RubyText::Keys::NL (constant)">Keys::NL</a></span>, <span class='object_link'><a href="Keys.html#Right-constant" title="RubyText::Keys::Right (constant)">Keys::Right</a></span>, <span class='object_link'><a href="Keys.html#TAB-constant" title="RubyText::Keys::TAB (constant)">Keys::TAB</a></span>, <span class='object_link'><a href="Keys.html#Tab-constant" title="RubyText::Keys::Tab (constant)">Keys::Tab</a></span>, <span class='object_link'><a href="Keys.html#Up-constant" title="RubyText::Keys::Up (constant)">Keys::Up</a></span></p>

<h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
<ul class="summary">

    <li class="public ">
<span class="summary_signature">

    <a href="#bg-instance_method" title="#bg (instance method)">#<strong>bg</strong>  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Returns the value of attribute bg.</p> </div></span>

</li>

    <li class="public ">
<span class="summary_signature">

    <a href="#c0-instance_method" title="#c0 (instance method)">#<strong>c0</strong>  &#x21d2; Object </a>

</span>

    <span class="note title readonly">readonly</span>

  <span class="summary_desc"><div class='inline'>

<p>Returns the value of attribute c0.</p> </div></span>

</li>

    <li class="public ">
<span class="summary_signature">

    <a href="#cols-instance_method" title="#cols (instance method)">#<strong>cols</strong>  &#x21d2; Object </a>

</span>

    <span class="note title readonly">readonly</span>

  <span class="summary_desc"><div class='inline'>

<p>Returns the value of attribute cols.</p> </div></span>

</li>

    <li class="public ">
<span class="summary_signature">

    <a href="#cwin-instance_method" title="#cwin (instance method)">#<strong>cwin</strong>  &#x21d2; Object </a>

</span>

    <span class="note title readonly">readonly</span>

  <span class="summary_desc"><div class='inline'>

<p>Returns the value of attribute cwin.</p> </div></span>

</li>

    <li class="public ">
<span class="summary_signature">

    <a href="#fg-instance_method" title="#fg (instance method)">#<strong>fg</strong>  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Returns the value of attribute fg.</p> </div></span>

</li>

    <li class="public ">
<span class="summary_signature">

    <a href="#height-instance_method" title="#height (instance method)">#<strong>height</strong>  &#x21d2; Object </a>

</span>

    <span class="note title readonly">readonly</span>

  <span class="summary_desc"><div class='inline'>

<p>Returns the value of attribute height.</p> </div></span>

</li>

    <li class="public ">
<span class="summary_signature">

    <a href="#r0-instance_method" title="#r0 (instance method)">#<strong>r0</strong>  &#x21d2; Object </a>

</span>

    <span class="note title readonly">readonly</span>

  <span class="summary_desc"><div class='inline'>

<p>Returns the value of attribute r0.</p> </div></span>

</li>

    <li class="public ">
<span class="summary_signature">

    <a href="#rows-instance_method" title="#rows (instance method)">#<strong>rows</strong>  &#x21d2; Object </a>

</span>

    <span class="note title readonly">readonly</span>

  <span class="summary_desc"><div class='inline'>

<p>Returns the value of attribute rows.</p> </div></span>

</li>

    <li class="public ">
<span class="summary_signature">

    <a href="#scrolling-instance_method" title="#scrolling (instance method)">#<strong>scrolling</strong>(flag = true)  &#x21d2; Object </a>

</span>

    <span class="note title readonly">readonly</span>

  <span class="summary_desc"><div class='inline'>

<p>FIXME refactor bad code.</p> </div></span>

</li>

    <li class="public ">
<span class="summary_signature">

    <a href="#width-instance_method" title="#width (instance method)">#<strong>width</strong>  &#x21d2; Object </a>

</span>

    <span class="note title readonly">readonly</span>

  <span class="summary_desc"><div class='inline'>

<p>Returns the value of attribute width.</p> </div></span>

</li>

</ul>

  <h2>
    Class Method Summary
    <small><a href="#" class="summary_toggle">collapse</a></small>
  </h2>

  <ul class="summary">

      <li class="public ">
<span class="summary_signature">

    <a href="#clear-class_method" title="clear (class method)">.<strong>clear</strong>(win)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>delete this?.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#colorize!-class_method" title="colorize! (class method)">.<strong>colorize!</strong>(cwin, fg, bg)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Set up a window with fg/bg.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#main-class_method" title="main (class method)">.<strong>main</strong>(fg: White, bg: Blue, scroll: false)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#make-class_method" title="make (class method)">.<strong>make</strong>(cwin, high, wide, r0, c0, border: true, fg: White, bg: Black, scroll: false)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>FIXME try again to inline this.</p> </div></span>

</li>

  </ul>

  <h2>
    Instance Method Summary
    <small><a href="#" class="summary_toggle">collapse</a></small>
  </h2>

  <ul class="summary">

      <li class="public ">
<span class="summary_signature">

    <a href="#[]-instance_method" title="#[] (instance method)">#<strong>[]</strong>(r, c)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#[]=-instance_method" title="#[]= (instance method)">#<strong>[]=</strong>(r, c, char)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#_putch-instance_method" title="#_putch (instance method)">#<strong>_putch</strong>(ch)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#add_title-instance_method" title="#add_title (instance method)">#<strong>add_title</strong>(str, align = :center)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#background-instance_method" title="#background (instance method)">#<strong>background</strong>(high = STDSCR.rows, wide = STDSCR.cols, r = 0, c = 0)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#beep-instance_method" title="#beep (instance method)">#<strong>beep</strong>  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#bottom-instance_method" title="#bottom (instance method)">#<strong>bottom</strong>  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Move cursor to bottom of window.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#boxme-instance_method" title="#boxme (instance method)">#<strong>boxme</strong>  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#center-instance_method" title="#center (instance method)">#<strong>center</strong>(str)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#clear-instance_method" title="#clear (instance method)">#<strong>clear</strong>  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#colorize!-instance_method" title="#colorize! (instance method)">#<strong>colorize!</strong>(fg, bg)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Set up a window with fg/bg.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#coords-instance_method" title="#coords (instance method)">#<strong>coords</strong>(r, c)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Handle special coordinate names (symbols).</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#crlf-instance_method" title="#crlf (instance method)">#<strong>crlf</strong>  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Technically not output…</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#delegate_output-instance_method" title="#delegate_output (instance method)">#<strong>delegate_output</strong>(sym, *args)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#down-instance_method" title="#down (instance method)">#<strong>down</strong>(n = 1)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Move cursor down.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#down!-instance_method" title="#down! (instance method)">#<strong>down!</strong>  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Move cursor to bottom of window.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#effect%3F-instance_method" title="#effect? (instance method)">#<strong>effect?</strong>(arg)  &#x21d2; Boolean </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>FIXME Please refactor the Hal out of this.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#flash-instance_method" title="#flash (instance method)">#<strong>flash</strong>  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#gets-instance_method" title="#gets (instance method)">#<strong>gets</strong>(history: [], limit: nil, tab: [], default: &quot;&quot;, capture: [])  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#go-instance_method" title="#go (instance method)">#<strong>go</strong>(r0, c0)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Go to specified row/column in current window, execute block, and return cursor.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#goto-instance_method" title="#goto (instance method)">#<strong>goto</strong>(r, c)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Go to specified row/column in current window.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#home-instance_method" title="#home (instance method)">#<strong>home</strong>  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Move cursor to home (upper left).</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(high = nil, wide = nil, r0 = 0, c0 = 0, border = false, fg = White, bg = Blue, scroll = false)  &#x21d2; Window </a>

</span>

  <span class="note title constructor">constructor</span>

  <span class="summary_desc"><div class='inline'>

<p>Better to use Window.window IRL.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#left-instance_method" title="#left (instance method)">#<strong>left</strong>(n = 1)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Move cursor left.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#left!-instance_method" title="#left! (instance method)">#<strong>left!</strong>  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Move cursor to far left of window.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#menu-instance_method" title="#menu (instance method)">#<strong>menu</strong>(r: :center, c: :center, items:, curr: 0, border: true, title: nil, fg: Green, bg: Black)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Simple menu with rows of strings.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#multimenu-instance_method" title="#multimenu (instance method)">#<strong>multimenu</strong>(r: :center, c: :center, items:, curr: 0, selected: [], title: nil, sel_fg: Yellow, fg: White, bg: Blue)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Menu for multiple selections (buggy/unused?).</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#output-instance_method" title="#output (instance method)">#<strong>output</strong>(&amp;block)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#p-instance_method" title="#p (instance method)">#<strong>p</strong>(*args)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#print-instance_method" title="#print (instance method)">#<strong>print</strong>(*args)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#putch-instance_method" title="#putch (instance method)">#<strong>putch</strong>(ch, r: nil, c: nil, fx: nil)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#puts-instance_method" title="#puts (instance method)">#<strong>puts</strong>(*args)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#radio_menu-instance_method" title="#radio_menu (instance method)">#<strong>radio_menu</strong>(r: :center, c: :center, items:, curr: 0, border: true, title: nil, fg: Green, bg: Black)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Menu to choose a single setting and retain it.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#rc-instance_method" title="#rc (instance method)">#<strong>rc</strong>  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Return current row/column.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#rcprint-instance_method" title="#rcprint (instance method)">#<strong>rcprint</strong>(r, c, *args)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#rcprint!-instance_method" title="#rcprint! (instance method)">#<strong>rcprint!</strong>(r, c, *args)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#refresh-instance_method" title="#refresh (instance method)">#<strong>refresh</strong>  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#restback-instance_method" title="#restback (instance method)">#<strong>restback</strong>(high = STDSCR.rows, wide = STDSCR.cols, r = 0, c = 0)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#right-instance_method" title="#right (instance method)">#<strong>right</strong>(n = 1)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Move cursor right.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#right!-instance_method" title="#right! (instance method)">#<strong>right!</strong>  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Move cursor to far left of window.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#saveback-instance_method" title="#saveback (instance method)">#<strong>saveback</strong>(high = STDSCR.rows, wide = STDSCR.cols, r = 0, c = 0)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#screen_text-instance_method" title="#screen_text (instance method)">#<strong>screen_text</strong>(file = nil)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>rename?.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#scroll-instance_method" title="#scroll (instance method)">#<strong>scroll</strong>(n = 1)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'></div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#set_colors-instance_method" title="#set_colors (instance method)">#<strong>set_colors</strong>(fg, bg)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Assign color pair to curses window.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#top-instance_method" title="#top (instance method)">#<strong>top</strong>  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Move cursor to top of window.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#topmenu-instance_method" title="#topmenu (instance method)">#<strong>topmenu</strong>(items:, curr: 0, fg: Green, bg: Black)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>One-line menu at top of window.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#up-instance_method" title="#up (instance method)">#<strong>up</strong>(n = 1)  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Move cursor up.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#up!-instance_method" title="#up! (instance method)">#<strong>up!</strong>  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Move cursor to top of window.</p> </div></span>

</li>

      <li class="public ">
<span class="summary_signature">

    <a href="#yesno-instance_method" title="#yesno (instance method)">#<strong>yesno</strong>  &#x21d2; Object </a>

</span>

  <span class="summary_desc"><div class='inline'>

<p>Simple yes/no decision.</p> </div></span>

</li>

  </ul>

<div id="constructor_details" class="method_details_list">
<h2>Constructor Details</h2>

  <div class="method_details first">
<h3 class="signature first" id="initialize-instance_method">

  #<strong>initialize</strong>(high = nil, wide = nil, r0 = 0, c0 = 0, border = false, fg = White, bg = Blue, scroll = false)  &#x21d2; <tt><span class='object_link'><a href="" title="RubyText::Window (class)">Window</a></span></tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Better to use Window.window IRL</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'window.rb', line 23</span>

<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_r0'>r0</span><span class='op'>=</span><span class='int'>0</span><span class='comma'>,</span> <span class='id identifier rubyid_c0'>c0</span><span class='op'>=</span><span class='int'>0</span><span class='comma'>,</span> <span class='id identifier rubyid_border'>border</span><span class='op'>=</span><span class='kw'>false</span><span class='comma'>,</span>

             <span class='id identifier rubyid_fg'>fg</span><span class='op'>=</span><span class='const'>White</span><span class='comma'>,</span> <span class='id identifier rubyid_bg'>bg</span><span class='op'>=</span><span class='const'>Blue</span><span class='comma'>,</span> <span class='id identifier rubyid_scroll'>scroll</span><span class='op'>=</span><span class='kw'>false</span><span class='rparen'>)</span>
<span class='ivar'>@wide</span><span class='comma'>,</span> <span class='ivar'>@high</span><span class='comma'>,</span> <span class='ivar'>@r0</span><span class='comma'>,</span> <span class='ivar'>@c0</span> <span class='op'>=</span> <span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_r0'>r0</span><span class='comma'>,</span> <span class='id identifier rubyid_c0'>c0</span>
<span class='ivar'>@border</span><span class='comma'>,</span> <span class='ivar'>@fg</span><span class='comma'>,</span> <span class='ivar'>@bg</span>      <span class='op'>=</span> <span class='id identifier rubyid_border'>border</span><span class='comma'>,</span> <span class='id identifier rubyid_fg'>fg</span><span class='comma'>,</span> <span class='id identifier rubyid_bg'>bg</span>
<span class='ivar'>@cwin</span> <span class='op'>=</span> <span class='const'>Curses</span><span class='op'>::</span><span class='const'>Window</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='id identifier rubyid_r0'>r0</span><span class='comma'>,</span> <span class='id identifier rubyid_c0'>c0</span><span class='rparen'>)</span>
<span class='id identifier rubyid_colorize!'>colorize!</span><span class='lparen'>(</span><span class='id identifier rubyid_fg'>fg</span><span class='comma'>,</span> <span class='id identifier rubyid_bg'>bg</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='ivar'>@border</span>
  <span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_box'>box</span><span class='lparen'>(</span><span class='const'>Vert</span><span class='comma'>,</span> <span class='const'>Horiz</span><span class='rparen'>)</span>
  <span class='ivar'>@outer</span> <span class='op'>=</span> <span class='ivar'>@cwin</span>
  <span class='ivar'>@outer</span><span class='period'>.</span><span class='id identifier rubyid_refresh'>refresh</span>
  <span class='ivar'>@cwin</span> <span class='op'>=</span> <span class='const'>Curses</span><span class='op'>::</span><span class='const'>Window</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='op'>-</span><span class='int'>2</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='op'>-</span><span class='int'>2</span><span class='comma'>,</span> <span class='id identifier rubyid_r0'>r0</span><span class='op'>+</span><span class='int'>1</span><span class='comma'>,</span> <span class='id identifier rubyid_c0'>c0</span><span class='op'>+</span><span class='int'>1</span><span class='rparen'>)</span>
  <span class='id identifier rubyid_colorize!'>colorize!</span><span class='lparen'>(</span><span class='id identifier rubyid_fg'>fg</span><span class='comma'>,</span> <span class='id identifier rubyid_bg'>bg</span><span class='rparen'>)</span>
<span class='kw'>else</span>
  <span class='ivar'>@outer</span> <span class='op'>=</span> <span class='ivar'>@cwin</span>
<span class='kw'>end</span>
<span class='ivar'>@rows</span><span class='comma'>,</span> <span class='ivar'>@cols</span> <span class='op'>=</span> <span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_maxy'>maxy</span><span class='comma'>,</span> <span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_maxx'>maxx</span>  <span class='comment'># unnecessary really...

</span> <span class='ivar'>@width</span><span class='comma'>,</span> <span class='ivar'>@height</span> <span class='op'>=</span> <span class='ivar'>@cols</span> <span class='op'>+</span> <span class='int'>2</span><span class='comma'>,</span> <span class='ivar'>@rows</span> <span class='op'>+</span> <span class='int'>2</span> <span class='kw'>if</span> <span class='ivar'>@border</span>

<span class='ivar'>@scrolling</span> <span class='op'>=</span> <span class='id identifier rubyid_scroll'>scroll</span>
<span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_scrollok'>scrollok</span><span class='lparen'>(</span><span class='id identifier rubyid_scroll'>scroll</span><span class='rparen'>)</span> 
<span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_refresh'>refresh</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

</div>

<div id="instance_attr_details" class="attr_details">
  <h2>Instance Attribute Details</h2>

    <span id="bg=-instance_method"></span>
    <div class="method_details first">
<h3 class="signature first" id="bg-instance_method">

  #<strong>bg</strong>  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Returns the value of attribute bg.</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

19 20 21</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'window.rb', line 19</span>

<span class='kw'>def</span> <span class='id identifier rubyid_bg'>bg</span>

<span class='ivar'>@bg</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <span id=""></span>
    <div class="method_details ">
<h3 class="signature " id="c0-instance_method">

  #<strong>c0</strong>  &#x21d2; <tt>Object</tt>  <span class="extras">(readonly)</span>

</h3><div class=“docstring”>

<div class="discussion">

<p>Returns the value of attribute c0.</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

18 19 20</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'window.rb', line 18</span>

<span class='kw'>def</span> <span class='id identifier rubyid_c0'>c0</span>

<span class='ivar'>@c0</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <span id=""></span>
    <div class="method_details ">
<h3 class="signature " id="cols-instance_method">

  #<strong>cols</strong>  &#x21d2; <tt>Object</tt>  <span class="extras">(readonly)</span>

</h3><div class=“docstring”>

<div class="discussion">

<p>Returns the value of attribute cols.</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

17 18 19</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'window.rb', line 17</span>

<span class='kw'>def</span> <span class='id identifier rubyid_cols'>cols</span>

<span class='ivar'>@cols</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <span id=""></span>
    <div class="method_details ">
<h3 class="signature " id="cwin-instance_method">

  #<strong>cwin</strong>  &#x21d2; <tt>Object</tt>  <span class="extras">(readonly)</span>

</h3><div class=“docstring”>

<div class="discussion">

<p>Returns the value of attribute cwin.</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

17 18 19</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'window.rb', line 17</span>

<span class='kw'>def</span> <span class='id identifier rubyid_cwin'>cwin</span>

<span class='ivar'>@cwin</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <span id="fg=-instance_method"></span>
    <div class="method_details ">
<h3 class="signature " id="fg-instance_method">

  #<strong>fg</strong>  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Returns the value of attribute fg.</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

19 20 21</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'window.rb', line 19</span>

<span class='kw'>def</span> <span class='id identifier rubyid_fg'>fg</span>

<span class='ivar'>@fg</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <span id=""></span>
    <div class="method_details ">
<h3 class="signature " id="height-instance_method">

  #<strong>height</strong>  &#x21d2; <tt>Object</tt>  <span class="extras">(readonly)</span>

</h3><div class=“docstring”>

<div class="discussion">

<p>Returns the value of attribute height.</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

17 18 19</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'window.rb', line 17</span>

<span class='kw'>def</span> <span class='id identifier rubyid_height'>height</span>

<span class='ivar'>@height</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <span id=""></span>
    <div class="method_details ">
<h3 class="signature " id="r0-instance_method">

  #<strong>r0</strong>  &#x21d2; <tt>Object</tt>  <span class="extras">(readonly)</span>

</h3><div class=“docstring”>

<div class="discussion">

<p>Returns the value of attribute r0.</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

18 19 20</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'window.rb', line 18</span>

<span class='kw'>def</span> <span class='id identifier rubyid_r0'>r0</span>

<span class='ivar'>@r0</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <span id=""></span>
    <div class="method_details ">
<h3 class="signature " id="rows-instance_method">

  #<strong>rows</strong>  &#x21d2; <tt>Object</tt>  <span class="extras">(readonly)</span>

</h3><div class=“docstring”>

<div class="discussion">

<p>Returns the value of attribute rows.</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

17 18 19</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'window.rb', line 17</span>

<span class='kw'>def</span> <span class='id identifier rubyid_rows'>rows</span>

<span class='ivar'>@rows</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <span id=""></span>
    <div class="method_details ">
<h3 class="signature " id="scrolling-instance_method">

  #<strong>scrolling</strong>(flag = true)  &#x21d2; <tt>Object</tt>  <span class="extras">(readonly)</span>

</h3><div class=“docstring”>

<div class="discussion">

<p>FIXME refactor bad code</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

90 91 92</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'window.rb', line 90</span>

<span class='kw'>def</span> <span class='id identifier rubyid_scrolling'>scrolling</span>

<span class='ivar'>@scrolling</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <span id=""></span>
    <div class="method_details ">
<h3 class="signature " id="width-instance_method">

  #<strong>width</strong>  &#x21d2; <tt>Object</tt>  <span class="extras">(readonly)</span>

</h3><div class=“docstring”>

<div class="discussion">

<p>Returns the value of attribute width.</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

17 18 19</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'window.rb', line 17</span>

<span class='kw'>def</span> <span class='id identifier rubyid_width'>width</span>

<span class='ivar'>@width</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

</div>

<div id="class_method_details" class="method_details_list">
  <h2>Class Method Details</h2>

    <div class="method_details first">
<h3 class="signature first" id="clear-class_method">

  .<strong>clear</strong>(win)  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>delete this?</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

103 104 105 106 107 108 109</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'output.rb', line 103</span>

<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_clear'>clear</span><span class='lparen'>(</span><span class='id identifier rubyid_win'>win</span><span class='rparen'>)</span> <span class='comment'># delete this? </span> <span class='id identifier rubyid_num'>num</span> <span class='op'>=</span> <span class='id identifier rubyid_win'>win</span><span class='period'>.</span><span class='id identifier rubyid_maxx'>maxx</span> <span class='op'>*</span> <span class='id identifier rubyid_win'>win</span><span class='period'>.</span><span class='id identifier rubyid_maxy'>maxy</span> <span class='op'>-</span> <span class='int'>1</span>

<span class='id identifier rubyid_win'>win</span><span class='period'>.</span><span class='id identifier rubyid_setpos'>setpos</span><span class='lparen'>(</span><span class='int'>0</span><span class='comma'>,</span> <span class='int'>0</span><span class='rparen'>)</span>
<span class='id identifier rubyid_win'>win</span><span class='period'>.</span><span class='id identifier rubyid_addstr'>addstr</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'> </span><span class='tstring_end'>&#39;</span></span><span class='op'>*</span><span class='id identifier rubyid_num'>num</span><span class='rparen'>)</span>
<span class='id identifier rubyid_win'>win</span><span class='period'>.</span><span class='id identifier rubyid_setpos'>setpos</span><span class='lparen'>(</span><span class='int'>0</span><span class='comma'>,</span> <span class='int'>0</span><span class='rparen'>)</span>
<span class='id identifier rubyid_win'>win</span><span class='period'>.</span><span class='id identifier rubyid_refresh'>refresh</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="colorize!-class_method">

  .<strong>colorize!</strong>(cwin, fg, bg)  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Set up a window with fg/bg</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

45 46 47 48 49 50 51 52 53 54 55 56 57 58</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'color.rb', line 45</span>

<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_colorize!'>colorize!</span><span class='lparen'>(</span><span class='id identifier rubyid_cwin'>cwin</span><span class='comma'>,</span> <span class='id identifier rubyid_fg'>fg</span><span class='comma'>,</span> <span class='id identifier rubyid_bg'>bg</span><span class='rparen'>)</span>

<span class='id identifier rubyid_cp'>cp</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Color.html" title="RubyText::Color (class)">Color</a></span></span><span class='period'>.</span><span class='id identifier rubyid_pair'><span class='object_link'><a href="Color.html#pair-class_method" title="RubyText::Color.pair (method)">pair</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_fg'>fg</span><span class='comma'>,</span> <span class='id identifier rubyid_bg'>bg</span><span class='rparen'>)</span>
<span class='id identifier rubyid_cwin'>cwin</span><span class='period'>.</span><span class='id identifier rubyid_color_set'>color_set</span><span class='lparen'>(</span><span class='id identifier rubyid_cp'>cp</span><span class='rparen'>)</span>
<span class='id identifier rubyid_num'>num</span> <span class='op'>=</span> <span class='id identifier rubyid_cwin'>cwin</span><span class='period'>.</span><span class='id identifier rubyid_maxx'>maxx</span> <span class='op'>*</span> <span class='id identifier rubyid_cwin'>cwin</span><span class='period'>.</span><span class='id identifier rubyid_maxy'>maxy</span>
<span class='id identifier rubyid_cwin'>cwin</span><span class='period'>.</span><span class='id identifier rubyid_setpos'>setpos</span> <span class='int'>0</span><span class='comma'>,</span><span class='int'>0</span>
<span class='id identifier rubyid_cwin'>cwin</span><span class='period'>.</span><span class='id identifier rubyid_addstr'>addstr</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'> </span><span class='tstring_end'>&#39;</span></span><span class='op'>*</span><span class='id identifier rubyid_num'>num</span><span class='rparen'>)</span>
<span class='id identifier rubyid_cwin'>cwin</span><span class='period'>.</span><span class='id identifier rubyid_setpos'>setpos</span> <span class='int'>0</span><span class='comma'>,</span><span class='int'>0</span>
<span class='id identifier rubyid_cwin'>cwin</span><span class='period'>.</span><span class='id identifier rubyid_refresh'>refresh</span>

<span class='kw'>rescue</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_err'>err</span>

<span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/tmp/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid___method__'>__method__</span><span class='embexpr_end'>}</span><span class='tstring_content'>.out</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>w</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_f'>f</span><span class='op'>|</span>
  <span class='id identifier rubyid_f'>f</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_err'>err</span>
  <span class='id identifier rubyid_f'>f</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_err'>err</span><span class='period'>.</span><span class='id identifier rubyid_backtrace'>backtrace</span>
<span class='kw'>end</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="main-class_method">

  .<strong>main</strong>(fg: White, bg: Blue, scroll: false)  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

45 46 47 48 49 50 51 52 53 54 55 56 57</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'window.rb', line 45</span>

<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_main'>main</span><span class='lparen'>(</span><span class='label'>fg:</span> <span class='const'>White</span><span class='comma'>,</span> <span class='label'>bg:</span> <span class='const'>Blue</span><span class='comma'>,</span> <span class='label'>scroll:</span> <span class='kw'>false</span><span class='rparen'>)</span>

<span class='id identifier rubyid_debug'><span class='object_link'><a href="../top-level-namespace.html#debug-instance_method" title="#debug (method)">debug</a></span></span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Starting #main...</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_main_win'>main_win</span> <span class='op'>=</span> <span class='const'>Curses</span><span class='period'>.</span><span class='id identifier rubyid_init_screen'>init_screen</span>
<span class='const'>Curses</span><span class='period'>.</span><span class='id identifier rubyid_start_color'>start_color</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_colorize!'>colorize!</span><span class='lparen'>(</span><span class='id identifier rubyid_main_win'>main_win</span><span class='comma'>,</span> <span class='id identifier rubyid_fg'>fg</span><span class='comma'>,</span> <span class='id identifier rubyid_bg'>bg</span><span class='rparen'>)</span>
<span class='id identifier rubyid_rows'>rows</span><span class='comma'>,</span> <span class='id identifier rubyid_cols'>cols</span> <span class='op'>=</span> <span class='id identifier rubyid_main_win'>main_win</span><span class='period'>.</span><span class='id identifier rubyid_maxy'>maxy</span><span class='comma'>,</span> <span class='id identifier rubyid_main_win'>main_win</span><span class='period'>.</span><span class='id identifier rubyid_maxx'>maxx</span>
<span class='id identifier rubyid_win'>win</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_make'>make</span><span class='lparen'>(</span><span class='id identifier rubyid_main_win'>main_win</span><span class='comma'>,</span> <span class='id identifier rubyid_rows'>rows</span><span class='comma'>,</span> <span class='id identifier rubyid_cols'>cols</span><span class='comma'>,</span> <span class='int'>0</span><span class='comma'>,</span> <span class='int'>0</span><span class='comma'>,</span> <span class='label'>border:</span> <span class='kw'>false</span><span class='comma'>,</span>
          <span class='label'>fg:</span> <span class='id identifier rubyid_fg'>fg</span><span class='comma'>,</span> <span class='label'>bg:</span> <span class='id identifier rubyid_bg'>bg</span><span class='comma'>,</span> <span class='label'>scroll:</span> <span class='id identifier rubyid_scroll'>scroll</span><span class='rparen'>)</span>
<span class='id identifier rubyid_debug'><span class='object_link'><a href="../top-level-namespace.html#debug-instance_method" title="#debug (method)">debug</a></span></span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>...started #main</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_win'>win</span>

<span class='kw'>rescue</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_err'>err</span>

<span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/tmp/main.out</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>w</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_f'>f</span><span class='op'>|</span> <span class='id identifier rubyid_f'>f</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_err'>err</span><span class='period'>.</span><span class='id identifier rubyid_inspect'>inspect</span><span class='semicolon'>;</span> <span class='id identifier rubyid_f'>f</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_err'>err</span><span class='period'>.</span><span class='id identifier rubyid_backtrace'>backtrace</span> <span class='rbrace'>}</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="make-class_method">

  .<strong>make</strong>(cwin, high, wide, r0, c0, border: true, fg: White, bg: Black, scroll: false)  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>FIXME try again to inline this</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

61 62 63 64 65 66 67 68 69 70 71 72 73</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'window.rb', line 61</span>

<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_make'>make</span><span class='lparen'>(</span><span class='id identifier rubyid_cwin'>cwin</span><span class='comma'>,</span> <span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='id identifier rubyid_r0'>r0</span><span class='comma'>,</span> <span class='id identifier rubyid_c0'>c0</span><span class='comma'>,</span> <span class='label'>border:</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='label'>fg:</span> <span class='const'>White</span><span class='comma'>,</span> <span class='label'>bg:</span> <span class='const'>Black</span><span class='comma'>,</span> <span class='label'>scroll:</span> <span class='kw'>false</span><span class='rparen'>)</span>

<span class='id identifier rubyid_obj'>obj</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_allocate'>allocate</span>
<span class='id identifier rubyid_obj'>obj</span><span class='period'>.</span><span class='id identifier rubyid_instance_eval'>instance_eval</span> <span class='kw'>do</span> 
  <span class='ivar'>@outer</span> <span class='op'>=</span> <span class='ivar'>@cwin</span> <span class='op'>=</span> <span class='id identifier rubyid_cwin'>cwin</span>
  <span class='ivar'>@wide</span><span class='comma'>,</span> <span class='ivar'>@high</span><span class='comma'>,</span> <span class='ivar'>@r0</span><span class='comma'>,</span> <span class='ivar'>@c0</span> <span class='op'>=</span> <span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_r0'>r0</span><span class='comma'>,</span> <span class='id identifier rubyid_c0'>c0</span>
  <span class='ivar'>@fg</span><span class='comma'>,</span> <span class='ivar'>@bg</span> <span class='op'>=</span> <span class='id identifier rubyid_fg'>fg</span><span class='comma'>,</span> <span class='id identifier rubyid_bg'>bg</span>
  <span class='ivar'>@border</span> <span class='op'>=</span> <span class='id identifier rubyid_border'>border</span>
  <span class='ivar'>@rows</span><span class='comma'>,</span> <span class='ivar'>@cols</span> <span class='op'>=</span> <span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span>
  <span class='ivar'>@width</span><span class='comma'>,</span> <span class='ivar'>@height</span> <span class='op'>=</span> <span class='ivar'>@cols</span> <span class='op'>+</span> <span class='int'>2</span><span class='comma'>,</span> <span class='ivar'>@rows</span> <span class='op'>+</span> <span class='int'>2</span> <span class='kw'>if</span> <span class='ivar'>@border</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_obj'>obj</span><span class='period'>.</span><span class='id identifier rubyid_scrolling'>scrolling</span><span class='lparen'>(</span><span class='id identifier rubyid_scroll'>scroll</span><span class='rparen'>)</span>
<span class='id identifier rubyid_obj'>obj</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

</div>

<div id="instance_method_details" class="method_details_list">
  <h2>Instance Method Details</h2>

    <div class="method_details first">
<h3 class="signature first" id="[]-instance_method">

  #<strong>[]</strong>(r, c)  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

126 127 128 129 130 131</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'output.rb', line 126</span>

<span class='kw'>def</span> <span class='op'>[]</span><span class='lparen'>(</span><span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>

<span class='id identifier rubyid_ch'>ch</span> <span class='op'>=</span> <span class='kw'>nil</span>
<span class='id identifier rubyid_go'>go</span><span class='lparen'>(</span><span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_ch'>ch</span> <span class='op'>=</span> <span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_inch'>inch</span> <span class='rbrace'>}</span>
<span class='id identifier rubyid_debug'><span class='object_link'><a href="../top-level-namespace.html#debug-instance_method" title="#debug (method)">debug</a></span></span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>ch = </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_ch'>ch</span><span class='embexpr_end'>}</span><span class='tstring_content'>  ch.chr = </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_ch'>ch</span><span class='period'>.</span><span class='id identifier rubyid_chr'>chr</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_ch'>ch</span><span class='period'>.</span><span class='id identifier rubyid_chr'>chr</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="[]=-instance_method">

  #<strong>[]=</strong>(r, c, char)  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

133 134 135 136 137 138</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'output.rb', line 133</span>

<span class='kw'>def</span> <span class='op'>[]=</span><span class='lparen'>(</span><span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='comma'>,</span> <span class='id identifier rubyid_char'>char</span><span class='rparen'>)</span>

<span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_setpos'>setpos</span><span class='lparen'>(</span><span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>
<span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_addch'>addch</span><span class='lparen'>(</span><span class='id identifier rubyid_char'>char</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_ord'>ord</span><span class='op'>|</span><span class='const'>Curses</span><span class='op'>::</span><span class='const'>A_NORMAL</span><span class='rparen'>)</span>
<span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_setpos'>setpos</span><span class='lparen'>(</span><span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>
<span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_refresh'>refresh</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="_putch-instance_method">

  #<strong>_putch</strong>(ch)  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

63 64 65</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'output.rb', line 63</span>

<span class='kw'>def</span> <span class='id identifier rubyid__putch'>_putch</span><span class='lparen'>(</span><span class='id identifier rubyid_ch'>ch</span><span class='rparen'>)</span>

<span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_addch'>addch</span><span class='lparen'>(</span><span class='id identifier rubyid_ch'>ch</span><span class='rparen'>)</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="add_title-instance_method">

  #<strong>add_title</strong>(str, align = :center)  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

75 76 77 78 79 80 81 82 83 84 85 86</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'window.rb', line 75</span>

<span class='kw'>def</span> <span class='id identifier rubyid_add_title'>add_title</span><span class='lparen'>(</span><span class='id identifier rubyid_str'>str</span><span class='comma'>,</span> <span class='id identifier rubyid_align'>align</span> <span class='op'>=</span> <span class='symbol'>:center</span><span class='rparen'>)</span>

<span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>No border</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>unless</span> <span class='ivar'>@border</span>
<span class='id identifier rubyid_len'>len</span> <span class='op'>=</span> <span class='id identifier rubyid_str'>str</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span>  <span class='comment'># What if it&#39;s too long?

</span> <span class='id identifier rubyid_start'>start</span> <span class='op'>=</span> <span class='kw'>case</span> <span class='id identifier rubyid_align'>align</span>

          <span class='kw'>when</span> <span class='symbol'>:left</span><span class='semicolon'>;</span>   <span class='int'>1</span>
          <span class='kw'>when</span> <span class='symbol'>:center</span><span class='semicolon'>;</span> <span class='lparen'>(</span><span class='ivar'>@outer</span><span class='period'>.</span><span class='id identifier rubyid_maxx'>maxx</span> <span class='op'>-</span> <span class='id identifier rubyid_len'>len</span><span class='rparen'>)</span><span class='op'>/</span><span class='int'>2</span>
          <span class='kw'>when</span> <span class='symbol'>:right</span><span class='semicolon'>;</span>  <span class='ivar'>@outer</span><span class='period'>.</span><span class='id identifier rubyid_maxx'>maxx</span> <span class='op'>-</span> <span class='id identifier rubyid_len'>len</span> <span class='op'>-</span> <span class='int'>1</span>
        <span class='kw'>end</span>
<span class='ivar'>@outer</span><span class='period'>.</span><span class='id identifier rubyid_setpos'>setpos</span> <span class='int'>0</span><span class='comma'>,</span> <span class='id identifier rubyid_start'>start</span>
<span class='ivar'>@outer</span><span class='period'>.</span><span class='id identifier rubyid_addstr'>addstr</span> <span class='id identifier rubyid_str'>str</span>
<span class='ivar'>@outer</span><span class='period'>.</span><span class='id identifier rubyid_refresh'>refresh</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="background-instance_method">

  #<strong>background</strong>(high = STDSCR.rows, wide = STDSCR.cols, r = 0, c = 0)  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

123 124 125 126 127</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'window.rb', line 123</span>

<span class='kw'>def</span> <span class='id identifier rubyid_background'>background</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='op'>=</span><span class='const'>STDSCR</span><span class='period'>.</span><span class='id identifier rubyid_rows'>rows</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='op'>=</span><span class='const'>STDSCR</span><span class='period'>.</span><span class='id identifier rubyid_cols'>cols</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='op'>=</span><span class='int'>0</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='op'>=</span><span class='int'>0</span><span class='rparen'>)</span>

<span class='id identifier rubyid_saveback'>saveback</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>
<span class='kw'>yield</span>
<span class='id identifier rubyid_restback'>restback</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="beep-instance_method">

  #<strong>beep</strong>  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

172 173 174</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'window.rb', line 172</span>

<span class='kw'>def</span> <span class='id identifier rubyid_beep'>beep</span>

<span class='const'>Curses</span><span class='period'>.</span><span class='id identifier rubyid_beep'>beep</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="bottom-instance_method">

  #<strong>bottom</strong>  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Move cursor to bottom of window</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

88 89 90 91 92</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'navigation.rb', line 88</span>

<span class='kw'>def</span> <span class='id identifier rubyid_bottom'>bottom</span>

<span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>=</span> <span class='id identifier rubyid_rc'>rc</span>
<span class='id identifier rubyid_rmax'>rmax</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_rows'>rows</span> <span class='op'>-</span> <span class='int'>1</span>
<span class='id identifier rubyid_go'>go</span> <span class='id identifier rubyid_rmax'>rmax</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="boxme-instance_method">

  #<strong>boxme</strong>  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

140 141 142 143</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'output.rb', line 140</span>

<span class='kw'>def</span> <span class='id identifier rubyid_boxme'>boxme</span>

<span class='ivar'>@outer</span><span class='period'>.</span><span class='id identifier rubyid_box'>box</span><span class='lparen'>(</span><span class='const'>Vert</span><span class='comma'>,</span> <span class='const'>Horiz</span><span class='rparen'>)</span>
<span class='ivar'>@outer</span><span class='period'>.</span><span class='id identifier rubyid_refresh'>refresh</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="center-instance_method">

  #<strong>center</strong>(str)  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

8 9 10 11 12 13</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'output.rb', line 8</span>

<span class='kw'>def</span> <span class='id identifier rubyid_center'>center</span><span class='lparen'>(</span><span class='id identifier rubyid_str'>str</span><span class='rparen'>)</span>

<span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_rc'>rc</span>
<span class='id identifier rubyid_n'>n</span> <span class='op'>=</span> <span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_maxx'>maxx</span> <span class='op'>-</span> <span class='id identifier rubyid_str'>str</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span>
<span class='id identifier rubyid_go'>go</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_n'>n</span><span class='op'>/</span><span class='int'>2</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_str'>str</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="clear-instance_method">

  #<strong>clear</strong>  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

111 112 113 114 115 116 117 118</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'output.rb', line 111</span>

<span class='kw'>def</span> <span class='id identifier rubyid_clear'>clear</span>

<span class='id identifier rubyid_cwin'>cwin</span><span class='period'>.</span><span class='id identifier rubyid_setpos'>setpos</span><span class='lparen'>(</span><span class='id identifier rubyid_cwin'>cwin</span><span class='period'>.</span><span class='id identifier rubyid_maxx'>maxx</span><span class='comma'>,</span> <span class='id identifier rubyid_cwin'>cwin</span><span class='period'>.</span><span class='id identifier rubyid_maxy'>maxy</span><span class='rparen'>)</span>
<span class='id identifier rubyid_cwin'>cwin</span><span class='period'>.</span><span class='id identifier rubyid_addstr'>addstr</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'> </span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
<span class='id identifier rubyid_num'>num</span> <span class='op'>=</span> <span class='id identifier rubyid_cwin'>cwin</span><span class='period'>.</span><span class='id identifier rubyid_maxx'>maxx</span> <span class='op'>*</span> <span class='id identifier rubyid_cwin'>cwin</span><span class='period'>.</span><span class='id identifier rubyid_maxy'>maxy</span> <span class='op'>-</span> <span class='int'>1</span>
<span class='id identifier rubyid_cwin'>cwin</span><span class='period'>.</span><span class='id identifier rubyid_addstr'>addstr</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'> </span><span class='tstring_end'>&#39;</span></span><span class='op'>*</span><span class='id identifier rubyid_num'>num</span><span class='rparen'>)</span>
<span class='id identifier rubyid_cwin'>cwin</span><span class='period'>.</span><span class='id identifier rubyid_setpos'>setpos</span><span class='lparen'>(</span><span class='int'>0</span><span class='comma'>,</span> <span class='int'>0</span><span class='rparen'>)</span>
<span class='id identifier rubyid_cwin'>cwin</span><span class='period'>.</span><span class='id identifier rubyid_refresh'>refresh</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="colorize!-instance_method">

  #<strong>colorize!</strong>(fg, bg)  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Set up a window with fg/bg</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

69 70 71 72 73 74 75</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'color.rb', line 69</span>

<span class='kw'>def</span> <span class='id identifier rubyid_colorize!'>colorize!</span><span class='lparen'>(</span><span class='id identifier rubyid_fg'>fg</span><span class='comma'>,</span> <span class='id identifier rubyid_bg'>bg</span><span class='rparen'>)</span>

<span class='id identifier rubyid_set_colors'>set_colors</span><span class='lparen'>(</span><span class='id identifier rubyid_fg'>fg</span><span class='comma'>,</span> <span class='id identifier rubyid_bg'>bg</span><span class='rparen'>)</span>
<span class='id identifier rubyid_num'>num</span> <span class='op'>=</span> <span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_maxx'>maxx</span> <span class='op'>*</span> <span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_maxy'>maxy</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_home'>home</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_go'>go</span><span class='lparen'>(</span><span class='int'>0</span><span class='comma'>,</span> <span class='int'>0</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_addstr'>addstr</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'> </span><span class='tstring_end'>&#39;</span></span><span class='op'>*</span><span class='id identifier rubyid_num'>num</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
<span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_refresh'>refresh</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="coords-instance_method">

  #<strong>coords</strong>(r, c)  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Handle special coordinate names (symbols)</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'navigation.rb', line 7</span>

<span class='kw'>def</span> <span class='id identifier rubyid_coords'>coords</span><span class='lparen'>(</span><span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>

<span class='id identifier rubyid_r'>r</span> <span class='op'>=</span> <span class='kw'>case</span>
      <span class='kw'>when</span> <span class='id identifier rubyid_r'>r</span> <span class='op'>==</span> <span class='symbol'>:center</span>
        <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_rows'>rows</span> <span class='op'>/</span> <span class='int'>2</span> 
      <span class='kw'>when</span> <span class='id identifier rubyid_r'>r</span> <span class='op'>==</span> <span class='symbol'>:top</span>
        <span class='int'>0</span>
      <span class='kw'>when</span> <span class='id identifier rubyid_r'>r</span> <span class='op'>==</span> <span class='symbol'>:bottom</span>
        <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_rows'>rows</span> <span class='op'>-</span> <span class='int'>1</span>
      <span class='kw'>else</span>
        <span class='id identifier rubyid_r'>r</span>
      <span class='kw'>end</span>
<span class='id identifier rubyid_c'>c</span> <span class='op'>=</span> <span class='kw'>case</span>
      <span class='kw'>when</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>==</span> <span class='symbol'>:center</span>
        <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cols'>cols</span> <span class='op'>/</span> <span class='int'>2</span> 
      <span class='kw'>when</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>==</span> <span class='symbol'>:left</span>
        <span class='int'>0</span>
      <span class='kw'>when</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>==</span> <span class='symbol'>:right</span>
        <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cols'>cols</span> <span class='op'>-</span> <span class='int'>1</span>
      <span class='kw'>else</span>
        <span class='id identifier rubyid_c'>c</span>
      <span class='kw'>end</span>
<span class='lbracket'>[</span><span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rbracket'>]</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="crlf-instance_method">

  #<strong>crlf</strong>  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Technically not output…</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'output.rb', line 85</span>

<span class='kw'>def</span> <span class='id identifier rubyid_crlf'>crlf</span> <span class='comment'># Technically not output… </span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>=</span> <span class='id identifier rubyid_rc'>rc</span>

<span class='kw'>if</span> <span class='ivar'>@scrolling</span>
  <span class='kw'>if</span> <span class='id identifier rubyid_r'>r</span> <span class='op'>==</span> <span class='ivar'>@rows</span> <span class='op'>-</span> <span class='int'>1</span>  <span class='comment'># bottom row

</span> <span class='id identifier rubyid_scroll'>scroll</span>

    <span class='id identifier rubyid_left!'>left!</span>
  <span class='kw'>else</span>
    <span class='id identifier rubyid_go'>go</span> <span class='id identifier rubyid_r'>r</span><span class='op'>+</span><span class='int'>1</span><span class='comma'>,</span> <span class='int'>0</span>
  <span class='kw'>end</span>
<span class='kw'>else</span>
  <span class='kw'>if</span> <span class='id identifier rubyid_r'>r</span> <span class='op'>==</span> <span class='ivar'>@rows</span> <span class='op'>-</span> <span class='int'>1</span>  <span class='comment'># bottom row

</span> <span class='id identifier rubyid_left!'>left!</span>

  <span class='kw'>else</span>
    <span class='id identifier rubyid_go'>go</span> <span class='id identifier rubyid_r'>r</span><span class='op'>+</span><span class='int'>1</span><span class='comma'>,</span> <span class='int'>0</span>
  <span class='kw'>end</span>
<span class='kw'>end</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="delegate_output-instance_method">

  #<strong>delegate_output</strong>(sym, *args)  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'output.rb', line 21</span>

<span class='kw'>def</span> <span class='id identifier rubyid_delegate_output'>delegate_output</span><span class='lparen'>(</span><span class='id identifier rubyid_sym'>sym</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>

<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cwin'>cwin</span><span class='period'>.</span><span class='id identifier rubyid_attrset'>attrset</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span>
<span class='id identifier rubyid_args'>args</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
<span class='id identifier rubyid_args'>args</span> <span class='op'>+=</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\n</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_sym'>sym</span> <span class='op'>==</span> <span class='symbol'>:puts</span>
<span class='id identifier rubyid_set_colors'>set_colors</span><span class='lparen'>(</span><span class='ivar'>@fg</span><span class='comma'>,</span> <span class='ivar'>@bg</span><span class='rparen'>)</span>
<span class='id identifier rubyid_meth'>meth</span> <span class='op'>=</span> <span class='id identifier rubyid_sym'>sym</span> <span class='op'>==</span> <span class='symbol'>:p</span> <span class='op'>?</span> <span class='symbol'>:inspect</span> <span class='op'>:</span> <span class='symbol'>:to_s</span>
<span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_map!'>map!</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_x'>x</span><span class='op'>|</span> <span class='id identifier rubyid_effect?'>effect?</span><span class='lparen'>(</span><span class='id identifier rubyid_x'>x</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_x'>x</span> <span class='op'>:</span> <span class='id identifier rubyid_x'>x</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_meth'>meth</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
<span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_arg'>arg</span><span class='op'>|</span>  
  <span class='kw'>if</span> <span class='id identifier rubyid_arg'>arg</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Effects.html" title="RubyText::Effects (class)">Effects</a></span></span><span class='rparen'>)</span>
    <span class='id identifier rubyid_arg'>arg</span><span class='period'>.</span><span class='id identifier rubyid_set'>set</span><span class='lparen'>(</span><span class='kw'>self</span><span class='rparen'>)</span>
  <span class='kw'>else</span>
    <span class='id identifier rubyid_arg'>arg</span><span class='period'>.</span><span class='id identifier rubyid_effect'>effect</span><span class='period'>.</span><span class='id identifier rubyid_set'>set</span><span class='lparen'>(</span><span class='kw'>self</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_arg'>arg</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span> <span class='symbol'>:effect</span>
    <span class='id identifier rubyid_arg'>arg</span><span class='period'>.</span><span class='id identifier rubyid_each_char'>each_char</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_ch'>ch</span><span class='op'>|</span> <span class='id identifier rubyid_ch'>ch</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\n</span><span class='tstring_end'>&quot;</span></span> <span class='op'>?</span> <span class='id identifier rubyid_crlf'>crlf</span> <span class='op'>:</span> <span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_addch'>addch</span><span class='lparen'>(</span><span class='id identifier rubyid_ch'>ch</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
    <span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_refresh'>refresh</span>
  <span class='kw'>end</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_crlf'>crlf</span> <span class='kw'>if</span> <span class='id identifier rubyid_sym'>sym</span> <span class='op'>==</span> <span class='symbol'>:p</span>   <span class='comment'># no implicit newline

</span> <span class='id identifier rubyid_set_colors'>set_colors</span><span class='lparen'>(</span><span class='ivar'>@fg</span><span class='comma'>,</span> <span class='ivar'>@bg</span><span class='rparen'>)</span>

<span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_refresh'>refresh</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="down-instance_method">

  #<strong>down</strong>(n = 1)  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Move cursor down</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

60 61 62 63</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'navigation.rb', line 60</span>

<span class='kw'>def</span> <span class='id identifier rubyid_down'>down</span><span class='lparen'>(</span><span class='id identifier rubyid_n'>n</span><span class='op'>=</span><span class='int'>1</span><span class='rparen'>)</span>

<span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>=</span> <span class='id identifier rubyid_rc'>rc</span>
<span class='id identifier rubyid_go'>go</span> <span class='id identifier rubyid_r'>r</span><span class='op'>+</span><span class='id identifier rubyid_n'>n</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="down!-instance_method">

  #<strong>down!</strong>  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Move cursor to bottom of window</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

102 103 104</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'navigation.rb', line 102</span>

<span class='kw'>def</span> <span class='id identifier rubyid_down!'>down!</span>

<span class='id identifier rubyid_bottom'>bottom</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="effect?-instance_method">

  #<strong>effect?</strong>(arg)  &#x21d2; <tt>Boolean</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>FIXME Please refactor the Hal out of this.</p>

</div>

</div> <div class=“tags”>

<p class=“tag_title”>Returns:</p> <ul class=“return”>

<li>

    <span class='type'>(<tt>Boolean</tt>)</span>

</li>

</ul>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

17 18 19</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'output.rb', line 17</span>

<span class='kw'>def</span> <span class='id identifier rubyid_effect?'>effect?</span><span class='lparen'>(</span><span class='id identifier rubyid_arg'>arg</span><span class='rparen'>)</span>

<span class='id identifier rubyid_arg'>arg</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Effects.html" title="RubyText::Effects (class)">Effects</a></span></span><span class='rparen'>)</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="flash-instance_method">

  #<strong>flash</strong>  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

176 177 178</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'window.rb', line 176</span>

<span class='kw'>def</span> <span class='id identifier rubyid_flash'>flash</span>

<span class='const'>Curses</span><span class='period'>.</span><span class='id identifier rubyid_flash'>flash</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="gets-instance_method">

  #<strong>gets</strong>(history: [], limit: nil, tab: [], default: &quot;&quot;, capture: [])  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'output.rb', line 252</span>

<span class='kw'>def</span> <span class='id identifier rubyid_gets'>gets</span><span class='lparen'>(</span><span class='label'>history:</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='label'>limit:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>tab:</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='label'>default:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>capture:</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='rparen'>)</span>

<span class='comment'># needs improvement

</span> <span class='comment'># echo assumed to be OFF, keypad ON </span> <span class='ivar'>@history</span> <span class='op'>=</span> <span class='id identifier rubyid_history'>history</span>

<span class='id identifier rubyid_gs'>gs</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Window/GetString.html" title="RubyText::Window::GetString (class)">GetString</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Window/GetString.html#initialize-instance_method" title="RubyText::Window::GetString#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='kw'>self</span><span class='comma'>,</span> <span class='id identifier rubyid_default'>default</span><span class='comma'>,</span> <span class='label'>history:</span> <span class='id identifier rubyid_history'>history</span><span class='comma'>,</span> <span class='label'>limit:</span> <span class='id identifier rubyid_limit'>limit</span><span class='comma'>,</span> <span class='label'>tab:</span> <span class='id identifier rubyid_tab'>tab</span><span class='comma'>,</span> 
                   <span class='label'>capture:</span> <span class='id identifier rubyid_capture'>capture</span><span class='rparen'>)</span>
<span class='id identifier rubyid_count'>count</span> <span class='op'>=</span> <span class='int'>0</span>
<span class='id identifier rubyid_loop'>loop</span> <span class='kw'>do</span>
  <span class='id identifier rubyid_count'>count</span> <span class='op'>+=</span> <span class='int'>1</span>      <span class='comment'># Escape and &#39;capture&#39; chars have special meaning if first char

</span> <span class='id identifier rubyid_ch'>ch</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_getch'>getch</span>

<span class='kw'>case</span> <span class='id identifier rubyid_ch'>ch</span>
  <span class='kw'>when</span> <span class='op'>*</span><span class='id identifier rubyid_capture'>capture</span> 
    <span class='kw'>return</span> <span class='id identifier rubyid_ch'>ch</span> <span class='kw'>if</span> <span class='id identifier rubyid_count'>count</span> <span class='op'>==</span> <span class='int'>1</span>
    <span class='id identifier rubyid_gs'>gs</span><span class='period'>.</span><span class='id identifier rubyid_add'>add</span><span class='lparen'>(</span><span class='id identifier rubyid_ch'>ch</span><span class='rparen'>)</span>
  <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Escape-constant" title="RubyText::Keys::Escape (constant)">Escape</a></span></span>
    <span class='kw'>return</span> <span class='const'><span class='object_link'><a href="Keys.html#Escape-constant" title="RubyText::Keys::Escape (constant)">Escape</a></span></span> <span class='kw'>if</span> <span class='id identifier rubyid_count'>count</span> <span class='op'>==</span> <span class='int'>1</span>
    <span class='id identifier rubyid_gs'>gs</span><span class='period'>.</span><span class='id identifier rubyid_enter'>enter</span>
    <span class='kw'>break</span>
  <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#CtlD-constant" title="RubyText::Keys::CtlD (constant)">CtlD</a></span></span>
    <span class='kw'>return</span> <span class='const'><span class='object_link'><a href="Keys.html#CtlD-constant" title="RubyText::Keys::CtlD (constant)">CtlD</a></span></span> <span class='kw'>if</span> <span class='id identifier rubyid_count'>count</span> <span class='op'>==</span> <span class='int'>1</span>
    <span class='id identifier rubyid_gs'>gs</span><span class='period'>.</span><span class='id identifier rubyid_enter'>enter</span>
    <span class='kw'>break</span>
  <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Enter-constant" title="RubyText::Keys::Enter (constant)">Enter</a></span></span>
    <span class='id identifier rubyid_gs'>gs</span><span class='period'>.</span><span class='id identifier rubyid_enter'>enter</span>
    <span class='kw'>break</span>
  <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#BS-constant" title="RubyText::Keys::BS (constant)">BS</a></span></span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="Keys.html#DEL-constant" title="RubyText::Keys::DEL (constant)">DEL</a></span></span><span class='comma'>,</span> <span class='int'>63</span>   <span class='comment'># backspace, del, ^H (huh?)

</span> <span class='id identifier rubyid_gs'>gs</span><span class='period'>.</span><span class='id identifier rubyid_backspace'>backspace</span>

<span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Tab-constant" title="RubyText::Keys::Tab (constant)">Tab</a></span></span>
  <span class='id identifier rubyid_gs'>gs</span><span class='period'>.</span><span class='id identifier rubyid_complete'>complete</span>
<span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Left-constant" title="RubyText::Keys::Left (constant)">Left</a></span></span>
  <span class='id identifier rubyid_gs'>gs</span><span class='period'>.</span><span class='id identifier rubyid_left_arrow'>left_arrow</span>
<span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Right-constant" title="RubyText::Keys::Right (constant)">Right</a></span></span>
  <span class='id identifier rubyid_gs'>gs</span><span class='period'>.</span><span class='id identifier rubyid_right_arrow'>right_arrow</span>
<span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Up-constant" title="RubyText::Keys::Up (constant)">Up</a></span></span>
  <span class='kw'>next</span> <span class='kw'>if</span> <span class='ivar'>@history</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>  <span class='comment'># move this?

</span> <span class='id identifier rubyid_gs'>gs</span><span class='period'>.</span><span class='id identifier rubyid_history_prev'>history_prev</span>

<span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Down-constant" title="RubyText::Keys::Down (constant)">Down</a></span></span>
  <span class='kw'>next</span> <span class='kw'>if</span> <span class='ivar'>@history</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>  <span class='comment'># move this?

</span> <span class='id identifier rubyid_gs'>gs</span><span class='period'>.</span><span class='id identifier rubyid_history_next'>history_next</span>

    <span class='kw'>when</span> <span class='const'>Integer</span>
      <span class='const'>Curses</span><span class='period'>.</span><span class='id identifier rubyid_beep'>beep</span>
    <span class='kw'>else</span>
      <span class='id identifier rubyid_gs'>gs</span><span class='period'>.</span><span class='id identifier rubyid_add'>add</span><span class='lparen'>(</span><span class='id identifier rubyid_ch'>ch</span><span class='rparen'>)</span>
  <span class='kw'>end</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_gs'>gs</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span>

<span class='kw'>rescue</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_err'>err</span>

<span class='id identifier rubyid_str'>str</span> <span class='op'>=</span> <span class='id identifier rubyid_err'>err</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\n</span><span class='tstring_end'>&quot;</span></span> <span class='op'>+</span> <span class='id identifier rubyid_err'>err</span><span class='period'>.</span><span class='id identifier rubyid_backtrace'>backtrace</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\n</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='id identifier rubyid_str'>str</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="go-instance_method">

  #<strong>go</strong>(r0, c0)  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Go to specified row/column in current window,</p>

<pre class=“code ruby”><code class=“ruby”>execute block, and return cursor</code></pre>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

41 42 43 44 45 46 47 48 49</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'navigation.rb', line 41</span>

<span class='kw'>def</span> <span class='id identifier rubyid_go'>go</span><span class='lparen'>(</span><span class='id identifier rubyid_r0'>r0</span><span class='comma'>,</span> <span class='id identifier rubyid_c0'>c0</span><span class='rparen'>)</span>

<span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>=</span> <span class='id identifier rubyid_coords'>coords</span><span class='lparen'>(</span><span class='id identifier rubyid_r0'>r0</span><span class='comma'>,</span> <span class='id identifier rubyid_c0'>c0</span><span class='rparen'>)</span>
<span class='id identifier rubyid_save'>save</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_rc'>rc</span>
<span class='id identifier rubyid_goto'>goto</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span> 
<span class='kw'>if</span> <span class='id identifier rubyid_block_given?'>block_given?</span>
  <span class='kw'>yield</span> 
  <span class='id identifier rubyid_goto'>goto</span> <span class='op'>*</span><span class='id identifier rubyid_save'>save</span>
<span class='kw'>end</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="goto-instance_method">

  #<strong>goto</strong>(r, c)  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Go to specified row/column in current window</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

33 34 35</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'navigation.rb', line 33</span>

<span class='kw'>def</span> <span class='id identifier rubyid_goto'>goto</span><span class='lparen'>(</span><span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span> <span class='comment'># only accepts numbers! </span> <span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_setpos'>setpos</span><span class='lparen'>(</span><span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span> <span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="home-instance_method">

  #<strong>home</strong>  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Move cursor to home (upper left)</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

123 124 125</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'navigation.rb', line 123</span>

<span class='kw'>def</span> <span class='id identifier rubyid_home'>home</span>

<span class='id identifier rubyid_go'>go</span> <span class='int'>0</span><span class='comma'>,</span> <span class='int'>0</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="left-instance_method">

  #<strong>left</strong>(n = 1)  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Move cursor left</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

67 68 69 70</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'navigation.rb', line 67</span>

<span class='kw'>def</span> <span class='id identifier rubyid_left'>left</span><span class='lparen'>(</span><span class='id identifier rubyid_n'>n</span><span class='op'>=</span><span class='int'>1</span><span class='rparen'>)</span>

<span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>=</span> <span class='id identifier rubyid_rc'>rc</span>
<span class='id identifier rubyid_go'>go</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='op'>-</span><span class='id identifier rubyid_n'>n</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="left!-instance_method">

  #<strong>left!</strong>  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Move cursor to far left of window</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

108 109 110 111</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'navigation.rb', line 108</span>

<span class='kw'>def</span> <span class='id identifier rubyid_left!'>left!</span>

<span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>=</span> <span class='id identifier rubyid_rc'>rc</span>
<span class='id identifier rubyid_go'>go</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='int'>0</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="menu-instance_method">

  #<strong>menu</strong>(r: :center, c: :center, items:, curr: 0, border: true, title: nil, fg: Green, bg: Black)  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Simple menu with rows of strings</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'menu.rb', line 73</span>

<span class='kw'>def</span> <span class='id identifier rubyid_menu'>menu</span><span class='lparen'>(</span><span class='label'>r:</span> <span class='symbol'>:center</span><span class='comma'>,</span> <span class='label'>c:</span> <span class='symbol'>:center</span><span class='comma'>,</span> <span class='label'>items:</span><span class='comma'>,</span> <span class='label'>curr:</span> <span class='int'>0</span><span class='comma'>,</span>

       <span class='label'>border:</span> <span class='kw'>true</span><span class='comma'>,</span>
       <span class='label'>title:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>fg:</span> <span class='const'>Green</span><span class='comma'>,</span> <span class='label'>bg:</span> <span class='const'>Black</span><span class='rparen'>)</span>
<span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_hide_cursor'><span class='object_link'><a href="../RubyText.html#hide_cursor-class_method" title="RubyText.hide_cursor (method)">hide_cursor</a></span></span>
<span class='kw'>if</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
  <span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span>
  <span class='id identifier rubyid_items'>items</span> <span class='op'>=</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span>
  <span class='id identifier rubyid_hash_flag'>hash_flag</span> <span class='op'>=</span> <span class='kw'>true</span>
<span class='kw'>else</span>
  <span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='id identifier rubyid_items'>items</span>
<span class='kw'>end</span>

<span class='id identifier rubyid_high'>high</span> <span class='op'>=</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span>
<span class='id identifier rubyid_wide'>wide</span> <span class='op'>=</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:length</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_max'>max</span> <span class='op'>+</span> <span class='int'>3</span>
<span class='id identifier rubyid_high'>high</span> <span class='op'>+=</span> <span class='int'>2</span> <span class='kw'>if</span> <span class='id identifier rubyid_border'>border</span>
<span class='id identifier rubyid_wide'>wide</span> <span class='op'>+=</span> <span class='int'>2</span> <span class='kw'>if</span> <span class='id identifier rubyid_border'>border</span>

<span class='id identifier rubyid_tlen'>tlen</span> <span class='op'>=</span> <span class='id identifier rubyid_title'>title</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>+</span> <span class='int'>8</span> <span class='kw'>rescue</span> <span class='int'>0</span>
<span class='id identifier rubyid_wide'>wide</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='id identifier rubyid_tlen'>tlen</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_max'>max</span>
<span class='id identifier rubyid_row'>row</span><span class='comma'>,</span> <span class='id identifier rubyid_col'>col</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_coords'>coords</span><span class='lparen'>(</span><span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>
<span class='id identifier rubyid_row'>row</span> <span class='op'>=</span> <span class='id identifier rubyid_row'>row</span> <span class='op'>-</span> <span class='id identifier rubyid_high'>high</span><span class='op'>/</span><span class='int'>2</span> <span class='kw'>if</span> <span class='id identifier rubyid_r'>r</span> <span class='op'>==</span> <span class='symbol'>:center</span>
<span class='id identifier rubyid_col'>col</span> <span class='op'>=</span> <span class='id identifier rubyid_col'>col</span> <span class='op'>-</span> <span class='id identifier rubyid_wide'>wide</span><span class='op'>/</span><span class='int'>2</span> <span class='kw'>if</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>==</span> <span class='symbol'>:center</span>
<span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>=</span> <span class='id identifier rubyid_row'>row</span><span class='comma'>,</span> <span class='id identifier rubyid_col'>col</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_saveback'>saveback</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>
<span class='id identifier rubyid_mr'>mr</span><span class='comma'>,</span> <span class='id identifier rubyid_mc'>mc</span> <span class='op'>=</span> <span class='id identifier rubyid_r'>r</span><span class='op'>+</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_r0'>r0</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='op'>+</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_c0'>c0</span>
<span class='id identifier rubyid_title'>title</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>unless</span> <span class='id identifier rubyid_border'>border</span>
<span class='id identifier rubyid_mwin'>mwin</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_window'><span class='object_link'><a href="../RubyText.html#window-class_method" title="RubyText.window (method)">window</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='label'>r:</span> <span class='id identifier rubyid_mr'>mr</span><span class='comma'>,</span> <span class='label'>c:</span> <span class='id identifier rubyid_mc'>mc</span><span class='comma'>,</span> <span class='label'>border:</span> <span class='id identifier rubyid_border'>border</span><span class='comma'>,</span>
                       <span class='label'>fg:</span> <span class='id identifier rubyid_fg'>fg</span><span class='comma'>,</span> <span class='label'>bg:</span> <span class='id identifier rubyid_bg'>bg</span><span class='comma'>,</span> <span class='label'>title:</span> <span class='id identifier rubyid_title'>title</span><span class='rparen'>)</span>
<span class='const'>Curses</span><span class='period'>.</span><span class='id identifier rubyid_stdscr'>stdscr</span><span class='period'>.</span><span class='id identifier rubyid_keypad'>keypad</span><span class='lparen'>(</span><span class='kw'>true</span><span class='rparen'>)</span>
<span class='id identifier rubyid_sel'>sel</span> <span class='op'>=</span> <span class='id identifier rubyid_curr'>curr</span>
<span class='id identifier rubyid_max'>max</span> <span class='op'>=</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span> <span class='op'>-</span> <span class='int'>1</span>
<span class='id identifier rubyid_loop'>loop</span> <span class='kw'>do</span>
  <span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_hide_cursor'><span class='object_link'><a href="../RubyText.html#hide_cursor-class_method" title="RubyText.hide_cursor (method)">hide_cursor</a></span></span>  <span class='comment'># FIXME should be unnecessary

</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span><span class='period'>.</span><span class='id identifier rubyid_with_index'>with_index</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_item'>item</span><span class='comma'>,</span> <span class='id identifier rubyid_row'>row</span><span class='op'>|</span>

    <span class='id identifier rubyid_mwin'>mwin</span><span class='period'>.</span><span class='id identifier rubyid_go'>go</span> <span class='id identifier rubyid_row'>row</span><span class='comma'>,</span> <span class='int'>0</span>
    <span class='id identifier rubyid_style'>style</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_sel'>sel</span> <span class='op'>==</span> <span class='id identifier rubyid_row'>row</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='symbol'>:reverse</span> <span class='op'>:</span> <span class='symbol'>:normal</span>
    <span class='id identifier rubyid_label'>label</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span><span class='op'>*</span><span class='int'>2</span> <span class='op'>+</span> <span class='id identifier rubyid_item'>item</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span><span class='op'>*</span><span class='int'>8</span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='op'>..</span><span class='id identifier rubyid_wide'>wide</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span>
    <span class='id identifier rubyid_mwin'>mwin</span><span class='period'>.</span><span class='id identifier rubyid_print'>print</span> <span class='id identifier rubyid_fx'><span class='object_link'><a href="../top-level-namespace.html#fx-instance_method" title="#fx (method)">fx</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_label'>label</span><span class='comma'>,</span> <span class='id identifier rubyid_style'>style</span><span class='rparen'>)</span>
  <span class='kw'>end</span>
  <span class='id identifier rubyid_ch'>ch</span> <span class='op'>=</span> <span class='id identifier rubyid_getch'>getch</span>
  <span class='kw'>case</span> <span class='id identifier rubyid_ch'>ch</span>
    <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Up-constant" title="RubyText::Keys::Up (constant)">Up</a></span></span>
      <span class='id identifier rubyid_sel'>sel</span> <span class='op'>-=</span> <span class='int'>1</span> <span class='kw'>if</span> <span class='id identifier rubyid_sel'>sel</span> <span class='op'>&gt;</span> <span class='int'>0</span>
    <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Down-constant" title="RubyText::Keys::Down (constant)">Down</a></span></span>
      <span class='id identifier rubyid_sel'>sel</span> <span class='op'>+=</span> <span class='int'>1</span> <span class='kw'>if</span> <span class='id identifier rubyid_sel'>sel</span> <span class='op'>&lt;</span> <span class='id identifier rubyid_max'>max</span>
    <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Esc-constant" title="RubyText::Keys::Esc (constant)">Esc</a></span></span>
      <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_restback'>restback</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>
      <span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_show_cursor'><span class='object_link'><a href="../RubyText.html#show_cursor-class_method" title="RubyText.show_cursor (method)">show_cursor</a></span></span>
      <span class='kw'>return</span> <span class='lbracket'>[</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rbracket'>]</span>
    <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Enter-constant" title="RubyText::Keys::Enter (constant)">Enter</a></span></span>
      <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_restback'>restback</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>
      <span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_show_cursor'><span class='object_link'><a href="../RubyText.html#show_cursor-class_method" title="RubyText.show_cursor (method)">show_cursor</a></span></span>
      <span class='id identifier rubyid_choice'>choice</span> <span class='op'>=</span> <span class='id identifier rubyid_results'>results</span><span class='lbracket'>[</span><span class='id identifier rubyid_sel'>sel</span><span class='rbracket'>]</span>
      <span class='kw'>return</span> <span class='lbracket'>[</span><span class='id identifier rubyid_sel'>sel</span><span class='comma'>,</span> <span class='id identifier rubyid_choice'>choice</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_choice'>choice</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>String</span>
      <span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='id identifier rubyid_choice'>choice</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span>
      <span class='kw'>return</span> <span class='lbracket'>[</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
      <span class='kw'>return</span> <span class='id identifier rubyid_result'>result</span>
    <span class='kw'>else</span> <span class='const'>Curses</span><span class='period'>.</span><span class='id identifier rubyid_beep'>beep</span>
  <span class='kw'>end</span>
  <span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_show_cursor'><span class='object_link'><a href="../RubyText.html#show_cursor-class_method" title="RubyText.show_cursor (method)">show_cursor</a></span></span>
<span class='kw'>end</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="multimenu-instance_method">

  #<strong>multimenu</strong>(r: :center, c: :center, items:, curr: 0, selected: [], title: nil, sel_fg: Yellow, fg: White, bg: Blue)  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Menu for multiple selections (buggy/unused?)</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'menu.rb', line 138</span>

<span class='kw'>def</span> <span class='id identifier rubyid_multimenu'>multimenu</span><span class='lparen'>(</span><span class='label'>r:</span> <span class='symbol'>:center</span><span class='comma'>,</span> <span class='label'>c:</span> <span class='symbol'>:center</span><span class='comma'>,</span>

            <span class='label'>items:</span><span class='comma'>,</span> <span class='label'>curr:</span> <span class='int'>0</span><span class='comma'>,</span> <span class='label'>selected:</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='comma'>,</span>
            <span class='label'>title:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>sel_fg:</span> <span class='const'>Yellow</span><span class='comma'>,</span> <span class='label'>fg:</span> <span class='const'>White</span><span class='comma'>,</span> <span class='label'>bg:</span> <span class='const'>Blue</span><span class='rparen'>)</span>
<span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_hide_cursor'><span class='object_link'><a href="../RubyText.html#hide_cursor-class_method" title="RubyText.hide_cursor (method)">hide_cursor</a></span></span>
<span class='id identifier rubyid_high'>high</span> <span class='op'>=</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span> <span class='op'>+</span> <span class='int'>2</span>
<span class='id identifier rubyid_wide'>wide</span> <span class='op'>=</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:length</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_max'>max</span> <span class='op'>+</span> <span class='int'>5</span>
<span class='id identifier rubyid_tlen'>tlen</span> <span class='op'>=</span> <span class='id identifier rubyid_title'>title</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>+</span> <span class='int'>8</span> <span class='kw'>rescue</span> <span class='int'>0</span>
<span class='id identifier rubyid_wide'>wide</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='id identifier rubyid_tlen'>tlen</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_max'>max</span>
<span class='id identifier rubyid_row'>row</span><span class='comma'>,</span> <span class='id identifier rubyid_col'>col</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_coords'>coords</span><span class='lparen'>(</span><span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>
<span class='id identifier rubyid_row'>row</span> <span class='op'>=</span> <span class='id identifier rubyid_row'>row</span> <span class='op'>-</span> <span class='id identifier rubyid_high'>high</span><span class='op'>/</span><span class='int'>2</span> <span class='kw'>if</span> <span class='id identifier rubyid_r'>r</span> <span class='op'>==</span> <span class='symbol'>:center</span>
<span class='id identifier rubyid_col'>col</span> <span class='op'>=</span> <span class='id identifier rubyid_col'>col</span> <span class='op'>-</span> <span class='id identifier rubyid_wide'>wide</span><span class='op'>/</span><span class='int'>2</span> <span class='kw'>if</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>==</span> <span class='symbol'>:center</span>
<span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>=</span> <span class='id identifier rubyid_row'>row</span><span class='comma'>,</span> <span class='id identifier rubyid_col'>col</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_saveback'>saveback</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>
<span class='id identifier rubyid_mr'>mr</span><span class='comma'>,</span> <span class='id identifier rubyid_mc'>mc</span> <span class='op'>=</span> <span class='id identifier rubyid_r'>r</span><span class='op'>+</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_r0'>r0</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='op'>+</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_c0'>c0</span>
<span class='id identifier rubyid_mwin'>mwin</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_window'><span class='object_link'><a href="../RubyText.html#window-class_method" title="RubyText.window (method)">window</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='label'>r:</span> <span class='id identifier rubyid_mr'>mr</span><span class='comma'>,</span> <span class='label'>c:</span> <span class='id identifier rubyid_mc'>mc</span><span class='comma'>,</span> 
                       <span class='label'>fg:</span> <span class='id identifier rubyid_fg'>fg</span><span class='comma'>,</span> <span class='label'>bg:</span> <span class='id identifier rubyid_bg'>bg</span><span class='comma'>,</span> <span class='label'>title:</span> <span class='id identifier rubyid_title'>title</span><span class='rparen'>)</span>
<span class='const'>Curses</span><span class='period'>.</span><span class='id identifier rubyid_stdscr'>stdscr</span><span class='period'>.</span><span class='id identifier rubyid_keypad'>keypad</span><span class='lparen'>(</span><span class='kw'>true</span><span class='rparen'>)</span>
<span class='id identifier rubyid_sel'>sel</span> <span class='op'>=</span> <span class='id identifier rubyid_curr'>curr</span>
<span class='id identifier rubyid_max'>max</span> <span class='op'>=</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span> <span class='op'>-</span> <span class='int'>1</span>
<span class='id identifier rubyid_loop'>loop</span> <span class='kw'>do</span>
  <span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_hide_cursor'><span class='object_link'><a href="../RubyText.html#hide_cursor-class_method" title="RubyText.hide_cursor (method)">hide_cursor</a></span></span>  <span class='comment'># FIXME should be unnecessary

</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span><span class='period'>.</span><span class='id identifier rubyid_with_index'>with_index</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_item'>item</span><span class='comma'>,</span> <span class='id identifier rubyid_row'>row</span><span class='op'>|</span>

    <span class='id identifier rubyid_mwin'>mwin</span><span class='period'>.</span><span class='id identifier rubyid_go'>go</span> <span class='id identifier rubyid_row'>row</span><span class='comma'>,</span> <span class='int'>0</span>
    <span class='id identifier rubyid_style'>style</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_sel'>sel</span> <span class='op'>==</span> <span class='id identifier rubyid_row'>row</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='symbol'>:reverse</span> <span class='op'>:</span> <span class='symbol'>:normal</span>
    <span class='id identifier rubyid_color'>color</span> <span class='op'>=</span> <span class='id identifier rubyid_selected'>selected</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_row'>row</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_sel_fg'>sel_fg</span> <span class='op'>:</span> <span class='id identifier rubyid_fg'>fg</span>
    <span class='id identifier rubyid_label'>label</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span><span class='op'>*</span><span class='int'>2</span> <span class='op'>+</span> <span class='id identifier rubyid_item'>item</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span><span class='op'>*</span><span class='int'>8</span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='op'>..</span><span class='id identifier rubyid_wide'>wide</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span>
    <span class='id identifier rubyid_mwin'>mwin</span><span class='period'>.</span><span class='id identifier rubyid_print'>print</span> <span class='id identifier rubyid_fx'><span class='object_link'><a href="../top-level-namespace.html#fx-instance_method" title="#fx (method)">fx</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_label'>label</span><span class='comma'>,</span> <span class='id identifier rubyid_color'>color</span><span class='comma'>,</span> <span class='id identifier rubyid_style'>style</span><span class='rparen'>)</span>
  <span class='kw'>end</span>
  <span class='id identifier rubyid_ch'>ch</span> <span class='op'>=</span> <span class='id identifier rubyid_getch'>getch</span>
  <span class='kw'>case</span> <span class='id identifier rubyid_ch'>ch</span>
    <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Up-constant" title="RubyText::Keys::Up (constant)">Up</a></span></span>
      <span class='id identifier rubyid_sel'>sel</span> <span class='op'>-=</span> <span class='int'>1</span> <span class='kw'>if</span> <span class='id identifier rubyid_sel'>sel</span> <span class='op'>&gt;</span> <span class='int'>0</span>
    <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Down-constant" title="RubyText::Keys::Down (constant)">Down</a></span></span>
      <span class='id identifier rubyid_sel'>sel</span> <span class='op'>+=</span> <span class='int'>1</span> <span class='kw'>if</span> <span class='id identifier rubyid_sel'>sel</span> <span class='op'>&lt;</span> <span class='id identifier rubyid_max'>max</span>
    <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Esc-constant" title="RubyText::Keys::Esc (constant)">Esc</a></span></span>
      <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_restback'>restback</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>
      <span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_show_cursor'><span class='object_link'><a href="../RubyText.html#show_cursor-class_method" title="RubyText.show_cursor (method)">show_cursor</a></span></span>
      <span class='kw'>return</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
    <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Enter-constant" title="RubyText::Keys::Enter (constant)">Enter</a></span></span>
      <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_restback'>restback</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>
      <span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_show_cursor'><span class='object_link'><a href="../RubyText.html#show_cursor-class_method" title="RubyText.show_cursor (method)">show_cursor</a></span></span>
      <span class='kw'>return</span> <span class='id identifier rubyid_selected'>selected</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span> <span class='id identifier rubyid_items'>items</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span> <span class='rbrace'>}</span>
    <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span>
      <span class='id identifier rubyid_selected'>selected</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_sel'>sel</span>
      <span class='id identifier rubyid_sel'>sel</span> <span class='op'>+=</span> <span class='int'>1</span> <span class='kw'>if</span> <span class='id identifier rubyid_sel'>sel</span> <span class='op'>&lt;</span> <span class='id identifier rubyid_max'>max</span>
    <span class='kw'>else</span> <span class='const'>Curses</span><span class='period'>.</span><span class='id identifier rubyid_beep'>beep</span>
  <span class='kw'>end</span>
  <span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_show_cursor'><span class='object_link'><a href="../RubyText.html#show_cursor-class_method" title="RubyText.show_cursor (method)">show_cursor</a></span></span>
<span class='kw'>end</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="output-instance_method">

  #<strong>output</strong>(&amp;block)  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

120 121 122 123 124</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'output.rb', line 120</span>

<span class='kw'>def</span> <span class='id identifier rubyid_output'>output</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>

<span class='gvar'>$stdscr</span> <span class='op'>=</span> <span class='kw'>self</span>
<span class='id identifier rubyid_block'>block</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span>
<span class='gvar'>$stdscr</span> <span class='op'>=</span> <span class='const'>STDSCR</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="p-instance_method">

  #<strong>p</strong>(*args)  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

50 51 52</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'output.rb', line 50</span>

<span class='kw'>def</span> <span class='id identifier rubyid_p'>p</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>

<span class='id identifier rubyid_delegate_output'>delegate_output</span><span class='lparen'>(</span><span class='symbol'>:p</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="print-instance_method">

  #<strong>print</strong>(*args)  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

46 47 48</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'output.rb', line 46</span>

<span class='kw'>def</span> <span class='id identifier rubyid_print'>print</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>

<span class='id identifier rubyid_delegate_output'>delegate_output</span><span class='lparen'>(</span><span class='symbol'>:print</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="putch-instance_method">

  #<strong>putch</strong>(ch, r: nil, c: nil, fx: nil)  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'output.rb', line 67</span>

<span class='kw'>def</span> <span class='id identifier rubyid_putch'>putch</span><span class='lparen'>(</span><span class='id identifier rubyid_ch'>ch</span><span class='comma'>,</span> <span class='label'>r:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>c:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>fx:</span> <span class='kw'>nil</span><span class='rparen'>)</span>

<span class='id identifier rubyid_debug'><span class='object_link'><a href="../top-level-namespace.html#debug-instance_method" title="#debug (method)">debug</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>putch: </span><span class='embexpr_beg'>#{</span><span class='lbracket'>[</span><span class='id identifier rubyid_ch'>ch</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='comma'>,</span> <span class='id identifier rubyid_fx'><span class='object_link'><a href="../top-level-namespace.html#fx-instance_method" title="#fx (method)">fx</a></span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_inspect'>inspect</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='id identifier rubyid_r'>r</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_fx'><span class='object_link'><a href="../top-level-namespace.html#fx-instance_method" title="#fx (method)">fx</a></span></span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
  <span class='id identifier rubyid__putch'>_putch</span><span class='lparen'>(</span><span class='id identifier rubyid_ch'>ch</span><span class='rparen'>)</span> 
<span class='kw'>else</span>
  <span class='id identifier rubyid_r0'>r0</span><span class='comma'>,</span> <span class='id identifier rubyid_c0'>c0</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_rc'>rc</span>
  <span class='id identifier rubyid_r'>r</span> <span class='op'>||=</span> <span class='id identifier rubyid_r0'>r0</span>
  <span class='id identifier rubyid_c'>c</span> <span class='op'>||=</span> <span class='id identifier rubyid_c0'>c0</span>
  <span class='id identifier rubyid_go'>go</span><span class='lparen'>(</span><span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span> <span class='kw'>do</span>
    <span class='id identifier rubyid_fx'><span class='object_link'><a href="../top-level-namespace.html#fx-instance_method" title="#fx (method)">fx</a></span></span><span class='period'>.</span><span class='id identifier rubyid_set'>set</span><span class='lparen'>(</span><span class='kw'>self</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_fx'><span class='object_link'><a href="../top-level-namespace.html#fx-instance_method" title="#fx (method)">fx</a></span></span>
    <span class='id identifier rubyid_val'>val</span> <span class='op'>=</span> <span class='id identifier rubyid_fx'><span class='object_link'><a href="../top-level-namespace.html#fx-instance_method" title="#fx (method)">fx</a></span></span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span> <span class='kw'>rescue</span> <span class='int'>0</span>
    <span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_addch'>addch</span><span class='lparen'>(</span><span class='id identifier rubyid_ch'>ch</span><span class='period'>.</span><span class='id identifier rubyid_ord'>ord</span><span class='op'>|</span><span class='id identifier rubyid_val'>val</span><span class='rparen'>)</span>
  <span class='kw'>end</span>
  <span class='id identifier rubyid_fx'><span class='object_link'><a href="../top-level-namespace.html#fx-instance_method" title="#fx (method)">fx</a></span></span><span class='period'>.</span><span class='id identifier rubyid_reset'>reset</span><span class='lparen'>(</span><span class='kw'>self</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_fx'><span class='object_link'><a href="../top-level-namespace.html#fx-instance_method" title="#fx (method)">fx</a></span></span>
<span class='kw'>end</span>
<span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_refresh'>refresh</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="puts-instance_method">

  #<strong>puts</strong>(*args)  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

42 43 44</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'output.rb', line 42</span>

<span class='kw'>def</span> <span class='id identifier rubyid_puts'>puts</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>

<span class='id identifier rubyid_delegate_output'>delegate_output</span><span class='lparen'>(</span><span class='symbol'>:puts</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="radio_menu-instance_method">

  #<strong>radio_menu</strong>(r: :center, c: :center, items:, curr: 0, border: true, title: nil, fg: Green, bg: Black)  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Menu to choose a single setting and retain it</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'menu.rb', line 200</span>

<span class='kw'>def</span> <span class='id identifier rubyid_radio_menu'>radio_menu</span><span class='lparen'>(</span><span class='label'>r:</span> <span class='symbol'>:center</span><span class='comma'>,</span> <span class='label'>c:</span> <span class='symbol'>:center</span><span class='comma'>,</span> <span class='label'>items:</span><span class='comma'>,</span> <span class='label'>curr:</span> <span class='int'>0</span><span class='comma'>,</span>

<span class='comment'># Handle current value better?

</span> <span class='label'>border:</span> <span class='kw'>true</span><span class='comma'>,</span>

       <span class='label'>title:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>fg:</span> <span class='const'>Green</span><span class='comma'>,</span> <span class='label'>bg:</span> <span class='const'>Black</span><span class='rparen'>)</span>
<span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_hide_cursor'><span class='object_link'><a href="../RubyText.html#hide_cursor-class_method" title="RubyText.hide_cursor (method)">hide_cursor</a></span></span>
<span class='kw'>if</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
  <span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span>
  <span class='id identifier rubyid_items'>items</span> <span class='op'>=</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span>
  <span class='id identifier rubyid_hash_flag'>hash_flag</span> <span class='op'>=</span> <span class='kw'>true</span>
<span class='kw'>else</span>
  <span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='id identifier rubyid_items'>items</span>
<span class='kw'>end</span>

<span class='id identifier rubyid_high'>high</span> <span class='op'>=</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span>
<span class='id identifier rubyid_wide'>wide</span> <span class='op'>=</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:length</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_max'>max</span> <span class='op'>+</span> <span class='int'>3</span>
<span class='id identifier rubyid_high'>high</span> <span class='op'>+=</span> <span class='int'>2</span> <span class='kw'>if</span> <span class='id identifier rubyid_border'>border</span>
<span class='id identifier rubyid_wide'>wide</span> <span class='op'>+=</span> <span class='int'>2</span> <span class='kw'>if</span> <span class='id identifier rubyid_border'>border</span>

<span class='id identifier rubyid_tlen'>tlen</span> <span class='op'>=</span> <span class='id identifier rubyid_title'>title</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>+</span> <span class='int'>8</span> <span class='kw'>rescue</span> <span class='int'>0</span>
<span class='id identifier rubyid_wide'>wide</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='id identifier rubyid_tlen'>tlen</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_max'>max</span>
<span class='id identifier rubyid_row'>row</span><span class='comma'>,</span> <span class='id identifier rubyid_col'>col</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_coords'>coords</span><span class='lparen'>(</span><span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>
<span class='id identifier rubyid_row'>row</span> <span class='op'>=</span> <span class='id identifier rubyid_row'>row</span> <span class='op'>-</span> <span class='id identifier rubyid_high'>high</span><span class='op'>/</span><span class='int'>2</span> <span class='kw'>if</span> <span class='id identifier rubyid_r'>r</span> <span class='op'>==</span> <span class='symbol'>:center</span>
<span class='id identifier rubyid_col'>col</span> <span class='op'>=</span> <span class='id identifier rubyid_col'>col</span> <span class='op'>-</span> <span class='id identifier rubyid_wide'>wide</span><span class='op'>/</span><span class='int'>2</span> <span class='kw'>if</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>==</span> <span class='symbol'>:center</span>
<span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>=</span> <span class='id identifier rubyid_row'>row</span><span class='comma'>,</span> <span class='id identifier rubyid_col'>col</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_saveback'>saveback</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>
<span class='id identifier rubyid_mr'>mr</span><span class='comma'>,</span> <span class='id identifier rubyid_mc'>mc</span> <span class='op'>=</span> <span class='id identifier rubyid_r'>r</span><span class='op'>+</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_r0'>r0</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='op'>+</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_c0'>c0</span>
<span class='id identifier rubyid_title'>title</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>unless</span> <span class='id identifier rubyid_border'>border</span>
<span class='id identifier rubyid_mwin'>mwin</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_window'><span class='object_link'><a href="../RubyText.html#window-class_method" title="RubyText.window (method)">window</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='label'>r:</span> <span class='id identifier rubyid_mr'>mr</span><span class='comma'>,</span> <span class='label'>c:</span> <span class='id identifier rubyid_mc'>mc</span><span class='comma'>,</span> <span class='label'>border:</span> <span class='id identifier rubyid_border'>border</span><span class='comma'>,</span>
                       <span class='label'>fg:</span> <span class='id identifier rubyid_fg'>fg</span><span class='comma'>,</span> <span class='label'>bg:</span> <span class='id identifier rubyid_bg'>bg</span><span class='comma'>,</span> <span class='label'>title:</span> <span class='id identifier rubyid_title'>title</span><span class='rparen'>)</span>
<span class='const'>Curses</span><span class='period'>.</span><span class='id identifier rubyid_stdscr'>stdscr</span><span class='period'>.</span><span class='id identifier rubyid_keypad'>keypad</span><span class='lparen'>(</span><span class='kw'>true</span><span class='rparen'>)</span>
<span class='id identifier rubyid_sel'>sel</span> <span class='op'>=</span> <span class='id identifier rubyid_curr'>curr</span>
<span class='id identifier rubyid_max'>max</span> <span class='op'>=</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span> <span class='op'>-</span> <span class='int'>1</span>
<span class='id identifier rubyid_loop'>loop</span> <span class='kw'>do</span>
  <span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_hide_cursor'><span class='object_link'><a href="../RubyText.html#hide_cursor-class_method" title="RubyText.hide_cursor (method)">hide_cursor</a></span></span>  <span class='comment'># FIXME should be unnecessary

</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span><span class='period'>.</span><span class='id identifier rubyid_with_index'>with_index</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_item'>item</span><span class='comma'>,</span> <span class='id identifier rubyid_row'>row</span><span class='op'>|</span>

    <span class='id identifier rubyid_mark'>mark</span> <span class='op'>=</span> <span class='id identifier rubyid_row'>row</span> <span class='op'>==</span> <span class='id identifier rubyid_curr'>curr</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>&gt;</span><span class='tstring_end'>&quot;</span></span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span>
    <span class='id identifier rubyid_mwin'>mwin</span><span class='period'>.</span><span class='id identifier rubyid_go'>go</span> <span class='id identifier rubyid_row'>row</span><span class='comma'>,</span> <span class='int'>0</span>
    <span class='id identifier rubyid_style'>style</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_sel'>sel</span> <span class='op'>==</span> <span class='id identifier rubyid_row'>row</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='symbol'>:reverse</span> <span class='op'>:</span> <span class='symbol'>:normal</span>
    <span class='id identifier rubyid_label'>label</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_mark'>mark</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_item'>item</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
    <span class='id identifier rubyid_mwin'>mwin</span><span class='period'>.</span><span class='id identifier rubyid_print'>print</span> <span class='id identifier rubyid_fx'><span class='object_link'><a href="../top-level-namespace.html#fx-instance_method" title="#fx (method)">fx</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_label'>label</span><span class='comma'>,</span> <span class='id identifier rubyid_style'>style</span><span class='rparen'>)</span>
  <span class='kw'>end</span>
  <span class='id identifier rubyid_ch'>ch</span> <span class='op'>=</span> <span class='id identifier rubyid_getch'>getch</span>
  <span class='kw'>case</span> <span class='id identifier rubyid_ch'>ch</span>
    <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Up-constant" title="RubyText::Keys::Up (constant)">Up</a></span></span>
      <span class='id identifier rubyid_sel'>sel</span> <span class='op'>-=</span> <span class='int'>1</span> <span class='kw'>if</span> <span class='id identifier rubyid_sel'>sel</span> <span class='op'>&gt;</span> <span class='int'>0</span>
    <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Down-constant" title="RubyText::Keys::Down (constant)">Down</a></span></span>
      <span class='id identifier rubyid_sel'>sel</span> <span class='op'>+=</span> <span class='int'>1</span> <span class='kw'>if</span> <span class='id identifier rubyid_sel'>sel</span> <span class='op'>&lt;</span> <span class='id identifier rubyid_max'>max</span>
    <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Esc-constant" title="RubyText::Keys::Esc (constant)">Esc</a></span></span>
      <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_restback'>restback</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>
      <span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_show_cursor'><span class='object_link'><a href="../RubyText.html#show_cursor-class_method" title="RubyText.show_cursor (method)">show_cursor</a></span></span>
      <span class='kw'>return</span> <span class='lbracket'>[</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rbracket'>]</span>
    <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span>
      <span class='id identifier rubyid_mwin'>mwin</span><span class='lbracket'>[</span><span class='id identifier rubyid_curr'>curr</span><span class='comma'>,</span> <span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span>
      <span class='id identifier rubyid_mwin'>mwin</span><span class='lbracket'>[</span><span class='id identifier rubyid_sel'>sel</span><span class='comma'>,</span> <span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>&gt;</span><span class='tstring_end'>&quot;</span></span>
      <span class='id identifier rubyid_curr'>curr</span> <span class='op'>=</span> <span class='id identifier rubyid_sel'>sel</span>
    <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Enter-constant" title="RubyText::Keys::Enter (constant)">Enter</a></span></span>
      <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_restback'>restback</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>
      <span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_show_cursor'><span class='object_link'><a href="../RubyText.html#show_cursor-class_method" title="RubyText.show_cursor (method)">show_cursor</a></span></span>
      <span class='id identifier rubyid_choice'>choice</span> <span class='op'>=</span> <span class='id identifier rubyid_results'>results</span><span class='lbracket'>[</span><span class='id identifier rubyid_sel'>sel</span><span class='rbracket'>]</span>
      <span class='kw'>return</span> <span class='lbracket'>[</span><span class='id identifier rubyid_sel'>sel</span><span class='comma'>,</span> <span class='id identifier rubyid_choice'>choice</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_choice'>choice</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>String</span>
      <span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='id identifier rubyid_choice'>choice</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span>
      <span class='kw'>return</span> <span class='lbracket'>[</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
      <span class='kw'>return</span> <span class='id identifier rubyid_result'>result</span>
    <span class='kw'>else</span> <span class='const'>Curses</span><span class='period'>.</span><span class='id identifier rubyid_beep'>beep</span>
  <span class='kw'>end</span>
  <span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_show_cursor'><span class='object_link'><a href="../RubyText.html#show_cursor-class_method" title="RubyText.show_cursor (method)">show_cursor</a></span></span>
<span class='kw'>end</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="rc-instance_method">

  #<strong>rc</strong>  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Return current row/column</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

129 130 131</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'navigation.rb', line 129</span>

<span class='kw'>def</span> <span class='id identifier rubyid_rc'>rc</span>

<span class='lbracket'>[</span><span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_cury'>cury</span><span class='comma'>,</span> <span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_curx'>curx</span><span class='rbracket'>]</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="rcprint-instance_method">

  #<strong>rcprint</strong>(r, c, *args)  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

54 55 56</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'output.rb', line 54</span>

<span class='kw'>def</span> <span class='id identifier rubyid_rcprint'>rcprint</span><span class='lparen'>(</span><span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>

<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_go'>go</span><span class='lparen'>(</span><span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_print'>print</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span> <span class='rbrace'>}</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="rcprint!-instance_method">

  #<strong>rcprint!</strong>(r, c, *args)  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

58 59 60 61</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'output.rb', line 58</span>

<span class='kw'>def</span> <span class='id identifier rubyid_rcprint!'>rcprint!</span><span class='lparen'>(</span><span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>

<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_go'>go</span><span class='lparen'>(</span><span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>  <span class='comment'># Cursor isn&#39;t restored

</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_print'>print</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span> <span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="refresh-instance_method">

  #<strong>refresh</strong>  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

145 146 147</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'output.rb', line 145</span>

<span class='kw'>def</span> <span class='id identifier rubyid_refresh'>refresh</span>

<span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_refresh'>refresh</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="restback-instance_method">

  #<strong>restback</strong>(high = STDSCR.rows, wide = STDSCR.cols, r = 0, c = 0)  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'window.rb', line 143</span>

<span class='kw'>def</span> <span class='id identifier rubyid_restback'>restback</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='op'>=</span><span class='const'>STDSCR</span><span class='period'>.</span><span class='id identifier rubyid_rows'>rows</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='op'>=</span><span class='const'>STDSCR</span><span class='period'>.</span><span class='id identifier rubyid_cols'>cols</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='op'>=</span><span class='int'>0</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='op'>=</span><span class='int'>0</span><span class='rparen'>)</span>

<span class='id identifier rubyid_save'>save</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="#ScreenStack-constant" title="RubyText::Window::ScreenStack (constant)">ScreenStack</a></span></span><span class='period'>.</span><span class='id identifier rubyid_pop'>pop</span>
<span class='id identifier rubyid_pos'>pos</span> <span class='op'>=</span> <span class='id identifier rubyid_save'>save</span><span class='period'>.</span><span class='id identifier rubyid_shift'>shift</span>
<span class='int'>0</span><span class='period'>.</span><span class='id identifier rubyid_upto'>upto</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='op'>-</span><span class='int'>1</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_h'>h</span><span class='op'>|</span>
  <span class='id identifier rubyid_line'>line</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
  <span class='int'>0</span><span class='period'>.</span><span class='id identifier rubyid_upto'>upto</span><span class='lparen'>(</span><span class='id identifier rubyid_wide'>wide</span><span class='op'>-</span><span class='int'>1</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_w'>w</span><span class='op'>|</span> <span class='id identifier rubyid_line'>line</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_save'>save</span><span class='period'>.</span><span class='id identifier rubyid_shift'>shift</span> <span class='rbrace'>}</span>
  <span class='id identifier rubyid_row'>row</span><span class='comma'>,</span> <span class='id identifier rubyid_col'>col</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='op'>+</span><span class='id identifier rubyid_r'>r</span><span class='op'>-</span><span class='int'>1</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='op'>-</span><span class='int'>1</span>
  <span class='id identifier rubyid_row'>row</span> <span class='op'>+=</span> <span class='int'>1</span> <span class='kw'>if</span> <span class='kw'>self</span> <span class='op'>==</span> <span class='const'>STDSCR</span>   <span class='comment'># wtf?

</span> <span class='id identifier rubyid_col'>col</span> <span class='op'>+=</span> <span class='int'>1</span> <span class='kw'>if</span> <span class='kw'>self</span> <span class='op'>==</span> <span class='const'>STDSCR</span>

  <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_go'>go</span> <span class='id identifier rubyid_row'>row</span><span class='comma'>,</span> <span class='id identifier rubyid_col'>col</span>
  <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_print'>print</span> <span class='id identifier rubyid_line'>line</span>
<span class='kw'>end</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_go'>go</span> <span class='op'>*</span><span class='id identifier rubyid_pos'>pos</span>
<span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_refresh'>refresh</span>

<span class='kw'>rescue</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_err'>err</span>

<span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Error!</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_err'>err</span>
<span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_err'>err</span><span class='period'>.</span><span class='id identifier rubyid_backtrace'>backtrace</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\n</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
<span class='id identifier rubyid_sleep'>sleep</span> <span class='int'>8</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="right-instance_method">

  #<strong>right</strong>(n = 1)  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Move cursor right</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

74 75 76 77</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'navigation.rb', line 74</span>

<span class='kw'>def</span> <span class='id identifier rubyid_right'>right</span><span class='lparen'>(</span><span class='id identifier rubyid_n'>n</span><span class='op'>=</span><span class='int'>1</span><span class='rparen'>)</span>

<span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>=</span> <span class='id identifier rubyid_rc'>rc</span>
<span class='id identifier rubyid_go'>go</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='op'>+</span><span class='id identifier rubyid_n'>n</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="right!-instance_method">

  #<strong>right!</strong>  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Move cursor to far left of window</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

115 116 117 118 119</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'navigation.rb', line 115</span>

<span class='kw'>def</span> <span class='id identifier rubyid_right!'>right!</span>

<span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>=</span> <span class='id identifier rubyid_rc'>rc</span>
<span class='id identifier rubyid_cmax'>cmax</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cols'>cols</span> <span class='op'>-</span> <span class='int'>1</span>
<span class='id identifier rubyid_go'>go</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_cmax'>cmax</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="saveback-instance_method">

  #<strong>saveback</strong>(high = STDSCR.rows, wide = STDSCR.cols, r = 0, c = 0)  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

129 130 131 132 133 134 135 136 137 138 139 140 141</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'window.rb', line 129</span>

<span class='kw'>def</span> <span class='id identifier rubyid_saveback'>saveback</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='op'>=</span><span class='const'>STDSCR</span><span class='period'>.</span><span class='id identifier rubyid_rows'>rows</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='op'>=</span><span class='const'>STDSCR</span><span class='period'>.</span><span class='id identifier rubyid_cols'>cols</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='op'>=</span><span class='int'>0</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='op'>=</span><span class='int'>0</span><span class='rparen'>)</span>

<span class='id identifier rubyid_debug'><span class='object_link'><a href="../top-level-namespace.html#debug-instance_method" title="#debug (method)">debug</a></span></span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>saveback: </span><span class='embexpr_beg'>#{</span><span class='lbracket'>[</span><span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_wide'>wide</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_inspect'>inspect</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_save'>save</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_rc'>rc</span><span class='rbracket'>]</span>
<span class='int'>0</span><span class='period'>.</span><span class='id identifier rubyid_upto'>upto</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='op'>-</span><span class='int'>1</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_h'>h</span><span class='op'>|</span>
  <span class='int'>0</span><span class='period'>.</span><span class='id identifier rubyid_upto'>upto</span><span class='lparen'>(</span><span class='id identifier rubyid_wide'>wide</span><span class='op'>-</span><span class='int'>1</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_w'>w</span><span class='op'>|</span>
    <span class='id identifier rubyid_row'>row</span><span class='comma'>,</span> <span class='id identifier rubyid_col'>col</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='op'>+</span><span class='id identifier rubyid_r'>r</span><span class='op'>-</span><span class='int'>1</span><span class='comma'>,</span> <span class='id identifier rubyid_w'>w</span><span class='op'>+</span><span class='id identifier rubyid_c'>c</span><span class='op'>-</span><span class='int'>1</span>
    <span class='id identifier rubyid_row'>row</span> <span class='op'>+=</span> <span class='int'>1</span> <span class='kw'>if</span> <span class='kw'>self</span> <span class='op'>==</span> <span class='const'>STDSCR</span>   <span class='comment'># wtf?

</span> <span class='id identifier rubyid_col'>col</span> <span class='op'>+=</span> <span class='int'>1</span> <span class='kw'>if</span> <span class='kw'>self</span> <span class='op'>==</span> <span class='const'>STDSCR</span>

    <span class='id identifier rubyid_save'>save</span> <span class='op'>&lt;&lt;</span> <span class='kw'>self</span><span class='lbracket'>[</span><span class='id identifier rubyid_row'>row</span><span class='comma'>,</span> <span class='id identifier rubyid_col'>col</span><span class='rbracket'>]</span>
  <span class='kw'>end</span>
<span class='kw'>end</span>
<span class='const'><span class='object_link'><a href="#ScreenStack-constant" title="RubyText::Window::ScreenStack (constant)">ScreenStack</a></span></span><span class='period'>.</span><span class='id identifier rubyid_push'>push</span> <span class='id identifier rubyid_save'>save</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="screen_text-instance_method">

  #<strong>screen_text</strong>(file = nil)  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>rename?</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

110 111 112 113 114 115 116 117 118 119 120 121</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'window.rb', line 110</span>

<span class='kw'>def</span> <span class='id identifier rubyid_screen_text'>screen_text</span><span class='lparen'>(</span><span class='id identifier rubyid_file'>file</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span> <span class='comment'># rename? </span> <span class='id identifier rubyid_lines'>lines</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>

<span class='int'>0</span><span class='period'>.</span><span class='id identifier rubyid_upto'>upto</span><span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_rows'>rows</span><span class='op'>-</span><span class='int'>1</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_r'>r</span><span class='op'>|</span>
  <span class='id identifier rubyid_line'>line</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
  <span class='int'>0</span><span class='period'>.</span><span class='id identifier rubyid_upto'>upto</span><span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cols'>cols</span><span class='op'>-</span><span class='int'>1</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_c'>c</span><span class='op'>|</span>
    <span class='id identifier rubyid_line'>line</span> <span class='op'>&lt;&lt;</span> <span class='kw'>self</span><span class='lbracket'>[</span><span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rbracket'>]</span>
  <span class='kw'>end</span>
  <span class='id identifier rubyid_lines'>lines</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_line'>line</span>
<span class='kw'>end</span>
<span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='id identifier rubyid_file'>file</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>w</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_f'>f</span><span class='op'>|</span> <span class='id identifier rubyid_f'>f</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_lines'>lines</span> <span class='rbrace'>}</span>  <span class='kw'>if</span> <span class='id identifier rubyid_file'>file</span>
<span class='id identifier rubyid_lines'>lines</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="scroll-instance_method">

  #<strong>scroll</strong>(n = 1)  &#x21d2; <tt>Object</tt>

</h3><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

95 96 97 98 99 100 101 102 103 104 105 106 107 108</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'window.rb', line 95</span>

<span class='kw'>def</span> <span class='id identifier rubyid_scroll'>scroll</span><span class='lparen'>(</span><span class='id identifier rubyid_n'>n</span><span class='op'>=</span><span class='int'>1</span><span class='rparen'>)</span>

<span class='kw'>if</span> <span class='id identifier rubyid_n'>n</span> <span class='op'>&lt;</span> <span class='int'>0</span>
  <span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_scrl'>scrl</span><span class='lparen'>(</span><span class='id identifier rubyid_n'>n</span><span class='rparen'>)</span>
  <span class='lparen'>(</span><span class='op'>-</span><span class='id identifier rubyid_n'>n</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_times'>times</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span> <span class='id identifier rubyid_rcprint'>rcprint</span> <span class='id identifier rubyid_i'>i</span><span class='comma'>,</span> <span class='int'>0</span><span class='comma'>,</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'> </span><span class='tstring_end'>&#39;</span></span><span class='op'>*</span><span class='ivar'>@cols</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
<span class='kw'>else</span>
  <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_times'>times</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span>
    <span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_scroll'>scroll</span>
    <span class='id identifier rubyid_scrolling'>scrolling</span><span class='lparen'>(</span><span class='kw'>false</span><span class='rparen'>)</span>
    <span class='id identifier rubyid_rcprint'>rcprint</span> <span class='ivar'>@rows</span><span class='op'>-</span><span class='int'>1</span><span class='comma'>,</span> <span class='int'>0</span><span class='comma'>,</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'> </span><span class='tstring_end'>&#39;</span></span><span class='op'>*</span><span class='ivar'>@cols</span><span class='rparen'>)</span>
    <span class='id identifier rubyid_scrolling'>scrolling</span>
  <span class='kw'>end</span>
<span class='kw'>end</span>
<span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_refresh'>refresh</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="set_colors-instance_method">

  #<strong>set_colors</strong>(fg, bg)  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Assign color pair to curses window</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

62 63 64 65</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'color.rb', line 62</span>

<span class='kw'>def</span> <span class='id identifier rubyid_set_colors'>set_colors</span><span class='lparen'>(</span><span class='id identifier rubyid_fg'>fg</span><span class='comma'>,</span> <span class='id identifier rubyid_bg'>bg</span><span class='rparen'>)</span>

<span class='id identifier rubyid_cp'>cp</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Color.html" title="RubyText::Color (class)">Color</a></span></span><span class='period'>.</span><span class='id identifier rubyid_pair'><span class='object_link'><a href="Color.html#pair-class_method" title="RubyText::Color.pair (method)">pair</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_fg'>fg</span><span class='comma'>,</span> <span class='id identifier rubyid_bg'>bg</span><span class='rparen'>)</span>
<span class='ivar'>@cwin</span><span class='period'>.</span><span class='id identifier rubyid_color_set'>color_set</span><span class='lparen'>(</span><span class='id identifier rubyid_cp'>cp</span><span class='rparen'>)</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="top-instance_method">

  #<strong>top</strong>  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Move cursor to top of window</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

81 82 83 84</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'navigation.rb', line 81</span>

<span class='kw'>def</span> <span class='id identifier rubyid_top'>top</span>

<span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>=</span> <span class='id identifier rubyid_rc'>rc</span>
<span class='id identifier rubyid_go'>go</span> <span class='int'>0</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="topmenu-instance_method">

  #<strong>topmenu</strong>(items:, curr: 0, fg: Green, bg: Black)  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>One-line menu at top of window</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'menu.rb', line 11</span>

<span class='kw'>def</span> <span class='id identifier rubyid_topmenu'>topmenu</span><span class='lparen'>(</span><span class='label'>items:</span><span class='comma'>,</span> <span class='label'>curr:</span> <span class='int'>0</span><span class='comma'>,</span> <span class='label'>fg:</span> <span class='const'>Green</span><span class='comma'>,</span> <span class='label'>bg:</span> <span class='const'>Black</span><span class='rparen'>)</span>

<span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>=</span> <span class='int'>0</span><span class='comma'>,</span> <span class='int'>0</span>
<span class='id identifier rubyid_high'>high</span> <span class='op'>=</span> <span class='int'>1</span>

<span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_hide_cursor'><span class='object_link'><a href="../RubyText.html#hide_cursor-class_method" title="RubyText.hide_cursor (method)">hide_cursor</a></span></span>
<span class='kw'>if</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
  <span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span>
  <span class='id identifier rubyid_items'>items</span> <span class='op'>=</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span>
  <span class='id identifier rubyid_hash_flag'>hash_flag</span> <span class='op'>=</span> <span class='kw'>true</span>
<span class='kw'>else</span>
  <span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='id identifier rubyid_items'>items</span>
<span class='kw'>end</span>

<span class='id identifier rubyid_width'>width</span> <span class='op'>=</span> <span class='int'>0</span>   <span class='comment'># total width

</span> <span class='id identifier rubyid_cols'>cols</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span> <span class='comment'># start-column of each item </span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_item'>item</span><span class='op'>|</span>

  <span class='id identifier rubyid_cols'>cols</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_width'>width</span>
  <span class='id identifier rubyid_iwide'>iwide</span> <span class='op'>=</span> <span class='id identifier rubyid_item'>item</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>+</span> <span class='int'>2</span>
  <span class='id identifier rubyid_width'>width</span> <span class='op'>+=</span> <span class='id identifier rubyid_iwide'>iwide</span>
<span class='kw'>end</span>

<span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_coords'>coords</span><span class='lparen'>(</span><span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_saveback'>saveback</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_width'>width</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>
<span class='id identifier rubyid_mr'>mr</span><span class='comma'>,</span> <span class='id identifier rubyid_mc'>mc</span> <span class='op'>=</span> <span class='id identifier rubyid_r'>r</span><span class='op'>+</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_r0'>r0</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='op'>+</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_c0'>c0</span>
<span class='id identifier rubyid_mwin'>mwin</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_window'><span class='object_link'><a href="../RubyText.html#window-class_method" title="RubyText.window (method)">window</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_width'>width</span><span class='comma'>,</span> <span class='label'>r:</span> <span class='id identifier rubyid_mr'>mr</span><span class='comma'>,</span> <span class='label'>c:</span> <span class='id identifier rubyid_mc'>mc</span><span class='comma'>,</span> <span class='label'>fg:</span> <span class='id identifier rubyid_fg'>fg</span><span class='comma'>,</span> <span class='label'>bg:</span> <span class='id identifier rubyid_bg'>bg</span><span class='comma'>,</span> <span class='label'>border:</span> <span class='kw'>false</span><span class='comma'>,</span> <span class='label'>title:</span> <span class='kw'>nil</span><span class='rparen'>)</span>
<span class='const'>Curses</span><span class='period'>.</span><span class='id identifier rubyid_stdscr'>stdscr</span><span class='period'>.</span><span class='id identifier rubyid_keypad'>keypad</span><span class='lparen'>(</span><span class='kw'>true</span><span class='rparen'>)</span>
<span class='id identifier rubyid_sel'>sel</span> <span class='op'>=</span> <span class='id identifier rubyid_curr'>curr</span>
<span class='id identifier rubyid_max'>max</span> <span class='op'>=</span> <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span> <span class='op'>-</span> <span class='int'>1</span>
<span class='id identifier rubyid_loop'>loop</span> <span class='kw'>do</span>
  <span class='id identifier rubyid_items'>items</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span><span class='period'>.</span><span class='id identifier rubyid_with_index'>with_index</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_item'>item</span><span class='comma'>,</span> <span class='id identifier rubyid_num'>num</span><span class='op'>|</span>
    <span class='id identifier rubyid_item'>item</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_item'>item</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span>
    <span class='id identifier rubyid_mwin'>mwin</span><span class='period'>.</span><span class='id identifier rubyid_go'>go</span> <span class='int'>0</span><span class='comma'>,</span> <span class='id identifier rubyid_cols'>cols</span><span class='lbracket'>[</span><span class='id identifier rubyid_num'>num</span><span class='rbracket'>]</span>
    <span class='id identifier rubyid_style'>style</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_sel'>sel</span> <span class='op'>==</span> <span class='id identifier rubyid_num'>num</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='symbol'>:reverse</span> <span class='op'>:</span> <span class='symbol'>:normal</span>
    <span class='id identifier rubyid_mwin'>mwin</span><span class='period'>.</span><span class='id identifier rubyid_print'>print</span> <span class='id identifier rubyid_fx'><span class='object_link'><a href="../top-level-namespace.html#fx-instance_method" title="#fx (method)">fx</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_item'>item</span><span class='comma'>,</span> <span class='id identifier rubyid_style'>style</span><span class='rparen'>)</span>
  <span class='kw'>end</span>
  <span class='id identifier rubyid_ch'>ch</span> <span class='op'>=</span> <span class='id identifier rubyid_getch'>getch</span>
  <span class='kw'>case</span> <span class='id identifier rubyid_ch'>ch</span>
    <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Left-constant" title="RubyText::Keys::Left (constant)">Left</a></span></span>
      <span class='id identifier rubyid_sel'>sel</span> <span class='op'>-=</span> <span class='int'>1</span> <span class='kw'>if</span> <span class='id identifier rubyid_sel'>sel</span> <span class='op'>&gt;</span> <span class='int'>0</span>
    <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Right-constant" title="RubyText::Keys::Right (constant)">Right</a></span></span>
      <span class='id identifier rubyid_sel'>sel</span> <span class='op'>+=</span> <span class='int'>1</span> <span class='kw'>if</span> <span class='id identifier rubyid_sel'>sel</span> <span class='op'>&lt;</span> <span class='id identifier rubyid_max'>max</span>
    <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Esc-constant" title="RubyText::Keys::Esc (constant)">Esc</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span>   <span class='comment'># spacebar also quits

</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_restback'>restback</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_width'>width</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>

      <span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_show_cursor'><span class='object_link'><a href="../RubyText.html#show_cursor-class_method" title="RubyText.show_cursor (method)">show_cursor</a></span></span>
      <span class='kw'>return</span> <span class='lbracket'>[</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rbracket'>]</span>
    <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="Keys.html#Down-constant" title="RubyText::Keys::Down (constant)">Down</a></span></span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="Keys.html#Enter-constant" title="RubyText::Keys::Enter (constant)">Enter</a></span></span>
      <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_restback'>restback</span><span class='lparen'>(</span><span class='id identifier rubyid_high'>high</span><span class='comma'>,</span> <span class='id identifier rubyid_width'>width</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='rparen'>)</span>
      <span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_show_cursor'><span class='object_link'><a href="../RubyText.html#show_cursor-class_method" title="RubyText.show_cursor (method)">show_cursor</a></span></span>
      <span class='id identifier rubyid_choice'>choice</span> <span class='op'>=</span> <span class='id identifier rubyid_results'>results</span><span class='lbracket'>[</span><span class='id identifier rubyid_sel'>sel</span><span class='rbracket'>]</span>
      <span class='kw'>return</span> <span class='lbracket'>[</span><span class='id identifier rubyid_sel'>sel</span><span class='comma'>,</span> <span class='id identifier rubyid_choice'>choice</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_choice'>choice</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>String</span>
      <span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='id identifier rubyid_choice'>choice</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span>
      <span class='kw'>next</span> <span class='kw'>if</span> <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
      <span class='kw'>next</span> <span class='kw'>if</span> <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
      <span class='kw'>return</span> <span class='id identifier rubyid_result'>result</span>
    <span class='kw'>else</span> <span class='const'>Curses</span><span class='period'>.</span><span class='id identifier rubyid_beep'>beep</span>
  <span class='kw'>end</span>
  <span class='const'><span class='object_link'><a href="../RubyText.html" title="RubyText (module)">RubyText</a></span></span><span class='period'>.</span><span class='id identifier rubyid_show_cursor'><span class='object_link'><a href="../RubyText.html#show_cursor-class_method" title="RubyText.show_cursor (method)">show_cursor</a></span></span>
<span class='kw'>end</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="up-instance_method">

  #<strong>up</strong>(n = 1)  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Move cursor up</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

53 54 55 56</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'navigation.rb', line 53</span>

<span class='kw'>def</span> <span class='id identifier rubyid_up'>up</span><span class='lparen'>(</span><span class='id identifier rubyid_n'>n</span><span class='op'>=</span><span class='int'>1</span><span class='rparen'>)</span>

<span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>=</span> <span class='id identifier rubyid_rc'>rc</span>
<span class='id identifier rubyid_go'>go</span> <span class='id identifier rubyid_r'>r</span><span class='op'>-</span><span class='id identifier rubyid_n'>n</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="up!-instance_method">

  #<strong>up!</strong>  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Move cursor to top of window</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

96 97 98</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'navigation.rb', line 96</span>

<span class='kw'>def</span> <span class='id identifier rubyid_up!'>up!</span>

<span class='id identifier rubyid_top'>top</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

    <div class="method_details ">
<h3 class="signature " id="yesno-instance_method">

  #<strong>yesno</strong>  &#x21d2; <tt>Object</tt>

</h3><div class=“docstring”>

<div class="discussion">

<p>Simple yes/no decision</p>

</div>

</div> <div class=“tags”>

</div><table class=“source_code”>

<tr>
  <td>
    <pre class="lines">

191 192 193 194 195 196</pre>

</td>
<td>
  <pre class="code"><span class="info file"># File 'menu.rb', line 191</span>

<span class='kw'>def</span> <span class='id identifier rubyid_yesno'>yesno</span>

<span class='comment'># TODO: Accept YyNn

</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span> <span class='op'>=</span> <span class='const'>STDSCR</span><span class='period'>.</span><span class='id identifier rubyid_rc'>rc</span>

<span class='id identifier rubyid_num'>num</span><span class='comma'>,</span> <span class='id identifier rubyid_str'>str</span> <span class='op'>=</span> <span class='const'>STDSCR</span><span class='period'>.</span><span class='id identifier rubyid_menu'>menu</span><span class='lparen'>(</span><span class='label'>r:</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='label'>c:</span> <span class='id identifier rubyid_c'>c</span><span class='op'>+</span><span class='int'>6</span><span class='comma'>,</span> <span class='label'>items:</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>yes</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>no</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='id identifier rubyid_num'>num</span> <span class='op'>==</span> <span class='int'>0</span>

<span class='kw'>end</span></pre>

  </td>
</tr>

</table> </div>

</div>

</div>

    <div id="footer">
Generated on Sat Feb  8 04:24:00 2020 by
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
0.9.24 (ruby-2.4.2).

</div>

  </div>
</body>

</html>