00001 #ifndef __Q_IBUS_ENGINE_H_
00002 #define __Q_IBUS_ENGINE_H_
00003
00004 #include <QDBusVariant>
00005 #include "qibustypes.h"
00006 #include "qibustext.h"
00007 #include "qibusproplist.h"
00008 #include "qibuslookuptable.h"
00009
00010 class IBusEngineAdaptor;
00011
00012 namespace IBus {
00013
00014 class Engine;
00015 typedef Pointer<Engine> EnginePointer;
00016
00017 class Engine : public Object
00018 {
00019 Q_OBJECT
00020
00021 public :
00027 Engine (const QString &engineName);
00028
00034 virtual ~Engine ();
00035
00036 public :
00042 const QString & engineName () const;
00043
00051 void updateLookupTableFast (const LookupTablePointer & lookupTable, bool visible);
00052
00053 public :
00060 void commitText (const TextPointer & text)
00061 {
00062 QDBusVariant variant;
00063 CommitText (qDBusVariantFromSerializable (text, variant));
00064 }
00065
00071 void cursorDownLookupTable ()
00072 {
00073 CursorDownLookupTable();
00074 }
00075
00081 void cursorUpLookupTable ()
00082 {
00083 CursorUpLookupTable();
00084 }
00085
00094 void forwardKeyEvent (uint keyval, uint keycode, uint state)
00095 {
00096 ForwardKeyEvent(keyval, keycode, state);
00097 }
00098
00104 void hideAuxiliaryText ()
00105 {
00106 HideAuxiliaryText();
00107 }
00108
00114 void hideLookupTable ()
00115 {
00116 HideLookupTable();
00117 }
00118
00124 void hidePreeditText ()
00125 {
00126 HidePreeditText();
00127 }
00128
00134 void pageDownLookupTable ()
00135 {
00136 PageDownLookupTable();
00137 }
00138
00144 void pageUpLookupTable ()
00145 {
00146 PageUpLookupTable();
00147 }
00148
00155 void registerProperties (const PropListPointer & props)
00156 {
00157 QDBusVariant variant;
00158 RegisterProperties(qDBusVariantFromSerializable (props, variant));
00159 }
00160
00166 void showAuxiliaryText ()
00167 {
00168 ShowAuxiliaryText();
00169 }
00170
00176 void showLookupTable ()
00177 {
00178 ShowLookupTable();
00179 }
00180
00186 void showPreeditText ()
00187 {
00188 ShowPreeditText();
00189 }
00190
00198 void updateAuxiliaryText (const TextPointer & text, bool visible)
00199 {
00200 QDBusVariant variant;
00201 UpdateAuxiliaryText (qDBusVariantFromSerializable (text, variant), visible);
00202 }
00203
00211 void updateLookupTable (const LookupTablePointer & lookupTable, bool visible)
00212 {
00213 QDBusVariant variant;
00214 UpdateLookupTable (qDBusVariantFromSerializable (lookupTable, variant), visible);
00215 }
00216
00226 void updatePreeditText (const TextPointer & text, uint cursorPos, bool visible, uint mode = EnginePreeditClear)
00227 {
00228 QDBusVariant variant;
00229 UpdatePreeditText (qDBusVariantFromSerializable (text, variant), cursorPos, visible, mode);
00230 }
00231
00238 void updateProperty (const PropertyPointer & prop)
00239 {
00240 QDBusVariant variant;
00241 UpdateProperty (qDBusVariantFromSerializable (prop, variant));
00242 }
00243
00244 public:
00254 virtual void candidateClicked (uint index, uint button, uint state);
00255
00261 virtual void cursorDown ();
00262
00268 virtual void cursorUp ();
00269 virtual void destroy ();
00270
00276 virtual void disable ();
00277
00283 virtual void enable ();
00284
00290 virtual void focusIn ();
00291
00297 virtual void focusOut ();
00298
00304 virtual void pageDown ();
00305
00311 virtual void pageUp ();
00312
00322 virtual bool processKeyEvent (uint keyval, uint keycode, uint state);
00323
00331 virtual void propertyActivate (const QString &prop_name, int prop_state);
00332
00339 virtual void propertyHide (const QString &prop_name);
00340
00347 virtual void propertyShow (const QString &prop_name);
00348
00354 virtual void reset ();
00355
00362 virtual void setCapabilities (uint cap);
00363
00373 virtual void setCursorLocation (int x, int y, int w, int h);
00374
00375 private Q_SLOTS:
00376 Q_INVOKABLE void CandidateClicked (uint index, uint button, uint state);
00377 Q_INVOKABLE void CursorDown ();
00378 Q_INVOKABLE void CursorUp ();
00379 Q_INVOKABLE void Destroy ();
00380 Q_INVOKABLE void Disable ();
00381 Q_INVOKABLE void Enable ();
00382 Q_INVOKABLE void FocusIn ();
00383 Q_INVOKABLE void FocusOut ();
00384 Q_INVOKABLE void PageDown ();
00385 Q_INVOKABLE void PageUp ();
00386 Q_INVOKABLE bool ProcessKeyEvent (uint keyval, uint keycode, uint state);
00387 Q_INVOKABLE void PropertyActivate (const QString &prop_name, int prop_state);
00388 Q_INVOKABLE void PropertyHide (const QString &prop_name);
00389 Q_INVOKABLE void PropertyShow (const QString &prop_name);
00390 Q_INVOKABLE void Reset ();
00391 Q_INVOKABLE void SetCapabilities (uint cap);
00392 Q_INVOKABLE void SetCursorLocation (int x, int y, int w, int h);
00393
00394 Q_SIGNALS :
00398 void CommitText (const QDBusVariant &text);
00399 void CursorDownLookupTable ();
00400 void CursorUpLookupTable ();
00401 void ForwardKeyEvent (uint keyval, uint keycode, uint state);
00402 void HideAuxiliaryText ();
00403 void HideLookupTable ();
00404 void HidePreeditText ();
00405 void PageDownLookupTable ();
00406 void PageUpLookupTable ();
00407 void RegisterProperties (const QDBusVariant &props);
00408 void ShowAuxiliaryText ();
00409 void ShowLookupTable ();
00410 void ShowPreeditText ();
00411 void UpdateAuxiliaryText (const QDBusVariant &text, bool visible);
00412 void UpdateLookupTable (const QDBusVariant &lookup_table, bool visible);
00413 void UpdatePreeditText (const QDBusVariant &text, uint cursor_pos, bool visible, uint mode);
00414 void UpdateProperty (const QDBusVariant &prop);
00415 private :
00416 QString m_engineName;
00417 IBusEngineAdaptor *m_adaptor;
00418 };
00419
00420 };
00421
00422 #endif