diff options
author | Kazumasa Mitsunari <knimitz@witz-inc.co.jp> | 2018-08-22 09:05:52 +0900 |
---|---|---|
committer | Kazumasa Mitsunari <knimitz@witz-inc.co.jp> | 2018-08-22 09:05:52 +0900 |
commit | 621314943d21cdb3b7e51a4c3d0faefc44658a11 (patch) | |
tree | 6e40cb50bbe8409e8431cc5ea213aa70fe006fa2 /src/wm_layer.hpp | |
parent | 27e4f2d7810666d86bcb525d0e7e513e70c5f021 (diff) |
Forgot adding new files
Change-Id: I9f05c8ac369890403710214522c2faa3deb129fb
Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
Diffstat (limited to 'src/wm_layer.hpp')
-rw-r--r-- | src/wm_layer.hpp | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/src/wm_layer.hpp b/src/wm_layer.hpp new file mode 100644 index 0000000..ac74530 --- /dev/null +++ b/src/wm_layer.hpp @@ -0,0 +1,95 @@ +/* + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef WM_LAYERS_H +#define WM_LAYERS_H + +#include <string> +#include <vector> +#include <unordered_map> +#include <memory> +#include "wm_error.hpp" + +namespace wm +{ + +class LayerState +{ + public: + LayerState(); + ~LayerState() = default; + private: + std::vector<unsigned> _ivi_layer_id_list; + std::unordered_map<std::string, unsigned> area2ivi_layer_id; + // std::map<std::string, unsigned> _render_order; +}; + +class LayerSetting +{ + public: + enum MANAGEMENT_TYPE + { + TILE, + STACK + }; + + explicit LayerSetting(const std::string& name, MANAGEMENT_TYPE type, unsigned begin, unsigned end); + ~LayerSetting() = default; + + const std::string& layerName() { return this->name; } + MANAGEMENT_TYPE layerType() { return this->type; }; + void appendRole(const std::string& role); + void appendArea(const std::string& area); + unsigned idBegin() { return this->id_begin; } + unsigned idEnd() { return this->id_end; } + unsigned getNewLayerID(const std::string& role); + void removeLayerID(unsigned id); + +/* unsigned getNewID(const std::string& role); + void remove(unsigned ivi_layer_id); + void clear(); + bool attach(unsigned ivi_layer_id, const std::string& area); + void stack(unsigned ivi_layer_id, const std::string& area); + bool updateRenderOrder(const std::vector<unsigned> list); */ + + private: + std::string name = ""; // Layer name + MANAGEMENT_TYPE type; + std::vector<std::string> role_list; + std::vector<std::string> area_list; + std::vector<unsigned> id_list; + unsigned id_begin; + unsigned id_end; +}; + +class WMLayer +{ + public: + WMLayer(); + ~WMLayer() = default; + unsigned getNewLayerID(const std::string& role); + LayerState getLayerState() const { return before_state; } + WMError setLayerState(const LayerState& l); + bool checkIDBelongTo(unsigned id); + private: + LayerState before_state; + LayerState state; + std::unique_ptr<LayerSetting> setting; +}; + +} // namespace wm + +#endif // WM_LAYERS_H |