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; }
35class 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)
std::shared_ptr< mir::scene::Surface > parent() const
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::geometry::Point top_left() const
Top-left corner (of the window frame if present)
void set_keymap(MirInputDeviceId id, std::string const &model, std::string const &layout, std::string const &variant, std::string const &options)
mir::scene::Surface * get_wrapped() const
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