Я надеюсь добавлять элемент к своему wxWidgets GUI, который ведет себя как эмулятор терминала. Не с точки зрения оболочки, которая выполняет команды, но просто установку ввода - вывода приложения, работающего в терминале.
В основном требования:
Потоковая передача ввода/вывода: при вводе символа добавляется к входному потоку, и когда что-то передается по каналу к терминалу, это сразу распечатывает.
Никакое редактирование: После того как Вы вводите в символе, это постоянно там, так как это было, вероятно, использовано приложением, работающим в терминале.
Своего рода прокрутка (даже если это просто показывает несколько строк или что-то).
Было бы хорошо, если существует что-то, что уже делает это, но предложения о том, как реализовать это с уже существующими средствами управления, такими как wxTextCtrl, также приветствовались бы.
Я знаю, что это на пару недель позже, но надеюсь, что это все еще полезно. У меня есть проект под названием Chameleon, использующий виджет терминала VT100 на базе wxWidgets, который сам был основан на проекте под названием taTelnet. Исходный код Chameleon доступен с моего сайта (страница скачивания здесь). Не уверен, что это именно то, что вы ищете, но это может дать вам некоторые идеи. Не стесняйтесь, дайте мне знать, если у вас возникнут вопросы по этому поводу.
Чтобы начать вас, вы должны хранить номер в какой-то массиве, как std :: вектор (цифра для каждой позиции в массиве), и вам нужно найти определенный алгоритм, который рассчитает факториал (может быть в каком-то специализированном классе). ;)
-121--2410550-WxWidgets поддерживает перенаправление stdout к WxtextCTRL через WXSTREAMTOTEXTREDIRECTER . Что касается ввода, вы можете переопределить событие onchar в классе, полученном на WXTextCTRL, чтобы обработать это.