~dyams/unity-2d/remove-glow

« back to all changes in this revision

Viewing changes to libunity-2d-private/src/screeninfo.h

  • Committer: Tarmac
  • Author(s): Michał Sawicz, Albert Astals
  • Date: 2012-02-07 11:29:36 UTC
  • mfrom: (879.11.17 refactor-screeninfo)
  • Revision ID: tarmac-20120207112936-r1iya0418z3d7evn
This, in itself, will not change anything in unity-2d, but will later allow for easier multi-monitor implementation.. Fixes: . Approved by Gerry Boland.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef SCREENINFO_H
 
2
#define SCREENINFO_H
 
3
 
 
4
#include <QObject>
 
5
#include <QRect>
 
6
 
 
7
class QEvent;
 
8
class QWidget;
 
9
 
 
10
class ScreenInfo : public QObject
 
11
{
 
12
    Q_OBJECT
 
13
 
 
14
    Q_PROPERTY(QRect geometry READ geometry NOTIFY geometryChanged)
 
15
    Q_PROPERTY(QRect availableGeometry READ availableGeometry NOTIFY availableGeometryChanged)
 
16
    Q_PROPERTY(QRect panelsFreeGeometry READ panelsFreeGeometry NOTIFY panelsFreeGeometryChanged)
 
17
    Q_PROPERTY(int screen READ screen WRITE setScreen NOTIFY screenChanged)
 
18
    Q_PROPERTY(QWidget* widget READ widget WRITE setWidget NOTIFY widgetChanged)
 
19
    Q_PROPERTY(Corner corner READ corner WRITE setCorner NOTIFY cornerChanged)
 
20
 
 
21
public:
 
22
    enum Corner {
 
23
        InvalidCorner,
 
24
        TopLeft,
 
25
        TopRight,
 
26
        BottomLeft,
 
27
        BottomRight
 
28
    };
 
29
 
 
30
    /* Getters */
 
31
    explicit ScreenInfo(QObject *parent = 0);
 
32
    ScreenInfo(QWidget* widget, QObject *parent = 0);
 
33
    ScreenInfo(int screen, QObject *parent = 0);
 
34
    ScreenInfo(Corner corner, QObject *parent = 0);
 
35
    ~ScreenInfo();
 
36
    QRect availableGeometry() const;
 
37
    QRect panelsFreeGeometry() const;
 
38
    QRect geometry() const;
 
39
    int screen() const;
 
40
    QWidget* widget() const;
 
41
    Corner corner() const;
 
42
 
 
43
    /* Setters */
 
44
    void setScreen(int screen);
 
45
    void setWidget(QWidget* widget);
 
46
    void setCorner(Corner corner);
 
47
 
 
48
 
 
49
protected:
 
50
    bool eventFilter(QObject *object, QEvent *event);
 
51
 
 
52
Q_SIGNALS:
 
53
    void geometryChanged(QRect geometry);
 
54
    void availableGeometryChanged(QRect availableGeometry);
 
55
    void panelsFreeGeometryChanged(QRect panelsFreeGeometry);
 
56
    void screenChanged(int screen);
 
57
    void widgetChanged(QWidget* widget);
 
58
    void cornerChanged(Corner corner);
 
59
 
 
60
private Q_SLOTS:
 
61
    void updateGeometry(int screen);
 
62
    void updateAvailableGeometry(int screen);
 
63
 
 
64
private:
 
65
    void updateScreen();
 
66
    int cornerScreen(Corner corner);
 
67
    int m_screen;
 
68
    QWidget* m_widget;
 
69
    Corner m_corner;
 
70
};
 
71
 
 
72
#endif // SCREENINFO_H