// // Created by m on 7/27/17. // #ifndef TMCAGLWM_LAYERS_H #define TMCAGLWM_LAYERS_H #include #include #include #include #include #include "result.hpp" namespace wm { struct surface_id_to_layer { int id_min = -1; int id_max = -1; std::string name = ""; int layer_id = -1; explicit surface_id_to_layer(nlohmann::json const &j); bool operator<(struct surface_id_to_layer const &rhs) const { return this->id_max < rhs.id_max; } }; inline bool operator<(struct surface_id_to_layer const &a, int b) { return a.id_max < b; } struct surface_id_to_layer_map { typedef std::set map_type; map_type mapping; std::experimental::optional get_layer_for_surface(int surface_id) { auto i = std::lower_bound(std::cbegin(this->mapping), std::cend(this->mapping), surface_id); if (i != this->mapping.end()) { if (i->id_min <= surface_id) { return std::experimental::optional(i->layer_id); } } return std::experimental::nullopt; } }; struct result to_surface_id_to_layer_map( nlohmann::json const &j); } // namespace wm #endif // TMCAGLWM_LAYERS_H