http://i.imgur.com/HhGdB.jpg
Daniel Juyung Seo (SeoZ) On Wed, Mar 7, 2012 at 7:13 PM, Enlightenment SVN <no-re...@enlightenment.org> wrote: > Log: > ecore/ecore_x - added ecore_x_illume clipboard stuff. > > > > Author: hermet > Date: 2012-03-07 02:13:24 -0800 (Wed, 07 Mar 2012) > New Revision: 68920 > Trac: http://trac.enlightenment.org/e/changeset/68920 > > Modified: > trunk/ecore/src/lib/ecore_x/Ecore_X.h > trunk/ecore/src/lib/ecore_x/Ecore_X_Atoms.h > trunk/ecore/src/lib/ecore_x/ecore_x_atoms_decl.h > trunk/ecore/src/lib/ecore_x/xcb/ecore_xcb_atoms.c > trunk/ecore/src/lib/ecore_x/xcb/ecore_xcb_e.c > trunk/ecore/src/lib/ecore_x/xlib/ecore_x_atoms.c > trunk/ecore/src/lib/ecore_x/xlib/ecore_x_e.c > > Modified: trunk/ecore/src/lib/ecore_x/Ecore_X.h > =================================================================== > --- trunk/ecore/src/lib/ecore_x/Ecore_X.h 2012-03-07 10:04:54 UTC (rev > 68919) > +++ trunk/ecore/src/lib/ecore_x/Ecore_X.h 2012-03-07 10:13:24 UTC (rev > 68920) > @@ -1111,6 +1111,13 @@ > 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 @@ > 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 > > Modified: trunk/ecore/src/lib/ecore_x/Ecore_X_Atoms.h > =================================================================== > --- trunk/ecore/src/lib/ecore_x/Ecore_X_Atoms.h 2012-03-07 10:04:54 UTC (rev > 68919) > +++ trunk/ecore/src/lib/ecore_x/Ecore_X_Atoms.h 2012-03-07 10:13:24 UTC (rev > 68920) > @@ -241,6 +241,10 @@ > 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; > > Modified: trunk/ecore/src/lib/ecore_x/ecore_x_atoms_decl.h > =================================================================== > --- trunk/ecore/src/lib/ecore_x/ecore_x_atoms_decl.h 2012-03-07 10:04:54 > UTC (rev 68919) > +++ trunk/ecore/src/lib/ecore_x/ecore_x_atoms_decl.h 2012-03-07 10:13:24 > UTC (rev 68920) > @@ -267,6 +267,8 @@ > 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; > > Modified: trunk/ecore/src/lib/ecore_x/xcb/ecore_xcb_atoms.c > =================================================================== > --- trunk/ecore/src/lib/ecore_x/xcb/ecore_xcb_atoms.c 2012-03-07 10:04:54 > UTC (rev 68919) > +++ trunk/ecore/src/lib/ecore_x/xcb/ecore_xcb_atoms.c 2012-03-07 10:13:24 > UTC (rev 68920) > @@ -252,7 +252,10 @@ > { "_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 }, > > Modified: trunk/ecore/src/lib/ecore_x/xcb/ecore_xcb_e.c > =================================================================== > --- trunk/ecore/src/lib/ecore_x/xcb/ecore_xcb_e.c 2012-03-07 10:04:54 > UTC (rev 68919) > +++ trunk/ecore/src/lib/ecore_x/xcb/ecore_xcb_e.c 2012-03-07 10:13:24 > UTC (rev 68920) > @@ -721,7 +721,100 @@ > 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) > { > > Modified: trunk/ecore/src/lib/ecore_x/xlib/ecore_x_atoms.c > =================================================================== > --- trunk/ecore/src/lib/ecore_x/xlib/ecore_x_atoms.c 2012-03-07 10:04:54 > UTC (rev 68919) > +++ trunk/ecore/src/lib/ecore_x/xlib/ecore_x_atoms.c 2012-03-07 10:13:24 > UTC (rev 68920) > @@ -273,7 +273,10 @@ > { "_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 }, > > Modified: trunk/ecore/src/lib/ecore_x/xlib/ecore_x_e.c > =================================================================== > --- trunk/ecore/src/lib/ecore_x/xlib/ecore_x_e.c 2012-03-07 10:04:54 > UTC (rev 68919) > +++ trunk/ecore/src/lib/ecore_x/xlib/ecore_x_e.c 2012-03-07 10:13:24 > UTC (rev 68920) > @@ -768,7 +768,100 @@ > 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) > { > > > ------------------------------------------------------------------------------ > Virtualization & Cloud Management Using Capacity Planning > Cloud computing makes use of virtualization - but cloud computing > also focuses on allowing computing to be delivered as a service. > http://www.accelacomm.com/jaw/sfnl/114/51521223/ > _______________________________________________ > enlightenment-svn mailing list > enlightenment-...@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel