19 #ifndef MIR_SCENE_SURFACE_H_
20 #define MIR_SCENE_SURFACE_H_
31 namespace input {
class InputChannel; }
32 namespace shell {
class InputTargeter; }
33 namespace geometry {
struct Rectangle; }
34 namespace graphics {
class CursorImage; }
38 class SurfaceObserver;
59 virtual std::unique_ptr<graphics::Renderable>
compositor_snapshot(
void const* compositor_id)
const = 0;
62 virtual float alpha()
const = 0;
65 virtual void hide() = 0;
66 virtual void show() = 0;
67 virtual bool visible()
const = 0;
69 virtual void take_input_focus(std::shared_ptr<shell::InputTargeter>
const& targeter) = 0;
82 virtual void set_input_region(std::vector<geometry::Rectangle>
const& region) = 0;
90 virtual void set_cursor_image(std::shared_ptr<graphics::CursorImage>
const& image)
override = 0;
91 virtual std::shared_ptr<graphics::CursorImage>
cursor_image()
const override = 0;
93 virtual void add_observer(std::shared_ptr<SurfaceObserver>
const& observer) = 0;
94 virtual void remove_observer(std::weak_ptr<SurfaceObserver>
const& observer) = 0;
98 virtual std::shared_ptr<input::InputChannel>
input_channel()
const override = 0;
102 virtual std::shared_ptr<Surface>
parent()
const = 0;
112 #endif // MIR_SCENE_SURFACE_H_
virtual int buffers_ready_for_compositor(void const *compositor_id) const =0
virtual MirSurfaceType type() const =0
All things Mir.
Definition: buffer_stream.h:37
virtual int configure(MirSurfaceAttrib attrib, int value)=0
virtual void set_transformation(glm::mat4 const &t)=0
virtual void resize(geometry::Size const &size)=0
virtual void request_client_surface_close()=0
virtual std::shared_ptr< graphics::CursorImage > cursor_image() const override=0
virtual int query(MirSurfaceAttrib attrib)=0
geometry::Size client_size() const override=0
Size of the client area of the surface (excluding any decorations)
virtual std::shared_ptr< Surface > parent() const =0
virtual void add_observer(std::shared_ptr< SurfaceObserver > const &observer)=0
geometry::Rectangle input_bounds() const override=0
virtual void allow_framedropping(bool)=0
virtual std::shared_ptr< input::InputChannel > input_channel() const override=0
virtual void set_reception_mode(input::InputReceptionMode mode)=0
virtual void set_orientation(MirOrientation orientation)=0
Definition: surface_buffer_access.h:33
virtual float alpha() const =0
virtual void force_requests_to_complete()=0
virtual void set_alpha(float alpha)=0
std::string name() const override=0
virtual void remove_observer(std::weak_ptr< SurfaceObserver > const &observer)=0
virtual void set_input_region(std::vector< geometry::Rectangle > const ®ion)=0
Sets the input region for this surface.
virtual std::unique_ptr< graphics::Renderable > compositor_snapshot(void const *compositor_id) const =0
Definition: rectangle.h:33
virtual MirSurfaceState state() const =0
virtual bool visible() const =0
virtual void set_cursor_image(std::shared_ptr< graphics::CursorImage > const &image) override=0
virtual geometry::Size size() const =0
Size of the surface including window frame (if any)
virtual geometry::Point top_left() const =0
Top-left corner (of the window frame if present)
virtual void move_to(geometry::Point const &top_left)=0
virtual void take_input_focus(std::shared_ptr< shell::InputTargeter > const &targeter)=0