00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef QIMSYSENGINE_H
00022 #define QIMSYSENGINE_H
00023
00024 #include "qimsysabstractpluginobject.h"
00025 #include "qimsysconversionitem.h"
00026
00027 class QimsysEngineDictionary;
00028
00029 class QIMSYS_EXPORT QimsysEngine : public QimsysAbstractPluginObject
00030 {
00031 Q_OBJECT
00032 Q_PROPERTY(bool available READ isAvailable WRITE setAvailable NOTIFY availableChanged)
00033 public:
00034 QimsysEngine(QObject *parent = 0);
00035 ~QimsysEngine();
00036
00037 virtual QString identifier() const = 0;
00038
00039 virtual bool isAvailable() const;
00040
00041 virtual QimsysEngineDictionary *dictionary(QObject *parent = 0);
00042
00043 public slots:
00044 virtual void setRawString(const QString &rawString) = 0;
00045 virtual void setInputString(const QString &inputString) = 0;
00046 virtual void convert() = 0;
00047 virtual void resize(int index, int delta) = 0;
00048 virtual void commit(const QimsysConversionItemList &conversions) = 0;
00049 virtual void cancel();
00050
00051 public:
00052 virtual QimsysConversionItemList candidates(int index) = 0;
00053
00054 signals:
00055 void conversionsChanged(const QimsysConversionItemList &conversions);
00056 void predicted(const QimsysConversionItemList &predictions);
00057 void availableChanged(bool available);
00058
00059 protected slots:
00060 void setAvailable(bool available);
00061
00062 private:
00063 class Private;
00064 Private *d;
00065 };
00066
00067 #endif//QIMSYSENGINE_H