kdelirc
irkick.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef __IRKICK_H
00011 #define __IRKICK_H
00012
00013
00014 #include <QMouseEvent>
00015
00016 #include <ksystemtray.h>
00017 #include <kdedmodule.h>
00018 #include <kaboutdata.h>
00019
00020
00021 #include "modes.h"
00022 #include "iractions.h"
00023 #include "klircclient.h"
00024
00025 class QMouseEvent;
00026
00027 class IRKTrayIcon: public KSystemTray
00028 {
00029 void mousePressEvent(QMouseEvent *e);
00030
00031 public:
00032 KMenu* contextMenu() const { return KSystemTray::contextMenu(); }
00033 KActionCollection* actionCollection() { return KSystemTray::actionCollection(); }
00034
00035 IRKTrayIcon(QWidget *parent = 0, const char *name = 0): KSystemTray(parent) {}
00036 };
00037
00038 class IRKick: public QObject
00039 {
00040 Q_OBJECT
00041 Q_CLASSINFO("D-Bus Interface", "org.kde.irkick");
00042
00043
00044 QString npApp, npModule, npMethod;
00045 QMap<QString, QString> currentModes;
00046 QMap<QString, IRKTrayIcon *> currentModeIcons;
00047 IRActions allActions;
00048 int theResetCount;
00049 Modes allModes;
00050
00051 IRKTrayIcon *theTrayIcon;
00052 KAboutData *aboutData;
00053 QTimer *theFlashOff;
00054
00055 void updateModeIcons();
00056
00057 protected:
00058 KLircClient *theClient;
00059
00060 public slots:
00066 bool isConnected() { return theClient->isConnected(); }
00067
00075 bool haveFullList() { return theClient->haveFullList(); }
00076
00082 const QStringList remotes() { return theClient->remotes(); }
00083
00089 const QStringList buttons(QString theRemote) { return theClient->buttons(theRemote); }
00090
00098 void stealNextPress(QString app, QString module, QString method);
00099
00103 void dontStealNextPress();
00104
00108 void reloadConfiguration() { slotReloadConfiguration(); }
00109
00110 private slots:
00111 void gotMessage(const QString &theRemote, const QString &theButton, int theRepeatCounter);
00112 void resetModes();
00113 void doQuit();
00114 void flashOff();
00115 void checkLirc();
00116
00117 void slotConfigure();
00118 void slotReloadConfiguration();
00119 void slotClosed();
00120 private:
00121 void executeAction(const IRAction &action);
00122 bool getPrograms(const IRAction &action, QStringList &populous);
00123
00124 public:
00125 IRKick(const QString &obj);
00126 virtual ~IRKick();
00127 };
00128
00129 #endif