aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/src-cpp/ScreenObject.h
blob: 49f266c312cc7d55f60059f832b23c7fcde1f7a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//===========================================
//  Lumina-desktop source code
//  Copyright (c) 2017, Ken Moore
//  Available under the 3-clause BSD license
//  See the LICENSE file for full details
//===========================================
// This is the base C++ object that is used to pass information to the QML "RootDesktop" object
//===========================================
#ifndef _LUMINA_DESKTOP_ROOT_DESKTOP_OBJECT_H
#define _LUMINA_DESKTOP_ROOT_DESKTOP_OBJECT_H

class ScreenObject : public QObject{
	Q_OBJECT
	Q_PROPERTY( QString name READ name )
	Q_PROPERTY( QString background READ background NOTIFY backgroundChanged)
	Q_PROPERTY( int x READ x NOTIFY geomChanged)
	Q_PROPERTY( int y READ y NOTIFY geomChanged)
	Q_PROPERTY( int width READ width NOTIFY geomChanged)
	Q_PROPERTY( int height READ height NOTIFY geomChanged)

private:
	QScreen *bg_screen;
	QString bg;

public
	ScreenObject(QScreen *scrn, QObject *parent = 0) : QObject(parent){
	  bg_screen = scrn;
	}

	static void RegisterType(){ qmlRegisterType<RootDesktopObject>("Lumina.Backend.ScreenObject",2,0, "ScreenObject");

	QString name(){ return bg_screen->name(); }
	QString background(){ return bg; }
	int x(){ return bg_screen->geometry().x(); }
	int y(){ return bg_screen->geometry().y(); }
	int width(){ return bg_screen->geometry().width(); }
	int height(){ return bg_screen->geometry().height(); }

public slots:
	void setBackground(QString fileOrColor){
	  if(bg!=fileOrColor){
	    bg = fileOrColor;
	    emit backgroundChanged();
	  }
	}

signals:
	void backgroundChanged();
	void geomChanged();
};
bgstack15