Проект GNOME опубликовал выпуск библиотеки Libadwaita 1.4, включающей набор компонентов для стилевого оформления интерфейса пользователя, соответствующего рекомендациям GNOME HIG (Human Interface Guidelines). Библиотека включает в себя готовые виджеты и объекты для построения приложений, соответствующих общему стилю GNOME, интерфейс которых может адаптивно подстраиваться под экраны любого размера. Код библиотеки написан на языке Си и распространяется под лицензией LGPL 2.1+.

Библиотека libadwaita используется в сочетании с GTK4 и включает компоненты используемой в GNOME темы оформления Adwaita, которые были вынесены из GTK в отдельную библиотеку. Вынос элементов визуального оформления GNOME в отдельную библиотеку позволяет развивать необходимые для GNOME изменения отдельно от GTK, что даёт возможность разработчикам GTK сосредоточиться на базовых вещах, а разработчикам GNOME более быстро и гибко продвигать необходимые для себя изменения стилевого оформления, не затрагивая сам GTK.

В библиотеку входят типовые виджеты, охватывающих различные элементы интерфейса, такие как списки, панели, блоки редактирования, кнопки, вкладки, формы поиска, диалоговые окна и т.п. Предложенные виджеты позволяют создавать универсальные интерфейсы, которые органично функционируют как на крупных экранах ПК и ноутбуков, так и на небольших сенсорных экранах смартфонов. Интерфейс приложений динамически меняется в зависимости от размера экрана и доступных устройств ввода. Библиотека также включает набор стилей Adwaita, приводящих внешний вид в соответствие с рекомендациями GNOME, без необходимости выполнения ручной адаптации.

Основные изменения в libadwaita 1.4:

  • Предложены новые адаптивные виджеты, подстраивающиеся под размер видимой области. В новом наборе обеспечена корректная поддержка вложенного изменения размера (например, когда изменение размера боковой панели, влечёт за собой изменение размера кнопок и переключателей), решены проблемы с анимированными эффектами при переключении режимов, переделана обработка изменения ширины, повышена гибкость использования (например, в версии для мобильных устройств можно перенести часть виджетов из заголовка в нижнюю панель). Старые адаптивные виджеты AdwLeaflet, AdwFlap, AdwSqueezer и AdwViewSwitcherTitle объявлены устаревшими и со временем должны быть заменены на новые.
    \
  • Реализована система точек останова (класс Breakpoint), позволяющая менять интерфейс пользователя произвольным образом в зависимости от размера окна. Точки останова могут использоваться с классами AdwWindow, AdwApplicationWindow и AdwBreakpointBin. Среди прочего, точки останова могут определяться декларативным способом через UI-файлы.
  • В виджете AdwNavigationView реализован шаблон браузинга, пришедший на смену виджету AdwLeaflet в режиме "can-unfold=false", предоставляющий стек навигации, который может настраиваться статически (через UI-файлы) или динамически, и поддерживающий действия navigation.push и navigation.pop для помещения страниц напрямую из UI-файла.
  • В виджет AdwHeaderBar добавлена возможность автоматического показа корректного заголовка для каждой страницы навигации, а также показа кнопки "назад" для перехода к прошлой странице или вывода меню для выбора страниц для перехода.
  • Добавлен виджет AdwNavigationSplitView, имеющий два дочерних элемента - боковую панель и содержимое, которые выводятся бок о бок. Размер боковой панели может выбираться как определённый процент от общей ширины видимой области.
  • Добавлен виджет AdwToolbarView, включающий виджет с содержимым и несколько верхних и нижних панелей (например, AdwHeaderBar, AdwTabBar, GtkSearchBar, GtkActionBar или GtkBox со стилем .toolbar).
  • Добавлен виджет для вывода переключателей AdwSwitchRow, реализованный как подкласс AdwActionRow, содержащий GtkSwitch.
  • Добавлен виджет AdwSpinRow c реализацией строки списка, включающей GtkSpinButton.
  • Добавлен новый класс стилей ".property" для отображения свойств.
  • Добавлена функция adw_about_window_new_from_appdata() для упрощения создания окон с информацией о программе.
  • В виджете AdwComboRow реализована поддержка полей поиска.
  • Добавлено свойство AdwPreferencesPage:description для показа описания в верхней части страницы.
  • В виджете AdwTabOverview значительно переделана обработка миниатюр для лучшей работы с WebKitWebView.
  • Цвет заголовков и панелей инструментов в светлых темах заменён на белый вместо серого. Серый цвет теперь задействован в боковых панелях.

// cc-by opennet.ru
// converted with crypt’s opennet autoreposter <<<

  • MOPKOBKA
    link
    fedilink
    arrow-up
    0
    ·
    3 years ago

    «Осваиваю Haskell.» И как оно? «Да нормальная интеграция. Можно посмотреть в сторону qt5-styleplugins» Да, вроде есть. «У меня нет, хотя машина слабая.» Возможно я так думаю потому что qBittorrent и SMplayer тормозят.

    • odalist
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      3 years ago

      И как оно?

      Тяжело, но продвигаюсь.

      qBittorrent и SMplayer тормозят.

      А что там тормозит? Тормозит под нагрузкой?

      П.С.

      Я вот недавно, на старую машину, Дебиан 12 установил, а поверх него установил kde-plasma-desktop, с опцией --no-install-recommends, и удивился, что тормоза отсутствуют (сессия на вяленом). Так что, фиг знает что там у тебя…может быть и дистро проблемы.

      • MOPKOBKA
        link
        fedilink
        arrow-up
        0
        ·
        3 years ago

        Возможно ты просто не замечаешь тормозов, или не так к ним чувствителен, для меня если я вижу что приложение не запустилось СРАЗУ после щелчка это уже тормоза, в KDE даже меню нормально не реагирует (не показывает пункты сразу после наведения или клика, есть задержка даже с выключенными анимациями).

        • odalist
          link
          fedilink
          arrow-up
          0
          ·
          3 years ago

          Возможно ты просто не замечаешь тормозов

          Ну да. Наверно ты прав.

          для меня если я вижу что приложение не запустилось СРАЗУ после щелчка это уже тормоза

          Да, но у меня старый добрый hdd, так что я привык.

          в KDE даже меню нормально не реагирует

          Но у меня меню открывается мгновенно. Chromium, Dolphin тоже. Firefox притормаживает…как то так.

          есть задержка даже с выключенными анимациями

          Может проблема в драйверах. Фиг знает. У каждого пользователя железо разное…

      • ThePlayerZero
        link
        fedilink
        arrow-up
        0
        ·
        3 years ago

        Осваиваю Haskell

        Тяжело, но продвигаюсь

        Я бывший хаскелист-энтузиаст, кастуй если че

        Учебник антона я практически весь прошёл + лекции Москвина + чё то своё пилил…

        • odalist
          link
          fedilink
          arrow-up
          0
          ·
          3 years ago

          Я бывший хаскелист-энтузиаст, кастуй если че

          Спасибо. Буду иметь в виду.