#ifndef QINPUTCONTEXTPLUGIN_H
#define QINPUTCONTEXTPLUGIN_H 
#include <QtCore/qplugin.h>
#include <QtCore/qfactoryinterface.h>
#include <QtCore/qstringlist.h>
typedef enum QtValidLicenseForGuiModule QtGuiModule;
#if !defined(QT_NO_IM) && !defined(QT_NO_LIBRARY)
struct QInputContext;
struct QInputContextPluginPrivate;
struct QInputContextFactoryInterface: public QFactoryInterface{
   public: virtual struct QInputContext* create(class QString const & key) = 0;
   public: virtual class QStringList languages(class QString const & key) = 0;
   public: virtual class QString displayName(class QString const & key) = 0;
   public: virtual class QString description(class QString const & key) = 0;
};
#define QInputContextFactoryInterface_iid "com.trolltech.Qt.QInputContextFactoryInterface"

class QInputContextPlugin: public QObject, public QInputContextFactoryInterface{
   public: virtual struct QMetaObject const * metaObject() const
   public: virtual void* qt_metacast(char const *);
   public: static struct QMetaObject const staticMetaObject;
   public: static inline class QString tr(char const * s, char const * c = 0);
   public: static inline class QString trUtf8(char const * s, char const * c = 0);
   public: static inline class QString tr(char const * s, char const * c, int n);
   public: static inline class QString trUtf8(char const * s, char const * c, int n);
   public: virtual int qt_metacall(enum QMetaObject::Call, int, void* *);
   public: explicit QInputContextPlugin(class QObject* parent = 0);
   public: virtual ~QInputContextPlugin();
   public: virtual class QStringList keys() const = 0;
   public: virtual struct QInputContext* create(class QString const & key) = 0;
   public: virtual class QStringList languages(class QString const & key) = 0;
   public: virtual class QString displayName(class QString const & key) = 0;
   public: virtual class QString description(class QString const & key) = 0;
};
#endif // QT_NO_IM
#endif // QINPUTCONTEXTPLUGIN_H