/** * Lets the terminal beep * @return Ncurses This object */ public function beep() { ncurses_beep(); return $this; }
function _getTextboxInput(&$win) { $exit = NULL; $char = NULL; $keyPressed = ncurses_getch(); if ($keyPressed < 256) { $char = chr($keyPressed); } //print" {".$keyPressed."} "; switch ($keyPressed) { case NCURSES_KEY_DOWN: case 9: // tab // tab case 13: // enter $this->_focus_cursor++; if ($this->_focus_cursor >= $this->_focus_total) { $this->_focus_cursor = 0; } break; case NCURSES_KEY_UP: case 353: // shift-tab $this->_focus_cursor--; if ($this->_focus_cursor < 0) { $this->_focus_cursor = $this->_focus_total - 1; } break; case NCURSES_KEY_RIGHT: $ii = $this->_focusSubindex(); // get selected inputbox $val_len =& $this->inputbox_list[$ii]['val_len']; $cursor =& $this->inputbox_list[$ii]['val_cursor']; if ($cursor < $val_len) { $cursor++; } else { $crap = ncurses_beep(); } break; case NCURSES_KEY_LEFT: $ii = $this->_focusSubindex(); // get selected inputbox $cursor =& $this->inputbox_list[$ii]['val_cursor']; if ($cursor > 0) { $cursor--; } else { $crap = ncurses_beep(); } break; case 263: // backspace $ii = $this->_focusSubindex(); // get selected inputbox $cursor =& $this->inputbox_list[$ii]['val_cursor']; $value =& $this->inputbox_list[$ii]['val']; $value_len =& $this->inputbox_list[$ii]['val_len']; if ($cursor > 0) { $sub1 = array_slice($value, 0, $cursor - 1); $sub2 = array_slice($value, $cursor); $value = array_merge($sub1, $sub2); $cursor--; $value_len = count($value); } else { $crap = ncurses_beep(); } // Refresh current input box $this->_drawInputBoxContents($ii); break; case 330: // del key $ii = $this->_focusSubindex(); // get selected inputbox $cursor =& $this->inputbox_list[$ii]['val_cursor']; $value =& $this->inputbox_list[$ii]['val']; $value_len =& $this->inputbox_list[$ii]['val_len']; $sub1 = array_slice($value, 0, $cursor); $sub2 = array_slice($value, $cursor + 1); $value = array_merge($sub1, $sub2); $value_len = count($value); // Refresh current input box $this->_drawInputBoxContents($ii); break; default: $ii = $this->_focusSubindex(); // get selected inputbox $value =& $this->inputbox_list[$ii]['val']; $value_len =& $this->inputbox_list[$ii]['val_len']; $value_max =& $this->inputbox_list[$ii]['max_length']; $cursor =& $this->inputbox_list[$ii]['val_cursor']; if ($keyPressed >= 32 && $keyPressed <= 126) { if ($value_len < $value_max) { $sub1 = array_slice($value, 0, $cursor); $sub2 = array_slice($value, $cursor); $new = array($char); $value = array_merge($sub1, $new, $sub2); //$value[$cursor] = $char; $cursor++; $value_len++; } else { $crap = ncurses_beep(); } } // Refresh current input box $this->_drawInputBoxContents($ii); break; } return $exit; }