00001 #ifndef __Q_IBUS_INPUT_CONTEXT_H_
00002 #define __Q_IBUS_INPUT_CONTEXT_H_
00003
00004 #include "qibusbus.h"
00005 #include "qibustext.h"
00006 #include "qibusproperty.h"
00007 #include "qibusproplist.h"
00008 #include "qibuslookuptable.h"
00009
00010 class IBusInputContextProxy;
00011
00012 namespace IBus {
00013
00014 class Bus;
00015 typedef Pointer<Bus> BusPointer;
00016
00017 class InputContext;
00018 typedef Pointer<InputContext> InputContextPointer;
00019
00020 class InputContext : public Object
00021 {
00022 Q_OBJECT;
00023
00024 public:
00025 InputContext (const BusPointer &bus, const QString &path);
00026 ~InputContext (void);
00027
00028 void reset (void);
00029 void destroy (void);
00030 void enable (void);
00031 void disable (void);
00032 void focusIn (void);
00033 void focusOut (void);
00034 void getEngine (void);
00035 bool isEnabled (void);
00036 bool processKeyEvent (uint keyval, uint keycode, uint state);
00037 void setCapabilities (uint caps);
00038 void setCursorLocation (int x, int y, int w, int h);
00039 void setEngine (const QString &name);
00040
00041 public:
00042 static InputContextPointer create (const BusPointer &bus, const QString &name);
00043
00044 Q_SIGNALS:
00045 void commitText (const TextPointer &text);
00046
00047 void updatePreeditText (const TextPointer &text, uint cursor_pos, bool visible);
00048 void showPreeditText (void);
00049 void hidePreeditText (void);
00050
00051 void updateAuxiliaryText (const TextPointer &text, bool visible);
00052 void showAuxiliaryText (void);
00053 void hideAuxiliaryText (void);
00054
00055 void updateLookupTable (const LookupTablePointer &table, bool visible);
00056 void showLookupTable (void);
00057 void hideLookupTable (void);
00058 void cursorUpLookupTable (void);
00059 void cursorDownLookupTable (void);
00060 void pageUpLookupTable (void);
00061 void pageDownLookupTable (void);
00062
00063 void registerProperties (const PropListPointer &props);
00064 void updateProperty (const PropertyPointer &property);
00065
00066 void enabled (void);
00067 void disabled (void);
00068
00069 void forwardKeyEvent (uint keyval, uint keycode, uint state);
00070
00071 private Q_SLOTS:
00072 void slotCommitText (const QDBusVariant &text);
00073
00074 void slotUpdatePreeditText(const QDBusVariant &text, uint cursor_pos, bool visible);
00075 void slotHidePreeditText();
00076 void slotShowPreeditText();
00077
00078 void slotUpdateAuxiliaryText(const QDBusVariant &text, bool visible);
00079 void slotShowAuxiliaryText();
00080 void slotHideAuxiliaryText();
00081
00082 void slotUpdateLookupTable(const QDBusVariant &table, bool visible);
00083 void slotShowLookupTable();
00084 void slotHideLookupTable();
00085 void slotCursorUpLookupTable();
00086 void slotCursorDownLookupTable();
00087 void slotPageUpLookupTable();
00088 void slotPageDownLookupTable();
00089
00090 void slotRegisterProperties(const QDBusVariant &props);
00091 void slotUpdateProperty(const QDBusVariant &prop);
00092
00093 void slotEnabled();
00094 void slotDisabled();
00095
00096 void slotForwardKeyEvent(uint keyval, uint keycode, uint state);
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107 private:
00108 BusPointer m_bus;
00109 IBusInputContextProxy *m_context;
00110 };
00111
00112 };
00113
00114 #endif