16 #ifndef MIROIL_SURFACE_H
17 #define MIROIL_SURFACE_H
19 #include <unordered_map>
22 #include <mir/graphics/renderable.h>
25 namespace scene {
class Surface; }
26 namespace shell {
class InputTargeter; }
27 namespace geometry {
struct Rectangle; }
28 namespace graphics {
class CursorImage; }
29 namespace compositor {
class BufferStream; }
34 class SurfaceObserver;
35 class SurfaceObserverImpl;
42 Surface(std::shared_ptr<mir::scene::Surface> wrapped);
46 void add_observer(std::shared_ptr<miroil::SurfaceObserver>
const& observer);
57 std::shared_ptr<mir::scene::Surface>
parent()
const;
68 std::string
const& variant, std::string
const& options);
71 std::shared_ptr<mir::scene::Surface> wrapped;
72 std::unordered_map<std::shared_ptr<miroil::SurfaceObserver>, std::shared_ptr<miroil::SurfaceObserverImpl>> observers;
mir::graphics::RenderableList generate_renderables(miroil::CompositorID id) const
int configure(MirWindowAttrib attrib, int value)
bool is_confined_to_window()
void set_orientation(MirOrientation orientation)
void set_confine_pointer_state(MirPointerConfinementState state)
void remove_observer(std::shared_ptr< miroil::SurfaceObserver > const &observer)
int query(MirWindowAttrib attrib) const
void add_observer(std::shared_ptr< miroil::SurfaceObserver > const &observer)
Surface(std::shared_ptr< mir::scene::Surface > wrapped)
mir::scene::Surface * get_wrapped() const
mir::geometry::Point top_left() const
Top-left corner (of the window frame if present)
std::shared_ptr< mir::scene::Surface > parent() const
void set_keymap(MirInputDeviceId id, std::string const &model, std::string const &layout, std::string const &variant, std::string const &options)
int buffers_ready_for_compositor(void const *compositor_id) const
MirOrientation
Direction relative to the "natural" orientation of the display.
Definition: common.h:193
MirPointerConfinementState
Pointer Confinement.
Definition: common.h:385
MirWindowAttrib
Attributes of a window that the client and server/shell may wish to get or set over the wire.
Definition: common.h:39
Definition: splash_session.h:22
Definition: compositor.h:21
void const * CompositorID
Definition: surface.h:37