Git init
[platform/core/uifw/e17.git] / src / modules / illume-keyboard / e_kbd_buf.h
1 #ifndef E_KBD_BUF_H
2 #define E_KBD_BUF_H
3
4 #include "e_kbd_dict.h"
5
6 typedef struct _E_Kbd_Buf           E_Kbd_Buf;
7 typedef struct _E_Kbd_Buf_Key       E_Kbd_Buf_Key;
8 typedef struct _E_Kbd_Buf_Keystroke E_Kbd_Buf_Keystroke;
9 typedef struct _E_Kbd_Buf_Layout    E_Kbd_Buf_Layout;
10
11 struct _E_Kbd_Buf
12 {
13    const char       *sysdicts;
14    Eina_List        *keystrokes;
15    Eina_List        *string_matches;
16    const char       *actual_string;
17    E_Kbd_Buf_Layout *layout;
18    struct {
19       void        (*func) (void *data);
20       const void   *data;
21 // FIXME: just faking delayed lookup with timer
22       Ecore_Timer  *faket;
23    } lookup;
24    struct {
25       E_Kbd_Dict         *sys;
26       E_Kbd_Dict         *personal;
27       E_Kbd_Dict         *data;
28       Ecore_File_Monitor *data_monitor;
29       Ecore_Timer        *data_reload_delay;
30    } dict;
31 };
32
33 struct _E_Kbd_Buf_Key
34 {
35    int         x, y, w, h;
36    const char *key, *key_shift, *key_capslock;
37 };
38
39 struct _E_Kbd_Buf_Keystroke
40 {
41    const char       *key;
42    int               x, y;
43    E_Kbd_Buf_Layout *layout;
44    unsigned char     shift : 1;
45    unsigned char     capslock : 1;
46 };
47
48 struct _E_Kbd_Buf_Layout {
49    int        ref;
50    int        w, h;
51    int        fuzz;
52    Eina_List *keys;
53 };
54
55 EAPI E_Kbd_Buf *e_kbd_buf_new(const char *sysdicts, const char *dicts);
56 EAPI void e_kbd_buf_free(E_Kbd_Buf *kb);
57 EAPI void e_kbd_buf_dict_set(E_Kbd_Buf *kb, const char *dict);
58 EAPI void e_kbd_buf_clear(E_Kbd_Buf *kb);
59 EAPI void e_kbd_buf_layout_clear(E_Kbd_Buf *kb);
60 EAPI void e_kbd_buf_layout_size_set(E_Kbd_Buf *kb, int w, int h);
61 EAPI void e_kbd_buf_layout_fuzz_set(E_Kbd_Buf *kb, int fuzz);
62 EAPI void e_kbd_buf_layout_key_add(E_Kbd_Buf *kb, const char *key, const char *key_shift, const char *key_capslock, int x, int y, int w, int h);
63 EAPI void e_kbd_buf_pressed_key_add(E_Kbd_Buf *kb, const char *key, int shift, int capslock);
64 EAPI void e_kbd_buf_pressed_point_add(E_Kbd_Buf *kb, int x, int y, int shift, int capslock);
65 EAPI const char *e_kbd_buf_actual_string_get(E_Kbd_Buf *kb);
66 EAPI const Eina_List *e_kbd_buf_string_matches_get(E_Kbd_Buf *kb);
67 EAPI void e_kbd_buf_backspace(E_Kbd_Buf *kb);
68 EAPI void e_kbd_buf_lookup(E_Kbd_Buf *kb, void (*func) (void *data), const void *data);
69 EAPI void e_kbd_buf_lookup_cancel(E_Kbd_Buf *kb);
70 EAPI void e_kbd_buf_word_use(E_Kbd_Buf *kb, const char *word);
71     
72 #endif