kodi
Public Types | Public Member Functions | Static Public Member Functions | List of all members
KODI::WINDOWING::WAYLAND::IShellSurface Class Referenceabstract

Abstraction for shell surfaces to support multiple protocols such as wl_shell (for compatibility) and xdg_shell (for features) More...

#include <ShellSurface.h>

Inheritance diagram for KODI::WINDOWING::WAYLAND::IShellSurface:
Inheritance graph
[legend]

Public Types

enum  State {
  STATE_MAXIMIZED = 0, STATE_FULLSCREEN, STATE_RESIZING, STATE_ACTIVATED,
  STATE_COUNT
}
 
using StateBitset = std::bitset< STATE_COUNT >
 

Public Member Functions

virtual void Initialize ()=0
 Initialize shell surface. More...
 
virtual void SetFullScreen (wayland::output_t const &output, float refreshRate)=0
 
virtual void SetWindowed ()=0
 
virtual void SetMaximized ()=0
 
virtual void UnsetMaximized ()=0
 
virtual void SetMinimized ()=0
 
virtual void SetWindowGeometry (CRectInt geometry)=0
 
virtual void AckConfigure (std::uint32_t serial)=0
 
virtual void StartMove (wayland::seat_t const &seat, std::uint32_t serial)=0
 
virtual void StartResize (wayland::seat_t const &seat, std::uint32_t serial, wayland::shell_surface_resize edge)=0
 
virtual void ShowShellContextMenu (wayland::seat_t const &seat, std::uint32_t serial, CPointInt position)=0
 

Static Public Member Functions

static std::string StateToString (StateBitset state)
 

Detailed Description

Abstraction for shell surfaces to support multiple protocols such as wl_shell (for compatibility) and xdg_shell (for features)

The interface itself is modeled after xdg_shell, so see there for the meaning of e.g. the surface states

Member Function Documentation

◆ Initialize()

virtual void KODI::WINDOWING::WAYLAND::IShellSurface::Initialize ( )
pure virtual

Initialize shell surface.

The event loop thread MUST NOT be running when this function is called. The difference to the constructor is that in this function callbacks may already be called.

Implemented in KODI::WINDOWING::WAYLAND::CShellSurfaceXdgShellUnstableV6, KODI::WINDOWING::WAYLAND::CShellSurfaceXdgShell, KODI::WINDOWING::WAYLAND::CShellSurfaceWebOSShell, and KODI::WINDOWING::WAYLAND::CShellSurfaceWlShell.


The documentation for this class was generated from the following files: