本文整理汇总了PHP中ncurses_mvwaddstr函数的典型用法代码示例。如果您正苦于以下问题:PHP ncurses_mvwaddstr函数的具体用法?PHP ncurses_mvwaddstr怎么用?PHP ncurses_mvwaddstr使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ncurses_mvwaddstr函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: draw
public function draw()
{
$start = 3;
foreach ($this->tabs as $i => $tab) {
$attrs = NCURSES_A_UNDERLINE;
ncurses_wmove($this->window, 0, $start);
// ncurses_wvline($this->window, NCURSES_A_NORMAL, 1);
if ($i === $this->active) {
$attrs += NCURSES_A_REVERSE;
}
if ($tab->hasAlert()) {
ncurses_wcolor_set($this->window, 0);
}
if ($attrs) {
ncurses_wattron($this->window, $attrs);
}
$tabName = sprintf("[F%d] %s", $i + 1, $tab->name);
ncurses_mvwaddstr($this->window, 0, $start + 1, $tabName);
if ($attrs) {
ncurses_wattroff($this->window, $attrs);
}
// ncurses_wvline($this->window, NCURSES_A_NORMAL, 1);
$start += strlen($tabName) + 3;
if ($i === $this->active) {
$tab->draw();
ncurses_top_panel($tab->panel->panel);
}
}
}
示例2: drawList
/**
* Draw list items
*
* @param null $current
*
* @internal param int $select
* @return void
*/
public function drawList($current = null)
{
$current = $this->current;
// Current more than last visible item
if ($current > $this->firstPos + $this->getMaxY() && count($this->items) > $current) {
$this->firstPos = $current;
}
if ($this->getMaxY() > count($this->items)) {
$lastPos = count($this->items);
} else {
$lastPos = $this->firstPos + $this->getMaxY();
}
for ($i = $this->firstPos; $i < $lastPos; $i++) {
$attrs = 0;
$item = $this->items[$i];
if ($i === $current) {
$attrs += NCURSES_A_REVERSE;
}
if (isset($item['bold']) && $item['bold']) {
$attrs += NCURSES_A_BOLD;
}
if ($attrs) {
ncurses_wattron($this->getWindow(), $attrs);
}
$title = str_pad($item['title'], $this->getMaxX() - 2, ' ');
ncurses_mvwaddstr($this->getWindow(), $i + 1, 1, $title);
if ($attrs) {
ncurses_wattroff($this->getWindow(), $attrs);
}
}
}
示例3: onDraw
public function onDraw()
{
if ($this->window) {
ncurses_wborder($this->window, 0, 0, 0, 0, 0, 0, 0, 0);
ncurses_mvwaddstr($this->window, 0, 3, "[ x ]");
ncurses_wrefresh($this->window);
}
parent::onDraw();
}
示例4: ncurses_show_screen
function ncurses_show_screen($showHelp)
{
// basic settings
ncurses_noecho();
ncurses_curs_set(0);
// set app title
$title = "Red Ventures Selenium Runner";
// commands to be listed in help
$commands = array('q' => 'quit', 'r' => 'run selected tests', 'space' => 'toggle test selection', 'enter' => 'run highlighted tests', 'up' => 'move up', 'down' => 'move down', 'pgUp' => 'scroll description up', 'pgDown' => 'scroll description down', '?/h' => 'show this help panel');
// create a fullscreen window
$fullscreen = ncurses_newwin(0, 0, 0, 0);
ncurses_getmaxyx($fullscreen, $max_y, $max_x);
// enter the main event loop
$do_loop = 1;
while ($do_loop) {
// calculate width of help window columns
$c = $t = 0;
foreach ($commands as $cmd => $txt) {
$c = strlen($cmd) > $c ? strlen($cmd) : $c;
$t = strlen($txt) > $t ? strlen($txt) : $t;
}
$h = count($commands);
// calculate the help windows height
if ($showHelp) {
if (!empty($helpWin)) {
ncurses_delwin($helpWin);
}
$helpWin = ncurses_newwin($h + 4, $c + $t + 5, ($max_y - $h - 4) / 2, ($max_x - $c - $t - 5) / 2);
ncurses_wborder($helpWin, 0, 0, 0, 0, 0, 0, 0, 0);
$i = 0;
foreach ($commands as $cmd => $txt) {
ncurses_mvwaddstr($helpWin, 2 + $i, 2, $cmd);
ncurses_mvwaddstr($helpWin, 2 + $i, 2 + $c + 1, $txt);
}
if (!empty($helpWin)) {
ncurses_wrefresh($helpWin);
} else {
ncurses_refresh();
}
}
if (empty($helpWin)) {
$key = ncurses_getch();
} else {
$key = ncurses_wgetch($helpWin);
}
switch ($key) {
case 27:
ncurses_flushinp();
$do_loop = 0;
break;
default:
$showHelp = $showHelp === true ? false : true;
ncurses_show_screen($showHelp);
}
}
}
示例5: start
/**
* Construct
*/
public function start()
{
ncurses_keypad($this->getWindow(), true);
ncurses_noecho();
$this->setBorder();
ncurses_wattron($this->getWindow(), NCURSES_A_BOLD);
ncurses_mvwaddstr($this->getWindow(), 0, 1, $this->title);
ncurses_wattroff($this->getWindow(), NCURSES_A_BOLD);
ncurses_mvwaddstr($this->getWindow(), 2, 2, $this->text);
$this->processing();
}
示例6: println
public function println($text)
{
if (is_array($text)) {
foreach ($text as $row) {
$this->println($row);
}
} elseif (is_string($text) || is_numeric($text)) {
ncurses_mvwaddstr($this->resource, $this->y, 1, $text);
$this->y++;
$this->maxX = max($this->maxX, strlen($text));
}
}
示例7: draw
public function draw()
{
ncurses_color_set(1);
ncurses_mvwaddstr($this->wnd(), 0, 0, str_repeat(" ", $this->width));
// Measure items
$fullwidth = $this->width;
$numauto = 0;
$alloc = 0;
foreach ($this->items as $key => $item) {
$item->item->update();
$itemwidth = $item->item->measure();
if ($item->width == self::SBR_WIDTH_AUTO) {
$numauto++;
} elseif ($item->width == self::SBR_WIDTH_EXPAND) {
$alloc += $itemwidth;
} else {
$alloc += $item->width;
}
}
// Count in the separator bars
$alloc += (count($this->items) - 1) * 3;
// With the items measured, hand out the auto space
if ($numauto > 0) {
$autowidth = floor(($fullwidth - $alloc) / $numauto);
}
// Now draw it all
$cptr = 1;
$idx = 0;
foreach ($this->items as $key => $item) {
if ($item->width == self::SBR_WIDTH_AUTO) {
$itemwidth = $autowidth;
} elseif ($item->width == self::SBR_WIDTH_EXPAND) {
$itemwidth = $item->measure();
} else {
$itemwidth = $item->width;
}
$cstr = substr($item->item->value, 0, $itemwidth);
ncurses_color_set(1);
ncurses_mvwaddstr($this->wnd(), 0, $cptr, $cstr);
$idx++;
$cptr += $itemwidth;
if ($idx != count($this->items)) {
ncurses_color_set(2);
ncurses_mvwaddstr($this->wnd(), 0, $cptr, ' | ');
}
$cptr += 3;
}
ncurses_color_set(0);
}
示例8: beforeRefresh
public function beforeRefresh()
{
$notices = [];
foreach ($this->statusBarNotices as $notifier) {
if ($notifier instanceof StatusBarMessage) {
$notices[] = $notifier->getStatusMessage();
} elseif (is_callable($notifier)) {
$notices[] = call_user_func($notifier);
}
}
$noticeBar = implode(', ', $notices);
ncurses_mvwaddstr($this->window, $this->rows - 1, 2, str_repeat(' ', $this->cols));
ncurses_mvwaddstr($this->window, $this->rows - 1, 2, $noticeBar);
$this->manager->draw();
}
示例9: draw
/**
*
*/
function draw($workspace)
{
$wh = $this->_wh;
ncurses_wcolor_set($wh, NCC_FRAME);
ncurses_wborder($wh, 0, 0, 0, 0, 0, 0, 0, 0);
ncurses_wcolor_set($wh, NCC_TITLE);
ncurses_wattron($wh, NCURSES_A_BOLD);
$left = floor(($this->_w - 2) / 2 - (strlen($this->_title) + 2) / 2);
ncurses_mvwaddstr($wh, 0, $left, ' ' . $this->_title . ' ');
ncurses_wattroff($wh, NCURSES_A_BOLD);
ncurses_wcolor_set($wh, NCC_TEXT);
for ($n = 0; $n < $this->_h - 2; $n++) {
ncurses_mvwaddstr($wh, $n + 1, 1, str_repeat(" ", $this->_w - 2));
}
ncurses_wrefresh($wh);
ncurses_wcolor_set($wh, 0);
ncurses_move(-1, 1);
ncurses_refresh();
}
示例10: parse
private function parse($char = '')
{
switch ($char) {
case ESCAPE_KEY:
ncurses_end();
exit;
break;
case ENTER:
$buffer = $this->getBuffer();
ncurses_mvaddstr(0, 1, $buffer);
ncurses_wclear($this->small);
ncurses_wborder($this->small, 0, 0, 0, 0, 0, 0, 0, 0);
ncurses_mvwaddstr($this->small, 5, 5, $buffer);
ncurses_wrefresh($this->small);
break;
default:
$this->pushBuffer(chr($char));
ncurses_wclear($this->small);
ncurses_wborder($this->small, 0, 0, 0, 0, 0, 0, 0, 0);
ncurses_mvwaddstr($this->small, 5, 5, chr($char));
ncurses_wrefresh($this->small);
break;
}
}
示例11: count
$n_lines = count($lines);
$window_width = 0;
for ($i = 0; $i < $n_lines; $i++) {
$window_width = max($window_width, strlen($lines[$i]));
}
$window_width += 4;
$x_coords = array(10, 14, 18);
$y_coords = array(10, 12, 8);
for ($i = 0; $i < 3; $i++) {
$windows[$i] = ncurses_newwin(4 + $n_lines, $window_width, $y_coords[$i], $x_coords[$i]);
ncurses_wborder($windows[$i], 0, 0, 0, 0, 0, 0, 0, 0);
ncurses_wattron($windows[$i], NCURSES_A_REVERSE);
ncurses_mvwaddstr($windows[$i], 0, 2, ' window #' . $i . ' ');
ncurses_wattroff($windows[$i], NCURSES_A_REVERSE);
for ($j = 0; $j < $n_lines; $j++) {
ncurses_mvwaddstr($windows[$i], 2 + $j, 2, $lines[$j]);
}
ncurses_wrefresh($windows[$i]);
$panels[$i] = ncurses_new_panel($windows[$i]);
}
ncurses_update_panels();
ncurses_curs_set(0);
ncurses_noecho();
$i = 0;
$k = NULL;
while (XCURSES_KEY_ESC != $k) {
$k = ncurses_getch();
ncurses_top_panel($panels[$i % 3]);
ncurses_update_panels();
ncurses_doupdate();
$i++;
示例12: setuserinput
function setuserinput()
{
$sStatus = date("[H:i:s] ") . "[" . $this->aDisplayVars['nick'] . "] [Win: ";
ncurses_mvwaddstr($this->userinputw, 0, 0, $this->cl);
ncurses_mvwaddstr($this->userinputw, 0, 0, $sStatus);
/* Now we need to draw states for our various windows. */
$bShow = false;
$aInactive = array();
$aActive = array();
$iChans = 0;
// Draw a list of all windows. First, get two arrays of which are active and not.
foreach ($this->aBuffers as $iBuffer => $oBuffer) {
if ($oBuffer->active == true) {
$aActive[] = $iBuffer;
} else {
$aInactive[] = $iBuffer;
}
}
// Now generate out list. First of all, we want to draw only active windows. We also want them to stand out.
foreach ($aActive as $iActive) {
if ($bShow == false) {
ncurses_wcolor_set($this->userinputw, NC_PAIR_INPUT_ACTIVE);
ncurses_waddstr($this->userinputw, $iActive);
ncurses_wcolor_set($this->userinputw, NC_PAIR_INPUT);
$bShow = true;
} else {
ncurses_waddstr($this->userinputw, ",");
ncurses_wcolor_set($this->userinputw, NC_PAIR_INPUT_ACTIVE);
ncurses_waddstr($this->userinputw, $iActive);
ncurses_wcolor_set($this->userinputw, NC_PAIR_INPUT);
}
}
/*
* Now append inactive windows. We don't make these stand out of course.
*/
foreach ($aInactive as $iInactive) {
if ($bShow == false) {
ncurses_waddstr($this->userinputw, $iInactive);
$bShow = true;
} else {
ncurses_waddstr($this->userinputw, ",");
ncurses_waddstr($this->userinputw, $iInactive);
}
}
ncurses_waddstr($this->userinputw, "]");
ncurses_mvwaddstr($this->userinputw, 1, 0, $this->cl);
ncurses_mvwaddstr($this->userinputw, 1, 0, "[" . $this->aDisplayVars['window'] . "] " . $this->userinputt . '_');
ncurses_wrefresh($this->userinputw);
}
示例13: drawInputBoxContents
/**
* Displays specified input text box value contents
* @param $index
*/
protected function drawInputBoxContents($index)
{
$win =& $this->inputBoxList[$index]['win'];
$val =& $this->inputBoxList[$index]['val'];
$cord_y =& $this->inputBoxList[$index]['y'];
$cord_x =& $this->inputBoxList[$index]['x'];
$label =& $this->inputBoxList[$index]['label'];
// label offset
$label_offset = 0;
if ($label !== '') {
$label_offset = strlen($label);
// overide offset due to label length
}
// output the value
for ($n = 0; $n < $this->inputBoxList[$index]['max_length']; $n++) {
// Set content color based on has focus or not.
if ($this->focusCat() === 'I' && $this->focusSubindex() == $index) {
if ($n == $this->inputBoxList[$index]['val_cursor']) {
//CURSOR COLOR - RED
ncurses_wcolor_set($win, 1);
} else {
ncurses_wcolor_set($win, 5);
}
} else {
ncurses_wcolor_set($win, 2);
}
// print chars that exist
if (isset($val[$n])) {
$char = $val[$n];
} else {
$char = ' ';
}
ncurses_mvwaddstr($win, $cord_y, $cord_x + $label_offset + 1 + $n, $char);
}
}
示例14: clear
public function clear()
{
for ($j = 0; $j < $this->rows; $j++) {
ncurses_mvwaddstr($this->window, $j, 0, str_repeat(' ', $this->cols));
}
}
示例15: setTitle
public function setTitle($title)
{
$this->title = $title;
ncurses_wattron($this->getWindow(), NCURSES_A_BOLD);
ncurses_mvwaddstr($this->getWindow(), 0, 2, ' ' . $title . ' ');
ncurses_wattroff($this->getWindow(), NCURSES_A_BOLD);
$this->setChanged(true);
}