ecore/ecore_x - added ecore_x_illume clipboard stuff.

SVN revision: 68920
This commit is contained in:
ChunEon Park 2012-03-07 10:13:24 +00:00
parent fed23d8ca4
commit fad2b6179d
7 changed files with 226 additions and 2 deletions

View File

@ -1111,6 +1111,13 @@ typedef enum _Ecore_X_Illume_Indicator_State
ECORE_X_ILLUME_INDICATOR_STATE_ON
} Ecore_X_Illume_Indicator_State;
typedef enum _Ecore_X_Illume_Clipboard_State
{
ECORE_X_ILLUME_CLIPBOARD_STATE_UNKNOWN = 0,
ECORE_X_ILLUME_CLIPBOARD_STATE_OFF,
ECORE_X_ILLUME_CLIPBOARD_STATE_ON
} Ecore_X_Illume_Clipboard_State;
/* Window layer constants */
#define ECORE_X_WINDOW_LAYER_BELOW 2
#define ECORE_X_WINDOW_LAYER_NORMAL 4
@ -2411,6 +2418,25 @@ EAPI void
ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win);
EAPI void
ecore_x_e_illume_clipboard_state_set(Ecore_X_Window win,
Ecore_X_Illume_Clipboard_State state);
EAPI Ecore_X_Illume_Clipboard_State
ecore_x_e_illume_clipboard_state_get(Ecore_X_Window win);
EAPI void
ecore_x_e_illume_clipboard_geometry_set(Ecore_X_Window win,
int x,
int y,
int w,
int h);
EAPI Eina_Bool
ecore_x_e_illume_clipboard_geometry_get(Ecore_X_Window win,
int *x,
int *y,
int *w,
int *h);
EAPI void
ecore_x_e_comp_sync_counter_set(Ecore_X_Window win,
Ecore_X_Sync_Counter counter);
EAPI Ecore_X_Sync_Counter

View File

@ -241,6 +241,10 @@ EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE;
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE;
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_ON;
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF;
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE;
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON;
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF;
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY;
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_COUNTER;
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE;

View File

@ -267,6 +267,8 @@ EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE = 0;
EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE = 0;
EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_ON = 0;
EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF = 0;
EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE = 0;
EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY = 0;
EAPI Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_COUNTER = 0;
EAPI Ecore_X_Atom ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE = 0;

View File

@ -252,7 +252,10 @@ static Xcb_Atom atoms[] =
{ "_E_ILLUME_INDICATOR_STATE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE },
{ "_E_ILLUME_INDICATOR_ON", &ECORE_X_ATOM_E_ILLUME_INDICATOR_ON },
{ "_E_ILLUME_INDICATOR_OFF", &ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF },
{ "_E_ILLUME_CLIPBOARD_STATE", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE },
{ "_E_ILLUME_CLIPBOARD_ON", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON },
{ "_E_ILLUME_CLIPBOARD_OFF", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF },
{ "_E_ILLUME_CLIPBOARD_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY },
{ "_E_COMP_SYNC_COUNTER", &ECORE_X_ATOM_E_COMP_SYNC_COUNTER },
{ "_E_COMP_SYNC_DRAW_DONE", &ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE },
{ "_E_COMP_SYNC_SUPPORTED", &ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED },

View File

@ -721,6 +721,99 @@ ecore_x_e_illume_quickpanel_state_toggle(Ecore_X_Window win)
0, 0, 0, 0, 0);
}
static Ecore_X_Atom
_ecore_xcb_e_clipboard_atom_get(Ecore_X_Illume_Clipboard_State state)
{
switch (state)
{
case ECORE_X_ILLUME_CLIPBOARD_STATE_ON:
return ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON;
case ECORE_X_ILLUME_CLIPBOARD_STATE_OFF:
return ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF;
default:
break;
}
return 0;
}
static Ecore_X_Illume_Clipboard_State
_ecore_xcb_e_clipboard_state_get(Ecore_X_Atom atom)
{
if (atom == ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON)
return ECORE_X_ILLUME_CLIPBOARD_STATE_ON;
if (atom == ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF)
return ECORE_X_ILLUME_CLIPBOARD_STATE_OFF;
return ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN;
}
EAPI void
ecore_x_e_illume_clipboard_state_set(Ecore_X_Window win,
Ecore_X_Illume_Clipboard_State state)
{
Ecore_X_Atom atom = 0;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
atom = _ecore_xcb_e_clipboard_atom_get(state);
ecore_x_window_prop_atom_set(win,
ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE,
&atom, 1);
}
EAPI Ecore_X_Illume_Clipboard_State
ecore_x_e_illume_clipboard_state_get(Ecore_X_Window win)
{
Ecore_X_Atom atom = 0;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
if (!ecore_x_window_prop_atom_get(win,
ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE,
&atom, 1))
return ECORE_X_ILLUME_CLIPBOARD_STATE_UNKNOWN;
return _ecore_xcb_clipboard_state_get(atom);
}
EAPI void
ecore_x_e_illume_clipboard_geometry_set(Ecore_X_Window win,
int x, int y, int w, int h)
{
unsigned int geom[4];
LOGFN(__FILE__, __LINE__, __FUNCTION__);
geom[0] = x;
geom[1] = y;
geom[2] = w;
geom[3] = h;
ecore_x_window_prop_card32_set(win,
ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY,
geom, 4);
}
EAPI Eina_Bool
ecore_x_e_illume_clipboard_geometry_get(Ecore_X_Window win,
int *x, int *y, int *w, int *h)
{
int ret = 0;
unsigned int geom[4];
LOGFN(__FILE__, __LINE__, __FUNCTION__);
ret =
ecore_x_window_prop_card32_get(win,
ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY,
geom, 4);
if (ret != 4) return EINA_FALSE;
if (x) *x = geom[0];
if (y) *y = geom[1];
if (w) *w = geom[2];
if (h) *h = geom[3];
return EINA_TRUE;
}
EAPI void
ecore_x_e_illume_mode_set(Ecore_X_Window win,
Ecore_X_Illume_Mode mode)

View File

@ -273,7 +273,10 @@ _ecore_x_atoms_init(void)
{ "_E_ILLUME_INDICATOR_STATE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE },
{ "_E_ILLUME_INDICATOR_ON", &ECORE_X_ATOM_E_ILLUME_INDICATOR_ON },
{ "_E_ILLUME_INDICATOR_OFF", &ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF },
{ "_E_ILLUME_CLIPBOARD_STATE", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE },
{ "_E_ILLUME_CLIPBOARD_ON", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON },
{ "_E_ILLUME_CLIPBOARD_OFF", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF },
{ "_E_ILLUME_CLIPBOARD_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY },
{ "_E_COMP_SYNC_COUNTER", &ECORE_X_ATOM_E_COMP_SYNC_COUNTER },
{ "_E_COMP_SYNC_DRAW_DONE", &ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE },
{ "_E_COMP_SYNC_SUPPORTED", &ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED },

View File

@ -768,6 +768,99 @@ ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win)
1, 0, 0, 0, 0);
}
static Ecore_X_Atom
_ecore_x_e_clipboard_atom_get(Ecore_X_Illume_Clipboard_State state)
{
switch (state)
{
case ECORE_X_ILLUME_CLIPBOARD_STATE_ON:
return ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON;
case ECORE_X_ILLUME_CLIPBOARD_STATE_OFF:
return ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF;
default:
break;
}
return 0;
}
static Ecore_X_Illume_Clipboard_State
_ecore_x_e_clipboard_state_get(Ecore_X_Atom atom)
{
if (atom == ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON)
return ECORE_X_ILLUME_CLIPBOARD_STATE_ON;
if (atom == ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF)
return ECORE_X_ILLUME_CLIPBOARD_STATE_OFF;
return ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN;
}
EAPI void
ecore_x_e_illume_clipboard_state_set(Ecore_X_Window win,
Ecore_X_Illume_Clipboard_State state)
{
Ecore_X_Atom atom = 0;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
atom = _ecore_x_e_clipboard_atom_get(state);
ecore_x_window_prop_atom_set(win,
ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE,
&atom, 1);
}
EAPI Ecore_X_Illume_Clipboard_State
ecore_x_e_illume_clipboard_state_get(Ecore_X_Window win)
{
Ecore_X_Atom atom = 0;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
if (!ecore_x_window_prop_atom_get(win,
ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE,
&atom, 1))
return ECORE_X_ILLUME_CLIPBOARD_STATE_UNKNOWN;
return _ecore_x_e_clipboard_state_get(atom);
}
EAPI void
ecore_x_e_illume_clipboard_geometry_set(Ecore_X_Window win,
int x, int y, int w, int h)
{
unsigned int geom[4];
LOGFN(__FILE__, __LINE__, __FUNCTION__);
geom[0] = x;
geom[1] = y;
geom[2] = w;
geom[3] = h;
ecore_x_window_prop_card32_set(win,
ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY,
geom, 4);
}
EAPI Eina_Bool
ecore_x_e_illume_clipboard_geometry_get(Ecore_X_Window win,
int *x, int *y, int *w, int *h)
{
int ret = 0;
unsigned int geom[4];
LOGFN(__FILE__, __LINE__, __FUNCTION__);
ret =
ecore_x_window_prop_card32_get(win,
ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY,
geom, 4);
if (ret != 4) return EINA_FALSE;
if (x) *x = geom[0];
if (y) *y = geom[1];
if (w) *w = geom[2];
if (h) *h = geom[3];
return EINA_TRUE;
}
EAPI void
ecore_x_e_comp_sync_counter_set(Ecore_X_Window win,
Ecore_X_Sync_Counter counter)