Использование мыши в newt (console GUI). Альтернативы ncurses?

Всех приветствую. Искал дешёвую и простую альтернативу ncurses. Думал уже сам писать.

Ибо хочется дёшево, просто и со вкусом. Чтобы опа и формочки с кнопками выпали. И внезапно для себя открыл библиотеку newt. Где достаточно простенько можно сделать весьма прикольные вещи. Вот пример с чекбоксами и радиобатонами

0_b42b3_4515f1e7_L.png

Код вообще минималистичный
Пример кода
#include <newt.h>
#include <stdlib.h>
#include <stdio.h>

void main(void) {
    newtComponent form, checkbox, rb[3], button;
    char cbValue;
    int i;

    newtInit();
    newtCls();

    newtOpenWindow(10, 5, 40, 11, "Checkboxes and Radio buttons");

    checkbox = newtCheckbox(1, 1, "A checkbox", ' ', " *X", &cbValue);

    rb[0] = newtRadiobutton(1, 3, "Choice 1", 1, NULL);
    rb[1] = newtRadiobutton(1, 4, "Choice 2", 0, rb[0]);
    rb[2] = newtRadiobutton(1, 5, "Choice 3", 0, rb[1]);

    button = newtButton(1, 7, "Ok");

    form = newtForm(NULL, NULL, 0);
    newtFormAddComponent(form, checkbox);
    for (i = 0; i < 3; i++)
        newtFormAddComponent(form, rb[i]);
    newtFormAddComponent(form, button);

    newtRunForm(form);
    newtFinished();

    /* We cannot destroy the form until after we've found the current
       radio button */

    for (i = 0; i < 3; i++)
        if (newtRadioGetCurrent(rb[0]) == rb[i])
            printf("radio button picked: %d\n", i);
    newtFormDestroy(form);

    /* But the checkbox's value is stored locally */
    printf("checkbox value: '%c'\n", cbValue);



Но, никаких примеров работы с мышью. Гугл молчит. Вообще мышь требуется не совсем для управления, хорошо было бы хотя бы выводить координаты мыши в окне. Есть какие-нить идеи? Или всё же стоит валить обратно в ncurses?

З.Ы. Две полезные ссылочки с примерами программирования консольной графики. Просто оставлю здесь
www.linuxforu.com/2011/08/spicing-up-console-for-f...
www.linuxforu.com/2011/11/spicing-up-console-for-f...
  • Вопрос задан
  • 4106 просмотров
Решения вопроса 1
elw00d
@elw00d
Вы можете попробовать использовать библиотеку www.leonerd.org.uk/code/libtermkey/. Я в своем "фреймворке" https://bitbucket.org/igor_kostromin/consoleframework для обработки ввода использую именно её. Как именно - можно посмотреть в файлах ConsoleApplication.cs и LibTermKey.cs.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы