2
* Copyright © 2013 Canonical Ltd.
4
* This program is free software: you can redistribute it and/or modify it
5
* under the terms of the GNU General Public License version 3,
6
* as published by the Free Software Foundation.
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
13
* You should have received a copy of the GNU General Public License
14
* along with this program. If not, see <http://www.gnu.org/licenses/>.
16
* Authored by: Robert Carr <robert.carr@canonical.com>
19
#ifndef MIR_EXAMPLES_WINDOW_MANAGER_H_
20
#define MIR_EXAMPLES_WINDOW_MANAGER_H_
22
#include "mir/input/event_filter.h"
23
#include "mir/geometry/displacement.h"
24
#include "mir/geometry/size.h"
32
class FocusController;
45
class WindowManager : public input::EventFilter
49
~WindowManager() = default;
51
void set_focus_controller(std::shared_ptr<shell::FocusController> const& focus_controller);
52
void set_display(std::shared_ptr<graphics::Display> const& display);
53
void set_compositor(std::shared_ptr<compositor::Compositor> const& compositor);
55
bool handle(MirEvent const& event) override;
58
WindowManager(const WindowManager&) = delete;
59
WindowManager& operator=(const WindowManager&) = delete;
62
std::shared_ptr<shell::FocusController> focus_controller;
63
std::shared_ptr<graphics::Display> display;
64
std::shared_ptr<compositor::Compositor> compositor;
66
geometry::Point click;
67
geometry::Point old_pos;
68
geometry::Point old_cursor;
69
geometry::Size old_size;
71
int max_fingers; // Maximum number of fingers touched during gesture
77
#endif // MIR_EXAMPLES_WINDOW_MANAGER_H_