policy: add a simple policy stub, broke some layouting tho
[staging/windowmanager.git] / src / layout.hpp
index 3308cf6..b7a3c28 100644 (file)
@@ -1,79 +1,43 @@
-//
-// 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()) {
-         if (i->id_min <= surface_id) {
-            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