LINUX.ORG.RU

termbox2 2.5.0

 , , ,

termbox2 2.5.0

5

2

28 декабря, после более чем двухлетнего перерыва, состоялся выпуск 2.5.0 библиотеки для создания TUI termbox2, написанной на языке C и распространяемой по лицензии MIT.

По сравнению с оригинальной termbox, сохранён простой API и отсутствие зависимостей помимо libc, но добавлены:

  • более строгая проверка ошибок;
  • более эффективный разбор escape-последовательностей;
  • опциональная поддержка 32-битного цвета;
  • улучшенная поддержка графем Unicode;
  • генерирование кода для встроенных escape-последовательностей;
  • набор тестов;
  • и многое другое.

Библиотека организована как однофайловая библиотека (файл .h всего лишь на 128K), хотя её можно скомпилировать и как отдельную динамическую или статическую библиотеку.

#define TB_IMPL
#include "termbox2.h"

int main(int argc, char **argv) {
    struct tb_event ev;
    int y = 0;

    tb_init();

    tb_printf(0, y++, TB_GREEN, 0, "hello from termbox");
    tb_printf(0, y++, 0, 0, "width=%d height=%d", tb_width(), tb_height());
    tb_printf(0, y++, 0, 0, "press any key...");
    tb_present();

    tb_poll_event(&ev);

    y++;
    tb_printf(0, y++, 0, 0, "event type=%d key=%d ch=%c", ev.type, ev.key, ev.ch);
    tb_printf(0, y++, 0, 0, "press any key to quit...");
    tb_present();

    tb_poll_event(&ev);
    tb_shutdown();

    return 0;
}

>>> Исходный код версии 2.5.0 на GitHub

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 4)

Выглядит на первый взгляд проще чем ncurses.

a1ba ★★
()
Ответ на: комментарий от hobbit

после более чем двухлетнего перерыва, состоялся выпуск

А я даже и не слышал о ней раньше.

А есть какой-нибудь софт с использованием этой библиотеки? Не демо и тесты и очередной тетрис, который обычно запускают, говорят «о! круто!» и забывают навсегда, а чем реально народ пользуется?

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от dataman

Текстовый редактор потыкал. Конечно, не nvim и даже не vi, но для тех, кто по каким-то причинам не любит vim — ничего так. Лучше, чем nano.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от Gonzo

Чтобы быть лучше чем nano усилий вообще не требуется прилагать.

firkax ★★★★★
()
Ответ на: комментарий от Gonzo

nano или, скажем, micro

Не пользуюсь. Из консольных мне хватает mcedit и dte.

dataman ★★★★★
() автор топика

Выглядит лучше чем ncurses и можно даже использовать кажется. Но у меня уже своё есть, хоть и меньше по фичам.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 2)
Ответ на: комментарий от Gonzo

Чем лучше nano

Подсветка синтаксиса, номера строк и вменяемые хоткеи из коробки, включая например переход по номеру строки или на определённую позицию, или поиск по регэкспам и т.д. В целом чуть-чуть фичастее. Но до vim, конечно, далеко. Как лёгкий и простой редактор, по-моему, весьма неплохой выбор — где-то на уровне mcedit, и как по мне, даже поприятнее.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от chikanuc

Там кресты, паскаль и объекты, и изначально под дос. Тут Си, и изначально под никсы. Ну и по объёму сабж сильно меньше.

CrX ★★★★★
()
Ответ на: комментарий от dataman

Как будто это что-то плохое.

Не то чтобы прям вообще плохое, но на мой взгляд, в подобной либе как будто бы лишнее.

CrX ★★★★★
()
Ответ на: комментарий от CrX

напротив, UI библиотека, написанная без использования ООП - это нонсенс. впрочем чем только люди не занимаются, лишь бы не учить с++

chikanuc
()
Ответ на: комментарий от chikanuc

Это несколько разные вещи. То была библиотека готовых визуальных объектов, а тут штука более низкого уровня. А бы не назвал это ui-библиотекой.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от CrX

Понял, спасибо.

А я для себя недавно открыл офигенный Helix со встроенным fuzzy search, кучей прочих фич и довольно большим сообществом. Крутая штука. Просто решил поделиться.

Gonzo ★★★★★
()
Ответ на: комментарий от dataman

Очень крутые библиотеки, посмотрел

Я вот как то фантазировал, что если бы существовала библиотека, которая по одному и тому же описанию могла создать и 1) GUI приложение (поверх Qt, GTK не важно) 2) и консольное приложение как сабж 3) и как веб-интерфейс

То есть пишем одно описание, и в разных средах можно открыть его и как гуй, и как веб или как консольное TUI

Может была бы еще одна абстракция над тем что уже создано

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

Звучит как хорошая идея. Единственное, не думаю, что такой библиотеке надо работать поверх Qt или GTK для гуя. Наоборот, ей скорее надо самой этим самым тулкитом и выступать. Аналогом того самого Qt или GTK. Просто те два бэкэнда поддерживают: xorg и wayland; а у этой будет xorg, wayland, web и tui.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.