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

Оформление на стороне клиента ( CSD ) — это концепция, позволяющая графическому прикладному программному обеспечению отвечать за рисование собственных украшений окон , что исторически было обязанностью оконного менеджера . [1]
Иногда оформление на стороне клиента используется для обозначения приложений, у которых нет традиционной строки заголовка. Однако это неправильное использование этой фразы, поскольку даже приложения, имеющие базовую строку заголовка, могут быть украшены на стороне клиента. [2]
Используя оформление на стороне клиента, а не традиционное оформление на стороне сервера, приложения могут рисовать собственную строку заголовка, что предоставляет широкий спектр возможностей для настройки оформления окон и добавления дополнительных функций ( элементов графического управления ) к тому, что в противном случае было бы типичная панель оконного менеджера с большим количеством пустого места в развернутых окнах. [3]
Терминология
[ редактировать ]Термин « оформление на стороне клиента» происходит от системы X Window , где клиентом является приложение, которое отображает окно и отправляет его на X- сервер , который управляет отображением. Альтернатива называется украшением на стороне сервера (SSD), хотя на X украшение рисуется оконным менеджером, который на самом деле не является «сервером». Эти термины также используются в Wayland , где клиентом является приложение, которое отображает окно и отправляет его на сервер Wayland, который управляет отображением, а также функционирует как оконный менеджер композиции .
Реализации
[ редактировать ]Наборы инструментов для виджетов
[ редактировать ]ГТК
[ редактировать ]GTK был первым набором инструментов графического пользовательского интерфейса в Linux, в котором реализовано оформление на стороне клиента с помощью виджета GtkHeaderBar. [4]
GtkHeaderBar объединяет строку заголовка , строку меню и панель инструментов в одну единую горизонтальную панель, чтобы освободить больше места для содержимого приложения, потенциально уменьшая количество неиспользуемого пространства за счет отображения пустых панелей. Это может помочь добиться гибкого пользовательского интерфейса и единообразного взаимодействия с компьютерами различных форм-факторов , от настольных систем до устройств малого форм-фактора , путем удаления из приложений традиционных частей, ориентированных на настольные компьютеры. Они имеют первоклассную поддержку в GNOME Shell и широко используются приложениями GNOME .
UWP
[ редактировать ]Приложения универсальной платформы Windows могут отображать собственные строки заголовка. [5]
macOS
[ редактировать ]В macOS используют приложения AppKit оформление на стороне клиента при использовании виджета NSWindow. [6]
Электрон
[ редактировать ]В Electron есть возможность использовать окно без рамки (без панели инструментов, строки меню и вкладок), однако приложение отвечает за рисование собственных теней. [7]
Набор инструментов Deepin
[ редактировать ]
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, добавляя объекты панели инструментов, такие как кнопки «Назад», в строку заголовка Windows.
- В 2013 году в GTK добавлена поддержка украшений на стороне клиента с выпуском GTK 3.10. [11]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Оформления на стороне клиента, продолжение» . blogs.gnome.org . Проверено 17 января 2019 г.
- ^ «Небольшая заметка об оформлении окон | Флориан Мюлльнер» . Проверено 13 ноября 2019 г.
- ^ «Инициатива CSD призывает приложения отказаться от строк заголовков в пользу панелей заголовков — Phoronix» . Фороникс . Проверено 28 января 2018 г.
- ^ «GtkHeaderBar: Справочное руководство по GTK+ 3» . http://developer.gnome.org . Проверено 17 января 2019 г.
- ^ миджакобы. «Настройка заголовка — приложения Windows UWP» . docs.microsoft.com . Проверено 17 января 2019 г.
- ^ «NSWindow — AppKit | Документация разработчика Apple» . разработчик.apple.com . Проверено 7 июня 2019 г.
- ^ «Безрамное окно | Электрон» . электронджс.орг . Проверено 17 января 2019 г.
- ^ Разработка протокола Wayland , Wayland, 07 октября 2019 г. , получено 13 ноября 2019 г.
- ^ Бернард, Тобиас. «Представляем инициативу CSD – пространство и смысл» . ГНОМ . Проверено 28 января 2018 г.
- ^ Загородний, Влад (23 июля 2020 г.). «Поддержка CSD в KWin» . Блог Влада Загороднего . Проверено 5 марта 2024 г.
- ^ «Выпущен GTK+ 3.10 [LWN.net]» . lwn.net . Проверено 17 января 2019 г.