Mir
surface_specification.h
Go to the documentation of this file.
1 /*
2  * Copyright © 2015-2016 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  * Authored By: Alan Griffiths <alan@octopull.co.uk>
17  */
18 
19 #ifndef MIR_SHELL_SURFACE_SPECIFICATION_H_
20 #define MIR_SHELL_SURFACE_SPECIFICATION_H_
21 
22 #include "mir/optional_value.h"
23 #include "mir_toolkit/common.h"
26 #include "mir/geometry/point.h"
30 
31 #include <string>
32 #include <memory>
33 
34 namespace mir
35 {
36 namespace graphics { class CursorImage; }
37 namespace scene { class Surface; }
38 
39 namespace shell
40 {
41 struct SurfaceAspectRatio { unsigned width; unsigned height; };
42 
44 {
48 };
49 
51 {
54 };
55 
58 {
59  bool is_empty() const;
60 
88 
90 
91  // TODO scene::SurfaceCreationParameters overlaps this content but has additional fields:
92  // geometry::Point top_left;
93  // input::InputReceptionMode input_mode;
94  //
95  // it also has size instead of width + height
96  // Maybe SurfaceCreationParameters /HasA/ SurfaceSpecification?
101 };
102 }
103 }
104 
105 #endif /* MIR_SHELL_SURFACE_SPECIFICATION_H_ */
Definition: as_render_target.h:27
optional_value< geometry::Height > max_height
Definition: surface_specification.h:81
optional_value< MirPixelFormat > pixel_format
Definition: surface_specification.h:63
frontend::BufferStreamId stream_id
Definition: surface_specification.h:45
optional_value< geometry::Width > max_width
Definition: surface_specification.h:80
optional_value< std::shared_ptr< graphics::CursorImage > > cursor_image
Definition: surface_specification.h:99
optional_value< int > aux_rect_placement_offset_x
Definition: surface_specification.h:76
optional_value< std::vector< StreamSpecification > > streams
Definition: surface_specification.h:86
optional_value< geometry::Height > height
Definition: surface_specification.h:62
optional_value< std::vector< geometry::Rectangle > > input_shape
Definition: surface_specification.h:89
optional_value< MirWindowState > state
Definition: surface_specification.h:68
optional_value< SurfaceAspectRatio > min_aspect
Definition: surface_specification.h:84
optional_value< frontend::SurfaceId > parent_id
Definition: surface_specification.h:70
frontend::BufferStreamId stream_id
Definition: surface_specification.h:52
optional_value< StreamCursor > stream_cursor
Definition: surface_specification.h:100
optional_value< MirPointerConfinementState > confine_pointer
Definition: surface_specification.h:98
unsigned int height
Definition: mir_image.h:27
optional_value< MirPlacementHints > placement_hints
Definition: surface_specification.h:73
Definition: surface_specification.h:43
Definition: surface_specification.h:50
optional_value< geometry::Size > size
Definition: surface_specification.h:47
optional_value< MirEdgeAttachment > edge_attachment
Definition: surface_specification.h:72
optional_value< graphics::BufferUsage > buffer_usage
Definition: surface_specification.h:64
optional_value< geometry::Width > min_width
Definition: surface_specification.h:78
optional_value< std::weak_ptr< scene::Surface > > parent
Definition: surface_specification.h:87
optional_value< geometry::DeltaX > width_inc
Definition: surface_specification.h:82
optional_value< MirOrientationMode > preferred_orientation
Definition: surface_specification.h:69
optional_value< MirPlacementGravity > surface_placement_gravity
Definition: surface_specification.h:74
Definition: displacement.h:32
optional_value< SurfaceAspectRatio > max_aspect
Definition: surface_specification.h:85
optional_value< MirWindowType > type
Definition: surface_specification.h:67
geometry::Displacement displacement
Definition: surface_specification.h:46
optional_value< geometry::DeltaY > height_inc
Definition: surface_specification.h:83
Specification of surface properties requested by client.
Definition: surface_specification.h:57
optional_value< std::string > name
Definition: surface_specification.h:65
unsigned width
Definition: surface_specification.h:41
Definition: surface_specification.h:41
optional_value< MirShellChrome > shell_chrome
Definition: surface_specification.h:97
geometry::Displacement hotspot
Definition: surface_specification.h:53
optional_value< geometry::Height > min_height
Definition: surface_specification.h:79
optional_value< int > aux_rect_placement_offset_y
Definition: surface_specification.h:77
optional_value< graphics::DisplayConfigurationOutputId > output_id
Definition: surface_specification.h:66
optional_value< MirPlacementGravity > aux_rect_placement_gravity
Definition: surface_specification.h:75
optional_value< geometry::Rectangle > aux_rect
Definition: surface_specification.h:71
optional_value< geometry::Width > width
Definition: surface_specification.h:61

Copyright © 2012-2016 Canonical Ltd.
Generated on Mon Jun 5 13:49:26 UTC 2017