00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef QIMSYSAPPLICATIONMANAGER_H
00022 #define QIMSYSAPPLICATIONMANAGER_H
00023
00024 #include "qimsysglobal.h"
00025 #include "qimsysabstractipcobject.h"
00026 #include <QIcon>
00027
00028 class QIMSYS_EXPORT QimsysApplicationManager : public QimsysAbstractIpcObject
00029 {
00030 Q_OBJECT
00031 Q_PROPERTY(QString displayLanguage READ displayLanguage WRITE setDisplayLanguage NOTIFY displayLanguageChanged)
00032 Q_PROPERTY(uint focus READ focus WRITE setFocus NOTIFY focusChanged)
00033 Q_PROPERTY(bool composing READ composing WRITE setComposing NOTIFY composingChanged)
00034 Q_PROPERTY(QString inputLanguage READ inputLanguage WRITE setInputLanguage NOTIFY inputLanguageChanged)
00035 Q_PROPERTY(QIcon currentIcon READ currentIcon WRITE setCurrentIcon NOTIFY currentIconChanged)
00036 Q_PROPERTY(QString currentEngine READ currentEngine WRITE setCurrentEngine NOTIFY currentEngineChanged)
00037 Q_ENUMS(QimsysApplicationManager::ActionType)
00038 Q_CLASSINFO("D-Bus Interface", "local.ApplicationManager")
00039 Q_DISABLE_COPY(QimsysApplicationManager)
00040 public:
00041 enum ActionType {
00042 Reset,
00043 ShowDictionary,
00044 ShowSettings,
00045 ShowAboutQimsys,
00046 };
00047
00048 explicit QimsysApplicationManager(QObject *parent = 0, Type type = Client);
00049 ~QimsysApplicationManager();
00050 virtual bool init();
00051
00052 public slots:
00053 uint focus() const;
00054 bool composing() const;
00055 QString displayLanguage() const;
00056 QString inputLanguage() const;
00057 QString currentEngine() const;
00058 QIcon currentIcon() const;
00059
00060 public slots:
00061 void setFocus(uint focus);
00062 void setComposing(bool composing);
00063 void setDisplayLanguage(const QString &displayLanguage);
00064 void setInputLanguage(const QString &inputLanguage);
00065 void setCurrentEngine(const QString ¤tEngine);
00066 void setCurrentIcon(const QIcon &icon);
00067
00068 void exec(int action);
00069 void settingsUpdate(const QString &name);
00070
00071 signals:
00072 void focusChanged(uint focus);
00073 void composingChanged(bool composing);
00074 void displayLanguageChanged(const QString &displayLanguage);
00075 void inputLanguageChanged(const QString &inputLanguage);
00076 void currentEngineChanged(const QString ¤tEngine);
00077 void currentIconChanged(const QIcon ¤tIcon);
00078
00079 void triggered(int action);
00080 void settingsUpdated(const QString &name);
00081
00082 protected:
00083 QimsysAbstractIpcObject *server() const;
00084
00085 private:
00086 class Private;
00087 Private *d;
00088 };
00089
00090 #ifndef QIMSYS_NO_DBUS
00091
00092 DBUSARGUMENT_IN(QIcon &e,
00093 arg.beginStructure();
00094 QByteArray ba;
00095 arg >> ba;
00096 {
00097 QDataStream stream(ba);
00098 stream >> e;
00099 }
00100 arg.endStructure();
00101 )
00102
00103 #include <QBuffer>
00104
00105 DBUSARGUMENT_OUT(const QIcon &e,
00106 arg.beginStructure();
00107 QByteArray ba;
00108 {
00109 QBuffer buffer(&ba);
00110 QDataStream stream(&buffer);
00111 stream << e;
00112 }
00113 arg << ba;
00114 arg.endStructure();
00115 )
00116 #endif
00117
00118 #endif