19 #ifndef MIRAL_WAYLAND_EXTENSIONS_H 20 #define MIRAL_WAYLAND_EXTENSIONS_H 32 namespace mir {
class Server; }
58 void operator()(mir::Server& server)
const;
65 auto supported_extensions()
const -> std::string;
69 static auto recommended_extensions() -> std::string;
80 virtual auto display()
const -> wl_display* = 0;
81 virtual void run_on_wayland_mainloop(std::function<
void()>&& work)
const = 0;
102 std::function<std::shared_ptr<void>(
Context const* context)> build;
106 using Filter = std::function<bool(Application const& app, char const* protocol)>;
110 void set_filter(
Filter const& extension_filter);
114 void add_extension(
Builder const& builder);
118 void add_extension_disabled_by_default(
Builder const& builder);
122 std::shared_ptr<Self>
self;
145 #endif //MIRAL_WAYLAND_EXTENSIONS_H Definition: splash_session.h:24
A Builder creates and registers an extension protocol.
Definition: wayland_extensions.h:92
std::string name
Name of the protocol extension.
Definition: wayland_extensions.h:95
std::function< bool(Application const &app, char const *protocol)> Filter
Definition: wayland_extensions.h:106
Context information useful for implementing Wayland extensions.
Definition: wayland_extensions.h:77
auto window_for(wl_resource *surface) -> Window
Get the MirAL Window for a Wayland Surface, XdgSurface, etc. Note that there may not be a correspondi...
Enable configuration of the Wayland extensions enabled at runtime.
Definition: wayland_extensions.h:47
Handle class to manage a Mir surface. It may be null (e.g. default initialized)
Definition: window.h:37
std::shared_ptr< mir::scene::Session > Application
Definition: application.h:34
auto application_for(wl_resource *resource) -> Application
Get the MirAL application for a wl_resource.
Mir Abstraction Layer.
Definition: floating_window_manager.h:29