X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Flayout.hpp;h=b7a3c288c7be594d1203f56c46c41cde521d3c56;hb=d6cd682d471b7bd8196ee6e031832f6307b3a8cf;hp=3308cf6b1d716fdb22f1f6112d2c3ff1346eeb8e;hpb=338b42692be66d7812882e13f8c958b719968243;p=staging%2Fwindowmanager.git diff --git a/src/layout.hpp b/src/layout.hpp index 3308cf6..b7a3c28 100644 --- a/src/layout.hpp +++ b/src/layout.hpp @@ -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 -#include -#include #include -#include - #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 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 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; + bool operator!=(const LayoutState &b) const { + return !(*this == b); } }; -struct result to_surface_id_to_layer_map( - nlohmann::json const &j); - } // namespace wm #endif // TMCAGLWM_LAYOUT_HPP