Mir
surface_observer.h
Go to the documentation of this file.
1 /*
2  * Copyright © 2021 Canonical Ltd.
3  *
4  * This program is free software: you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License version 3,
6  * as published by the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  */
16 #include <mir_toolkit/common.h>
17 #include <mir/geometry/size.h>
18 #include <mir/geometry/rectangle.h>
19 #include <mir/graphics/cursor_image.h>
20 #include <glm/glm.hpp>
22 #include <vector>
23 
24 namespace mir { namespace scene { class SurfaceObserver; } }
25 namespace mir { namespace scene { class Surface; } }
26 
27 struct MirEvent;
28 struct MirInputEvent;
29 
30 namespace miroil
31 {
32 
34 {
35 public:
36  SurfaceObserver() = default;
37  SurfaceObserver(SurfaceObserver const&) = delete;
39  virtual ~SurfaceObserver() = default;
40 
41  virtual void attrib_changed(mir::scene::Surface const* surf, MirWindowAttrib attrib, int value) = 0;
42  virtual void window_resized_to(mir::scene::Surface const* surf, mir::geometry::Size const& window_size) = 0;
43  virtual void content_resized_to(mir::scene::Surface const* surf, mir::geometry::Size const& content_size) = 0;
44  virtual void moved_to(mir::scene::Surface const* surf, mir::geometry::Point const& top_left) = 0;
45  virtual void hidden_set_to(mir::scene::Surface const* surf, bool hide) = 0;
46  virtual void frame_posted(mir::scene::Surface const* surf, int frames_available, mir::geometry::Size const& size) = 0;
47  virtual void alpha_set_to(mir::scene::Surface const* surf, float alpha) = 0;
48  virtual void orientation_set_to(mir::scene::Surface const* surf, MirOrientation orientation) = 0;
49  virtual void transformation_set_to(mir::scene::Surface const* surf, glm::mat4 const& t) = 0;
50  virtual void cursor_image_set_to(mir::scene::Surface const* surf, mir::graphics::CursorImage const& image) = 0;
51  virtual void client_surface_close_requested(mir::scene::Surface const* surf) = 0;
52  virtual void keymap_changed(mir::scene::Surface const* surf, MirInputDeviceId id, std::string const& model,
53  std::string const& layout, std::string const& variant, std::string const& options) = 0;
54  virtual void renamed(mir::scene::Surface const* surf, char const* name) = 0;
55  virtual void cursor_image_removed(mir::scene::Surface const* surf) = 0;
56  virtual void placed_relative(mir::scene::Surface const* surf, mir::geometry::Rectangle const& placement) = 0;
57  virtual void input_consumed(mir::scene::Surface const* surf, MirEvent const* event) = 0;
58  virtual void start_drag_and_drop(mir::scene::Surface const* surf, std::vector<uint8_t> const& handle) = 0;
59  virtual void depth_layer_set_to(mir::scene::Surface const* surf, MirDepthLayer depth_layer) = 0;
60  virtual void application_id_set_to(mir::scene::Surface const* surf, std::string const& application_id) = 0;
61 };
62 
63 }
struct MirEvent MirEvent
Definition: append_event_filter.h:25
Definition: surface_observer.h:34
virtual void hidden_set_to(mir::scene::Surface const *surf, bool hide)=0
virtual void moved_to(mir::scene::Surface const *surf, mir::geometry::Point const &top_left)=0
virtual void window_resized_to(mir::scene::Surface const *surf, mir::geometry::Size const &window_size)=0
virtual void alpha_set_to(mir::scene::Surface const *surf, float alpha)=0
SurfaceObserver & operator=(SurfaceObserver const &)=delete
virtual void placed_relative(mir::scene::Surface const *surf, mir::geometry::Rectangle const &placement)=0
virtual void client_surface_close_requested(mir::scene::Surface const *surf)=0
virtual ~SurfaceObserver()=default
virtual void input_consumed(mir::scene::Surface const *surf, MirEvent const *event)=0
virtual void cursor_image_removed(mir::scene::Surface const *surf)=0
virtual void content_resized_to(mir::scene::Surface const *surf, mir::geometry::Size const &content_size)=0
virtual void depth_layer_set_to(mir::scene::Surface const *surf, MirDepthLayer depth_layer)=0
virtual void attrib_changed(mir::scene::Surface const *surf, MirWindowAttrib attrib, int value)=0
virtual void application_id_set_to(mir::scene::Surface const *surf, std::string const &application_id)=0
virtual void renamed(mir::scene::Surface const *surf, char const *name)=0
virtual void frame_posted(mir::scene::Surface const *surf, int frames_available, mir::geometry::Size const &size)=0
virtual void start_drag_and_drop(mir::scene::Surface const *surf, std::vector< uint8_t > const &handle)=0
virtual void orientation_set_to(mir::scene::Surface const *surf, MirOrientation orientation)=0
virtual void transformation_set_to(mir::scene::Surface const *surf, glm::mat4 const &t)=0
SurfaceObserver(SurfaceObserver const &)=delete
virtual void keymap_changed(mir::scene::Surface const *surf, MirInputDeviceId id, std::string const &model, std::string const &layout, std::string const &variant, std::string const &options)=0
virtual void cursor_image_set_to(mir::scene::Surface const *surf, mir::graphics::CursorImage const &image)=0
MirOrientation
Direction relative to the "natural" orientation of the display.
Definition: common.h:195
MirDepthLayer
Depth layer controls Z ordering of surfaces.
Definition: common.h:412
MirWindowAttrib
Attributes of a window that the client and server/shell may wish to get or set over the wire.
Definition: common.h:41
int64_t MirInputDeviceId
Definition: mir_input_device_types.h:27
Definition: splash_session.h:24
Definition: compositor.h:21
Definition: point.h:32
Definition: rectangle.h:34
Definition: size.h:32

Copyright © 2012-2022 Canonical Ltd.
Generated on Fri Feb 25 18:01:44 UTC 2022
This documentation is licensed under the GPL version 2 or 3.