File indexing completed on 2024-04-14 04:53:33

0001 /* This file is part of the KDE project
0002    Copyright (C) 2009 Collabora Ltd <info@collabora.co.uk>
0003     @author George Goldberg <george.goldberg@collabora.co.uk>
0004 
0005    This program is free software; you can redistribute it and/or
0006    modify it under the terms of the GNU General Public
0007    License as published by the Free Software Foundation; either
0008    version 2 of the License, or (at your option) any later version.
0009 
0010    This program is distributed in the hope that it will be useful,
0011    but WITHOUT ANY WARRANTY; without even the implied warranty of
0012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0013    General Public License for more details.
0014 
0015    You should have received a copy of the GNU General Public License
0016    along with this program; see the file COPYING.  If not, write to
0017    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0018    Boston, MA 02110-1301, USA.
0019 */
0020 
0021 #ifndef KRFB_EVENTSMANAGER_H
0022 #define KRFB_EVENTSMANAGER_H
0023 
0024 #include "events.h"
0025 
0026 #include "krfbprivate_export.h"
0027 
0028 #include <QtCore/QMap>
0029 #include <QtCore/QObject>
0030 #include <QtCore/QSharedPointer>
0031 #include <QtCore/QWeakPointer>
0032 
0033 #include <QWidget>
0034 
0035 class EventsPlugin;
0036 class KPluginFactory;
0037 
0038 class KRFBPRIVATE_EXPORT EventsManager : public QObject
0039 {
0040     Q_OBJECT
0041     friend class EventsManagerStatic;
0042 
0043 public:
0044     static EventsManager *instance();
0045 
0046     ~EventsManager() override;
0047 
0048     QSharedPointer<EventHandler> eventHandler();
0049 
0050 private:
0051     Q_DISABLE_COPY(EventsManager)
0052 
0053     EventsManager();
0054 
0055     QMap<QString, EventsPlugin *> m_plugins;
0056     QList<QWeakPointer<EventHandler> > m_eventHandlers;
0057 };
0058 
0059 
0060 #endif  // Header guard