File: SourceInterface.h

package info (click to toggle)
lomiri-api 0.2.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,248 kB
  • sloc: cpp: 6,415; python: 264; ansic: 96; makefile: 29; sh: 17
file content (86 lines) | stat: -rw-r--r-- 2,078 bytes parent folder | download | duplicates (4)
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/*
 * Copyright 2013 Canonical Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation; version 3.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * Authors:
 *      MichaƂ Sawicz <michal.sawicz@canonical.com>
 */


#ifndef LOMIRI_SHELL_NOTIFICATIONS_SOURCEINTERFACE_H
#define LOMIRI_SHELL_NOTIFICATIONS_SOURCEINTERFACE_H

#include <lomiri/SymbolExport.h>

#include <QtCore/QObject>

namespace lomiri
{

namespace shell
{

namespace notifications
{


class ModelInterface;

/**
\brief A source of notifications

This should feed the model with new notifications from an implementation-specific
source.
*/
class LOMIRI_API SourceInterface : public QObject
{
    Q_OBJECT

    /**
    \brief The model to which to send incoming notifications.

    \accessors %model(), setModel(ModelInterface* model)
    \notifier modelChanged(ModelInterface* model)
    */
    Q_PROPERTY(lomiri::shell::notifications::ModelInterface* model READ model WRITE setModel NOTIFY modelChanged)

protected:
    /// @cond
    explicit SourceInterface(QObject* parent = 0) : QObject(parent) { }
    /// @endcond

public:
    virtual ~SourceInterface() { }

    /// @cond
    virtual ModelInterface* model() const = 0;
    virtual void setModel(ModelInterface* model) = 0;
    /// @endcond

Q_SIGNALS:
    /**
    Emitted when value of the model property has changed.

    \param model New value of the model property.
    */
    void modelChanged(ModelInterface* model);
};

} // namespace notifications

} // namespace shell

} // namespace lomiri

#endif // LOMIRI_SHELL_NOTIFICATIONS_SOURCEINTERFACE_H