aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-08-08 18:32:27 +0900
committerKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-08-20 13:52:49 +0900
commit085bb9c71fbc5690021390b62d934e7cf95031a6 (patch)
tree8531e27a0771b7960de6a193c6d14e78af92120c
parente2a1895b1553c067927a250e83132e836fc1836a (diff)
Add new class
Change-Id: I6bebfb030879b1bb2c7521bcd1d23d18d8174b36 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
-rw-r--r--src/layers.hpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/layers.hpp b/src/layers.hpp
index f52886e..6d0dcf2 100644
--- a/src/layers.hpp
+++ b/src/layers.hpp
@@ -65,6 +65,54 @@ struct layer
json to_json() const;
};
+/*
+ * WMLayer is the logical container of application/system application(such like HomeScreen)
+ * This is handled by Window Manager to classify the application.
+ */
+class WMLayer
+{
+ public:
+ enum MANAGEMENT_TYPE
+ {
+ TILE,
+ STACK
+ };
+
+ explicit WMLayer(const std::string& name, MANAGEMENT_TYPE type, unsigned begin, unsigned end);
+ virtual ~WMLayer();
+
+ const std::string& layerName();
+ MANAGEMENT_TYPE layerType();
+ void appendRole(const std::string& name);
+ void appendArea(const std::string& area);
+
+/* 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> _roles;
+ unsigned _id_begin;
+ unsigned _id_end;
+ // current holding apps. This dynamically changes.
+ std::vector<unsigned> _ivi_layer_id_list;
+ // std::map<std::string, unsigned> _render_order;
+};
+
+class LayerManager
+{
+ public:
+ void setRenderOrder(const std::vector<unsigned> layer_render_order);
+ std::vector<unsigned> getAllRenderOrder();
+ std::vector<std::shared_ptr<WMLayer>>& getAllLayers();
+ std::vector<unsigned> getRenderOrder(const std::string& layer_name);
+};
+
struct layer_map
{
using json = nlohmann::json;