Ecore_X: Add some new api functions for getting default
Depth/Visual/Colormap of a given screen. NB: Added these so that we can remove xlib specific calls in ecore_evas and just generic ecore_x calls (so we are engine independant). SVN revision: 61742
This commit is contained in:
parent
fb6ca14911
commit
f694f08de5
|
@ -1089,6 +1089,9 @@ EAPI int ecore_x_fd_get(void);
|
||||||
EAPI Ecore_X_Screen * ecore_x_default_screen_get(void);
|
EAPI Ecore_X_Screen * ecore_x_default_screen_get(void);
|
||||||
EAPI void ecore_x_screen_size_get(const Ecore_X_Screen *screen, int *w, int *h);
|
EAPI void ecore_x_screen_size_get(const Ecore_X_Screen *screen, int *w, int *h);
|
||||||
EAPI int ecore_x_screen_count_get(void);
|
EAPI int ecore_x_screen_count_get(void);
|
||||||
|
EAPI int ecore_x_screen_index_get(const Ecore_X_Screen *screen);
|
||||||
|
EAPI Ecore_X_Screen * ecore_x_screen_get(int index);
|
||||||
|
|
||||||
EAPI void ecore_x_double_click_time_set(double t);
|
EAPI void ecore_x_double_click_time_set(double t);
|
||||||
EAPI double ecore_x_double_click_time_get(void);
|
EAPI double ecore_x_double_click_time_get(void);
|
||||||
EAPI void ecore_x_flush(void);
|
EAPI void ecore_x_flush(void);
|
||||||
|
@ -1099,6 +1102,10 @@ EAPI int ecore_x_dpi_get(void);
|
||||||
EAPI Eina_Bool ecore_x_bell(int percent);
|
EAPI Eina_Bool ecore_x_bell(int percent);
|
||||||
EAPI unsigned int ecore_x_visual_id_get(Ecore_X_Visual visual);
|
EAPI unsigned int ecore_x_visual_id_get(Ecore_X_Visual visual);
|
||||||
|
|
||||||
|
EAPI Ecore_X_Visual ecore_x_default_visual_get(Ecore_X_Display *disp, Ecore_X_Screen *screen);
|
||||||
|
EAPI Ecore_X_Colormap ecore_x_default_colormap_get(Ecore_X_Display *disp, Ecore_X_Screen *screen);
|
||||||
|
EAPI int ecore_x_default_depth_get(Ecore_X_Display *disp, Ecore_X_Screen *screen);
|
||||||
|
|
||||||
EAPI Ecore_X_Time ecore_x_current_time_get(void);
|
EAPI Ecore_X_Time ecore_x_current_time_get(void);
|
||||||
|
|
||||||
EAPI void ecore_x_error_handler_set(void (*func)(void *data), const void *data);
|
EAPI void ecore_x_error_handler_set(void (*func)(void *data), const void *data);
|
||||||
|
|
|
@ -1058,9 +1058,9 @@ ecore_x_screen_size_get(const Ecore_X_Screen *screen, int *w, int *h)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the number of screens.
|
* Retrieves the count of screens.
|
||||||
*
|
*
|
||||||
* @return The count of the number of screens.
|
* @return The count of screens.
|
||||||
* @ingroup Ecore_X_Display_Attr_Group
|
* @ingroup Ecore_X_Display_Attr_Group
|
||||||
*
|
*
|
||||||
* @since 1.1
|
* @since 1.1
|
||||||
|
@ -1073,12 +1073,126 @@ ecore_x_screen_count_get(void)
|
||||||
return xcb_setup_roots_length(xcb_get_setup(_ecore_xcb_conn));
|
return xcb_setup_roots_length(xcb_get_setup(_ecore_xcb_conn));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves the index number of the given screen.
|
||||||
|
*
|
||||||
|
* @return The index number of the screen.
|
||||||
|
* @ingroup Ecore_X_Display_Attr_Group
|
||||||
|
*
|
||||||
|
* @since 1.1
|
||||||
|
*/
|
||||||
|
EAPI int
|
||||||
|
ecore_x_screen_index_get(const Ecore_X_Screen *screen)
|
||||||
|
{
|
||||||
|
xcb_screen_iterator_t iter;
|
||||||
|
|
||||||
|
iter =
|
||||||
|
xcb_setup_roots_iterator(xcb_get_setup((xcb_connection_t *)_ecore_xcb_conn));
|
||||||
|
for (; iter.rem; xcb_screen_next(&iter))
|
||||||
|
{
|
||||||
|
if (iter.data == (xcb_screen_t *)screen)
|
||||||
|
return iter.index;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves the screen based on index number.
|
||||||
|
*
|
||||||
|
* @return The Ecore_X_Screen at this index.
|
||||||
|
* @ingroup Ecore_X_Display_Attr_Group
|
||||||
|
*
|
||||||
|
* @since 1.1
|
||||||
|
*/
|
||||||
|
EAPI Ecore_X_Screen *
|
||||||
|
ecore_x_screen_get(int index)
|
||||||
|
{
|
||||||
|
xcb_screen_iterator_t iter;
|
||||||
|
|
||||||
|
iter =
|
||||||
|
xcb_setup_roots_iterator(xcb_get_setup((xcb_connection_t *)_ecore_xcb_conn));
|
||||||
|
for (; iter.rem; xcb_screen_next(&iter))
|
||||||
|
{
|
||||||
|
if (iter.index == index)
|
||||||
|
return iter.data;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
EAPI unsigned int
|
EAPI unsigned int
|
||||||
ecore_x_visual_id_get(Ecore_X_Visual visual)
|
ecore_x_visual_id_get(Ecore_X_Visual visual)
|
||||||
{
|
{
|
||||||
return ((xcb_visualtype_t *)visual)->visual_id;
|
return ((xcb_visualtype_t *)visual)->visual_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve the default Visual.
|
||||||
|
*
|
||||||
|
* @param disp The Display to get the Default Visual from
|
||||||
|
* @param screen The Screen.
|
||||||
|
*
|
||||||
|
* @return The default visual.
|
||||||
|
* @since 1.1.0
|
||||||
|
*/
|
||||||
|
EAPI Ecore_X_Visual
|
||||||
|
ecore_x_default_visual_get(Ecore_X_Display *disp __UNUSED__, Ecore_X_Screen *screen)
|
||||||
|
{
|
||||||
|
xcb_screen_t *s;
|
||||||
|
xcb_depth_iterator_t diter;
|
||||||
|
xcb_visualtype_iterator_t viter;
|
||||||
|
|
||||||
|
s = (xcb_screen_t *)screen;
|
||||||
|
diter = xcb_screen_allowed_depths_iterator(s);
|
||||||
|
for (; diter.rem; xcb_depth_next(&diter))
|
||||||
|
{
|
||||||
|
viter = xcb_depth_visuals_iterator(diter.data);
|
||||||
|
for (; viter.rem; xcb_visualtype_next(&viter))
|
||||||
|
{
|
||||||
|
if (viter.data->visual_id == s->root_visual)
|
||||||
|
return viter.data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve the default Colormap.
|
||||||
|
*
|
||||||
|
* @param disp The Display to get the Default Colormap from
|
||||||
|
* @param screen The Screen.
|
||||||
|
*
|
||||||
|
* @return The default colormap.
|
||||||
|
* @since 1.1.0
|
||||||
|
*/
|
||||||
|
EAPI Ecore_X_Colormap
|
||||||
|
ecore_x_default_colormap_get(Ecore_X_Display *disp __UNUSED__, Ecore_X_Screen *screen)
|
||||||
|
{
|
||||||
|
xcb_screen_t *s;
|
||||||
|
|
||||||
|
s = (xcb_screen_t *)screen;
|
||||||
|
return s->default_colormap;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve the default depth.
|
||||||
|
*
|
||||||
|
* @param disp The Display to get the Default Depth from
|
||||||
|
* @param screen The Screen.
|
||||||
|
*
|
||||||
|
* @return The default depth.
|
||||||
|
* @since 1.1.0
|
||||||
|
*/
|
||||||
|
EAPI int
|
||||||
|
ecore_x_default_depth_get(Ecore_X_Display *disp __UNUSED__, Ecore_X_Screen *screen)
|
||||||
|
{
|
||||||
|
xcb_screen_t *s;
|
||||||
|
|
||||||
|
s = (xcb_screen_t *)screen;
|
||||||
|
return s->root_depth;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the timeout for a double and triple clicks to be flagged.
|
* Sets the timeout for a double and triple clicks to be flagged.
|
||||||
*
|
*
|
||||||
|
|
|
@ -727,6 +727,34 @@ ecore_x_screen_count_get(void)
|
||||||
return ScreenCount(_ecore_x_disp);
|
return ScreenCount(_ecore_x_disp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves the index number of the given screen.
|
||||||
|
*
|
||||||
|
* @return The index number of the screen.
|
||||||
|
* @ingroup Ecore_X_Display_Attr_Group
|
||||||
|
*
|
||||||
|
* @since 1.1
|
||||||
|
*/
|
||||||
|
EAPI int
|
||||||
|
ecore_x_screen_index_get(const Ecore_X_Screen *screen)
|
||||||
|
{
|
||||||
|
return XScreenNumberOfScreen((Screen *)screen);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves the screen based on index number.
|
||||||
|
*
|
||||||
|
* @return The Ecore_X_Screen at this index.
|
||||||
|
* @ingroup Ecore_X_Display_Attr_Group
|
||||||
|
*
|
||||||
|
* @since 1.1
|
||||||
|
*/
|
||||||
|
EAPI Ecore_X_Screen *
|
||||||
|
ecore_x_screen_get(int index)
|
||||||
|
{
|
||||||
|
return XScreenOfDisplay(_ecore_x_disp, index);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the timeout for a double and triple clicks to be flagged.
|
* Sets the timeout for a double and triple clicks to be flagged.
|
||||||
*
|
*
|
||||||
|
@ -1876,6 +1904,51 @@ ecore_x_visual_id_get(Ecore_X_Visual visual)
|
||||||
return XVisualIDFromVisual(visual);
|
return XVisualIDFromVisual(visual);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve the default Visual.
|
||||||
|
*
|
||||||
|
* @param disp The Display to get the Default Visual from
|
||||||
|
* @param screen The Screen.
|
||||||
|
*
|
||||||
|
* @return The default visual.
|
||||||
|
* @since 1.1.0
|
||||||
|
*/
|
||||||
|
EAPI Ecore_X_Visual
|
||||||
|
ecore_x_default_visual_get(Ecore_X_Display *disp, Ecore_X_Screen *screen)
|
||||||
|
{
|
||||||
|
return DefaultVisual(disp, screen);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve the default Colormap.
|
||||||
|
*
|
||||||
|
* @param disp The Display to get the Default Colormap from
|
||||||
|
* @param screen The Screen.
|
||||||
|
*
|
||||||
|
* @return The default colormap.
|
||||||
|
* @since 1.1.0
|
||||||
|
*/
|
||||||
|
EAPI Ecore_X_Colormap
|
||||||
|
ecore_x_default_colormap_get(Ecore_X_Display *disp, Ecore_X_Screen *screen)
|
||||||
|
{
|
||||||
|
return DefaultColormap(disp, screen);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve the default depth.
|
||||||
|
*
|
||||||
|
* @param disp The Display to get the Default Depth from
|
||||||
|
* @param screen The Screen.
|
||||||
|
*
|
||||||
|
* @return The default depth.
|
||||||
|
* @since 1.1.0
|
||||||
|
*/
|
||||||
|
EAPI int
|
||||||
|
ecore_x_default_depth_get(Ecore_X_Display *disp, Ecore_X_Screen *screen)
|
||||||
|
{
|
||||||
|
return DefaultDepth(disp, screen);
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
Loading…
Reference in New Issue