dacb557c4d1a692d46b8807af92d9f8e0d24ceb3
[apps/agl-service-windowmanager.git] / src / wm_layer_control.hpp
1 /*\r
2  * Copyright (c) 2017 TOYOTA MOTOR CORPORATION\r
3  *\r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  *      http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 \r
17 #include <string>\r
18 #include <memory>\r
19 #include <vector>\r
20 \r
21 #include "wm_error.hpp"\r
22 #include "wm_layer.hpp"\r
23 \r
24 namespace wm {\r
25 \r
26 class LayerControl\r
27 {\r
28   public:\r
29     explicit LayerControl(const std::string& path);\r
30     ~LayerControl();\r
31     unsigned getNewLayerID(const std::string& role);\r
32     // void setRenderOrder(const std::vector<unsigned> layer_render_order);\r
33     // std::vector<unsigned> getAllRenderOrder();\r
34     // std::vector<std::shared_ptr<WMLayer>>& getAllLayers();\r
35     // std::vector<unsigned> getRenderOrder(const std::string& layer_name);\r
36     WMError updateLayer(WMLayer& wm_layer);\r
37     void commitChange();\r
38     void undoUpdate();\r
39   private:\r
40     WMError load(const std::string& path);\r
41     std::vector<std::shared_ptr<WMLayer>> wm_layers;\r
42 };\r
43 \r
44 } // namespace wm