Dekoracja po stronie klienta - Client-side decoration
Dekoracja po stronie klienta (CSD) to koncepcja pozwalająca graficznemu oprogramowaniu aplikacyjnemu odpowiadać za rysowanie własnych dekoracji okien , za co wcześniej odpowiadał menedżer okien .
Czasami dekoracja po stronie klienta jest używana w odniesieniu do aplikacji, które nie mają tradycyjnego paska tytułu, jednak jest to niewłaściwe użycie tego wyrażenia, ponieważ nawet aplikacje, które mają podstawowy pasek tytułu, mogą być dekorowane po stronie klienta.
Korzystając z dekoracji po stronie klienta zamiast tradycyjnej dekoracji po stronie serwera, aplikacje są w stanie narysować własny pasek tytułu, co daje szeroki zakres możliwości dostosowywania dekoracji okien i dodawania dodatkowych funkcji ( graficznych elementów sterujących ) do tego, co w innym przypadku byłoby typowy pasek menedżera okien z dużą ilością pustego miejsca w zmaksymalizowanych oknach.
Terminologia
W systemach Linux i uniksopodobnych nazywa się to dekoracją po stronie klienta, która pochodzi z X Window System , gdzie klient jest aplikacją, która renderuje okno i wysyła je do serwera X. Alternatywa nazywa się Dekoracja po stronie serwera (SSD), mimo że na X dekoracja jest rysowana przez menedżera okien, który w rzeczywistości nie jest „serwerem”.
Wdrożenia
Zestawy narzędzi do widżetów
GTK
GTK był pierwszym zestawem narzędzi GUI w systemie Linux, w którym zaimplementowano dekorację po stronie klienta za pomocą widżetu GtkHeaderBar.
GtkHeaderBar scala pasek tytułowy , pasek menu oraz pasek narzędzi do jednej zunifikowanej poziomym pasku, aby dać więcej miejsca na treść wniosku, potencjalnie zmniejszając ilość niewykorzystanego miejsca, pokazując puste bary. Może to pomóc w uzyskaniu elastycznego interfejsu użytkownika i spójnego UX w różnych komputerach, od komputerów stacjonarnych po urządzenia o niewielkich rozmiarach , poprzez usunięcie tradycyjnych części zorientowanych na komputery stacjonarne z aplikacji. Mają pierwszorzędną obsługę w powłoce GNOME i są szeroko używane przez aplikacje GNOME .
UWP
Aplikacje Universal Windows Platform mogą rysować własne paski tytułu.
System operacyjny Mac
W MacOS , zestaw klas AppKit aplikacje używają po stronie klienta dekoracji podczas używania NSWindow widget.
Elektron
Electron ma możliwość korzystania z okna bez ramek (bez paska narzędzi, paska menu, zakładek), jednak aplikacja jest odpowiedzialna za rysowanie własnych cieni.
Zestaw narzędzi Deepin
Deepin Tool Kit to mały zmodyfikowany zestaw narzędzi z widżetami oparty na Qt5 , używany przez Deepin Desktop Environment .
Aplikacje
Wybitne aplikacje z dekoracją po stronie klienta:
- Steam używa własnego zestawu narzędzi widżetów o nazwie „VGUI”.
- Firefox używa dekoracji po stronie klienta, gdy pasek tytułu jest wyłączony.
- Google Chrome używa dekoracji po stronie klienta w systemach Windows i macOS oraz obsługuje dekoracje klienckie i serwerowe w systemie Linux.
Wyświetl serwery
Wayland
Wayland został zaprojektowany tak, aby domyślnie miał dekoracje po stronie klienta (w tym cienie okien), ale ma opcjonalny protokół, znany jako xdg-decoration, który pozwala aplikacji (klientowi) zapytać, czy menedżer okien obsługuje dekorację po stronie serwera i jeśli tak, aby klient o to poprosił. Mutter , kompozytor używany przez GNOME Shell , pod Waylandem obsługuje tylko dekorację po stronie klienta, podczas gdy KWin obsługuje zarówno dekorację po stronie klienta, jak i serwera.
Historia
- W 2008 roku firma Adobe wydała Photoshop CS4, który wykorzystuje dekoracje po stronie klienta.
- W 2012 roku Microsoft używa dekoracji po stronie klienta w swoim nowym języku projektowania Metro , dodając obiekty paska narzędzi, takie jak przyciski Wstecz, do paska tytułu systemu Windows.
- W 2013 GTK dodało obsługę dekoracji po stronie klienta wraz z wydaniem GTK 3.10.