forked from enlightenment/enlightenment
124 lines
3.0 KiB
C
124 lines
3.0 KiB
C
#ifndef E_KBD_INT_H
|
|
#define E_KBD_INT_H
|
|
|
|
#include "e_kbd_buf.h"
|
|
|
|
typedef enum _E_Kbd_Int_Type
|
|
{
|
|
E_KBD_INT_TYPE_UNKNOWN = 0,
|
|
E_KBD_INT_TYPE_ALPHA = (1 << 0),
|
|
E_KBD_INT_TYPE_NUMERIC = (1 << 1),
|
|
E_KBD_INT_TYPE_PIN = (1 << 2),
|
|
E_KBD_INT_TYPE_PHONE_NUMBER = (1 << 3),
|
|
E_KBD_INT_TYPE_HEX = (1 << 4),
|
|
E_KBD_INT_TYPE_TERMINAL = (1 << 5),
|
|
E_KBD_INT_TYPE_PASSWORD = (1 << 6)
|
|
} E_Kbd_Int_Type;
|
|
|
|
/* The natural text direction of the keyboard */
|
|
typedef enum _E_kbd_Int_Direction
|
|
{
|
|
E_KBD_INT_DIRECTION_LTR = (1 << 0),
|
|
E_KBD_INT_DIRECTION_RTL = (1 << 1)
|
|
} E_Kbd_Int_Direction;
|
|
|
|
typedef struct _E_Kbd_Int E_Kbd_Int;
|
|
typedef struct _E_Kbd_Int_Key E_Kbd_Int_Key;
|
|
typedef struct _E_Kbd_Int_Key_State E_Kbd_Int_Key_State;
|
|
typedef struct _E_Kbd_Int_Layout E_Kbd_Int_Layout;
|
|
typedef struct _E_Kbd_Int_Match E_Kbd_Int_Match;
|
|
|
|
struct _E_Kbd_Int
|
|
{
|
|
E_Win *win;
|
|
const char *themedir, *syskbds, *sysdicts;
|
|
Evas_Object *base_obj, *layout_obj, *event_obj, *icon_obj, *box_obj;
|
|
Eina_List *layouts;
|
|
Eina_List *matches;
|
|
Ecore_Event_Handler *client_message_handler;
|
|
struct {
|
|
char *directory;
|
|
const char *file;
|
|
int w, h;
|
|
int fuzz;
|
|
int direction;
|
|
E_Kbd_Int_Type type;
|
|
Eina_List *keys;
|
|
E_Kbd_Int_Key *pressed;
|
|
int state;
|
|
} layout;
|
|
struct {
|
|
Evas_Coord x, y, cx, cy;
|
|
int lx, ly, clx, cly;
|
|
Ecore_Timer *hold_timer;
|
|
unsigned char down : 1;
|
|
unsigned char stroke : 1;
|
|
unsigned char zoom : 1;
|
|
} down;
|
|
struct {
|
|
E_Popup *popup;
|
|
Evas_Object *base_obj, *ilist_obj;
|
|
} layoutlist;
|
|
struct {
|
|
E_Popup *popup;
|
|
Evas_Object *base_obj, *ilist_obj;
|
|
Eina_List *matches;
|
|
} matchlist;
|
|
struct {
|
|
E_Popup *popup;
|
|
Evas_Object *base_obj, *ilist_obj;
|
|
Eina_List *matches;
|
|
} dictlist;
|
|
struct {
|
|
E_Popup *popup;
|
|
Evas_Object *base_obj, *layout_obj, *sublayout_obj;
|
|
E_Kbd_Int_Key *pressed;
|
|
} zoomkey;
|
|
|
|
E_Kbd_Buf *kbuf;
|
|
};
|
|
|
|
struct _E_Kbd_Int_Key
|
|
{
|
|
int x, y, w, h;
|
|
|
|
Eina_List *states;
|
|
Evas_Object *obj, *zoom_obj, *icon_obj, *zoom_icon_obj;
|
|
|
|
unsigned char pressed : 1;
|
|
unsigned char selected : 1;
|
|
|
|
unsigned char is_shift : 1;
|
|
unsigned char is_ctrl : 1;
|
|
unsigned char is_alt : 1;
|
|
unsigned char is_capslock : 1;
|
|
};
|
|
|
|
struct _E_Kbd_Int_Key_State
|
|
{
|
|
int state;
|
|
const char *label, *icon;
|
|
const char *out;
|
|
};
|
|
|
|
struct _E_Kbd_Int_Layout
|
|
{
|
|
const char *path;
|
|
const char *dir;
|
|
const char *icon;
|
|
const char *name;
|
|
int type;
|
|
};
|
|
|
|
struct _E_Kbd_Int_Match
|
|
{
|
|
E_Kbd_Int *ki;
|
|
const char *str;
|
|
Evas_Object *obj;
|
|
};
|
|
|
|
EAPI E_Kbd_Int *e_kbd_int_new(const char *themedir, const char *syskbds, const char *sysdicts);
|
|
EAPI void e_kbd_int_free(E_Kbd_Int *ki);
|
|
|
|
#endif
|