LINUX.ORG.RU

libmui — библиотека для интерфейсов в стиле MacOS Classic

 , , ,

libmui — библиотека для интерфейсов в стиле MacOS Classic

5

4

Привет, ЛОР!

Пару дней назад был опубликован код библиотеки libmui, которая позволяет создавать интерфейсы пользователя, напоминающие операционную систему MacOS Classic. API библиотеки также вдохновлён этой ОС.

Библиотека написана на языке C и отличается минимальным набором зависимостей. Поддерживается работа только в средах X11, поддержка Wayland автором не планируется.

Код опубликован под лицензией MIT.

>>> Подробности

★★★★★

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

Ответ на: комментарий от Aceler

Так, стоп. Беру свои слова назад. Какая, нафиг, HiDPI? А там локализация есть? Я что-то с разбегу не нашёл.

Aceler ★★★★★
()

поддержка Wayland автором не планируется.

Не он первый такое заявляет. В итоге или будет поддержка или мертворожденный.

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

Самый толковый UI у МакОСи был с 10.2 по 10.6. Классику я лично как-то воспринимаю как серость безлошадную, уж простите :).

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

Возьми вон ту же картинку из шапки и проведи на ней вертикальные линии. Так crafted, что ничто никуда не попадает.

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

Я помню эти «чудные» программы для винды из второй половины 90-х и начала 00-х, которые превращали комп в помойку из рекламы и, как нынче модно говорить, «спонсорского контента».

Потом в какой-то момент было некоторое затишье, когда писать и впаривать откровенный кал стало неприлично и даже подчас невыгодно.

И вот мы достигли точки, когда кучей спонсоркого контента стала сама ОС.

«Если не можешь победить, возглавь.»

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

Имеется в виду, не просто контроллы, наброшенные на окно, чтобы их там layout manager «как-то» расположил, а головой продуманный UI.

to craft: to make objects, especially in a skilled way
wandrien ★★
()

Библиотека ни на что пока не годится, намертво привязана к не стандартному ShM, нарушает конвенции ICAEN (или как его), ну в общем не слушается оконного менеджера, ну и CSD…

realbarmaley ★★
()

Third Choice

Хорошо, что не Third Way

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

ну в общем не слушается оконного менеджера

Что-то стим напомнило.

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

Я так понимаю, вопросы про поддержку HiDPI,

Запустил на моём ляптопе (3840x2400@15.6"), всё норм.

жесты,

Показал ляптопу средний палец. Вроде ничего не сломалось.

поддержку экранных клавиатур

А она в слюниксе вообще где-то работает нормально?

и поворотов

Повертел это всё, вроде ок.

в приличном обществе задавать не принято.

ЛОР – приличное общество?

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

стеклянно-цветастый

Универсальный доступ - отключить прозрачность

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

Были уже два эксперимента, на выходе всё равно получается гном.

one117 ★★★★★
()

Даже если и да, то почему бы и нафига?

mord0d ★★★★★
()

Вот смотришь и понимаешь - когда-то яблочная компания умела делать приятный интерфейс. Жаль, что эти времена прошли

small-entropy
()
Ответ на: комментарий от hateyoufeel

древней макоси

Какая макось, там apple ][

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

у макаки так было всегда - со стороны смотришь - шг, неказистый какой-то... а как начнешь читать, упс, да он просто великолепен для чтения! :о)

sunjob ★★★★
()

А разве у эпла на яблоке тогда радуга была?

Ygor ★★★★★
()

Для монохромного экрана в эмбед применении может неплохо подойти. Но нужно ещё посмотреть сколько библиотека в скомпилированом виде занимает и сколько памяти в рантайме ест.

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

В Qt давно изобрели компоновщики, которые используют всякие пропорции, правила для отдельных элементов и прочие полезные вещи, так что наброшенный на формочки UI а Qt почти всегда будет хорошо масштабироваться.

liksys ★★★★
()

УРААААА ! Ждем новое DE!

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

Неправда. Он есть с пометкой «optional». И фактически все компиляторы вынуждены это поддерживать для совместимости с C99.

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

Неправда. Он есть с пометкой «optional». И фактически все компиляторы вынуждены это поддерживать для совместимости с C99.

Это не обязываем тебя этим пользоваться :))))

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

Да, но в сторонних либах это может встречаться, и все прелести отладки могут достаться пользователю такой плохой библиотеки.

И VLA это далеко не единственный бред, который выдумали сумасшедшие стандартизаторы C99.

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

И VLA это далеко не единственный бред

А чем они так плохи? Вроде бы мелочёвка ничего особо не усложняющая ни в компиляторе, ни в компилируемых программах.

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

Да, но в сторонних либах это может встречаться, и все прелести отладки могут достаться пользователю такой плохой библиотеки.

Мы, напомню, про C. Это случится в любом случае и VLA тебе уже хуже не сделает.

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

Есть секта батхертеров.

Главное, не говорить им, что это буквально вызов alloca(), завёрнутый в синтаксис.

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

Где-то я видел ссылку на то, что «в отличие от alloca(), VLA considered harmful» и объяснение на много букв. Но так как мне было лень читать, то так и остался непросвященным.

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

Ну там главная тема в том, что с alloca() ты можешь сделать вот такой трюк:

void f(size_t n) {
  void *ptr = n < TOO_BIG_FOR_STACK
            ? alloca(n)
            : malloc(n);
  
  ...

  if(n >= TOO_BIG_FOR_STACK)
    free(ptr);
}

Для маленьких кусков данных получишь прирост к скорости за счёт размещения на стеке, но при этом не просрёшь его, если данных много. С VLA такое не канает.

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

На самом деле VLA расширяет систему типов, массив на стеке там побочное явление. Более того, то, что он на стеке, это вина разработчиков GCC.

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

Просто не используй его. В c11 его уже нет, например :D

Зато в C23 опять есть! Но через жопу:

Now declaring a VLA object is an optional feature, but declaring pointers to VLA («variable types») is a mandatory feature.

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

Ну в принципе логично, это чтобы «не делать через жопу».

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

void baz(int a[printf(«Hello World\n»)]) {}

В данном примере каждый вызов функции baz будет сопровождаться выводом строки «Hello World\n».

Оооо… я прямо предвкушаю в Development вагоны отстреленных ног и очереди из разорванных жоп сишников, которые случайно вот это задействуют.

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