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;
id_alloc{},
pending_events(false)
{
- char const *path_layers_json = getenv("AFM_APP_INSTALL_DIR");
- string path;
- if (!path_layers_json)
+ const char *path = getenv("AFM_APP_INSTALL_DIR");
+ string lm_setting_path = path;
+ if (!path)
{
HMI_ERROR("wm", "AFM_APP_INSTALL_DIR is not defined");
- path = string(path_layers_json);
}
else
{
- path = string(path_layers_json) + string("/etc/layers.json");
+ lm_setting_path += "/etc/layers_setting.json";
}
+ this->lm = std::make_shared<LayoutManager>(lm_setting_path);
- try
+/* try
{
{
auto l = load_layer_map(path.c_str());
catch (std::exception &e)
{
HMI_ERROR("wm", "Loading of configuration failed: %s", e.what());
- }
+ } */
}
int WindowManager::init()
#include "hmi-debug.h"
#include "request.hpp"
#include "wm_error.hpp"
+#include "layout_manager.hpp"
struct json_object;
std::unordered_map<std::string, struct compositor::rect> area2size;
std::unordered_map<std::string, std::string> roleold2new;
std::unordered_map<std::string, std::string> rolenew2old;
-
+ std::shared_ptr<LayoutManager> lm;
PMWrapper pmw;
static const char* kDefaultOldRoleDb;