summaryrefslogtreecommitdiff
path: root/libsowatch/notificationplugininterface.h
blob: fa75dddfea5c0f8afba2ebdce9e6ccfc1d41984a (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
#ifndef SOWATCH_NOTIFICATIONPLUGININTERFACE_H
#define SOWATCH_NOTIFICATIONPLUGININTERFACE_H

#include <QtPlugin>
#include <QtCore/QSettings>
#include <QtCore/QStringList>
#include <QtGui/QIcon>
#include "sowatch_global.h"

namespace sowatch
{

class ConfigKey;
class Notification;
class NotificationProvider;

class SOWATCH_EXPORT NotificationPluginInterface
{
public:
	virtual ~NotificationPluginInterface();

	struct NotificationProviderInfo {
		QString name;
		QIcon icon;
	};

	virtual QStringList providers() = 0;
	virtual NotificationProviderInfo describeProvider(const QString& driver) = 0;
	virtual NotificationProvider* getProvider(const QString& driver, ConfigKey *settings, QObject *parent = 0) = 0;
};

}

Q_DECLARE_INTERFACE(sowatch::NotificationPluginInterface, "com.javispedro.sowatch.NotificationPluginInterface")

#endif // SOWATCH_NOTIFICATIONPLUGININTERFACE_H