ibus-qt
1.3.1
|
00001 #ifndef __Q_IBUS_BUS_H_ 00002 #define __Q_IBUS_BUS_H_ 00003 00004 #include <QFileSystemWatcher> 00005 #include <QDBusConnection> 00006 #include "qibusobject.h" 00007 #include "qibusserializable.h" 00008 #include "qibusenginedesc.h" 00009 #include "qibuscomponent.h" 00010 #include "qibusengine.h" 00011 00012 class QDBusConnection; 00013 class IBusProxy; 00014 class DBusProxy; 00015 00016 namespace IBus { 00017 00018 class Bus; 00019 typedef Pointer<Bus> BusPointer; 00020 00021 class Bus : public Object 00022 { 00023 Q_OBJECT; 00024 00025 protected: 00026 00027 public: 00028 Bus (void); 00029 ~Bus (void); 00030 bool isConnected (void); 00031 const QDBusConnection &getConnection (void); 00032 00033 /* org.freedesktop.DBus methods */ 00034 QString hello (void); 00035 void addMatch (const QString &rule); 00036 void removeMatch (const QString &rule); 00037 QString getId (void); 00038 QString getNameOwner (const QString &name); 00039 QStringList listNames (void); 00040 bool nameHasOwner (const QString &name); 00041 uint requestName (const QString &name, uint flag); 00042 uint releaseName (const QString &name); 00043 00044 /* org.freedesktop.IBus methods */ 00045 QString createInputContext (const QString &name); 00046 bool registerComponent (const ComponentPointer &component); 00047 bool registerObject (const QString &path, QObject *obj); 00048 00049 QList<EngineDescPointer> listEngines (void); 00050 QList<EngineDescPointer> listActiveEngines (void); 00051 bool exit (bool restart = false); 00052 SerializablePointer ping (const SerializablePointer &data); 00053 00054 private: 00055 bool open (void); 00056 void reset (void); 00057 QString getSocketPath (void); 00058 QString getAddress (void); 00059 00060 signals: 00064 void disconnected (void); 00065 00069 void connected (void); 00070 00071 private slots: 00072 void slotAddressChanged (const QString &path); 00073 void slotIBusDisconnected (void); 00074 00075 private: 00076 QFileSystemWatcher m_watcher; 00077 QDBusConnection *m_connection; 00078 DBusProxy *m_dbus; 00079 IBusProxy *m_ibus; 00080 }; 00081 00082 }; 00083 00084 #endif