~cemil-azizoglu/miral/mir-0.26.1-compat

« back to all changes in this revision

Viewing changes to miral-qt/src/platforms/mirserver/windowmanagementpolicy.h

  • Committer: Larry Price
  • Date: 2016-09-13 16:19:29 UTC
  • mto: (330.4.1 miral)
  • mto: This revision was merged to the branch mainline in revision 352.
  • Revision ID: larry.price@canonical.com-20160913161929-vs9ka1capmljq1es
Removing miral-qt from release branch, updating copyright file, and adding GPL3 license to root dir

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright (C) 2016 Canonical, Ltd.
3
 
 *
4
 
 * This program is free software: you can redistribute it and/or modify it under
5
 
 * the terms of the GNU Lesser General Public License version 3, as published by
6
 
 * the Free Software Foundation.
7
 
 *
8
 
 * This program is distributed in the hope that it will be useful, but WITHOUT
9
 
 * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
10
 
 * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11
 
 * Lesser General Public License for more details.
12
 
 *
13
 
 * You should have received a copy of the GNU Lesser General Public License
14
 
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
15
 
 */
16
 
 
17
 
#ifndef WINDOWMANAGEMENTPOLICY_H
18
 
#define WINDOWMANAGEMENTPOLICY_H
19
 
 
20
 
#include "miral/canonical_window_manager.h"
21
 
 
22
 
#include "qteventfeeder.h"
23
 
#include "windowcontroller.h"
24
 
#include "windowmodelnotifier.h"
25
 
 
26
 
#include <QScopedPointer>
27
 
#include <QSize>
28
 
 
29
 
using namespace mir::geometry;
30
 
 
31
 
class ScreensModel;
32
 
 
33
 
class WindowManagementPolicy : public miral::CanonicalWindowManagerPolicy
34
 
{
35
 
public:
36
 
    WindowManagementPolicy(const miral::WindowManagerTools &tools,
37
 
                           qtmir::WindowModelNotifier &windowModel,
38
 
                           qtmir::WindowController &windowController,
39
 
                           const QSharedPointer<ScreensModel> screensModel);
40
 
 
41
 
    // From WindowManagementPolicy
42
 
    auto place_new_surface(const miral::ApplicationInfo &app_info,
43
 
                           const miral::WindowSpecification &request_parameters)
44
 
        -> miral::WindowSpecification override;
45
 
 
46
 
    void handle_window_ready(miral::WindowInfo &windowInfo) override;
47
 
    void handle_modify_window(
48
 
            miral::WindowInfo &windowInfo,
49
 
            const miral::WindowSpecification &modifications) override;
50
 
    void handle_raise_window(miral::WindowInfo &windowInfo) override;
51
 
 
52
 
    bool handle_keyboard_event(const MirKeyboardEvent *event) override;
53
 
    bool handle_touch_event(const MirTouchEvent *event) override;
54
 
    bool handle_pointer_event(const MirPointerEvent *event) override;
55
 
 
56
 
    void advise_begin() override;
57
 
    void advise_end() override;
58
 
 
59
 
    void advise_new_app(miral::ApplicationInfo &application) override;
60
 
    void advise_delete_app(const miral::ApplicationInfo &application) override;
61
 
 
62
 
    void advise_new_window(const miral::WindowInfo &windowInfo) override;
63
 
    void advise_focus_lost(const miral::WindowInfo &info) override;
64
 
    void advise_focus_gained(const miral::WindowInfo &info) override;
65
 
    void advise_state_change(const miral::WindowInfo &info, MirSurfaceState state) override;
66
 
    void advise_move_to(const miral::WindowInfo &windowInfo, Point topLeft) override;
67
 
    void advise_resize(const miral::WindowInfo &info, const Size &newSize) override;
68
 
    void advise_delete_window(const miral::WindowInfo &windowInfo) override;
69
 
    void advise_raise(const std::vector<miral::Window> &windows) override;
70
 
 
71
 
    // Methods for consumption by WindowControllerInterface
72
 
    void deliver_keyboard_event(const MirKeyboardEvent *event, const miral::Window &window);
73
 
    void deliver_touch_event   (const MirTouchEvent *event,    const miral::Window &window);
74
 
    void deliver_pointer_event (const MirPointerEvent *event,  const miral::Window &window);
75
 
 
76
 
    void focus (const miral::Window &window);
77
 
    void resize(const miral::Window &window, const Size size);
78
 
    void move  (const miral::Window &window, const Point topLeft);
79
 
 
80
 
    void ask_client_to_close(const miral::Window &window);
81
 
 
82
 
Q_SIGNALS:
83
 
 
84
 
private:
85
 
    miral::WindowManagerTools m_tools;
86
 
    qtmir::WindowModelNotifier &m_windowModel;
87
 
    const QScopedPointer<QtEventFeeder> m_eventFeeder;
88
 
};
89
 
 
90
 
#endif // WINDOWMANAGEMENTPOLICY_H