[EGIT] [core/efl] master 01/02: Evas GL: Add preventive padding after Evas_GL_API
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0514cbc1a3c86a86c2abcf39958f562e5bc2e31b commit 0514cbc1a3c86a86c2abcf39958f562e5bc2e31b Author: Jean-Philippe Andre jp.an...@samsung.com Date: Wed Dec 3 11:44:09 2014 +0900 Evas GL: Add preventive padding after Evas_GL_API Since this struct is likely to grow in size over time, client apps built against future versions of EFL might start indexing fields that are not present in the current form. Also, don't reset the struct memory as this would break multithreaded GL applications. While this is not exactly a fix, I'll backport this. @fix --- src/modules/evas/engines/gl_common/evas_gl_api.c | 2 -- .../evas/engines/gl_common/evas_gl_api_gles1.c| 2 -- src/modules/evas/engines/gl_common/evas_gl_core.c | 19 +++ 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/modules/evas/engines/gl_common/evas_gl_api.c b/src/modules/evas/engines/gl_common/evas_gl_api.c index 6a5ea56..ed8f501 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_api.c +++ b/src/modules/evas/engines/gl_common/evas_gl_api.c @@ -2868,8 +2868,6 @@ _debug_gl_api_get(Evas_GL_API *funcs) void _evgl_api_get(Evas_GL_API *funcs, int debug) { - memset(funcs, 0, sizeof(Evas_GL_API)); - if (debug) _debug_gl_api_get(funcs); else diff --git a/src/modules/evas/engines/gl_common/evas_gl_api_gles1.c b/src/modules/evas/engines/gl_common/evas_gl_api_gles1.c index c018f7e..d3eee22 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_api_gles1.c +++ b/src/modules/evas/engines/gl_common/evas_gl_api_gles1.c @@ -4263,8 +4263,6 @@ _normal_gles1_api_get(Evas_GL_API *funcs) void _evgl_api_gles1_get(Evas_GL_API *funcs, Eina_Bool debug) { - memset(funcs, 0, sizeof(Evas_GL_API)); - if (!_evgl_gles1_api_init()) return; diff --git a/src/modules/evas/engines/gl_common/evas_gl_core.c b/src/modules/evas/engines/gl_common/evas_gl_core.c index 1878f5f..9ec771a 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_core.c +++ b/src/modules/evas/engines/gl_common/evas_gl_core.c @@ -8,9 +8,11 @@ typedef struct _GL_Format GLenum fmt; } GL_Format; -// Globals -static Evas_GL_API gl_funcs; -static Evas_GL_API gles1_funcs; +// Extended struct size based on the 314 functions found in gl31.h +#define EVAS_GL_API_STRUCT_SIZE (sizeof(Evas_GL_API) + 300 * sizeof(void*)) +static Evas_GL_API *gl_funcs = NULL; +static Evas_GL_API *gles1_funcs = NULL; + EVGL_Engine *evgl_engine = NULL; int _evas_gl_log_dom = -1; int _evas_gl_log_level = -1; @@ -1456,7 +1458,8 @@ evgl_engine_init(void *eng_data, const EVGL_Interface *efunc) evgl_engine-main_tid = 0; // Clear Function Pointers - memset(gl_funcs, 0, sizeof(Evas_GL_API)); + if (!gl_funcs) gl_funcs = calloc(1, EVAS_GL_API_STRUCT_SIZE); + if (!gles1_funcs) gles1_funcs = calloc(1, EVAS_GL_API_STRUCT_SIZE); return evgl_engine; @@ -2414,13 +2417,13 @@ evgl_api_get(Evas_GL_Context_Version version) { if (version == EVAS_GL_GLES_2_X) { -_evgl_api_get(gl_funcs, evgl_engine-api_debug_mode); -return gl_funcs; +_evgl_api_get(gl_funcs, evgl_engine-api_debug_mode); +return gl_funcs; } else if (version == EVAS_GL_GLES_1_X) { -_evgl_api_gles1_get(gles1_funcs, evgl_engine-api_debug_mode); -return gles1_funcs; +_evgl_api_gles1_get(gles1_funcs, evgl_engine-api_debug_mode); +return gles1_funcs; } else return NULL; } --
[EGIT] [core/efl] master 02/02: Evas GL: Clarify doc about Evas_GL_API struct version
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ef36e0d8877bcc760c7981d3061f551ff05f4e29 commit ef36e0d8877bcc760c7981d3061f551ff05f4e29 Author: Jean-Philippe Andre jp.an...@samsung.com Date: Wed Dec 3 12:08:03 2014 +0900 Evas GL: Clarify doc about Evas_GL_API struct version --- src/lib/evas/Evas_GL.h | 35 +-- 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/src/lib/evas/Evas_GL.h b/src/lib/evas/Evas_GL.h index 302d72c..c3ce92a 100644 --- a/src/lib/evas/Evas_GL.h +++ b/src/lib/evas/Evas_GL.h @@ -3498,9 +3498,15 @@ typedef unsigned long long EvasGLTime; /** @} */ -/* Version 1: OpenGLES 2.0 + extensions only - * Version 2: OpenGLES 1.0 + extensions - * Version 3: wayland extensions +/** + * @brief Defines the version of the API structure. + * + * This helps applications know at runtime whether a function pointer exists + * or not. + * + * Version 1: GLES 2.0 + GLES2 extensions only + * Version 2: GLES 2.0 + GLES2 extensions + GLES1 + GLES1.1 extensions + * Version 3: [version 2] + Wayland extensions */ #define EVAS_GL_API_VERSION 3 @@ -3791,8 +3797,12 @@ struct _Evas_GL_API */ void (*evasglDestroyImage) (EvasGLImage image); + + + // -- // /* Evas_GL_API version 2: */ + /** * @anchor evasglCreateImageForContext * @brief Create an EvasGLImage for a given context. @@ -3817,6 +3827,8 @@ EvasGLImage *img = glapi-evasglCreateImageForContext * @li @c EVAS_GL_NATIVE_SURFACE_TIZEN (Tizen platform only):br/ * Requires the @c EVAS_GL_TIZEN_image_native_surface extension. * +* @note Evas_GL_API must have version 2 or more. +* * @since 1.12 */ EvasGLImage (*evasglCreateImageForContext) (Evas_GL *evas_gl, Evas_GL_Context *ctx, int target, void* buffer, const int* attrib_list) EINA_WARN_UNUSED_RESULT; @@ -3826,7 +3838,7 @@ EvasGLImage *img = glapi-evasglCreateImageForContext /** * @name OpenGL-ES 1.1 * -* Evas_GL_API version 2. +* Evas_GL_API version 2 or more. * * The following functions are some of the standard OpenGL-ES 1.0 functions, * that are not also present in the @ref gles2 OpenGL-ES 2.0 APIs. @@ -3927,7 +3939,7 @@ EvasGLImage *img = glapi-evasglCreateImageForContext /** * @name OpenGL-ES 1.1 extensions * -* Evas_GL_API version 2. +* Evas_GL_API version 2 or more. * * OpenGL-ES 1.1 specifies a set of extensions on top of OpenGL-ES 1.0. * When available, Evas GL will expose these extensions with the following @@ -4124,8 +4136,16 @@ EvasGLImage *img = glapi-evasglCreateImageForContext int (*evasglWaitSync) (Evas_GL *evas_gl, EvasGLSync sync, int flags); /** @} */ + + + // -- // + /* Evas_GL_API version 3: */ + /** * @name Evas GL Wayland functions +* +* Evas_GL_API version 3 or more. +* * @since 1.13 * @{ */ /** @@ -4145,7 +4165,10 @@ EvasGLImage *img = glapi-evasglCreateImageForContext Eina_Bool(*evasglQueryWaylandBuffer) (Evas_GL *evas_gl, void *buffer, int attribute, int *value); /** @} */ - /* future calls will be added down here for expansion */ + /* Future calls will be added down here for expansion, when adding +* new APIs here, please bump the struct version number (together with +* the EFL version bump). +*/ }; --
[EGIT] [core/efl] master 02/03: autotools: fix compiling/linking gl engines on OSX.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=682d7fab54f763212cd40c0ad0b24dba1717ce7f commit 682d7fab54f763212cd40c0ad0b24dba1717ce7f Author: Jean Guyomarc'h jean.guyoma...@gmail.com Date: Wed Dec 3 09:45:51 2014 +0100 autotools: fix compiling/linking gl engines on OSX. Summary: Until now, it was necessary to set global LDFLAGS and CFLAGS to allow compiling (and linking) engines using OpenGL. gl_generic used to complained about missing headers or unkown libraries. A problem on OSX is that there is CGL (Apple's Core OpenGL) on which the whole system relies on and GLX, when X11 is installed; and they cohabit together. When gl_cocoa is enabled, gl_generic is now linked against CGL. When it is not, gl_generic is compiled with and linked against GLX as a fallback. @fix Test Plan: With --enable-cocoa: software_x11, opengl_x11 and opengl_cocoa are working as expected. With --disable-cocoa: software_x11 and opengl_x11 are also working as expected. No compiling nor linking problems have been issued. Reviewers: cedric, raster, raoulh Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D1723 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- configure.ac | 22 ++ src/Makefile_Evas.am | 1 + 2 files changed, 23 insertions(+) diff --git a/configure.ac b/configure.ac index 8880089..27a6411 100644 --- a/configure.ac +++ b/configure.ac @@ -1805,6 +1805,28 @@ else evas_engine_gl_common_libs=-lGL fi +# The lines below fix compiling/linking of gl_generic on OSX +if test x${have_darwin} = xyes; then + if test x${have_evas_engine_gl_cocoa} = xyes; then + # If gl_cocoa is enabled, Apple's Core OpenGL (CGL) should be the default OpenGL. + # CFLAGS and LIBS are determined by evas-gl_cocoa. + evas_engine_gl_common_libs=${evas_engine_gl_cocoa_libs} + evas_engine_gl_common_cflags=${evas_engine_gl_cocoa_cflags} + else + # If evas-gl_cocoa is disabled, the only supported OpenGL engine on OSX (for now) + # is evas-gl_x11. Without its CFLAGS and LIBS explicitely set, gl_generic + # cannot compile (nor link). + evas_engine_gl_common_libs= + evas_engine_gl_common_cflags= + + if test x${have_evas_engine_gl_xlib} = xyes; then + evas_engine_gl_common_libs=${evas_engine_gl_xlib_libs} + evas_engine_gl_common_cflags=${evas_engine_gl_xlib_cflags} + fi + ### XXX Check for other supported engines supported on OSX (dec. 2014: NONE) + fi +fi + AC_SUBST([evas_engine_gl_common_cflags]) AC_SUBST([evas_engine_gl_common_libs]) diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index 9e67eac..a625ec6 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -711,6 +711,7 @@ modules_evas_engines_gl_generic_module_la_CFLAGS = \ -I$(top_srcdir)/src/lib/evas/include \ -I$(top_srcdir)/src/lib/evas/cserve2 \ -I$(top_srcdir)/src/modules/evas/engines/gl_common \ +@evas_engine_gl_common_cflags@ \ @EVAS_CFLAGS@ modules_evas_engines_gl_generic_module_la_LIBADD = \ modules/evas/engines/gl_common/libevas_engine_gl_common.la \ --
[EGIT] [core/efl] master 01/03: evas: Evas_3D - fix typo.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b1f8f3fb17ec37c4ddb817d766051eb8fe9d72e1 commit b1f8f3fb17ec37c4ddb817d766051eb8fe9d72e1 Author: perepelits.m perepelit...@samsung.com Date: Wed Dec 3 09:42:50 2014 +0100 evas: Evas_3D - fix typo. Summary: A little fix of copy-paste, there were problems while changing texture coordinates of indices. @fix Reviewers: raster, Hermet, cedric Reviewed By: cedric Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D1725 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/modules/evas/engines/gl_common/evas_gl_3d.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/evas/engines/gl_common/evas_gl_3d.c b/src/modules/evas/engines/gl_common/evas_gl_3d.c index 1a70473..7b19939 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_3d.c +++ b/src/modules/evas/engines/gl_common/evas_gl_3d.c @@ -10,14 +10,14 @@ e3d_texture_param_update(E3D_Texture *texture) if (texture-wrap_dirty) { glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, texture-wrap_s); -glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, texture-wrap_t); +glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, texture-wrap_t); texture-wrap_dirty = EINA_FALSE; } if (texture-filter_dirty) { glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, texture-filter_min); -glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, texture-filter_mag); +glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, texture-filter_mag); texture-filter_dirty = EINA_FALSE; } } --
[EGIT] [core/efl] master 03/03: Evas: Evas_3D - Add check of visibilty node.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=720a3726e988d5a2293836a816a1c10254246c89 commit 720a3726e988d5a2293836a816a1c10254246c89 Author: Dmytro Dadyka d.dad...@samsung.com Date: Wed Dec 3 09:48:55 2014 +0100 Evas: Evas_3D - Add check of visibilty node. If the node is not visible, it is not rendered, which improves performance. @feature. Reviewers: raster, Hermet, cedric Reviewed By: cedric Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D1722 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/modules/evas/engines/gl_common/evas_gl_3d.c | 88 ++--- 1 file changed, 51 insertions(+), 37 deletions(-) diff --git a/src/modules/evas/engines/gl_common/evas_gl_3d.c b/src/modules/evas/engines/gl_common/evas_gl_3d.c index 7b19939..ac17007 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_3d.c +++ b/src/modules/evas/engines/gl_common/evas_gl_3d.c @@ -1239,6 +1239,7 @@ void _shadowmap_render(E3D_Drawable *drawable, E3D_Renderer *renderer, Evas_3D_S Evas_3D_Node *n; Evas_3D_Shade_Mode shade_mode; Evas_Color c = {1.0, 1.0, 1.0}; + Evas_Mat4 matrix_vp; glEnable(GL_POLYGON_OFFSET_FILL); glPolygonOffset(4.0, 1.0); @@ -1249,6 +1250,10 @@ void _shadowmap_render(E3D_Drawable *drawable, E3D_Renderer *renderer, Evas_3D_S Evas_3D_Node_Data *pd_light_node = eo_data_scope_get(light, EVAS_3D_NODE_CLASS); Evas_3D_Light_Data *pd = eo_data_scope_get(pd_light_node-data.light.light, EVAS_3D_LIGHT_CLASS); + Evas_Vec4 planes[6]; + evas_mat4_multiply(matrix_vp, pd-projection, matrix_light_eye); + evas_frustum_calculate(planes, matrix_vp); + EINA_LIST_FOREACH(data-mesh_nodes, l, n) { Evas_Mat4 matrix_mv; @@ -1257,23 +1262,27 @@ void _shadowmap_render(E3D_Drawable *drawable, E3D_Renderer *renderer, Evas_3D_S void *ptr; Evas_3D_Node_Data *pd_mesh_node = eo_data_scope_get(n, EVAS_3D_NODE_CLASS); -evas_mat4_multiply(matrix_mv, matrix_light_eye, pd_mesh_node-data.mesh.matrix_local_to_world); -evas_mat4_multiply(matrix_mvp, pd-projection, + +if (evas_is_sphere_in_frustum(pd_mesh_node-bsphere, planes)) + { + + evas_mat4_multiply(matrix_mv, matrix_light_eye, pd_mesh_node-data.mesh.matrix_local_to_world); + evas_mat4_multiply(matrix_mvp, pd-projection, matrix_mv); -it = eina_hash_iterator_data_new(pd_mesh_node-data.mesh.node_meshes); + it = eina_hash_iterator_data_new(pd_mesh_node-data.mesh.node_meshes); -while (eina_iterator_next(it, ptr)) - { - Evas_3D_Node_Mesh *nm = (Evas_3D_Node_Mesh *)ptr; - Evas_3D_Mesh_Data *pdmesh = eo_data_scope_get(nm-mesh, EVAS_3D_MESH_CLASS); - shade_mode = pdmesh-shade_mode; - pdmesh-shade_mode = EVAS_3D_SHADE_MODE_SHADOW_MAP_RENDER; - _mesh_draw(renderer, nm-mesh, nm-frame, light, matrix_light_eye, matrix_mv, matrix_mvp, matrix_mvp); - pdmesh-shade_mode = shade_mode; + while (eina_iterator_next(it, ptr)) + { + Evas_3D_Node_Mesh *nm = (Evas_3D_Node_Mesh *)ptr; + Evas_3D_Mesh_Data *pdmesh = eo_data_scope_get(nm-mesh, EVAS_3D_MESH_CLASS); + shade_mode = pdmesh-shade_mode; + pdmesh-shade_mode = EVAS_3D_SHADE_MODE_SHADOW_MAP_RENDER; + _mesh_draw(renderer, nm-mesh, nm-frame, light, matrix_light_eye, matrix_mv, matrix_mvp, matrix_mvp); + pdmesh-shade_mode = shade_mode; + } + eina_iterator_free(it); } - -eina_iterator_free(it); } glDisable(GL_POLYGON_OFFSET_FILL); @@ -1287,9 +1296,10 @@ e3d_drawable_scene_render(E3D_Drawable *drawable, E3D_Renderer *renderer, Evas_3 Evas_3D_Node *n; const Evas_Mat4 *matrix_eye; Evas_3D_Node *light; - Evas_Mat4matrix_light_eye; + Evas_Mat4matrix_light_eye, matrix_vp;; Evas_3D_Light_Data *ld = NULL; Evas_3D_Node_Data *pd_light_node; + Evas_Vec4 planes[6]; /* Get eye matrix. */ Evas_3D_Node_Data *pd_camera_node = eo_data_scope_get(data-camera_node, EVAS_3D_NODE_CLASS); @@ -1311,6 +1321,9 @@ e3d_drawable_scene_render(E3D_Drawable *drawable, E3D_Renderer *renderer, Evas_3 /* Set up render target. */ e3d_renderer_target_set(renderer, drawable); e3d_renderer_clear(renderer, data-bg_color); + + evas_mat4_multiply(matrix_vp, pd-projection, matrix_eye); + evas_frustum_calculate(planes, matrix_vp); EINA_LIST_FOREACH(data-mesh_nodes, l, n) { Evas_Mat4 matrix_mv; @@ -1320,36 +1333,37 @@ e3d_drawable_scene_render(E3D_Drawable *drawable, E3D_Renderer *renderer, Evas_3 void *ptr;
Re: [E-devel] Tabs in terminology
On 14-12-03 08:57, Carsten Haitzler wrote: On Tue, 2 Dec 2014 21:29:37 +0100 Boris Faure bo...@fau.re said: Hi! I've pushed a bunch of commits to the terminology repository. They change (and enhance I hope) the way tabs and splits can be used in terminology. There is a tabbar that can be hidden to get the old tab selector. All splits contain an hidden tabbar thus you can have tabs in splits in tabs in… I couldn't make the tab entries as great as I wanted due to a bug I encountered while using an object in an elm_toolbar_item. I've put that state of the code at devs/billiob/strange_bug. I'll try to make a smaller test case. There are probably some hidden bugs, so please, test it and report them on phab. If you have some ideas on how to improve that aspect of terminology, feel free to share them. this is swimming with problems: 1. why on earth is there now a tab bar whgen i have no tabs. just a single terminal? why is my terminal now bloated and taller eating up useless space REPEATING what is already in the titlebar? There is a config option to hide the tab bar by default. I put it here as part of user experience, to tell people they can have tabs as they expect them. 2. when you hide the tab bar it's not remembered and terminal cell grid/size is broken now as it never changes/adjusts for the tab bar hide/show I'll fix it. 3. when you hide the old tab switcher controls (4 boxes top-right) is half off the window to bring it back (separate from the actual switcher), when i have no tabs.. and i don't want to bring it back., I don't understand the first part on that one. 4. initial focus is broken - i open a terminal and cannot type in it at all ... until i click the terminal itself. i have to do this EVERY TIME i start terminology at all/ it's become INCREDIBLY painful to use. Worked for me with focus follow mouse in terminology. I'll test without that option and fix the issues. […] there are smaller things - like long titles don't fit in a tab entry but they center so i don't see the beginning of the text and the end is cut off too - likely you want a different behavior like Long title is... rather than the current g title. the tab bar kind of looks out of place. visually. it has a lighter grey bg next to the dark bg of the term... it looks like its just a box of flat grey with buttons on it... it would make more sense imho if it had no bg and was overlayed on the same bg as the term... (personally i would have done this custom with edje objects and a custom layout of them with mouse-over scrolling like the tab selector has in 2d, but in 1d here). if you wanted tabs i would have visually designed things to look actually tab-like with a ... tab coming off the existing terminal (and other unselected tabs to the left/right covering it up to look a bit inset with tabs in the bg). I'd like to do it like that but I suck at edc. Each time I try to do something nice in edc, it gets on my nerves. don't get me wrong. you're doing a fine job with terminology! just this here is a bit of a misstep and a stumble. i personally don't like the idea of wasting vertical space for tabs always being there, but people insist on wasting their space and want it so fine - do it.. but.. do it nicely then and don't break existing usage without tabs. I'll keep on working on it in a separate branch. -- Boris Faure Pointer Arithmetician signature.asc Description: Digital signature -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/enlightenment] master 01/01: ibar: Fix additional actions and seperator placement.
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=416aaa978d89f6ee1a2c464bd0406cc44f9e5a9a commit 416aaa978d89f6ee1a2c464bd0406cc44f9e5a9a Author: Leif Middelschulte leif.middelschu...@gmail.com Date: Wed Dec 3 18:14:23 2014 +0900 ibar: Fix additional actions and seperator placement. Summary: This moves the additional actions to the top of the menu and the seperator right underneath. Reviewers: zmike Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D1694 --- src/modules/ibar/e_mod_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c index b0b67a8..9613ad2 100644 --- a/src/modules/ibar/e_mod_main.c +++ b/src/modules/ibar/e_mod_main.c @@ -1639,6 +1639,7 @@ _ibar_cb_icon_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS if (ic-app-actions) { + mi = NULL; EINA_LIST_FOREACH(ic-app-actions, it, action) { mi = e_menu_item_new_relative(m, mi); @@ -1646,7 +1647,7 @@ _ibar_cb_icon_mouse_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS e_util_menu_item_theme_icon_set(mi, action-icon); e_menu_item_callback_set(mi, _ibar_cb_menu_icon_action_exec, action); } - mi = e_menu_item_new(m); + mi = e_menu_item_new_relative(m, mi); e_menu_item_separator_set(mi, 1); } --
Re: [E-devel] [e-users] Tabs in terminology
On Wed, 3 Dec 2014 10:15:44 +0100 Boris Faure bo...@fau.re said: On 14-12-03 08:57, Carsten Haitzler wrote: On Tue, 2 Dec 2014 21:29:37 +0100 Boris Faure bo...@fau.re said: Hi! I've pushed a bunch of commits to the terminology repository. They change (and enhance I hope) the way tabs and splits can be used in terminology. There is a tabbar that can be hidden to get the old tab selector. All splits contain an hidden tabbar thus you can have tabs in splits in tabs in… I couldn't make the tab entries as great as I wanted due to a bug I encountered while using an object in an elm_toolbar_item. I've put that state of the code at devs/billiob/strange_bug. I'll try to make a smaller test case. There are probably some hidden bugs, so please, test it and report them on phab. If you have some ideas on how to improve that aspect of terminology, feel free to share them. this is swimming with problems: 1. why on earth is there now a tab bar whgen i have no tabs. just a single terminal? why is my terminal now bloated and taller eating up useless space REPEATING what is already in the titlebar? There is a config option to hide the tab bar by default. I put it here as part of user experience, to tell people they can have tabs as they expect them. i know - and it still messes up focus when hidden by default and puts 2 little boxes at the top of the window when there are no tabs being used to pull it back down. :) 2. when you hide the tab bar it's not remembered and terminal cell grid/size is broken now as it never changes/adjusts for the tab bar hide/show I'll fix it. 3. when you hide the old tab switcher controls (4 boxes top-right) is half off the window to bring it back (separate from the actual switcher), when i have no tabs.. and i don't want to bring it back., I don't understand the first part on that one. hiding the tab toolbar still leaves 2 boxes at the top-right of the terminal window to re-show thte tab switcher. even if no tabs exist. :) 4. initial focus is broken - i open a terminal and cannot type in it at all ... until i click the terminal itself. i have to do this EVERY TIME i start terminology at all/ it's become INCREDIBLY painful to use. Worked for me with focus follow mouse in terminology. I'll test without that option and fix the issues. focus follows mouse in e. i literally EVERY time i focus the window have to click on it to type in the terminal. every single time. this is really the crux of the problem. it makes terminology so annoying to use i either revert this or switch to xterm. :) […] there are smaller things - like long titles don't fit in a tab entry but they center so i don't see the beginning of the text and the end is cut off too - likely you want a different behavior like Long title is... rather than the current g title. the tab bar kind of looks out of place. visually. it has a lighter grey bg next to the dark bg of the term... it looks like its just a box of flat grey with buttons on it... it would make more sense imho if it had no bg and was overlayed on the same bg as the term... (personally i would have done this custom with edje objects and a custom layout of them with mouse-over scrolling like the tab selector has in 2d, but in 1d here). if you wanted tabs i would have visually designed things to look actually tab-like with a ... tab coming off the existing terminal (and other unselected tabs to the left/right covering it up to look a bit inset with tabs in the bg). I'd like to do it like that but I suck at edc. Each time I try to do something nice in edc, it gets on my nerves. :( don't get me wrong. you're doing a fine job with terminology! just this here is a bit of a misstep and a stumble. i personally don't like the idea of wasting vertical space for tabs always being there, but people insist on wasting their space and want it so fine - do it.. but.. do it nicely then and don't break existing usage without tabs. I'll keep on working on it in a separate branch. please. i was mulling if i should not just do it to show you how :) show you what i mean :) it's all about finding time... :) -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net
Re: [E-devel] [e-users] Tabs in terminology
On 14-12-03 18:33, Carsten Haitzler wrote: 3. when you hide the old tab switcher controls (4 boxes top-right) is half off the window to bring it back (separate from the actual switcher), when i have no tabs.. and i don't want to bring it back., I don't understand the first part on that one. hiding the tab toolbar still leaves 2 boxes at the top-right of the terminal window to re-show thte tab switcher. even if no tabs exist. :) Let's say you have a window like the following: 2 splits, no tab. +--+--+ | A | +--+--+ |B |C | +--+--+ How do you add a tab that covers the whole window? How about one that covers only B, or both B and C? The way I did it is that the new tab callback (either from the key bindings or the controls menu) will go from the term where the event occurs up to a tab container where there are more than one tab or create a full-window-tab. In case you want one tab that covers B and C, you need to bring up that tab-bar. If you have a better way to handle that case, I'm all ears. Would you prefer to have the tab-bar switcher only shown on over? -- Boris Faure Pointer Arithmetician signature.asc Description: Digital signature -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [e-users] Tabs in terminology
On Wed, 3 Dec 2014 11:20:57 +0100 Boris Faure bo...@fau.re said: On 14-12-03 18:33, Carsten Haitzler wrote: 3. when you hide the old tab switcher controls (4 boxes top-right) is half off the window to bring it back (separate from the actual switcher), when i have no tabs.. and i don't want to bring it back., I don't understand the first part on that one. hiding the tab toolbar still leaves 2 boxes at the top-right of the terminal window to re-show thte tab switcher. even if no tabs exist. :) Let's say you have a window like the following: 2 splits, no tab. +--+--+ | A | +--+--+ |B |C | +--+--+ How do you add a tab that covers the whole window? How about one that covers only B, or both B and C? the case i saw first was a window with no splits 1 term.. with no extra tabs. it shouldn't have had any extra decorations for the tab bar. :) if you want a tab bar covering all splits (and it switches the currently focused split) - sure. i would put a tab bar at the top of every term (in each split). if user hides tab bar then work like terminology did before - with the grid tab switcher. with tab bar visible then you can use the tab bar to switch terms. :) The way I did it is that the new tab callback (either from the key bindings or the controls menu) will go from the term where the event occurs up to a tab container where there are more than one tab or create a full-window-tab. In case you want one tab that covers B and C, you need to bring up that tab-bar. If you have a better way to handle that case, I'm all ears. Would you prefer to have the tab-bar switcher only shown on over? i'm easy there - as long as when turned off. it ceases to exist. :) give me a bit and i'll show you what i would do/expect from tabs. it's a bit complex as there arent really any examples of doing nice tabs with edje. i can see why you did it the way you did, and why i'd do it differently visually (which would affect everything else too). -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/enlightenment] master 02/03: backlight: remove code duplication
tasn pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=294db70962ae905d7f28b6b46e39e6cc2580f12f commit 294db70962ae905d7f28b6b46e39e6cc2580f12f Author: Luis de Bethencourt luis...@samsung.com Date: Tue Dec 2 18:21:10 2014 + backlight: remove code duplication Move repeated blocks of code to a static function --- src/modules/backlight/e_mod_main.c | 78 +++--- 1 file changed, 22 insertions(+), 56 deletions(-) diff --git a/src/modules/backlight/e_mod_main.c b/src/modules/backlight/e_mod_main.c index bbabfa5..2b63d16 100644 --- a/src/modules/backlight/e_mod_main.c +++ b/src/modules/backlight/e_mod_main.c @@ -49,6 +49,7 @@ static Eina_List *handlers; static void _backlight_popup_free(Instance *inst); +static void _backlight_level_set(Instance *inst, double value, Eina_Bool set_slider); static void _backlight_gadget_update(Instance *inst) @@ -61,6 +62,20 @@ _backlight_gadget_update(Instance *inst) edje_object_message_send(inst-o_backlight, EDJE_MESSAGE_FLOAT, 0, msg); } +static void +_backlight_level_set(Instance *inst, double val, Eina_Bool set_slider) +{ + if (val 1.0) val = 1.0; + if (val 0.0) val = 0.0; + if (set_slider) + e_widget_slider_value_double_set(inst-o_slider, val); + inst-val = val; + e_backlight_mode_set(inst-gcc-gadcon-zone, E_BACKLIGHT_MODE_NORMAL); + e_backlight_level_set(inst-gcc-gadcon-zone, val, 0.0); + e_config-backlight.normal = val; + e_config_save_queue(); +} + static Eina_Bool _backlight_win_key_down_cb(void *data, Ecore_Event_Key *ev) { @@ -79,14 +94,7 @@ _backlight_win_key_down_cb(void *data, Ecore_Event_Key *ev) (!strcmp(keysym, bracketright)) || (!strcmp(keysym, Prior))) { -double v = inst-val + 0.1; -if (v 1.0) v = 1.0; -e_widget_slider_value_double_set(inst-o_slider, v); -inst-val = v; -e_backlight_mode_set(inst-gcc-gadcon-zone, E_BACKLIGHT_MODE_NORMAL); -e_backlight_level_set(inst-gcc-gadcon-zone, v, 0.0); -e_config-backlight.normal = v; -e_config_save_queue(); +_backlight_level_set(inst, inst-val + 0.1, EINA_TRUE); _backlight_gadget_update(inst); } else if ((!strcmp(keysym, Down)) || @@ -98,14 +106,7 @@ _backlight_win_key_down_cb(void *data, Ecore_Event_Key *ev) (!strcmp(keysym, bracketleft)) || (!strcmp(keysym, Next))) { -double v = inst-val - 0.1; -if (v 0.0) v = 0.0; -e_widget_slider_value_double_set(inst-o_slider, v); -inst-val = v; -e_backlight_mode_set(inst-gcc-gadcon-zone, E_BACKLIGHT_MODE_NORMAL); -e_backlight_level_set(inst-gcc-gadcon-zone, v, 0.0); -e_config-backlight.normal = v; -e_config_save_queue(); +_backlight_level_set(inst, inst-val - 0.1, EINA_TRUE); _backlight_gadget_update(inst); } else if ((!strcmp(keysym, 0)) || @@ -119,13 +120,7 @@ _backlight_win_key_down_cb(void *data, Ecore_Event_Key *ev) (!strcmp(keysym, 8)) || (!strcmp(keysym, 9))) { -double v = (double)atoi(keysym) / 9.0; -e_widget_slider_value_double_set(inst-o_slider, v); -inst-val = v; -e_backlight_mode_set(inst-gcc-gadcon-zone, E_BACKLIGHT_MODE_NORMAL); -e_backlight_level_set(inst-gcc-gadcon-zone, v, 0.0); -e_config-backlight.normal = v; -e_config_save_queue(); +_backlight_level_set(inst, (double)atoi(keysym) / 9.0, EINA_TRUE); _backlight_gadget_update(inst); } else @@ -172,10 +167,7 @@ static void _slider_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { Instance *inst = data; - e_backlight_mode_set(inst-gcc-gadcon-zone, E_BACKLIGHT_MODE_NORMAL); - e_backlight_level_set(inst-gcc-gadcon-zone, inst-val, 0.0); - e_config-backlight.normal = inst-val; - e_config_save_queue(); + _backlight_level_set(inst, inst-val, EINA_FALSE); } static void @@ -280,26 +272,6 @@ _backlight_cb_mouse_down(void *data, Evas *evas __UNUSED__, Evas_Object *obj __U } static void -_backlight_level_decrease(Instance *inst) -{ - double v = inst-val - 0.1; - if (v 0.0) v = 0.0; - e_backlight_level_set(inst-gcc-gadcon-zone, v, 0.0); - e_config-backlight.normal = v; - e_config_save_queue(); -} - -static void -_backlight_level_increase(Instance *inst) -{ - double v = inst-val + 0.1; - if (v 1.0) v = 1.0; - e_backlight_level_set(inst-gcc-gadcon-zone, v, 0.0); - e_config-backlight.normal = v; - e_config_save_queue(); -} - -static void _backlight_cb_mouse_wheel(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event) { Evas_Event_Mouse_Wheel *ev = event; @@ -307,9 +279,9 @@ _backlight_cb_mouse_wheel(void *data, Evas *evas __UNUSED__, Evas_Object *obj __ inst-val = e_backlight_level_get(inst-gcc-gadcon-zone); if (ev-z 0) -
[EGIT] [core/enlightenment] master 03/03: AUTHORS: Add Luis to authors file.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=4cff39b6d75842a0c21d5f1383a169778fe4bc6c commit 4cff39b6d75842a0c21d5f1383a169778fe4bc6c Author: Tom Hacohen t...@stosb.com Date: Wed Dec 3 12:03:58 2014 + AUTHORS: Add Luis to authors file. Thanks for your contributions, let's hope they are the first of many. :) --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 7fa0f9b..d155c2e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -56,3 +56,4 @@ Stefan Schmidt ste...@datenfreihafen.org Davide Andreoli d...@gurumeditation.it Wonguk Jeong (huchi) wonguk.je...@samsung.com Jake Yoon (Jaeseok Yoon) yjaes...@gmail.com +Luis de Bethencourt (luisbg) l...@debethencourt.com --
[EGIT] [core/enlightenment] master 01/03: backlight: visual feedback when adjusting value through keybindings
tasn pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=1bcc205d2f29cdf6b8491e707a8efaa3e466f56a commit 1bcc205d2f29cdf6b8491e707a8efaa3e466f56a Author: Luis de Bethencourt luis...@samsung.com Date: Tue Dec 2 17:39:01 2014 + backlight: visual feedback when adjusting value through keybindings The backlight module has an action to show the value of the backlight brightness by showing the gadget's popup. Added a parameter to this action to adjust the brightness at the same time. --- src/modules/backlight/e_mod_main.c | 56 +++--- 1 file changed, 52 insertions(+), 4 deletions(-) diff --git a/src/modules/backlight/e_mod_main.c b/src/modules/backlight/e_mod_main.c index 7a9bc9e..bbabfa5 100644 --- a/src/modules/backlight/e_mod_main.c +++ b/src/modules/backlight/e_mod_main.c @@ -39,6 +39,7 @@ struct _Instance Evas_Object *o_backlight, *o_table, *o_slider; E_Gadcon_Popup *popup; double val; + Ecore_Timer *popup_timer; }; static Eina_List *backlight_instances = NULL; @@ -406,17 +407,63 @@ _gc_id_new(const E_Gadcon_Client_Class *client_class) return buf; } +static Eina_Bool +_backlight_popup_timer_cb(void *data) +{ + Instance *inst; + inst = data; + + if (inst-popup) + _backlight_popup_del_cb(inst-popup); + inst-popup_timer = NULL; + + return ECORE_CALLBACK_CANCEL; +} + +static void +_backlight_popup_timer_new(Instance *inst) +{ + if (inst-popup) + { +if (inst-popup_timer) + { + ecore_timer_del(inst-popup_timer); + e_widget_slider_value_double_set(inst-o_slider, inst-val); + inst-popup_timer = ecore_timer_add(1.0, _backlight_popup_timer_cb, inst); + } + } + else + { +_backlight_popup_new(inst); +inst-popup_timer = ecore_timer_add(1.0, _backlight_popup_timer_cb, inst); + } +} + static void _e_mod_action_cb(E_Object *obj __UNUSED__, - const char *params __UNUSED__) + const char *params) { Eina_List *l; Instance *inst; EINA_LIST_FOREACH(backlight_instances, l, inst) { -if (inst-popup) _backlight_popup_free(inst); -else _backlight_popup_new(inst); +if (!params) + { + if (inst-popup) _backlight_popup_free(inst); + else _backlight_popup_new(inst); + } +else + { + double v = inst-val + atof(params); + if (v 1.0) v = 1.0; + if (v 0.0) v = 0.0; + inst-val = v; + e_backlight_level_set(inst-gcc-gadcon-zone, v, 0.0); + e_config-backlight.normal = v; + e_config_save_queue(); + _backlight_popup_timer_new(inst); + } } } @@ -467,7 +514,8 @@ e_modapi_init(E_Module *m) if (act) { act-func.go = _e_mod_action_cb; -e_action_predef_name_set(N_(Screen), N_(Backlight Controls), backlight, NULL, NULL, 0); +e_action_predef_name_set(N_(Screen), N_(Backlight Controls), backlight, + NULL, syntax: brightness change(-1.0 - 1.0), example: -0.1, 1); } return m; } --
[EGIT] [core/efl] master 01/01: edje/edje_cc_handler - updated internal doc.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0889fde94b9e91a70e18cabb2be3576b0a6ce099 commit 0889fde94b9e91a70e18cabb2be3576b0a6ce099 Author: ChunEon Park her...@hermet.pe.kr Date: Wed Dec 3 21:09:06 2014 +0900 edje/edje_cc_handler - updated internal doc. --- src/bin/edje/edje_cc_handlers.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index af62eea..b2e6c2f 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -10689,6 +10689,7 @@ st_collections_group_programs_program_action(void) @li DIVIS or DIVISOR_INTERP @li BOUNCE @li SPRING +@li CUBIC_BEZIER ACCEL_FAC, DECEL_FAC and SIN_FAC need the extra optional interp val 1 to determine the factor of curviness. 1.0 is the same --
[EGIT] [core/efl] master 01/01: ecore con: Fix GnuTLS build error.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ecfcb59c44a9bc7dd2ce95493806f6ac107c0d46 commit ecfcb59c44a9bc7dd2ce95493806f6ac107c0d46 Author: Andreas Metzler ametz...@debian.org Date: Wed Dec 3 12:07:40 2014 + ecore con: Fix GnuTLS build error. By making the respective changes on the GnuTLS side for upstream commits d9b5f192d4883193f79cd3e43ed1da52521825dc and d72f809fb874c8f14b1461949802905d41d648a1 which only take care of OpenSSL. @fix --- src/lib/ecore_con/ecore_con_ssl.c | 78 +++ 1 file changed, 46 insertions(+), 32 deletions(-) diff --git a/src/lib/ecore_con/ecore_con_ssl.c b/src/lib/ecore_con/ecore_con_ssl.c index bf63469..d31b44e 100644 --- a/src/lib/ecore_con/ecore_con_ssl.c +++ b/src/lib/ecore_con/ecore_con_ssl.c @@ -885,9 +885,10 @@ _ecore_con_ssl_shutdown_gnutls(void) } static Ecore_Con_Ssl_Error -_ecore_con_ssl_server_prepare_gnutls(Ecore_Con_Server *svr, +_ecore_con_ssl_server_prepare_gnutls(Ecore_Con_Server *obj, int ssl_type) { + Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS); int ret; if (ssl_type ECORE_CON_USE_SSL2) @@ -938,13 +939,14 @@ _ecore_con_ssl_server_prepare_gnutls(Ecore_Con_Server *svr, error: _gnutls_print_errors(svr, ECORE_CON_EVENT_SERVER_ERROR, ret); - _ecore_con_ssl_server_shutdown_gnutls(svr); + _ecore_con_ssl_server_shutdown_gnutls(obj); return ECORE_CON_SSL_ERROR_SERVER_INIT_FAILED; } static Ecore_Con_Ssl_Error -_ecore_con_ssl_server_init_gnutls(Ecore_Con_Server *svr) +_ecore_con_ssl_server_init_gnutls(Ecore_Con_Server *obj) { + Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS); const gnutls_datum_t *cert_list; unsigned int iter, cert_list_size; gnutls_x509_crt_t cert = NULL; @@ -1073,14 +1075,15 @@ error: } if (cert) gnutls_x509_crt_deinit(cert); - _ecore_con_ssl_server_shutdown_gnutls(svr); + _ecore_con_ssl_server_shutdown_gnutls(obj); return ECORE_CON_SSL_ERROR_SERVER_INIT_FAILED; } static Eina_Bool -_ecore_con_ssl_server_cafile_add_gnutls(Ecore_Con_Server *svr, +_ecore_con_ssl_server_cafile_add_gnutls(Ecore_Con_Server *obj, const char *ca_file) { + Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS); struct stat st; Eina_Iterator *it; const char *file; @@ -1113,9 +1116,10 @@ error: } static Eina_Bool -_ecore_con_ssl_server_crl_add_gnutls(Ecore_Con_Server *svr, +_ecore_con_ssl_server_crl_add_gnutls(Ecore_Con_Server *obj, const char *crl_file) { + Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS); SSL_ERROR_CHECK_GOTO_ERROR(gnutls_certificate_set_x509_crl_file(svr-cert, crl_file, GNUTLS_X509_FMT_PEM) 1); @@ -1126,9 +1130,10 @@ error: } static Eina_Bool -_ecore_con_ssl_server_privkey_add_gnutls(Ecore_Con_Server *svr, +_ecore_con_ssl_server_privkey_add_gnutls(Ecore_Con_Server *obj, const char *key_file) { + Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS); SSL_ERROR_CHECK_GOTO_ERROR(gnutls_certificate_set_x509_key_file(svr-cert, svr-cert_file, key_file, GNUTLS_X509_FMT_PEM)); @@ -1139,9 +1144,10 @@ error: } static Eina_Bool -_ecore_con_ssl_server_cert_add_gnutls(Ecore_Con_Server *svr, +_ecore_con_ssl_server_cert_add_gnutls(Ecore_Con_Server *obj, const char *cert_file) { + Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS); if (!(svr-cert_file = strdup(cert_file))) return EINA_FALSE; @@ -1149,8 +1155,9 @@ _ecore_con_ssl_server_cert_add_gnutls(Ecore_Con_Server *svr, } static Ecore_Con_Ssl_Error -_ecore_con_ssl_server_shutdown_gnutls(Ecore_Con_Server *svr) +_ecore_con_ssl_server_shutdown_gnutls(Ecore_Con_Server *obj) { + Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS); if (svr-session) { gnutls_bye(svr-session, GNUTLS_SHUT_RDWR); @@ -1195,16 +1202,17 @@ _ecore_con_ssl_server_shutdown_gnutls(Ecore_Con_Server *svr) } static int -_ecore_con_ssl_server_read_gnutls(Ecore_Con_Server *svr, +_ecore_con_ssl_server_read_gnutls(Ecore_Con_Server *obj, unsigned char *buf, int size) { + Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS); int num; if (svr-ssl_state == ECORE_CON_SSL_STATE_HANDSHAKING) { DBG(Continuing gnutls handshake); -if (!_ecore_con_ssl_server_init_gnutls(svr)) +if (!_ecore_con_ssl_server_init_gnutls(obj))
[EGIT] [core/efl] efl-1.12 01/01: ecore con: Fix GnuTLS build error.
tasn pushed a commit to branch efl-1.12. http://git.enlightenment.org/core/efl.git/commit/?id=3f73ae7660328de24fa3422ec378a76af8edc764 commit 3f73ae7660328de24fa3422ec378a76af8edc764 Author: Andreas Metzler ametz...@debian.org Date: Wed Dec 3 12:07:40 2014 + ecore con: Fix GnuTLS build error. By making the respective changes on the GnuTLS side for upstream commits d9b5f192d4883193f79cd3e43ed1da52521825dc and d72f809fb874c8f14b1461949802905d41d648a1 which only take care of OpenSSL. @fix --- src/lib/ecore_con/ecore_con_ssl.c | 78 +++ 1 file changed, 46 insertions(+), 32 deletions(-) diff --git a/src/lib/ecore_con/ecore_con_ssl.c b/src/lib/ecore_con/ecore_con_ssl.c index bf63469..d31b44e 100644 --- a/src/lib/ecore_con/ecore_con_ssl.c +++ b/src/lib/ecore_con/ecore_con_ssl.c @@ -885,9 +885,10 @@ _ecore_con_ssl_shutdown_gnutls(void) } static Ecore_Con_Ssl_Error -_ecore_con_ssl_server_prepare_gnutls(Ecore_Con_Server *svr, +_ecore_con_ssl_server_prepare_gnutls(Ecore_Con_Server *obj, int ssl_type) { + Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS); int ret; if (ssl_type ECORE_CON_USE_SSL2) @@ -938,13 +939,14 @@ _ecore_con_ssl_server_prepare_gnutls(Ecore_Con_Server *svr, error: _gnutls_print_errors(svr, ECORE_CON_EVENT_SERVER_ERROR, ret); - _ecore_con_ssl_server_shutdown_gnutls(svr); + _ecore_con_ssl_server_shutdown_gnutls(obj); return ECORE_CON_SSL_ERROR_SERVER_INIT_FAILED; } static Ecore_Con_Ssl_Error -_ecore_con_ssl_server_init_gnutls(Ecore_Con_Server *svr) +_ecore_con_ssl_server_init_gnutls(Ecore_Con_Server *obj) { + Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS); const gnutls_datum_t *cert_list; unsigned int iter, cert_list_size; gnutls_x509_crt_t cert = NULL; @@ -1073,14 +1075,15 @@ error: } if (cert) gnutls_x509_crt_deinit(cert); - _ecore_con_ssl_server_shutdown_gnutls(svr); + _ecore_con_ssl_server_shutdown_gnutls(obj); return ECORE_CON_SSL_ERROR_SERVER_INIT_FAILED; } static Eina_Bool -_ecore_con_ssl_server_cafile_add_gnutls(Ecore_Con_Server *svr, +_ecore_con_ssl_server_cafile_add_gnutls(Ecore_Con_Server *obj, const char *ca_file) { + Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS); struct stat st; Eina_Iterator *it; const char *file; @@ -1113,9 +1116,10 @@ error: } static Eina_Bool -_ecore_con_ssl_server_crl_add_gnutls(Ecore_Con_Server *svr, +_ecore_con_ssl_server_crl_add_gnutls(Ecore_Con_Server *obj, const char *crl_file) { + Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS); SSL_ERROR_CHECK_GOTO_ERROR(gnutls_certificate_set_x509_crl_file(svr-cert, crl_file, GNUTLS_X509_FMT_PEM) 1); @@ -1126,9 +1130,10 @@ error: } static Eina_Bool -_ecore_con_ssl_server_privkey_add_gnutls(Ecore_Con_Server *svr, +_ecore_con_ssl_server_privkey_add_gnutls(Ecore_Con_Server *obj, const char *key_file) { + Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS); SSL_ERROR_CHECK_GOTO_ERROR(gnutls_certificate_set_x509_key_file(svr-cert, svr-cert_file, key_file, GNUTLS_X509_FMT_PEM)); @@ -1139,9 +1144,10 @@ error: } static Eina_Bool -_ecore_con_ssl_server_cert_add_gnutls(Ecore_Con_Server *svr, +_ecore_con_ssl_server_cert_add_gnutls(Ecore_Con_Server *obj, const char *cert_file) { + Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS); if (!(svr-cert_file = strdup(cert_file))) return EINA_FALSE; @@ -1149,8 +1155,9 @@ _ecore_con_ssl_server_cert_add_gnutls(Ecore_Con_Server *svr, } static Ecore_Con_Ssl_Error -_ecore_con_ssl_server_shutdown_gnutls(Ecore_Con_Server *svr) +_ecore_con_ssl_server_shutdown_gnutls(Ecore_Con_Server *obj) { + Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS); if (svr-session) { gnutls_bye(svr-session, GNUTLS_SHUT_RDWR); @@ -1195,16 +1202,17 @@ _ecore_con_ssl_server_shutdown_gnutls(Ecore_Con_Server *svr) } static int -_ecore_con_ssl_server_read_gnutls(Ecore_Con_Server *svr, +_ecore_con_ssl_server_read_gnutls(Ecore_Con_Server *obj, unsigned char *buf, int size) { + Ecore_Con_Server_Data *svr = eo_data_scope_get(obj, ECORE_CON_SERVER_CLASS); int num; if (svr-ssl_state == ECORE_CON_SSL_STATE_HANDSHAKING) { DBG(Continuing gnutls handshake); -if (!_ecore_con_ssl_server_init_gnutls(svr)) +if (!_ecore_con_ssl_server_init_gnutls(obj))
[EGIT] [core/enlightenment] master 01/01: AUTHORS: Add Marcel to authors file.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=13c6e93b9c63cc6e7172c6d0464986f8dae9a2b5 commit 13c6e93b9c63cc6e7172c6d0464986f8dae9a2b5 Author: Tom Hacohen t...@stosb.com Date: Wed Dec 3 13:28:45 2014 + AUTHORS: Add Marcel to authors file. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index d155c2e..d79de57 100644 --- a/AUTHORS +++ b/AUTHORS @@ -57,3 +57,4 @@ Davide Andreoli d...@gurumeditation.it Wonguk Jeong (huchi) wonguk.je...@samsung.com Jake Yoon (Jaeseok Yoon) yjaes...@gmail.com Luis de Bethencourt (luisbg) l...@debethencourt.com +bu5hm4n (Marcel Hollerbach) marcel-hollerb...@t-online.de --
[EGIT] [core/efl] master 02/02: eolian: eolian_function_is_c_only tests
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d24220221ae147d83d7216de0fd42d935e9f0296 commit d24220221ae147d83d7216de0fd42d935e9f0296 Author: Daniel Kolesa d.kol...@samsung.com Date: Wed Dec 3 15:04:40 2014 + eolian: eolian_function_is_c_only tests --- src/tests/eolian/data/class_simple.eo | 4 ++-- src/tests/eolian/eolian_parsing.c | 6 -- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/tests/eolian/data/class_simple.eo b/src/tests/eolian/data/class_simple.eo index 1f0ae65..29d95b7 100644 --- a/src/tests/eolian/data/class_simple.eo +++ b/src/tests/eolian/data/class_simple.eo @@ -17,7 +17,7 @@ class Class_Simple { int value (100); /*@ Value description */ } } - b { + b @c_only { set { eo: null; } @@ -33,7 +33,7 @@ class Class_Simple { } return: char * (null); /*@ comment for method return */ } - bar { + bar @c_only { eo: null; params { int x; diff --git a/src/tests/eolian/eolian_parsing.c b/src/tests/eolian/eolian_parsing.c index 03d6a56..824f9fc 100644 --- a/src/tests/eolian/eolian_parsing.c +++ b/src/tests/eolian/eolian_parsing.c @@ -590,10 +590,11 @@ START_TEST(eolian_simple_parsing) fail_if(v.type != EOLIAN_EXPR_INT); fail_if(v.value.i != 100); - /* legacy only */ + /* legacy only + c only */ fail_if(!(fid = eolian_class_function_get_by_name(class, b, EOLIAN_PROPERTY))); fail_if(eolian_function_is_legacy_only(fid, EOLIAN_PROP_GET)); fail_if(!eolian_function_is_legacy_only(fid, EOLIAN_PROP_SET)); + fail_if(!eolian_function_is_c_only(fid)); /* Method */ fail_if(!(fid = eolian_class_function_get_by_name(class, foo, EOLIAN_METHOD))); @@ -642,9 +643,10 @@ START_TEST(eolian_simple_parsing) fail_if(eina_iterator_next(iter, dummy)); eina_iterator_free(iter); - /* legacy only */ + /* legacy only + c only */ fail_if(!(fid = eolian_class_function_get_by_name(class, bar, EOLIAN_METHOD))); fail_if(!eolian_function_is_legacy_only(fid, EOLIAN_METHOD)); + fail_if(!eolian_function_is_c_only(fid)); eolian_shutdown(); } --
[EGIT] [core/efl] master 01/02: eolian: add eolian_function_is_c_only
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=49aebd063e9a9bebac9ff5d7a9e3ecf7a70712cd commit 49aebd063e9a9bebac9ff5d7a9e3ecf7a70712cd Author: Daniel Kolesa d.kol...@samsung.com Date: Wed Dec 3 14:59:24 2014 + eolian: add eolian_function_is_c_only This function allows us to mark functions that are not bindable. Also remove some obsolete code. --- src/lib/eolian/Eolian.h| 10 + src/lib/eolian/database_function_api.c | 7 src/lib/eolian/eo_lexer.h | 4 +- src/lib/eolian/eo_parser.c | 77 +++--- src/lib/eolian/eolian_database.h | 1 + 5 files changed, 54 insertions(+), 45 deletions(-) diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index 42e41c7..9464cdf 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -874,6 +874,16 @@ EAPI Eina_Bool eolian_function_is_legacy_only(const Eolian_Function *function_id EAPI Eina_Bool eolian_function_is_class(const Eolian_Function *function_id); /* + * @brief Get whether a function is C only (i.e. not bindable). + * + * @param[in] function_id Id of the function + * @return EINA_TRUE and EINA_FALSE respectively + * + * @ingroup Eolian + */ +EAPI Eina_Bool eolian_function_is_c_only(const Eolian_Function *function_id); + +/* * @brief Indicates if a function is a constructing function of a given class. * * @param[in] klass the class diff --git a/src/lib/eolian/database_function_api.c b/src/lib/eolian/database_function_api.c index 000dda6..266ae54 100644 --- a/src/lib/eolian/database_function_api.c +++ b/src/lib/eolian/database_function_api.c @@ -249,3 +249,10 @@ eolian_function_object_is_const(const Eolian_Function *fid) EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EINA_FALSE); return fid-obj_is_const; } + +EAPI Eina_Bool +eolian_function_is_c_only(const Eolian_Function *fid) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EINA_FALSE); + return fid-is_c_only; +} diff --git a/src/lib/eolian/eo_lexer.h b/src/lib/eolian/eo_lexer.h index 120e97a..eb1ca97 100644 --- a/src/lib/eolian/eo_lexer.h +++ b/src/lib/eolian/eo_lexer.h @@ -29,8 +29,8 @@ enum Tokens KW(get), KW(implements), KW(interface), KW(keys), KW(legacy), \ KW(legacy_prefix), KW(methods), KW(mixin), KW(own), KW(params), \ KW(properties), KW(set), KW(type), KW(values), KW(var), KWAT(auto), \ -KWAT(class), KWAT(const), KWAT(const_get), KWAT(const_set), KWAT(empty), \ -KWAT(extern), KWAT(free), KWAT(in), KWAT(inout), KWAT(nonull), \ +KWAT(c_only), KWAT(class), KWAT(const), KWAT(const_get), KWAT(const_set), \ +KWAT(empty), KWAT(extern), KWAT(free), KWAT(in), KWAT(inout), KWAT(nonull), \ KWAT(optional), KWAT(out), KWAT(private), KWAT(protected), KWAT(virtual), \ KWAT(warn_unused), \ \ diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c index 0d45bd0..9673c03 100644 --- a/src/lib/eolian/eo_parser.c +++ b/src/lib/eolian/eo_parser.c @@ -1276,7 +1276,8 @@ parse_property(Eo_Lexer *ls) Eolian_Function *prop = NULL; Eina_Bool has_get = EINA_FALSE, has_set= EINA_FALSE, has_keys = EINA_FALSE, has_values = EINA_FALSE, - has_protected = EINA_FALSE, has_class = EINA_FALSE; + has_protected = EINA_FALSE, has_class = EINA_FALSE, + has_c_only= EINA_FALSE; prop = calloc(1, sizeof(Eolian_Function)); prop-klass = ls-tmp.kls; prop-type = EOLIAN_UNRESOLVED; @@ -1299,6 +1300,11 @@ parse_property(Eo_Lexer *ls) prop-is_class = EINA_TRUE; eo_lexer_get(ls); break; + case KW_at_c_only: +CASE_LOCK(ls, c_only, c_only qualifier); +prop-is_c_only = EINA_TRUE; +eo_lexer_get(ls); +break; default: goto body; } @@ -1340,14 +1346,14 @@ end: } static void -parse_method(Eo_Lexer *ls, Eina_Bool ctor) +parse_method(Eo_Lexer *ls) { int line, col; Eolian_Function *meth = NULL; Eina_Bool has_const = EINA_FALSE, has_params = EINA_FALSE, has_return = EINA_FALSE, has_legacy = EINA_FALSE, has_protected = EINA_FALSE, has_class = EINA_FALSE, - has_eo = EINA_FALSE; + has_eo = EINA_FALSE, has_c_only = EINA_FALSE; meth = calloc(1, sizeof(Eolian_Function)); meth-klass = ls-tmp.kls; meth-type = EOLIAN_METHOD; @@ -1355,48 +1361,33 @@ parse_method(Eo_Lexer *ls, Eina_Bool ctor) meth-base.line = ls-line_number; meth-base.column = ls-column; ls-tmp.kls-methods = eina_list_append(ls-tmp.kls-methods, meth); - if (ctor) + check(ls, TOK_VALUE); + meth-name = eina_stringshare_ref(ls-t.value.s); + eo_lexer_get(ls); + for (;;) switch (ls-t.kw) { -if (ls-t.token != TOK_VALUE) - eo_lexer_syntax_error(ls, expected method name); -meth-name = eina_stringshare_ref(ls-t.value.s); + case
[EGIT] [core/efl] master 01/01: elua: support is_c_only in lualian
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=67c693eff14fd78c74dc91efffc0c584998f80a9 commit 67c693eff14fd78c74dc91efffc0c584998f80a9 Author: Daniel Kolesa d.kol...@samsung.com Date: Wed Dec 3 15:27:38 2014 + elua: support is_c_only in lualian --- src/bin/elua/modules/lualian.lua | 4 ++-- src/bindings/luajit/eolian.lua | 5 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/bin/elua/modules/lualian.lua b/src/bin/elua/modules/lualian.lua index 8d77094..85208e1 100644 --- a/src/bin/elua/modules/lualian.lua +++ b/src/bin/elua/modules/lualian.lua @@ -604,7 +604,7 @@ local gen_contents = function(klass) -- first try properties local props = klass:functions_get(ft.PROPERTY):to_array() for i, v in ipairs(props) do -if v:scope_get() == eolian.object_scope.PUBLIC then +if v:scope_get() == eolian.object_scope.PUBLIC and not v:is_c_only() then local ftype = v:type_get() local fread = (ftype == ft.PROPERTY or ftype == ft.PROP_GET) local fwrite = (ftype == ft.PROPERTY or ftype == ft.PROP_SET) @@ -619,7 +619,7 @@ local gen_contents = function(klass) -- then methods local meths = klass:functions_get(ft.METHOD):to_array() for i, v in ipairs(meths) do -if v:scope_get() == eolian.object_scope.PUBLIC then +if v:scope_get() == eolian.object_scope.PUBLIC and not v:is_c_only() then cnt[#cnt + 1] = Method(v) end end diff --git a/src/bindings/luajit/eolian.lua b/src/bindings/luajit/eolian.lua index d3c76aa..283f6f9 100644 --- a/src/bindings/luajit/eolian.lua +++ b/src/bindings/luajit/eolian.lua @@ -215,6 +215,7 @@ ffi.cdef [[ Eina_Bool eolian_function_is_empty(const Eolian_Function *function_id, Eolian_Function_Type f_type); Eina_Bool eolian_function_is_legacy_only(const Eolian_Function *function_id, Eolian_Function_Type ftype); Eina_Bool eolian_function_is_class(const Eolian_Function *function_id); +Eina_Bool eolian_function_is_c_only(const Eolian_Function *function_id); const Eolian_Function_Parameter *eolian_function_parameter_get_by_name(const Eolian_Function *function_id, const char *param_name); Eina_Iterator *eolian_property_keys_get(const Eolian_Function *foo_id); Eina_Iterator *eolian_property_values_get(const Eolian_Function *foo_id); @@ -669,6 +670,10 @@ M.Function = ffi.metatype(Eolian_Function, { return eolian.eolian_function_is_class(self) ~= 0 end, +is_c_only = function(self) +return eolian.eolian_function_is_c_only(self) ~= 0 +end, + parameter_get_by_name = function(self, pname) local v = eolian.eolian_function_parameter_get_by_name(self, pname) if v == nil then return nil end --
[EGIT] [core/efl] master 01/01: ecore-drm: Remove erroneous debug messages
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=574919ef31b1193a29dc5bb2562193f8d214e509 commit 574919ef31b1193a29dc5bb2562193f8d214e509 Author: Chris Michael cp.mich...@samsung.com Date: Wed Dec 3 14:18:52 2014 -0500 ecore-drm: Remove erroneous debug messages Summary: No real function changes, just some cleanup of old debug messages @fix Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/lib/ecore_drm/ecore_drm_dbus.c | 6 -- 1 file changed, 6 deletions(-) diff --git a/src/lib/ecore_drm/ecore_drm_dbus.c b/src/lib/ecore_drm/ecore_drm_dbus.c index 3db1e2d..222b5e9 100644 --- a/src/lib/ecore_drm/ecore_drm_dbus.c +++ b/src/lib/ecore_drm/ecore_drm_dbus.c @@ -35,8 +35,6 @@ _cb_session_removed(void *ctxt EINA_UNUSED, const Eldbus_Message *msg) const char *errname, *errmsg; const char *sid; - DBG(Session Removed); - if (eldbus_message_error_get(msg, errname, errmsg)) { ERR(Eldbus Message Error: %s %s, errname, errmsg); @@ -112,12 +110,8 @@ static void _cb_properties_changed(void *data EINA_UNUSED, Eldbus_Proxy *proxy EINA_UNUSED, void *event) { Eldbus_Proxy_Event_Property_Changed *ev; - /* const Eina_Value *val; */ ev = event; - /* val = ev-value; */ - - DBG(Properties Changed: %s, ev-name); if (!strcmp(ev-name, Active)) { --
[EGIT] [bindings/python/python-efl] python-efl-1.12 01/01: Fix elm.ObjectItem.part_content_set() to accept a generic EvasObject.
davemds pushed a commit to branch python-efl-1.12. http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=b3f6da16f282f50de589734dfb9bf744d2427e76 commit b3f6da16f282f50de589734dfb9bf744d2427e76 Author: Dave Andreoli d...@gurumeditation.it Date: Wed Dec 3 21:11:39 2014 +0100 Fix elm.ObjectItem.part_content_set() to accept a generic EvasObject. ...not only an elm object. --- efl/elementary/object_item.pyx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/efl/elementary/object_item.pyx b/efl/elementary/object_item.pyx index 1e81dd6..eeea4d2 100644 --- a/efl/elementary/object_item.pyx +++ b/efl/elementary/object_item.pyx @@ -182,7 +182,7 @@ cdef class ObjectItem(object): def widget_get(self): return object_from_instance(elm_object_item_widget_get(self.item)) -def part_content_set(self, part, Object content not None): +def part_content_set(self, part, evasObject content not None): Set a content of an object item This sets a new object to an item as a content object. If any object @@ -241,7 +241,7 @@ cdef class ObjectItem(object): def __del__(self): elm_object_item_content_unset(self.item) -def content_set(self, Object content not None): +def content_set(self, evasObject content not None): elm_object_item_content_set(self.item, content.obj) def content_get(self): return object_from_instance(elm_object_item_content_get(self.item)) --
[EGIT] [bindings/python/python-efl] master 01/01: Fix elm.ObjectItem.part_content_set() to accept a generic EvasObject.
davemds pushed a commit to branch master. http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=8fd9a0021e8518cf6ebe6413af39c04335e50253 commit 8fd9a0021e8518cf6ebe6413af39c04335e50253 Author: Dave Andreoli d...@gurumeditation.it Date: Wed Dec 3 21:11:39 2014 +0100 Fix elm.ObjectItem.part_content_set() to accept a generic EvasObject. ...not only an elm object. --- efl/elementary/object_item.pyx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/efl/elementary/object_item.pyx b/efl/elementary/object_item.pyx index 1e81dd6..eeea4d2 100644 --- a/efl/elementary/object_item.pyx +++ b/efl/elementary/object_item.pyx @@ -182,7 +182,7 @@ cdef class ObjectItem(object): def widget_get(self): return object_from_instance(elm_object_item_widget_get(self.item)) -def part_content_set(self, part, Object content not None): +def part_content_set(self, part, evasObject content not None): Set a content of an object item This sets a new object to an item as a content object. If any object @@ -241,7 +241,7 @@ cdef class ObjectItem(object): def __del__(self): elm_object_item_content_unset(self.item) -def content_set(self, Object content not None): +def content_set(self, evasObject content not None): elm_object_item_content_set(self.item, content.obj) def content_get(self): return object_from_instance(elm_object_item_content_get(self.item)) --
[EGIT] [tools/edi] master 01/01: Extend config and use it to store window size and panel states.
ajwillia-ms pushed a commit to branch master. http://git.enlightenment.org/tools/edi.git/commit/?id=fc4c86fe5e50dcb52cbfdd9209449742c55b570f commit fc4c86fe5e50dcb52cbfdd9209449742c55b570f Author: Andy Williams a...@andywilliams.me Date: Wed Dec 3 17:52:12 2014 -0600 Extend config and use it to store window size and panel states. Fixes T1856. Did not perform a config upgrade at this early stage - anyone caught in the update can just resize --- src/bin/edi_config.c | 18 ++ src/bin/edi_config.h | 3 + src/bin/edi_main.c | 151 ++- 3 files changed, 146 insertions(+), 26 deletions(-) diff --git a/src/bin/edi_config.c b/src/bin/edi_config.c index 8068d43..1442f17 100644 --- a/src/bin/edi_config.c +++ b/src/bin/edi_config.c @@ -162,6 +162,13 @@ _edi_config_init(void) EDI_CONFIG_VAL(D, T, version, EET_T_INT); EDI_CONFIG_VAL(D, T, font.size, EET_T_INT); EDI_CONFIG_VAL(D, T, gui.translucent, EET_T_UCHAR); + EDI_CONFIG_VAL(D, T, gui.width, EET_T_INT); + EDI_CONFIG_VAL(D, T, gui.height, EET_T_INT); + EDI_CONFIG_VAL(D, T, gui.leftsize, EET_T_DOUBLE); + EDI_CONFIG_VAL(D, T, gui.leftopen, EET_T_UCHAR); + EDI_CONFIG_VAL(D, T, gui.bottomsize, EET_T_DOUBLE); + EDI_CONFIG_VAL(D, T, gui.bottomopen, EET_T_UCHAR); + EDI_CONFIG_VAL(D, T, gui.bottomtab, EET_T_INT); EDI_CONFIG_LIST(D, T, projects, _edi_cfg_proj_edd); _edi_config_load(); @@ -223,11 +230,22 @@ _edi_config_load(void) _edi_cfg-font.size = 12; _edi_cfg-gui.translucent = EINA_TRUE; + _edi_cfg-gui.width = 560; + _edi_cfg-gui.height = 420; + _edi_cfg-gui.leftsize = 0.25; + _edi_cfg-gui.leftopen = EINA_TRUE; + _edi_cfg-gui.bottomsize = 0.2; + _edi_cfg-gui.bottomopen = EINA_FALSE; + _edi_cfg-gui.bottomtab = 0; _edi_cfg-projects = NULL; IFCFGEND; /* limit config values so they are sane */ EDI_CONFIG_LIMIT(_edi_cfg-font.size, 8, 96); + EDI_CONFIG_LIMIT(_edi_cfg-gui.width, 150, 1); + EDI_CONFIG_LIMIT(_edi_cfg-gui.height, 100, 8000); + EDI_CONFIG_LIMIT(_edi_cfg-gui.leftsize, 0.0, 1.0); + EDI_CONFIG_LIMIT(_edi_cfg-gui.bottomsize, 0.0, 1.0); _edi_cfg-version = EDI_CONFIG_FILE_VERSION; diff --git a/src/bin/edi_config.h b/src/bin/edi_config.h index e1f997f..8df697a 100644 --- a/src/bin/edi_config.h +++ b/src/bin/edi_config.h @@ -28,6 +28,9 @@ struct _Edi_Config struct { Eina_Bool translucent; +int width, height, bottomtab; +double leftsize, bottomsize; +Eina_Bool leftopen, bottomopen; } gui; Eina_List *projects; diff --git a/src/bin/edi_main.c b/src/bin/edi_main.c index 7cd7d2a..69fa5e6 100644 --- a/src/bin/edi_main.c +++ b/src/bin/edi_main.c @@ -60,6 +60,52 @@ _edi_file_open_cb(const char *path, const char *type, Eina_Bool newwin) edi_mainview_open(options); } +static Evas_Object * +_edi_panel_tab_for_index(int index) +{ + if (index == 1) + return _edi_consolepanel; + if (index == 2) + return _edi_testpanel; + + return _edi_logpanel; +} + +static void +_edi_panel_size_save(Eina_Bool left) +{ + double size; + Eina_Bool open; + + if (left) + size = elm_panes_content_left_size_get(_edi_leftpanes); + else + size = elm_panes_content_right_size_get(_edi_bottompanes); + open = (size != 0.0); + + if (left) + { +_edi_cfg-gui.leftopen = open; +if (open) + _edi_cfg-gui.leftsize = size; + } + else + { +_edi_cfg-gui.bottomopen = open; +if (open) + _edi_cfg-gui.bottomsize = size; + } + + _edi_config_save(); +} + +static void +_edi_panel_save_tab(int index) +{ + _edi_cfg-gui.bottomtab = index; + _edi_config_save(); +} + static void _edi_slide_panel(Elm_Transit_Effect *effect, Elm_Transit *transit, double progress) { @@ -100,6 +146,8 @@ _edi_slide_panel_free(Elm_Transit_Effect *effect, Elm_Transit *transit EINA_UNUS if (!slide-expand) evas_object_hide(slide-content); free(slide); + + _edi_panel_size_save(slide-left); } static void @@ -139,40 +187,39 @@ _edi_toggle_file_panel(void *data, Evas_Object *obj EINA_UNUSED, void *event_inf if (size == 0.0) { elm_icon_standard_set(_edi_filepanel_icon, stock_left); -_edi_slide_panel_new(_edi_leftpanes, panel, 0.25, EINA_TRUE, EINA_TRUE); +_edi_slide_panel_new(_edi_leftpanes, panel, _edi_cfg-gui.leftsize, EINA_TRUE, EINA_TRUE); } else { elm_icon_standard_set(_edi_filepanel_icon, stock_right); -_edi_slide_panel_new(_edi_leftpanes, panel, 0.25, EINA_FALSE, EINA_TRUE); +_edi_slide_panel_new(_edi_leftpanes, panel, _edi_cfg-gui.leftsize, EINA_FALSE, EINA_TRUE); } } static void _edi_toggle_panel(void *data, Evas_Object *obj, void *event_info) { + int index, c; double size; Elm_Object_Item *item; Evas_Object *panel; - panel = (Evas_Object *) data; + index = atoi((char *) data); +
Re: [E-devel] [EGIT] [core/efl] master 01/02: eolian: add eolian_function_is_c_only
Yo D5, Just for the curiosity, do you have a scenario where we need this? D2 On 12/03/14 17:07, Daniel Kolesa wrote: q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=49aebd063e9a9bebac9ff5d7a9e3ecf7a70712cd commit 49aebd063e9a9bebac9ff5d7a9e3ecf7a70712cd Author: Daniel Kolesa d.kol...@samsung.com Date: Wed Dec 3 14:59:24 2014 + eolian: add eolian_function_is_c_only This function allows us to mark functions that are not bindable. Also remove some obsolete code. --- src/lib/eolian/Eolian.h| 10 + src/lib/eolian/database_function_api.c | 7 src/lib/eolian/eo_lexer.h | 4 +- src/lib/eolian/eo_parser.c | 77 +++--- src/lib/eolian/eolian_database.h | 1 + 5 files changed, 54 insertions(+), 45 deletions(-) diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index 42e41c7..9464cdf 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -874,6 +874,16 @@ EAPI Eina_Bool eolian_function_is_legacy_only(const Eolian_Function *function_id EAPI Eina_Bool eolian_function_is_class(const Eolian_Function *function_id); /* + * @brief Get whether a function is C only (i.e. not bindable). + * + * @param[in] function_id Id of the function + * @return EINA_TRUE and EINA_FALSE respectively + * + * @ingroup Eolian + */ +EAPI Eina_Bool eolian_function_is_c_only(const Eolian_Function *function_id); + +/* * @brief Indicates if a function is a constructing function of a given class. * * @param[in] klass the class diff --git a/src/lib/eolian/database_function_api.c b/src/lib/eolian/database_function_api.c index 000dda6..266ae54 100644 --- a/src/lib/eolian/database_function_api.c +++ b/src/lib/eolian/database_function_api.c @@ -249,3 +249,10 @@ eolian_function_object_is_const(const Eolian_Function *fid) EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EINA_FALSE); return fid-obj_is_const; } + +EAPI Eina_Bool +eolian_function_is_c_only(const Eolian_Function *fid) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EINA_FALSE); + return fid-is_c_only; +} diff --git a/src/lib/eolian/eo_lexer.h b/src/lib/eolian/eo_lexer.h index 120e97a..eb1ca97 100644 --- a/src/lib/eolian/eo_lexer.h +++ b/src/lib/eolian/eo_lexer.h @@ -29,8 +29,8 @@ enum Tokens KW(get), KW(implements), KW(interface), KW(keys), KW(legacy), \ KW(legacy_prefix), KW(methods), KW(mixin), KW(own), KW(params), \ KW(properties), KW(set), KW(type), KW(values), KW(var), KWAT(auto), \ -KWAT(class), KWAT(const), KWAT(const_get), KWAT(const_set), KWAT(empty), \ -KWAT(extern), KWAT(free), KWAT(in), KWAT(inout), KWAT(nonull), \ +KWAT(c_only), KWAT(class), KWAT(const), KWAT(const_get), KWAT(const_set), \ +KWAT(empty), KWAT(extern), KWAT(free), KWAT(in), KWAT(inout), KWAT(nonull), \ KWAT(optional), KWAT(out), KWAT(private), KWAT(protected), KWAT(virtual), \ KWAT(warn_unused), \ \ diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c index 0d45bd0..9673c03 100644 --- a/src/lib/eolian/eo_parser.c +++ b/src/lib/eolian/eo_parser.c @@ -1276,7 +1276,8 @@ parse_property(Eo_Lexer *ls) Eolian_Function *prop = NULL; Eina_Bool has_get = EINA_FALSE, has_set= EINA_FALSE, has_keys = EINA_FALSE, has_values = EINA_FALSE, - has_protected = EINA_FALSE, has_class = EINA_FALSE; + has_protected = EINA_FALSE, has_class = EINA_FALSE, + has_c_only= EINA_FALSE; prop = calloc(1, sizeof(Eolian_Function)); prop-klass = ls-tmp.kls; prop-type = EOLIAN_UNRESOLVED; @@ -1299,6 +1300,11 @@ parse_property(Eo_Lexer *ls) prop-is_class = EINA_TRUE; eo_lexer_get(ls); break; + case KW_at_c_only: +CASE_LOCK(ls, c_only, c_only qualifier); +prop-is_c_only = EINA_TRUE; +eo_lexer_get(ls); +break; default: goto body; } @@ -1340,14 +1346,14 @@ end: } static void -parse_method(Eo_Lexer *ls, Eina_Bool ctor) +parse_method(Eo_Lexer *ls) { int line, col; Eolian_Function *meth = NULL; Eina_Bool has_const = EINA_FALSE, has_params = EINA_FALSE, has_return = EINA_FALSE, has_legacy = EINA_FALSE, has_protected = EINA_FALSE, has_class = EINA_FALSE, - has_eo = EINA_FALSE; + has_eo = EINA_FALSE, has_c_only = EINA_FALSE; meth = calloc(1, sizeof(Eolian_Function)); meth-klass = ls-tmp.kls; meth-type = EOLIAN_METHOD; @@ -1355,48 +1361,33 @@ parse_method(Eo_Lexer *ls, Eina_Bool ctor) meth-base.line = ls-line_number; meth-base.column = ls-column; ls-tmp.kls-methods = eina_list_append(ls-tmp.kls-methods, meth); - if (ctor) + check(ls, TOK_VALUE); + meth-name =
[E-devel] New developer
Hello, I would like to give Jean Guyomarc'h jean.guyoma...@gmail.com a developer access. He has been taking care of porting and maintaining EFL on Mac OS X actively for some time already and it is by now just a burden on me to review his work with not much comment to do. I trust him to actually do the right thing and continue maintaining EFL and if he ever start poking at other place in EFL to ask question when necessary. Any objection ? Have fun, -- Cedric BAIL -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] New developer
2014-12-04 2:35 GMT+00:00 Cedric BAIL cedric.b...@free.fr: Hello, I would like to give Jean Guyomarc'h jean.guyoma...@gmail.com a developer access. He has been taking care of porting and maintaining EFL on Mac OS X actively for some time already and it is by now just a burden on me to review his work with not much comment to do. I trust him to actually do the right thing and continue maintaining EFL and if he ever start poking at other place in EFL to ask question when necessary. I've seen him contributing, no objections I support everyone who wants to expand platform coverage. Any objection ? Have fun, -- Cedric BAIL -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel D5 -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/02: eolian: add eolian_function_is_c_only
2014-12-04 1:16 GMT+00:00 Daniel Zaoui daniel.za...@samsung.com: Yo D5, Just for the curiosity, do you have a scenario where we need this? Yeah. We found some yesterday with Tom D2 On 12/03/14 17:07, Daniel Kolesa wrote: q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=49aebd063e9a9bebac9ff5d7a9e3ecf7a70712cd commit 49aebd063e9a9bebac9ff5d7a9e3ecf7a70712cd Author: Daniel Kolesa d.kol...@samsung.com Date: Wed Dec 3 14:59:24 2014 + eolian: add eolian_function_is_c_only This function allows us to mark functions that are not bindable. Also remove some obsolete code. --- src/lib/eolian/Eolian.h| 10 + src/lib/eolian/database_function_api.c | 7 src/lib/eolian/eo_lexer.h | 4 +- src/lib/eolian/eo_parser.c | 77 +++--- src/lib/eolian/eolian_database.h | 1 + 5 files changed, 54 insertions(+), 45 deletions(-) diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index 42e41c7..9464cdf 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -874,6 +874,16 @@ EAPI Eina_Bool eolian_function_is_legacy_only(const Eolian_Function *function_id EAPI Eina_Bool eolian_function_is_class(const Eolian_Function *function_id); /* + * @brief Get whether a function is C only (i.e. not bindable). + * + * @param[in] function_id Id of the function + * @return EINA_TRUE and EINA_FALSE respectively + * + * @ingroup Eolian + */ +EAPI Eina_Bool eolian_function_is_c_only(const Eolian_Function *function_id); + +/* * @brief Indicates if a function is a constructing function of a given class. * * @param[in] klass the class diff --git a/src/lib/eolian/database_function_api.c b/src/lib/eolian/database_function_api.c index 000dda6..266ae54 100644 --- a/src/lib/eolian/database_function_api.c +++ b/src/lib/eolian/database_function_api.c @@ -249,3 +249,10 @@ eolian_function_object_is_const(const Eolian_Function *fid) EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EINA_FALSE); return fid-obj_is_const; } + +EAPI Eina_Bool +eolian_function_is_c_only(const Eolian_Function *fid) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EINA_FALSE); + return fid-is_c_only; +} diff --git a/src/lib/eolian/eo_lexer.h b/src/lib/eolian/eo_lexer.h index 120e97a..eb1ca97 100644 --- a/src/lib/eolian/eo_lexer.h +++ b/src/lib/eolian/eo_lexer.h @@ -29,8 +29,8 @@ enum Tokens KW(get), KW(implements), KW(interface), KW(keys), KW(legacy), \ KW(legacy_prefix), KW(methods), KW(mixin), KW(own), KW(params), \ KW(properties), KW(set), KW(type), KW(values), KW(var), KWAT(auto), \ -KWAT(class), KWAT(const), KWAT(const_get), KWAT(const_set), KWAT(empty), \ -KWAT(extern), KWAT(free), KWAT(in), KWAT(inout), KWAT(nonull), \ +KWAT(c_only), KWAT(class), KWAT(const), KWAT(const_get), KWAT(const_set), \ +KWAT(empty), KWAT(extern), KWAT(free), KWAT(in), KWAT(inout), KWAT(nonull), \ KWAT(optional), KWAT(out), KWAT(private), KWAT(protected), KWAT(virtual), \ KWAT(warn_unused), \ \ diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c index 0d45bd0..9673c03 100644 --- a/src/lib/eolian/eo_parser.c +++ b/src/lib/eolian/eo_parser.c @@ -1276,7 +1276,8 @@ parse_property(Eo_Lexer *ls) Eolian_Function *prop = NULL; Eina_Bool has_get = EINA_FALSE, has_set= EINA_FALSE, has_keys = EINA_FALSE, has_values = EINA_FALSE, - has_protected = EINA_FALSE, has_class = EINA_FALSE; + has_protected = EINA_FALSE, has_class = EINA_FALSE, + has_c_only= EINA_FALSE; prop = calloc(1, sizeof(Eolian_Function)); prop-klass = ls-tmp.kls; prop-type = EOLIAN_UNRESOLVED; @@ -1299,6 +1300,11 @@ parse_property(Eo_Lexer *ls) prop-is_class = EINA_TRUE; eo_lexer_get(ls); break; + case KW_at_c_only: +CASE_LOCK(ls, c_only, c_only qualifier); +prop-is_c_only = EINA_TRUE; +eo_lexer_get(ls); +break; default: goto body; } @@ -1340,14 +1346,14 @@ end: } static void -parse_method(Eo_Lexer *ls, Eina_Bool ctor) +parse_method(Eo_Lexer *ls) { int line, col; Eolian_Function *meth = NULL; Eina_Bool has_const = EINA_FALSE, has_params = EINA_FALSE, has_return = EINA_FALSE, has_legacy = EINA_FALSE, has_protected = EINA_FALSE, has_class = EINA_FALSE, - has_eo = EINA_FALSE; + has_eo = EINA_FALSE, has_c_only = EINA_FALSE; meth = calloc(1, sizeof(Eolian_Function)); meth-klass = ls-tmp.kls; meth-type = EOLIAN_METHOD; @@ -1355,48 +1361,33 @@ parse_method(Eo_Lexer *ls, Eina_Bool ctor) meth-base.line = ls-line_number; meth-base.column = ls-column; ls-tmp.kls-methods =
Re: [E-devel] [EGIT] [core/efl] master 01/02: eolian: add eolian_function_is_c_only
On 12/04/14 04:40, Daniel Kolesa wrote: 2014-12-04 1:16 GMT+00:00 Daniel Zaoui daniel.za...@samsung.com: Yo D5, Just for the curiosity, do you have a scenario where we need this? Yeah. We found some yesterday with Tom Hum... My question was not good :-) Could you share a scenario where we need this? :P D2 On 12/03/14 17:07, Daniel Kolesa wrote: q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=49aebd063e9a9bebac9ff5d7a9e3ecf7a70712cd commit 49aebd063e9a9bebac9ff5d7a9e3ecf7a70712cd Author: Daniel Kolesa d.kol...@samsung.com Date: Wed Dec 3 14:59:24 2014 + eolian: add eolian_function_is_c_only This function allows us to mark functions that are not bindable. Also remove some obsolete code. --- src/lib/eolian/Eolian.h| 10 + src/lib/eolian/database_function_api.c | 7 src/lib/eolian/eo_lexer.h | 4 +- src/lib/eolian/eo_parser.c | 77 +++--- src/lib/eolian/eolian_database.h | 1 + 5 files changed, 54 insertions(+), 45 deletions(-) diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index 42e41c7..9464cdf 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -874,6 +874,16 @@ EAPI Eina_Bool eolian_function_is_legacy_only(const Eolian_Function *function_id EAPI Eina_Bool eolian_function_is_class(const Eolian_Function *function_id); /* + * @brief Get whether a function is C only (i.e. not bindable). + * + * @param[in] function_id Id of the function + * @return EINA_TRUE and EINA_FALSE respectively + * + * @ingroup Eolian + */ +EAPI Eina_Bool eolian_function_is_c_only(const Eolian_Function *function_id); + +/* * @brief Indicates if a function is a constructing function of a given class. * * @param[in] klass the class diff --git a/src/lib/eolian/database_function_api.c b/src/lib/eolian/database_function_api.c index 000dda6..266ae54 100644 --- a/src/lib/eolian/database_function_api.c +++ b/src/lib/eolian/database_function_api.c @@ -249,3 +249,10 @@ eolian_function_object_is_const(const Eolian_Function *fid) EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EINA_FALSE); return fid-obj_is_const; } + +EAPI Eina_Bool +eolian_function_is_c_only(const Eolian_Function *fid) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EINA_FALSE); + return fid-is_c_only; +} diff --git a/src/lib/eolian/eo_lexer.h b/src/lib/eolian/eo_lexer.h index 120e97a..eb1ca97 100644 --- a/src/lib/eolian/eo_lexer.h +++ b/src/lib/eolian/eo_lexer.h @@ -29,8 +29,8 @@ enum Tokens KW(get), KW(implements), KW(interface), KW(keys), KW(legacy), \ KW(legacy_prefix), KW(methods), KW(mixin), KW(own), KW(params), \ KW(properties), KW(set), KW(type), KW(values), KW(var), KWAT(auto), \ -KWAT(class), KWAT(const), KWAT(const_get), KWAT(const_set), KWAT(empty), \ -KWAT(extern), KWAT(free), KWAT(in), KWAT(inout), KWAT(nonull), \ +KWAT(c_only), KWAT(class), KWAT(const), KWAT(const_get), KWAT(const_set), \ +KWAT(empty), KWAT(extern), KWAT(free), KWAT(in), KWAT(inout), KWAT(nonull), \ KWAT(optional), KWAT(out), KWAT(private), KWAT(protected), KWAT(virtual), \ KWAT(warn_unused), \ \ diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c index 0d45bd0..9673c03 100644 --- a/src/lib/eolian/eo_parser.c +++ b/src/lib/eolian/eo_parser.c @@ -1276,7 +1276,8 @@ parse_property(Eo_Lexer *ls) Eolian_Function *prop = NULL; Eina_Bool has_get = EINA_FALSE, has_set= EINA_FALSE, has_keys = EINA_FALSE, has_values = EINA_FALSE, - has_protected = EINA_FALSE, has_class = EINA_FALSE; + has_protected = EINA_FALSE, has_class = EINA_FALSE, + has_c_only= EINA_FALSE; prop = calloc(1, sizeof(Eolian_Function)); prop-klass = ls-tmp.kls; prop-type = EOLIAN_UNRESOLVED; @@ -1299,6 +1300,11 @@ parse_property(Eo_Lexer *ls) prop-is_class = EINA_TRUE; eo_lexer_get(ls); break; + case KW_at_c_only: +CASE_LOCK(ls, c_only, c_only qualifier); +prop-is_c_only = EINA_TRUE; +eo_lexer_get(ls); +break; default: goto body; } @@ -1340,14 +1346,14 @@ end: } static void -parse_method(Eo_Lexer *ls, Eina_Bool ctor) +parse_method(Eo_Lexer *ls) { int line, col; Eolian_Function *meth = NULL; Eina_Bool has_const = EINA_FALSE, has_params = EINA_FALSE, has_return = EINA_FALSE, has_legacy = EINA_FALSE, has_protected = EINA_FALSE, has_class = EINA_FALSE, - has_eo = EINA_FALSE; + has_eo = EINA_FALSE, has_c_only = EINA_FALSE; meth = calloc(1, sizeof(Eolian_Function)); meth-klass = ls-tmp.kls; meth-type = EOLIAN_METHOD; @@ -1355,48 +1361,33 @@ parse_method(Eo_Lexer *ls,
Re: [E-devel] [EGIT] [core/efl] master 01/02: eolian: add eolian_function_is_c_only
On Thu, Dec 4, 2014 at 3:40 AM, Daniel Kolesa quake...@gmail.com wrote: 2014-12-04 1:16 GMT+00:00 Daniel Zaoui daniel.za...@samsung.com: Yo D5, Just for the curiosity, do you have a scenario where we need this? Yeah. We found some yesterday with Tom Please expand :-) I was under the impression that we could just have had an explicit list of glob per binding that would have been updated for them specifically. So I am also wondering what you guys are thinking ... Well for Tom, not sure I want to know :-D -- Cedric BAIL -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/02: eolian: add eolian_function_is_c_only
On 12/04/14 05:14, Cedric BAIL wrote: On Thu, Dec 4, 2014 at 3:40 AM, Daniel Kolesa quake...@gmail.com wrote: 2014-12-04 1:16 GMT+00:00 Daniel Zaoui daniel.za...@samsung.com: Yo D5, Just for the curiosity, do you have a scenario where we need this? Yeah. We found some yesterday with Tom Please expand :-) I was under the impression that we could just have had an explicit list of glob per binding that would have been updated for them specifically. So I am also wondering what you guys are thinking ... Well for Tom, not sure I want to know :-D Man, don't irritate a British (= drunk) boy in the morning, it could be the end of your life!!! -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: evas - gif loader - fix technically wrong sizeof (doesnt cause a bug)
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=83512198b893845b25c4f5afd49dbea945809ead commit 83512198b893845b25c4f5afd49dbea945809ead Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Thu Dec 4 16:03:32 2014 +0900 evas - gif loader - fix technically wrong sizeof (doesnt cause a bug) go from sizeof(char **) to sizeof(char *) ... effectively. so no real bug. --- src/modules/evas/loaders/gif/evas_image_load_gif.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/modules/evas/loaders/gif/evas_image_load_gif.c b/src/modules/evas/loaders/gif/evas_image_load_gif.c index e62bf9e..acdf5ab 100644 --- a/src/modules/evas/loaders/gif/evas_image_load_gif.c +++ b/src/modules/evas/loaders/gif/evas_image_load_gif.c @@ -211,16 +211,16 @@ _decode_image(GifFileType *gif, DATA32 *data, int rowpix, int xin, int yin, // build a blob of memory to have pointers to rows of pixels // AND store the decoded gif pixels (1 byte per pixel) as welll - rows = malloc((h * sizeof(GifRowType *)) + (w * h * sizeof(GifPixelType))); + rows = malloc((h * sizeof(GifRowType)) + (w * h * sizeof(GifPixelType))); if (!rows) goto on_error; - + // fill in the pointers at the start for (yy = 0; yy h; yy++) { -rows[yy] = ((unsigned char *)rows) + (h * sizeof(GifRowType *)) + +rows[yy] = ((unsigned char *)rows) + (h * sizeof(GifRowType)) + (yy * w * sizeof(GifPixelType)); } - + // if give is interlaced, walk interlace pattern and decode into rows if (gif-Image.Interlace) { --
Re: [E-devel] New developer
+1 for me too. He is doing great work. -- Raoul Hecky 2014-12-04 3:39 GMT+01:00 Daniel Kolesa quake...@gmail.com: 2014-12-04 2:35 GMT+00:00 Cedric BAIL cedric.b...@free.fr: Hello, I would like to give Jean Guyomarc'h jean.guyoma...@gmail.com a developer access. He has been taking care of porting and maintaining EFL on Mac OS X actively for some time already and it is by now just a burden on me to review his work with not much comment to do. I trust him to actually do the right thing and continue maintaining EFL and if he ever start poking at other place in EFL to ask question when necessary. I've seen him contributing, no objections I support everyone who wants to expand platform coverage. Any objection ? Have fun, -- Cedric BAIL -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel D5 -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel