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