Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
#ifndef __ECORE_XCB_PRIVATE_H__
|
|
|
|
#define __ECORE_XCB_PRIVATE_H__
|
|
|
|
|
|
|
|
#include "config.h"
|
|
|
|
|
|
|
|
#include <sys/param.h>
|
|
|
|
|
|
|
|
#ifndef MAXHOSTNAMELEN
|
|
|
|
# define MAXHOSTNAMELEN 256
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef XK_MISCELLANY
|
|
|
|
# define XK_MISCELLANY 1
|
|
|
|
#endif /* XK_MISCELLANY */
|
|
|
|
|
|
|
|
#include <xcb/xcb.h>
|
|
|
|
#include <xcb/xcb_icccm.h>
|
|
|
|
#include <xcb/xcb_keysyms.h>
|
|
|
|
#include <xcb/bigreq.h>
|
|
|
|
#ifdef ECORE_XCB_CURSOR
|
|
|
|
# include <xcb/cursor.h>
|
|
|
|
#endif /* ECORE_XCB_CURSOR */
|
|
|
|
#ifdef ECORE_XCB_DAMAGE
|
|
|
|
# include <xcb/damage.h>
|
|
|
|
#endif /* ECORE_XCB_DAMAGE */
|
2007-10-06 01:37:34 -07:00
|
|
|
#ifdef ECORE_XCB_COMPOSITE
|
|
|
|
# include <xcb/composite.h>
|
|
|
|
#endif /* ECORE_XCB_COMPOSITE */
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
#ifdef ECORE_XCB_DPMS
|
|
|
|
# include <xcb/dpms.h>
|
|
|
|
#endif /* ECORE_XCB_DPMS */
|
|
|
|
#ifdef ECORE_XCB_RANDR
|
|
|
|
# include <xcb/randr.h>
|
|
|
|
#endif /* ECORE_XCB_RANDR */
|
|
|
|
#ifdef ECORE_XCB_RENDER
|
|
|
|
# include <xcb/render.h>
|
|
|
|
#endif /* ECORE_XCB_RENDER */
|
|
|
|
#ifdef ECORE_XCB_SCREENSAVER
|
|
|
|
# include <xcb/screensaver.h>
|
|
|
|
#endif /* ECORE_XCB_SCREENSAVER */
|
|
|
|
#ifdef ECORE_XCB_SHAPE
|
|
|
|
# include <xcb/shape.h>
|
|
|
|
#endif /* ECORE_XCB_SHAPE */
|
|
|
|
#ifdef ECORE_XCB_SYNC
|
|
|
|
# include <xcb/sync.h>
|
|
|
|
#endif /* ECORE_XCB_SYNC */
|
|
|
|
#ifdef ECORE_XCB_XFIXES
|
|
|
|
# include <xcb/xfixes.h>
|
|
|
|
#endif /* ECORE_XCB_XFIXES */
|
|
|
|
#ifdef ECORE_XCB_XINERAMA
|
|
|
|
# include <xcb/xinerama.h>
|
|
|
|
#endif /* ECORE_XCB_XINERAMA */
|
|
|
|
#ifdef ECORE_XCB_XPRINT
|
|
|
|
# include <xcb/xprint.h>
|
|
|
|
#endif /* ECORE_XCB_XPRINT */
|
|
|
|
|
2009-12-22 13:15:12 -08:00
|
|
|
#include "Ecore.h"
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
#include "ecore_private.h"
|
|
|
|
#include "Ecore_X.h"
|
|
|
|
|
|
|
|
/* FIXME: this is for simulation only */
|
|
|
|
#include "Ecore_Txt.h"
|
|
|
|
|
2010-01-06 16:30:05 -08:00
|
|
|
extern int _ecore_x11xcb_log_dom ;
|
|
|
|
|
|
|
|
#ifdef ECORE_XLIB_XCB_DEFAULT_LOG_COLOR
|
|
|
|
# undef ECORE_XLIB_XCB_DEFAULT_LOG_COLOR
|
|
|
|
#endif
|
|
|
|
#define ECORE_XLIB_XCB_DEFAULT_LOG_COLOR EINA_COLOR_BLUE
|
2009-12-21 09:32:19 -08:00
|
|
|
|
|
|
|
#ifdef ERR
|
|
|
|
# undef ERR
|
|
|
|
#endif
|
|
|
|
#define ERR(...) EINA_LOG_DOM_ERR(_ecore_x11xcb_log_dom, __VA_ARGS__)
|
|
|
|
|
|
|
|
#ifdef DBG
|
|
|
|
# undef DBG
|
|
|
|
#endif
|
|
|
|
#define DBG(...) EINA_LOG_DOM_DBG(_ecore_x11xcb_log_dom, __VA_ARGS__)
|
|
|
|
|
|
|
|
#ifdef INF
|
|
|
|
# undef INF
|
|
|
|
#endif
|
|
|
|
#define INF(...) EINA_LOG_DOM_INFO(_ecore_x11xcb_log_dom, __VA_ARGS__)
|
|
|
|
|
|
|
|
#ifdef WRN
|
|
|
|
# undef WRN
|
|
|
|
#endif
|
|
|
|
#define WRN(...) EINA_LOG_DOM_WARN(_ecore_x11xcb_log_dom, __VA_ARGS__)
|
|
|
|
|
|
|
|
#ifdef CRIT
|
|
|
|
# undef CRIT
|
|
|
|
#endif
|
|
|
|
#define CRIT(...) EINA_LOG_DOM_CRIT(_ecore_x11xcb_log_dom, __VA_ARGS__)
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
typedef struct _Ecore_X_Selection_Intern Ecore_X_Selection_Intern;
|
|
|
|
|
|
|
|
struct _Ecore_X_Selection_Intern
|
|
|
|
{
|
|
|
|
Ecore_X_Window win;
|
|
|
|
Ecore_X_Atom selection;
|
|
|
|
unsigned char *data;
|
|
|
|
int length;
|
|
|
|
Ecore_X_Time time;
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef struct _Ecore_X_Selection_Converter Ecore_X_Selection_Converter;
|
|
|
|
|
|
|
|
struct _Ecore_X_Selection_Converter
|
|
|
|
{
|
|
|
|
Ecore_X_Atom target;
|
|
|
|
int (*convert)(char *target, void *data, int size,
|
|
|
|
void **data_ret, int *size_ret);
|
|
|
|
Ecore_X_Selection_Converter *next;
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef struct _Ecore_X_Selection_Parser Ecore_X_Selection_Parser;
|
|
|
|
|
|
|
|
struct _Ecore_X_Selection_Parser
|
|
|
|
{
|
|
|
|
char *target;
|
|
|
|
void *(*parse)(const char *target, void *data, int size, int format);
|
|
|
|
Ecore_X_Selection_Parser *next;
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef struct _Ecore_X_DND_Source
|
|
|
|
{
|
|
|
|
int version;
|
|
|
|
Ecore_X_Window win, dest;
|
|
|
|
|
|
|
|
enum {
|
|
|
|
ECORE_X_DND_SOURCE_IDLE,
|
|
|
|
ECORE_X_DND_SOURCE_DRAGGING,
|
|
|
|
ECORE_X_DND_SOURCE_DROPPED,
|
|
|
|
ECORE_X_DND_SOURCE_CONVERTING
|
|
|
|
} state;
|
|
|
|
|
|
|
|
struct {
|
|
|
|
short x, y;
|
|
|
|
unsigned short width, height;
|
|
|
|
} rectangle;
|
|
|
|
|
2008-08-17 11:12:23 -07:00
|
|
|
struct {
|
|
|
|
Ecore_X_Window window;
|
|
|
|
int x, y;
|
|
|
|
} prev;
|
|
|
|
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
Ecore_X_Time time;
|
|
|
|
|
|
|
|
Ecore_X_Atom action, accepted_action;
|
|
|
|
|
|
|
|
int will_accept;
|
|
|
|
int suppress;
|
|
|
|
|
|
|
|
int await_status;
|
|
|
|
} Ecore_X_DND_Source;
|
|
|
|
|
|
|
|
typedef struct _Ecore_X_DND_Target
|
|
|
|
{
|
|
|
|
int version;
|
|
|
|
Ecore_X_Window win, source;
|
|
|
|
|
|
|
|
enum {
|
|
|
|
ECORE_X_DND_TARGET_IDLE,
|
|
|
|
ECORE_X_DND_TARGET_ENTERED
|
|
|
|
} state;
|
|
|
|
|
|
|
|
struct {
|
|
|
|
int x, y;
|
|
|
|
} pos;
|
|
|
|
|
|
|
|
Ecore_X_Time time;
|
|
|
|
|
|
|
|
Ecore_X_Atom action, accepted_action;
|
|
|
|
|
|
|
|
int will_accept;
|
|
|
|
} Ecore_X_DND_Target;
|
|
|
|
|
2009-04-19 01:37:50 -07:00
|
|
|
extern int ECORE_X_MODIFIER_SHIFT;
|
|
|
|
extern int ECORE_X_MODIFIER_CTRL;
|
|
|
|
extern int ECORE_X_MODIFIER_ALT;
|
|
|
|
extern int ECORE_X_MODIFIER_WIN;
|
|
|
|
|
|
|
|
extern int ECORE_X_LOCK_SCROLL;
|
|
|
|
extern int ECORE_X_LOCK_NUM;
|
|
|
|
extern int ECORE_X_LOCK_CAPS;
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
extern Ecore_X_Connection *_ecore_xcb_conn;
|
|
|
|
extern Ecore_X_Screen *_ecore_xcb_screen;
|
|
|
|
extern double _ecore_xcb_double_click_time;
|
|
|
|
extern Ecore_X_Time _ecore_xcb_event_last_time;
|
|
|
|
extern Ecore_X_Window _ecore_xcb_event_last_window;
|
|
|
|
extern int16_t _ecore_xcb_event_last_root_x;
|
|
|
|
extern int16_t _ecore_xcb_event_last_root_y;
|
|
|
|
extern int _ecore_xcb_xcursor;
|
|
|
|
|
|
|
|
extern Ecore_X_Atom _ecore_xcb_atoms_wm_protocols[ECORE_X_WM_PROTOCOL_NUM];
|
|
|
|
|
|
|
|
extern int _ecore_window_grabs_num;
|
|
|
|
extern Ecore_X_Window *_ecore_window_grabs;
|
|
|
|
extern int (*_ecore_window_grab_replay_func) (void *data, int event_type, void *event);
|
|
|
|
extern void *_ecore_window_grab_replay_data;
|
|
|
|
|
|
|
|
extern Ecore_X_Window _ecore_xcb_private_window;
|
|
|
|
|
|
|
|
|
|
|
|
void _ecore_x_error_handler_init(void);
|
|
|
|
|
2009-04-16 10:29:00 -07:00
|
|
|
void _ecore_x_event_handle_any_event (xcb_generic_event_t *event);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
void _ecore_x_event_handle_key_press (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_key_release (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_button_press (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_button_release (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_motion_notify (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_enter_notify (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_leave_notify (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_focus_in (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_focus_out (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_keymap_notify (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_expose (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_graphics_expose (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_visibility_notify (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_create_notify (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_destroy_notify (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_unmap_notify (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_map_notify (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_map_request (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_reparent_notify (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_configure_notify (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_configure_request (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_gravity_notify (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_resize_request (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_circulate_notify (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_circulate_request (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_property_notify (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_selection_clear (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_selection_request (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_selection_notify (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_colormap_notify (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_client_message (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_mapping_notify (xcb_generic_event_t *event);
|
|
|
|
#ifdef ECORE_XCB_DAMAGE
|
|
|
|
void _ecore_x_event_handle_damage_notify (xcb_generic_event_t *event);
|
|
|
|
#endif /* ECORE_XCB_DAMAGE */
|
|
|
|
#ifdef ECORE_XCB_RANDR
|
|
|
|
void _ecore_x_event_handle_randr_change (xcb_generic_event_t *event);
|
|
|
|
#endif /* ECORE_XCB_RANDR */
|
|
|
|
#ifdef ECORE_XCB_SCREENSAVER
|
|
|
|
void _ecore_x_event_handle_screensaver_notify (xcb_generic_event_t *event);
|
|
|
|
#endif /* ECORE_XCB_SCREENSAVER */
|
|
|
|
#ifdef ECORE_XCB_SHAPE
|
|
|
|
void _ecore_x_event_handle_shape_change (xcb_generic_event_t *event);
|
|
|
|
#endif /* ECORE_XCB_SHAPE */
|
|
|
|
#ifdef ECORE_XCB_SYNC
|
|
|
|
void _ecore_x_event_handle_sync_counter (xcb_generic_event_t *event);
|
|
|
|
void _ecore_x_event_handle_sync_alarm (xcb_generic_event_t *event);
|
|
|
|
#endif /* ECORE_XCB_SYNC */
|
|
|
|
#ifdef ECORE_XCB_FIXES
|
|
|
|
void _ecore_x_event_handle_fixes_selection_notify(xcb_generic_event_t *event);
|
|
|
|
#endif /* ECORE_XCB_FIXES */
|
|
|
|
|
|
|
|
|
|
|
|
/* requests / replies */
|
|
|
|
int _ecore_x_reply_init ();
|
|
|
|
void _ecore_x_reply_shutdown ();
|
|
|
|
void _ecore_xcb_cookie_cache (unsigned int cookie);
|
|
|
|
unsigned int _ecore_xcb_cookie_get (void);
|
|
|
|
void _ecore_xcb_reply_cache (void *reply);
|
|
|
|
void *_ecore_xcb_reply_get (void);
|
|
|
|
|
|
|
|
|
|
|
|
/* atoms */
|
|
|
|
extern Ecore_X_Atom ECORE_X_ATOM_ATOM;
|
|
|
|
extern Ecore_X_Atom ECORE_X_ATOM_CARDINAL;
|
|
|
|
extern Ecore_X_Atom ECORE_X_ATOM_STRING;
|
|
|
|
extern Ecore_X_Atom ECORE_X_ATOM_WINDOW;
|
|
|
|
extern Ecore_X_Atom ECORE_X_ATOM_E_FRAME_SIZE;
|
|
|
|
extern Ecore_X_Atom ECORE_X_ATOM_WM_SIZE_HINTS;
|
|
|
|
|
2009-02-07 04:16:13 -08:00
|
|
|
#define ECORE_X_ATOMS_COUNT 117
|
2007-05-07 11:21:53 -07:00
|
|
|
|
|
|
|
void _ecore_x_atom_init (xcb_intern_atom_cookie_t *);
|
|
|
|
void _ecore_x_atom_init_finalize (xcb_intern_atom_cookie_t *);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
|
|
|
|
/* damage */
|
|
|
|
void _ecore_x_damage_init (const xcb_query_extension_reply_t *reply);
|
|
|
|
void _ecore_x_damage_init_finalize (void);
|
|
|
|
|
2007-10-06 01:37:34 -07:00
|
|
|
/* composite */
|
|
|
|
void _ecore_x_composite_init (const xcb_query_extension_reply_t *reply);
|
|
|
|
void _ecore_x_composite_init_finalize (void);
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
|
|
|
|
/* from dnd */
|
|
|
|
void _ecore_x_dnd_init (void);
|
|
|
|
void _ecore_x_dnd_shutdown (void);
|
|
|
|
Ecore_X_DND_Source *_ecore_x_dnd_source_get (void);
|
|
|
|
Ecore_X_DND_Target *_ecore_x_dnd_target_get (void);
|
2008-07-23 03:00:01 -07:00
|
|
|
void _ecore_x_dnd_drag (Ecore_X_Window root,
|
|
|
|
int x,
|
Here is ecore_x with XCB backend.
* The XCB backend is disabled by default during the
configuration. To enable it, add --enable-ecore-x-xcb. See the
messages that configure displays when it finishes.
* The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
should be improved
* Any program that uses ecore_evas does not need to be modified.
Any program that uses ecore_x may need some changes. That is,
adding some functions (_prefetch and _fetch ones). No other
change is needed. See the documention of any _get functions, as
these are the ones that need those functions.
* There are some missing parts, especially everything that involves
the keyboard, as porting Xlib functions related to strings (utf8
stuff, XKeysymToString, etc...) is an horror. So keyboard events
are not working yet.
* I tried to write as much documentation as I could. But there is
certainly some missing doc here and there.
there are certainly other things that I have forgotten.
Improvements of that backend:
* the creation of an ecore_evas is faster. Especially when done over
an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
over an ssh)
* A Window Manager should be more responsive. But it's not tomorrow
that e17 will use it :)
Have fun !
SVN revision: 29500
2007-04-13 10:15:19 -07:00
|
|
|
int y);
|
|
|
|
|
|
|
|
|
|
|
|
/* dpms */
|
|
|
|
void _ecore_x_dpms_init (const xcb_query_extension_reply_t *reply);
|
|
|
|
void _ecore_x_dpms_init_finalize (void);
|
|
|
|
|
|
|
|
|
|
|
|
/* netwm */
|
|
|
|
Ecore_X_Window_State _ecore_x_netwm_state_get(Ecore_X_Atom a);
|
|
|
|
int _ecore_x_netwm_startup_info_begin(Ecore_X_Window win, char *data);
|
|
|
|
int _ecore_x_netwm_startup_info(Ecore_X_Window win, char *data);
|
|
|
|
|
|
|
|
|
|
|
|
/* randr */
|
|
|
|
void _ecore_x_randr_init (const xcb_query_extension_reply_t *reply);
|
|
|
|
void _ecore_x_randr_init_finalize (void);
|
|
|
|
|
|
|
|
|
|
|
|
/* selection */
|
|
|
|
void _ecore_x_selection_init(void);
|
|
|
|
void _ecore_x_selection_shutdown(void);
|
|
|
|
Ecore_X_Atom _ecore_x_selection_target_atom_get(const char *target);
|
|
|
|
char *_ecore_x_selection_target_get(Ecore_X_Atom target);
|
|
|
|
Ecore_X_Selection_Intern *_ecore_x_selection_get(Ecore_X_Atom selection);
|
|
|
|
int _ecore_x_selection_set(Ecore_X_Window w, const void *data, int len, Ecore_X_Atom selection);
|
|
|
|
int _ecore_x_selection_convert(Ecore_X_Atom selection, Ecore_X_Atom target, void **data_ret);
|
|
|
|
void *_ecore_x_selection_parse(const char *target, void *data, int size, int format);
|
|
|
|
|
|
|
|
|
|
|
|
/* screensaver */
|
|
|
|
void _ecore_x_screensaver_init (const xcb_query_extension_reply_t *reply);
|
|
|
|
void _ecore_x_screensaver_init_finalize (void);
|
|
|
|
|
|
|
|
|
|
|
|
/* shape */
|
|
|
|
void _ecore_x_shape_init (const xcb_query_extension_reply_t *reply);
|
|
|
|
void _ecore_x_shape_init_finalize (void);
|
|
|
|
|
|
|
|
|
|
|
|
/* sync */
|
|
|
|
void _ecore_x_sync_init (const xcb_query_extension_reply_t *reply);
|
|
|
|
void _ecore_x_sync_init_finalize (void);
|
|
|
|
|
|
|
|
|
|
|
|
/* xfixes */
|
|
|
|
void _ecore_x_xfixes_init (const xcb_query_extension_reply_t *reply);
|
|
|
|
void _ecore_x_xfixes_init_finalize (void);
|
|
|
|
|
|
|
|
|
|
|
|
/* xinerama */
|
|
|
|
void _ecore_x_xinerama_init (const xcb_query_extension_reply_t *reply);
|
|
|
|
void _ecore_x_xinerama_init_finalize (void);
|
|
|
|
|
|
|
|
|
|
|
|
/* xprint */
|
|
|
|
void _ecore_x_xprint_init (const xcb_query_extension_reply_t *reply);
|
|
|
|
void _ecore_x_xprint_init_finalize (void);
|
|
|
|
|
|
|
|
/* to categorize */
|
|
|
|
void _ecore_x_sync_magic_send(int val, Ecore_X_Window swin);
|
|
|
|
void _ecore_x_window_grab_remove(Ecore_X_Window win);
|
|
|
|
void _ecore_x_key_grab_remove(Ecore_X_Window win);
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __ECORE_XCB_PRIVATE_H__*/
|