#pragma once enum eSurfaceRole : uint8_t { SURFACE_ROLE_UNASSIGNED = 0, SURFACE_ROLE_XDG_SHELL, SURFACE_ROLE_LAYER_SHELL, SURFACE_ROLE_EASTER_EGG, SURFACE_ROLE_SUBSURFACE, SURFACE_ROLE_CURSOR, }; class ISurfaceRole { public: virtual eSurfaceRole role() = 0; virtual ~ISurfaceRole() = default; };