Lomiri
Loading...
Searching...
No Matches
WindowMargins.h
1/*
2 * Copyright (C) 2017 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 WINDOWMARGINS_H
18#define WINDOWMARGINS_H
19
20#include <QQuickItem>
21#include <QRectF>
22
23/*
24 * Specifies window margins for different Mir window types
25 *
26 * Used to inform MirAL so that it can take window management decisions that match
27 * the visuals drawn by Lomiri.
28 */
29class WindowMargins : public QQuickItem
30{
31 Q_OBJECT
32
33 // Margins for windows of normal type
34 Q_PROPERTY(QRectF normal READ normal WRITE setNormal NOTIFY normalChanged)
35
36 // Margins for windows of dialog type
37 Q_PROPERTY(QRectF dialog READ dialog WRITE setDialog NOTIFY dialogChanged)
38
39 // TODO: Add margins for other window types as needed
40
41public:
42 QRectF normal() const;
43 void setNormal(QRectF value);
44
45 QRectF dialog() const;
46 void setDialog(QRectF value);
47
48protected:
49 void itemChange(ItemChange change, const ItemChangeData &value) override;
50
51Q_SIGNALS:
52 void normalChanged();
53 void dialogChanged();
54private:
55 QRectF m_normal;
56 QRectF m_dialog;
57};
58
59#endif // WINDOWMARGINS_H