当前位置: 首页>>代码示例>>C++>>正文


C++ Console::cursorRight方法代码示例

本文整理汇总了C++中Console::cursorRight方法的典型用法代码示例。如果您正苦于以下问题:C++ Console::cursorRight方法的具体用法?C++ Console::cursorRight怎么用?C++ Console::cursorRight使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Console的用法示例。


在下文中一共展示了Console::cursorRight方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: main

int main(int argc, char** argv)
{
	(void) argc;
	(void) argv;
	
	if (signal(SIGINT, TerminationHandler) == SIG_IGN)
		signal(SIGINT, SIG_IGN);
	if (signal(SIGHUP, TerminationHandler) == SIG_IGN)
		signal(SIGHUP, SIG_IGN);
	if (signal(SIGTERM, TerminationHandler) == SIG_IGN)
		signal(SIGTERM, SIG_IGN);

	console.setPrompt(">");
	CommandHandler::AddAllCommands(console, updater);
	CommandHandler::AddAllLogCallback(console);
	console.addCommand(Console::Command("exit", command_exit));
	console.print(std::string("Client Terminal Test"));

	int row, col;
	int c = 0;

	initscr();
	noecho();
	cbreak();
	keypad(stdscr, FALSE);

	timeout(100);
	getmaxyx(stdscr, row, col);

	std::thread thread(&UpdateThread);

	while(!_exit)
	{
		{
			std::lock_guard<std::mutex> lock(_mutex);
			clear();
			int curr = row - 1;

			std::stringstream current;
			current << console.getPrompt() << " " << console.editing() << ' ';
			std::string edit = current.str();
			edit = edit.length() < (size_t) col ? edit : edit.substr(0, col);
			mvprintw(curr--, 0, edit.c_str());


			const std::list<std::string>& output = console.out();
			std::list<std::string>::const_iterator it = output.begin();
			for(; curr >= 0 && it != output.end(); curr--, it++) {
				std::string op = it->length() < (size_t) col ? *it : it->substr(0, col);
				mvprintw(curr, 0, op.c_str());
			}

			move(row - 1, std::min((int) (console.getPrompt().length() + 1 + console.getCursorPos()), col-2));
		}

		c = getch();

		{
			std::lock_guard<std::mutex> lock(_mutex);
			switch(c)
			{
			case KEY_UP:
				console.historyUp();
				break;
			case KEY_DOWN:
				console.historyDown();
				break;
			case KEY_LEFT:
				console.cursorLeft();
				break;
			case KEY_RIGHT:
				console.cursorRight();
				break;
			case KEY_RESIZE:
				getmaxyx(stdscr, row, col);
				break;
			case KEY_BACKSPACE:
			case 8:
			case 127:
				console.keyBackspace();
				break;
			case KEY_DC:
				console.keyDelete();
				break;
			case KEY_EOL:
			case KEY_EOS:
				console.keyEnd();
				break;
			case KEY_HOME:
				console.keyHome();
				break;
			case KEY_ENTER:
			case '\n':
				console.executeCurrentCommand();
				break;
			case KEY_STAB:
			case '\t':
				console.autocomplete();
				break;
			case KEY_MOUSE:
//.........这里部分代码省略.........
开发者ID:budsan,项目名称:Biribit,代码行数:101,代码来源:CursesClient.cpp


注:本文中的Console::cursorRight方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。