Вот написал консольную программу (управляет работой намоточного стонка через LPT порт), все работает, но вот бы ее украсить немного, знаете угнетает пользователя экран это черный. Какие библиотеки и функции можно для этого применить в linux? Хотелось бы разноцветный текст, может быть немного графики (на уровне пару линий провести), чтобы текст размещать в нужном месте экрана. Я новичек в программирование под linux, а про терминальные программы сейчас говорят так мало. Что-то написать в духе lynks.
Re: украсить консольную программу
ncurses?
Полноэкранный текстовый интерфейс...
Re: украсить консольную программу
+1
Re: украсить консольную программу
Это конечно все великолепно, но опять мозги сушить, что-то новое изучать... Нет того не стоит.
ncurses это не для меня.
Re: украсить консольную программу
Ну тогда есть другой путь. Настоящий Unix-way
Написать демона (переписать твою прогу), которая с одного конца будет рулить станком, а вторым - слушать tcp-порт или висеть на именованой пайпе. Фронтэнд в данном случае может быть любой - вплоть до apache+php
Только вот если попробуешь это, то потом переспросишь "Так что вы там про ncurses говорили?..."
Тебе дело соверуют. Пробуй ncurses.
Re: украсить консольную программу
Есть более простое решение чем ncurses -- это использование ANSI ESC последовательностей.
Bash Promt Howto, почитать там главу ANSI Escape Sequences: Colours and Cursor Movement, а пример применения на С посмотреть можно в Colorful Shells -- Using ANSI Color Codes .
В Bash Promt Howto так же можно посмотреть операции по перемещению курсора.
Используя ANSI Escape Sequences можно писать интерактивные интерфейс пользователя.
А так же прикладываю пример использования цветов на основе ANSI Escape Sequences. Тексты комментариев на русском языке в кодировке KOI8-R
А вот пример перемещения курсора по X, Y относительно левого верхнего угла, где находится координата M0(0,0) .
Re: украсить консольную программу
Ну более простого решения, чем ncurses после борландючного TurboVision'а я не видел. Ncurses, кстати, использует эти спецпоследователности терминала. Только у него это скрыто за логикой функций.
Re: украсить консольную программу
Я программировал под TurboVision, ncurses, использовал ANSI ESC последовательности. Так вот последние удобны тем, что
позволяют быстро накидать функции-примитивы этих ANSI ESC последовательностей, и реализовать не сложный интерфейс
пользователя.
TurboVision -- отдельная библиотека требует установки.
ncurses -- отдельная библиотека тоже требует установки.
ANSI ESC последовательности -- передаются на стандартный вывод STDOUT функцией printf(3)
которая входит в состав The GNU C Library и, ни какаких дополнительных библиотек не требует.
Теперь по TurboVision -- обеспечивает графическими объектами, такими как кнопки, переключатели,
выподающие списки, области рисования. Кажется я могу ошибатся механизм обработки событий.
TurboVision -- это было так давно....
Теперь ncurses -- позволяет рисовать объекты, но по своей функциональности явно проигрывает TurboVision, между
ними очень большая пропасть, как сравнивать XLib c qt или gtk.
2slavaz: Если перед вами стоит задача написания простого интерфейса -- пишите на ANSI ESC последовательности, а если сложного с построением пользовательского интерфейса с глубокой иерархией объетов Вам придет использовать либо Turbo Vision или библиотеки для X.org(XFREE86) с объектно-ореентированным подходом. Но все равно решение остается за вами что и как использовать... Можно написать практически все, я бы вам рекомендовал посмотреть, как написаны приложения redhat-config-* и анаконду от redhat, у них там списки, кнопки, переключатели основаны на ncurses.
Re: украсить консольную программу
ANSI ESC это то, что надо! Спасибо. Пусть это не слишком замысловато, но для в самый раз. Не хочу тратить много времени на интерфейс. Почитал ссылку, там по английски, но разобраться можно.