Добавьте полосу прокрутки на Ncurses или сделайте это как «больше» - PullRequest
5 голосов
/ 08 июля 2011

В основном я пишу клиентскую программу, которая получает ответ и логи от сервера, клиент также может отправлять запрос на сервер для получения различной информации.Я использовал проклятия, и результат выглядит довольно хорошо.Похоже, VI, вывод в верхней части и пользователь на стороне клиента введите команду внизу.Единственное, что я не могу прокрутить назад ... Мой босс сказал мне сделать это как «больше команд в Linux», и я хочу придерживаться своего решения и добавить полосу прокрутки на стороне для окна вывода ...думая, что Сервер посылает журналы случайным образом, и почти невозможно (или слишком сложно) сделать так, чтобы это выглядело более ...

Ответы [ 3 ]

5 голосов
/ 08 июля 2011

Я не совсем уверен, спрашиваете ли вы о том, как реализовать прокрутку или как нарисовать полосу прокрутки с ncurses.Полагаю, второе.

Предполагая, что ваши ncurses скомпилированы с поддержкой Unicode (не забудьте правильно настроить среду при инициализации ncurses, посмотрите в "setlang"), вы можете использовать следующие символы:

Unicode:
▲ - U+25B2 BLACK UP-POINTING TRIANGLE
▼ - U+25BC BLACK DOWN-POINTING TRIANGLE
▮ - U+25AE BLACK VERTICAL RECTANGLE

ASCII:
176 - ░ Light shaded block
177 - ▒ Medium shaded block
178 - ▓ Dark shaded block
219 - █ Block block

Написание кода для отображения темного блока в нужном месте должно быть достаточно простым.

Если я неправильно понял ваш вопрос, мои оправдания.

5 голосов
/ 08 июля 2011

Если вы поддерживаете список или массив строк в своем клиенте и просите ncurses нарисовать диапазон строк в виде скользящего окна, вы можете сдвинуть окно вверх и вниз в ответ на команды ^F ^B ^U ^D ^Y ^E , который просто перекрашивает экран с разными индексами.

Я бы пропустил попытку нарисовать полосу прокрутки: она выглядела бы неуместно в системе Linux. Даже mc не имеет полос прокрутки . Просто покажите краткую информацию о содержании в нижней строке, подобно vim Top, Bot, All, N%, когда :set ruler включено, и вы будете чувствовать себя как дома.

3 голосов
/ 08 июля 2011

Другая возможность - переписать вашего клиента как IRC бот или IM клиент .Пользователи отправляют сообщения либо клиенту напрямую, либо на определенный канал, а бот выполняет действие и отправляет все необходимые ответы.

Прелесть в том, что вы можете пропустить все элементы пользовательского интерфейса самостоятельно - прокрутите назади история обрабатывается с помощью irssi или xchat или другого клиента .Пользователи могут запускать клиент, который им нравится больше всего.

Ведение журналов может осуществляться через центральный механизм, публиковаться в мире или передаваться определенным менеджерам / администраторам по мере необходимости.

Недостатком являетсячто вы должны поддерживать и запускать IRC-сервер или XMPP-сервер.Если вы уже используете их в других организациях, и для этого целесообразно использовать их, это может стоить того рычага.Если вы еще не используете его, экономия на клиенте может не стоить затрат на поддержание еще одной услуги.

Команда, в которую я входил в прошлом любимый , имеющийИнтерфейс IRC для BuildBot для отчета о регистрации, успешной сборке, неудачной сборке, успешной проверке, неудачной проверке для нашей непрерывной интеграции сборки и настройки тестирования.

...