on bionic help sign in
unity8/plugins/WindowManager/WindowMargins.h
59 lines 1.7 kB history raw
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 */
17#ifndef WINDOWMARGINS_H
18#define WINDOWMARGINS_H
20#include <QQuickItem>
21#include <QRectF>
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 Unity.
28 */
29class WindowMargins : public QQuickItem
31 Q_OBJECT
33 // Margins for windows of normal type
34 Q_PROPERTY(QRectF normal READ normal WRITE setNormal NOTIFY normalChanged)
36 // Margins for windows of dialog type
37 Q_PROPERTY(QRectF dialog READ dialog WRITE setDialog NOTIFY dialogChanged)
39 // TODO: Add margins for other window types as needed
41public:
42 QRectF normal() const;
43 void setNormal(QRectF value);
45 QRectF dialog() const;
46 void setDialog(QRectF value);
48protected:
49 void itemChange(ItemChange change, const ItemChangeData &value) override;
51Q_SIGNALS:
52 void normalChanged();
53 void dialogChanged();
54private:
55 QRectF m_normal;
56 QRectF m_dialog;
57};
59#endif // WINDOWMARGINS_H