-//
-// Created by mfritzsc on 6/27/17.
-//
+/*
+ * Copyright (C) 2017 Mentor Graphics Development (Deutschland) GmbH
+ *
+ * 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 TMCAGLWM_LAYOUT_HPP
#define TMCAGLWM_LAYOUT_HPP
#include <cstdint>
-#include <experimental/optional>
-#include <set>
#include <string>
-#include <json.hpp>
-
#include "result.hpp"
#include "wayland.hpp"
namespace wm {
-// Areas and layouts are defined to have a name, let's just keep it this way,
-// we will not copy them around anyway.
-struct area {
- std::string name;
- genivi::rect rect;
- uint32_t layer; // i.e. zorder?
-};
-
-struct layout {
- static constexpr unsigned MAX_N_AREAS = 2;
-
- std::string name;
- uint32_t n_areas;
- struct area areas[MAX_N_AREAS];
-};
-
-typedef std::vector<struct layout> layouts_type;
-
-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);
+struct LayoutState {
+ int main{-1};
+ int sub{-1};
- bool operator<(struct surface_id_to_layer const &rhs) const {
- return this->id_max < rhs.id_max;
+ bool operator==(const LayoutState &b) const {
+ return main == b.main && sub == b.sub;
}
-};
-
-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<struct surface_id_to_layer> map_type;
-
- map_type mapping;
- std::experimental::optional<int> 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()) {
- return std::experimental::optional<int>(i->layer_id);
- }
-
- return std::experimental::nullopt;
+ bool operator!=(const LayoutState &b) const {
+ return !(*this == b);
}
};
-struct result<struct surface_id_to_layer_map> to_surface_id_to_layer_map(
- nlohmann::json const &j);
-
} // namespace wm
#endif // TMCAGLWM_LAYOUT_HPP