add more spacing
[personal-kdebase.git] / workspace / libs / kephal / outputs / backendoutputs.h
blob2e2ee57abdd103106257ed60e86064e9af7a4aae
1 /*
2 * Copyright 2008 Aike J Sommer <dev@aikesommer.name>
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as
6 * published by the Free Software Foundation; either version 2,
7 * or (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details
14 * You should have received a copy of the GNU Library General Public
15 * License along with this program; if not, write to the
16 * Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21 #ifndef KEPHAL_BACKENDOUTPUTS_H
22 #define KEPHAL_BACKENDOUTPUTS_H
24 #include "kephal/outputs.h"
27 namespace Kephal {
29 class BackendOutput : public Output {
30 Q_OBJECT
31 public:
32 BackendOutput(QObject * parent);
34 public Q_SLOTS:
35 virtual bool applyGeom(const QRect & geom, float rate) = 0;
36 virtual bool applyOrientation(Rotation rotation, bool reflectX, bool reflectY) = 0;
37 virtual void deactivate() = 0;
39 virtual void revert();
40 virtual void mark();
42 private:
43 bool m_markedActive;
44 QRect m_markedGeom;
45 double m_markedRate;
46 Rotation m_markedRotation;
47 bool m_markedReflectX;
48 bool m_markedReflectY;
51 class BackendOutputs : public Outputs {
52 Q_OBJECT
53 public:
54 static BackendOutputs * self();
56 BackendOutputs(QObject * parent);
57 virtual ~BackendOutputs();
59 virtual bool activateLayout(const QMap<Output *, QRect> & layout);
60 virtual QList<BackendOutput *> backendOutputs();
61 virtual BackendOutput * backendOutput(const QString & id);
63 private:
64 static BackendOutputs * m_instance;
69 #endif // KEPHAL_BACKENDOUTPUTS_H