Написание "настоящей" интерактивной терминальной программы типа vim, htop, ... на C/C++ без ncurses

Нет, я не хочу использовать ncurses, потому что я хочу узнать, как работает терминал и развлекаться программированием самостоятельно. терминал и развлекаться программированием самостоятельно. :) Это не должно быть портативным, оно должно работать только на терминальных эмуляторах linux xterm-based.

Что я хочу сделать, так это запрограммировать интерактивное терминальное приложение, как htop и vim. Я имею в виду не вывод символов, которые выглядят как ящики или настройка цветов, это тривиально; также чтобы содержимое соответствовало размеру окна. Что мне нужно, так это

  1. как получить взаимодействие с мышью, например, нажатие на символ и прокрутка колеса мыши (когда мышь находится на определенном символе) для реализации прокрутки [EDIT: в эмуляторе терминала, конечно], и

  2. как полностью сохранить и восстановить вывод родительского процесса и отделить мою печать от его вывода, так что после выхода из моего приложения там не должно быть ничего, кроме команды, которую я ввел в оболочке, как при запуске htop и последующем выходе из него: из этого приложения уже ничего не видно.

Я действительно не хочу использовать ncurses. Но, конечно, если вы знаете, какая часть ncurses отвечает за эти задачи, вы можете сказать мне, где в исходном коде я могу ее найти, и я изучу ее.

48
задан leemes 12 December 2011 в 16:16
поделиться