Unity 8
indicator.h
1 /*
2  * Copyright 2013 Canonical Ltd.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License as published by
6  * the Free Software Foundation; version 3.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU 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  * Authors:
17  * Renato Araujo Oliveira Filho <renato@canonical.com>
18  * Nick Dedekind <nick.dedekind@canonical.com>
19  */
20 
21 #ifndef INDICATOR_H
22 #define INDICATOR_H
23 
24 #include "unityindicatorsglobal.h"
25 
26 #include <QObject>
27 #include <QSettings>
28 
29 class UNITYINDICATORS_EXPORT Indicator : public QObject
30 {
31  Q_OBJECT
32 public:
33  typedef QSharedPointer<Indicator> Ptr;
34 
35  Indicator(QObject *parent = 0);
36  virtual ~Indicator();
37 
38  void init(const QString& busName, const QSettings& settings);
39 
40  QString identifier() const;
41  int position() const;
42  QVariant indicatorProperties() const;
43 
44 public Q_SLOTS:
45  void setProfile(const QString& profile);
46 
47 Q_SIGNALS:
48  void identifierChanged(const QString &identifier);
49  void positionChanged(int position);
50  void indicatorPropertiesChanged(const QVariant &properties);
51 
52 protected:
53  void setId(const QString &id);
54  void setPosition(int position);
55  void setIndicatorProperties(const QVariant &properties);
56 
57 private:
58  QString m_identifier;
59  int m_position;
60  QVariant m_properties;
61  QVariantMap m_settings;
62 };
63 
64 #endif // INDICATOR_H