00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef QIMSYSPREEDIT_H
00022 #define QIMSYSPREEDIT_H
00023
00024 #include "qimsysglobal.h"
00025 #include "qimsysabstractipcobject.h"
00026 #include "qimsyspreedititem.h"
00027 #include <QRect>
00028 #include <QFont>
00029
00030 class QIMSYS_EXPORT QimsysPreedit : public QimsysAbstractIpcObject
00031 {
00032 Q_OBJECT
00033 Q_PROPERTY(QimsysPreeditItemList items READ items WRITE setItems NOTIFY itemsChanged)
00034 Q_PROPERTY(QRect rect READ rect WRITE setRect NOTIFY rectChanged)
00035 Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged)
00036 Q_PROPERTY(int cursorPosition READ cursorPosition WRITE setCursorPosition NOTIFY cursorPositionChanged)
00037 Q_PROPERTY(QString surroundingText READ surroundingText WRITE setSurroundingText NOTIFY surroundingTextChanged)
00038 Q_PROPERTY(QString currentSelection READ currentSelection WRITE setCurrentSelection NOTIFY currentSelectionChanged)
00039 Q_PROPERTY(int maximumTextLength READ maximumTextLength WRITE setMaximumTextLength NOTIFY maximumTextLengthChanged)
00040 Q_CLASSINFO("D-Bus Interface", "local.Preedit")
00041 Q_DISABLE_COPY(QimsysPreedit)
00042 public:
00043 explicit QimsysPreedit(QObject *parent = 0, Type type = Client);
00044 ~QimsysPreedit();
00045
00046 virtual bool init();
00047
00048 public slots:
00049 virtual QimsysPreeditItemList items() const;
00050 virtual QRect rect() const;
00051 virtual QFont font() const;
00052 virtual int cursorPosition() const;
00053 virtual QString surroundingText() const;
00054 virtual QString currentSelection() const;
00055 virtual int maximumTextLength() const;
00056
00057 public slots:
00058 virtual void setItems(const QimsysPreeditItemList &items);
00059 virtual void setRect(const QRect &rect);
00060 virtual void setFont(const QFont &font);
00061 virtual void setCursorPosition(int cursorPosition);
00062 virtual void setSurroundingText(const QString &surroundingText);
00063 virtual void setCurrentSelection(const QString ¤tSelection);
00064 virtual void setMaximumTextLength(int maximumTextLength);
00065
00066 virtual void commit(uint target = 0);
00067
00068 signals:
00069 void itemsChanged(const QimsysPreeditItemList &items);
00070 void rectChanged(const QRect &rect);
00071 void fontChanged(const QFont &font);
00072 void cursorPositionChanged(int cursorPosition);
00073 void surroundingTextChanged(const QString &surroundingText);
00074 void currentSelectionChanged(const QString ¤tSelection);
00075 void maximumTextLengthChanged(int maximumTextLength);
00076
00077 void committed(const QString &commitString, uint target);
00078
00079 protected:
00080 QimsysAbstractIpcObject *server() const;
00081
00082 private:
00083 class Private;
00084 Private *d;
00085 };
00086
00087 #ifndef QIMSYS_NO_DBUS
00088 DBUSARGUMENT_OUT(QFont value,
00089 arg.beginStructure();
00090 arg << value.toString();
00091 arg.endStructure();
00092 )
00093
00094 DBUSARGUMENT_IN(QFont &value,
00095 arg.beginStructure();
00096 value.fromString(qdbus_cast<QString>(arg));
00097 arg.endStructure();
00098 )
00099 #endif
00100
00101 #endif