Example #1
0
 /**
  * Lets the terminal beep
  * @return Ncurses This object
  */
 public function beep()
 {
     ncurses_beep();
     return $this;
 }
Example #2
0
 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;
 }