19 #ifndef MIR_SCENE_SURFACE_H_
20 #define MIR_SCENE_SURFACE_H_
32 namespace input {
class InputChannel; }
33 namespace shell {
class InputTargeter; }
34 namespace geometry {
struct Rectangle; }
35 namespace graphics {
class CursorImage; }
36 namespace compositor {
class BufferStream; }
41 std::shared_ptr<compositor::BufferStream>
stream;
68 virtual float alpha()
const = 0;
71 virtual void hide() = 0;
72 virtual void show() = 0;
73 virtual bool visible()
const = 0;
87 virtual void set_input_region(std::vector<geometry::Rectangle>
const& region) = 0;
93 virtual void set_cursor_image(std::shared_ptr<graphics::CursorImage>
const& image)
override = 0;
94 virtual std::shared_ptr<graphics::CursorImage>
cursor_image()
const override = 0;
96 virtual void add_observer(std::shared_ptr<SurfaceObserver>
const& observer) = 0;
97 virtual void remove_observer(std::weak_ptr<SurfaceObserver>
const& observer) = 0;
101 virtual std::shared_ptr<input::InputChannel>
input_channel()
const override = 0;
105 virtual std::shared_ptr<Surface>
parent()
const = 0;
112 virtual void set_keymap(xkb_rule_names
const& rules) = 0;
114 virtual void set_streams(std::list<StreamInfo>
const& streams) = 0;
119 #endif // MIR_SCENE_SURFACE_H_
std::shared_ptr< compositor::BufferStream > stream
Definition: surface.h:41
virtual int buffers_ready_for_compositor(void const *compositor_id) const =0
virtual MirSurfaceType type() const =0
All things Mir.
Definition: atomic_callback.h:25
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
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
Definition: surface_observer.h:43
geometry::Rectangle input_bounds() const override=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
virtual float alpha() const =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
Definition: displacement.h:32
virtual int query(MirSurfaceAttrib attrib) const =0
virtual void set_input_region(std::vector< geometry::Rectangle > const ®ion)=0
Sets the input region for this surface.
void const * CompositorID
Definition: compositor_id.h:27
std::vector< std::shared_ptr< Renderable > > RenderableList
Definition: renderable.h:79
Definition: rectangle.h:33
virtual MirSurfaceState state() const =0
virtual bool visible() const =0
virtual void set_streams(std::list< StreamInfo > const &streams)=0
virtual void set_cursor_image(std::shared_ptr< graphics::CursorImage > const &image) override=0
virtual void set_keymap(xkb_rule_names const &rules)=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 graphics::RenderableList generate_renderables(compositor::CompositorID id) const =0
virtual void rename(std::string const &title)=0
geometry::Displacement displacement
Definition: surface.h:42