Оформление на стороне клиента

Концепция дизайна графического пользовательского интерфейса
Пример приложения, которое использует Client-Side Decoration для отрисовки собственных элементов управления окнами. (Виджет GtkHeaderBar в GNOME Files , 2014-01)

Клиентское оформление ( CSD ) — это концепция, позволяющая графическому приложению отвечать за отрисовку собственных оконных оформлений , что исторически было обязанностью оконного менеджера . [1]

Иногда декорирование на стороне клиента используется для обозначения приложений, которые не имеют традиционной строки заголовка. Однако это неправильное использование фразы, так как даже приложения, которые имеют базовую строку заголовка, могут быть декорированы на стороне клиента. [2]

Используя клиентское оформление вместо традиционного серверного, приложения могут рисовать собственную строку заголовка, что обеспечивает широкий спектр возможностей для настройки оформления окон и добавления дополнительных функций ( графических элементов управления ) в то, что в противном случае было бы типичной панелью оконного менеджера с большим количеством пустого пространства в развернутых окнах. [3]

Терминология

Термин Client-Side Decoration происходит из X Window System , где клиент — это приложение, которое визуализирует окно и отправляет его на X -сервер , который управляет дисплеем. Альтернатива называется Server-Side Decoration (SSD), хотя в X декорация рисуется оконным менеджером, который на самом деле не является «сервером». Эти термины также используются в Wayland , где клиент — это приложение, которое визуализирует окно и отправляет его на сервер Wayland, который управляет дисплеем, а также функционирует как композитный оконный менеджер .

Реализации

Наборы инструментов для виджетов

ГТК

GTK был первым набором инструментов GUI для Linux, который реализовал клиентское оформление с помощью виджета GtkHeaderBar. [4]

GtkHeaderBar объединяет строку заголовка , строку меню и панель инструментов в одну единую горизонтальную панель, чтобы предоставить больше места для содержимого приложения, потенциально сокращая количество неиспользуемого пространства за счет отображения пустых панелей. Это может помочь достичь гибкого пользовательского интерфейса и согласованного пользовательского опыта на различных форм-факторах компьютеров от настольных систем до устройств малого форм-фактора путем удаления традиционных частей, ориентированных на настольный компьютер, из приложений. Они имеют первоклассную поддержку в GNOME Shell и широко используются приложениями GNOME .

УВП

Приложения универсальной платформы Windows могут рисовать собственные заголовки. [5]

macOS

В macOS приложения AppKit используют клиентское оформление при использовании виджета NSWindow. [6]

Электрон

В Electron есть возможность использовать окно без рамок (без панели инструментов, строки меню, вкладок), однако приложение само отвечает за отрисовку своих теней. [7]

Набор инструментов Deepin

Deepin File Manager — приложение на базе Qt с клиентским оформлением.

Deepin Tool Kit — небольшой модифицированный набор инструментов для виджетов на основе Qt5 , используемый Deepin Desktop Environment .

Приложения

Известные приложения с декорированием на стороне клиента:

  • Steam использует собственный набор виджетов под названием «VGUI».
  • Firefox использует клиентские декорации, когда строка заголовка отключена.
  • Google Chrome и другие браузеры на базе Chromium используют клиентские декорации в Windows и macOS, а также поддерживают как клиентские, так и серверные декорации в Linux.

Отображение серверов

Уэйланд

Wayland был разработан с учетом клиентского оформления (включая тени окон) по умолчанию, но имеет дополнительный протокол, известный как xdg-decoration, который позволяет приложению (клиенту) запрашивать, поддерживает ли оконный менеджер серверное оформление, и если да, то клиент может его запросить. [8] Mutter , композитор, используемый GNOME Shell , в Wayland поддерживает только клиентское оформление, [9] в то время как KWin поддерживает как клиентское, так и серверное оформление.

Ограничения

Если приложение зависло, пользователь не может закрыть его, нажав кнопку закрытия в рамке окна. [10]

История

  • В 2008 году Adobe выпустила Photoshop CS4, использующий клиентское оформление.
  • В 2012 году Microsoft использовала клиентские декорации в своем новом языке дизайна Metro , добавляя объекты панели инструментов, такие как кнопки «Назад», в строку заголовка окна.
  • В 2013 году GTK добавила поддержку клиентских декораций с выпуском GTK 3.10. [11]

Смотрите также

Ссылки

  1. ^ "Декорации на стороне клиента, продолжение". blogs.gnome.org . Получено 2019-01-17 .
  2. ^ "Небольшая заметка об оформлении окон | Флориан Мюлльнер" . Получено 13 ноября 2019 г.
  3. ^ «Инициатива CSD призывает приложения отказаться от заголовков в пользу заголовков — Phoronix». Phoronix . Получено 28.01.2018 .
  4. ^ "GtkHeaderBar: Справочное руководство по GTK+ 3". developer.gnome.org . Получено 17.01.2019 .
  5. ^ mijacobs. "Настройка строки заголовка - приложения Windows UWP". docs.microsoft.com . Получено 17.01.2019 .
  6. ^ "NSWindow - AppKit | Документация разработчиков Apple". developer.apple.com . Получено 2019-06-07 .
  7. ^ "Окно без рам | Electron". electronjs.org . Получено 17.01.2019 .
  8. ^ Разработка протокола Wayland, Wayland, 2019-10-07 , получено 2019-11-13
  9. ^ Бернард, Тобиас. «Представляем инициативу CSD – пространство и смысл». GNOME . Получено 28.01.2018 .
  10. ^ Загородний, Влад (2020-07-23). ​​"Поддержка CSD в KWin". Блог Влада Загороднего . Получено 2024-03-05 .
  11. ^ "GTK+ 3.10 выпущен [LWN.net]". lwn.net . Получено 2019-01-17 .


Взято с "https://en.wikipedia.org/w/index.php?title=Client-side_decoration&oldid=1223112768"