Merge "Refactor : Hide wayland operations from Window Manager"
[apps/agl-service-windowmanager.git] / src / wm_layer.hpp
1 /*
2  * Copyright (c) 2017 TOYOTA MOTOR CORPORATION
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #ifndef WM_LAYER_HPP
18 #define WM_LAYER_HPP
19
20 #include <string>
21 #include <vector>
22 #include <unordered_map>
23 #include <memory>
24 #include "wm_error.hpp"
25
26 struct json_object;
27
28 namespace wm
29 {
30
31 class WMLayer
32 {
33   public:
34     explicit WMLayer(json_object* j);
35     ~WMLayer() = default;
36     // A more or less descriptive name?
37     const std::string& layerName(){ return this->role_list;}
38     unsigned layerID(){ return this->layer_id;}
39     const std::string& roleList();
40     bool hasRole(const std::string& role);
41   private:
42     std::string name = "";
43     // The actual layer ID
44     int layer_id = 0;
45
46     // Specify a role prefix for surfaces that should be
47     // put on this layer.
48     std::string role_list;
49 };
50
51 } // namespace wm
52
53 #endif // WM_LAYER_HPP