[EGIT] [bindings/python/python-efl] master 01/01: Eo: Add a private dict which can be used for callbacks etc.

2016-01-23 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=fa69908d712375ad599431eedeb7ef01bede83ff

commit fa69908d712375ad599431eedeb7ef01bede83ff
Author: Kai Huuhko 
Date:   Sat Jan 23 15:36:10 2016 +0200

Eo: Add a private dict which can be used for callbacks etc.
---
 efl/eo/efl.eo.pyx  | 1 +
 include/efl.eo.pxd | 1 +
 2 files changed, 2 insertions(+)

diff --git a/efl/eo/efl.eo.pyx b/efl/eo/efl.eo.pyx
index bd38c2f..13cf9df 100644
--- a/efl/eo/efl.eo.pyx
+++ b/efl/eo/efl.eo.pyx
@@ -235,6 +235,7 @@ cdef class Eo(object):
 
 def __cinit__(self):
 self.data = dict()
+self.internal_data = dict()
 
 def __init__(self, *args, **kwargs):
 if type(self) is Eo:
diff --git a/include/efl.eo.pxd b/include/efl.eo.pxd
index 6d87428..3bee06f 100644
--- a/include/efl.eo.pxd
+++ b/include/efl.eo.pxd
@@ -23,6 +23,7 @@ cdef:
 cdef:
 cEo *obj
 readonly dict data
+dict internal_data
 
 int _set_obj(self, cEo *obj) except 0
 int _set_properties_from_keyword_args(self, dict kwargs) except 0

-- 




[EGIT] [core/efl] master 01/01: Evas filters: Change FIXME comment in test case

2016-01-23 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=1385afc387a14c0fb1643331164ef0f62f777272

commit 1385afc387a14c0fb1643331164ef0f62f777272
Author: Jean-Philippe ANDRE 
Date:   Sat Jan 23 18:18:52 2016 +0900

Evas filters: Change FIXME comment in test case
---
 src/tests/evas/evas_test_filters.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/tests/evas/evas_test_filters.c 
b/src/tests/evas/evas_test_filters.c
index 5301af8..188bb0b 100644
--- a/src/tests/evas/evas_test_filters.c
+++ b/src/tests/evas/evas_test_filters.c
@@ -255,7 +255,7 @@ static struct Filter_Test_Case _test_cases[] = {
{ 7, 7, 7, 7, "a = buffer ({ 'rgba' }) b = buffer ({ 'rgba' }) blend ({ dst 
= b, color = '#330' }) blend ({ dst = a }) displace ({ map = b, src = a, 
intensity = 7, flags = 'nearest_stretch' })", NULL },
{ 7, 7, 7, 7, "a = buffer ({ 'rgba' }) b = buffer ({ 'rgba' }) blend ({ dst 
= b, color = '#330' }) blend ({ dst = a }) displace ({ map = b, src = a, 
intensity = 7, flags = 'smooth_stretch' })", NULL },
 
-   /* FIXME Fix transform filter!!! FIXME */
+   /* Transform filter. TODO: Improve API and test it more */
{ 0, 0, 0, 40, "a = buffer ({ 'alpha' }) transform ({ a, 'vflip', oy = 20 
}) blend ({ src = a })", NULL },
{ 0, 0, 40, 0, "a = buffer ({ 'alpha' }) transform ({ a, 'vflip', oy = -20 
}) blend ({ src = a })", NULL },
{ 0, 0, 0, 40, "a = buffer ({ 'alpha' }) blend ({ dst = a }) transform ({ 
a, 'vflip', oy = 20, src = a }) blend ({ src = a })", NULL },

-- 




[EGIT] [bindings/python/python-efl] master 01/01: New 1.17 API: elm.Ctxpopup "geometry, update" smart cb

2016-01-23 Thread Dave Andreoli
davemds pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=86aa8c51383999a424d58bdc322fe231c53e39ea

commit 86aa8c51383999a424d58bdc322fe231c53e39ea
Author: Dave Andreoli 
Date:   Sat Jan 23 14:33:01 2016 +0100

New 1.17 API: elm.Ctxpopup "geometry,update" smart cb
---
 doc/elementary/ctxpopup.rst  |  2 ++
 efl/elementary/__init__.pyx  |  6 +-
 efl/elementary/ctxpopup.pxi  | 11 +++
 examples/elementary/test_ctxpopup.py |  4 
 include/efl.evas.pxd | 14 --
 5 files changed, 34 insertions(+), 3 deletions(-)

diff --git a/doc/elementary/ctxpopup.rst b/doc/elementary/ctxpopup.rst
index e63e634..230e616 100644
--- a/doc/elementary/ctxpopup.rst
+++ b/doc/elementary/ctxpopup.rst
@@ -28,6 +28,8 @@ Emitted signals
   4. the parent object is resized due to the window rotation. Then ctxpopup is
   dismissed.
 
+- ``geometry,update`` - The geometry has changed (since 1.17)
+
 Layout content parts
 
 
diff --git a/efl/elementary/__init__.pyx b/efl/elementary/__init__.pyx
index b3f7382..69e3df8 100644
--- a/efl/elementary/__init__.pyx
+++ b/efl/elementary/__init__.pyx
@@ -21,7 +21,7 @@ from libc.string cimport memcpy, strdup
 from libc.stdlib cimport malloc, free
 from libc.stdint cimport uintptr_t
 
-from efl.evas cimport Object as evasObject
+from efl.evas cimport Object as evasObject, Evas_Coord_Rectangle, Rect
 
 from efl.utils.conversions cimport _touni, _ctouni, \
 python_list_strings_to_eina_list, eina_list_strings_to_python_list
@@ -599,6 +599,10 @@ cdef object _cb_string_conv(void *addr):
 cdef object _cb_object_item_conv(void *addr):
 return _object_item_to_python(addr)
 
+cdef object _cb_rectangle_conv(void *addr):
+cdef Evas_Coord_Rectangle *geom = addr
+return Rect(geom.x, geom.y, geom.w, geom.h)
+
 
 #include "access.pxi"
 include "actionslider.pxi"
diff --git a/efl/elementary/ctxpopup.pxi b/efl/elementary/ctxpopup.pxi
index 857fa97..5440ea5 100644
--- a/efl/elementary/ctxpopup.pxi
+++ b/efl/elementary/ctxpopup.pxi
@@ -395,5 +395,16 @@ cdef class Ctxpopup(LayoutClass):
 def callback_dismissed_del(self, func):
 self._callback_del("dismissed", func)
 
+def callback_geometry_update_add(self, func, *args, **kwargs):
+"""the ctxpopup geometry has changed
+
+.. versionadded:: 1.17
+
+"""
+self._callback_add_full("geometry,update", _cb_rectangle_conv, func, 
args, kwargs)
+
+def callback_geometry_update_del(self, func):
+self._callback_del_full("geometry,update", _cb_rectangle_conv, func)
+
 
 _object_mapping_register("Elm_Ctxpopup", Ctxpopup)
diff --git a/examples/elementary/test_ctxpopup.py 
b/examples/elementary/test_ctxpopup.py
index fbe154a..e1b86f2 100644
--- a/examples/elementary/test_ctxpopup.py
+++ b/examples/elementary/test_ctxpopup.py
@@ -47,8 +47,12 @@ def cb_dismissed(cp):
 if "img" in cp.data:
 cp.data["img"].delete()
 
+def cb_geometry_update(cp, geom):
+print("geometry,update", geom)
+
 def cb_item1(li, item):
 cp = Ctxpopup(li)
+cp.callback_geometry_update_add(cb_geometry_update)
 it = item_new(cp, "Go to home folder", "home")
 it = item_new(cp, "Save file", "file")
 it = item_new(cp, "Delete file", "delete")
diff --git a/include/efl.evas.pxd b/include/efl.evas.pxd
index 6eac7ba..d6f7350 100644
--- a/include/efl.evas.pxd
+++ b/include/efl.evas.pxd
@@ -347,11 +347,21 @@ cdef extern from "Evas.h":
 int x
 int y
 
-ctypedef struct Evas_Coord_Point: # Evas_Coord is int now
+ctypedef struct Evas_Coord_Point:
 Evas_Coord x
 Evas_Coord y
 
-ctypedef struct Evas_Coord_Precision_Point: # Evas_Coord is int now
+ctypedef struct Evas_Coord_Size:
+Evas_Coord w
+Evas_Coord h
+
+ctypedef struct Evas_Coord_Rectangle:
+Evas_Coord x
+Evas_Coord y
+Evas_Coord w
+Evas_Coord h
+
+ctypedef struct Evas_Coord_Precision_Point:
 Evas_Coord x
 Evas_Coord y
 double xsub

-- 




[EGIT] [core/efl] master 01/01: evas: Updated documentation of evas_object_image_save.

2016-01-23 Thread Ji-Youn Park
jypark pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=d395a867a44e7d30e764f4900679895cd8933be2

commit d395a867a44e7d30e764f4900679895cd8933be2
Author: Ji-Youn Park 
Date:   Sat Jan 23 17:16:34 2016 +0830

   evas: Updated documentation of evas_object_image_save.
---
 src/lib/evas/Evas_Legacy.h | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h
index cc61fbd..7f2b3a5 100644
--- a/src/lib/evas/Evas_Legacy.h
+++ b/src/lib/evas/Evas_Legacy.h
@@ -2682,6 +2682,12 @@ EAPI void evas_object_image_mmap_get(const Eo *obj, 
const Eina_File **f, const c
  * You can specify some flags when saving the image.  Currently
  * acceptable flags are @c quality and @c compress. Eg.: @c
  * "quality=100 compress=9"
+ * 
+ * quality is hint for the quality of image,0-100. 0 means low quality 
+ * and saved image size is small. 100 means high quality and saved image size 
is big.
+ *
+ * compress is hint for the compression modes (Eet ones) or for the 
compression flags (Png one) 
+ * (1 == compress, 0 = don't compress).
  *
  * @param[in] file The filename to be used to save the image (extension
 obligatory).

-- 




[EGIT] [bindings/python/python-efl] master 01/01: Elementary: Use the private internal_data dict instead of abusing user data dict

2016-01-23 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=6980ffb0e44d72c3ee4db711182de9c55828cbfd

commit 6980ffb0e44d72c3ee4db711182de9c55828cbfd
Author: Kai Huuhko 
Date:   Sat Jan 23 15:55:49 2016 +0200

Elementary: Use the private internal_data dict instead of abusing user data 
dict
---
 efl/elementary/cnp_callbacks.pxi  |  8 
 efl/elementary/gengrid_widget.pxi | 10 +-
 efl/elementary/genlist_widget.pxi | 18 +-
 3 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/efl/elementary/cnp_callbacks.pxi b/efl/elementary/cnp_callbacks.pxi
index 8c49ae7..8e6b7e4 100644
--- a/efl/elementary/cnp_callbacks.pxi
+++ b/efl/elementary/cnp_callbacks.pxi
@@ -143,7 +143,7 @@ cdef Elm_Object_Item *py_elm_xy_item_get_cb(Evas_Object 
*obj, Evas_Coord x, Evas
 ObjectItem it
 
 try:
-ret = o.data["xy_item_get_cb"](o, x, y)
+ret = o.internal_data["xy_item_get_cb"](o, x, y)
 it, xpos1, ypos1 = ret
 except Exception:
 traceback.print_exc()
@@ -321,7 +321,7 @@ cdef void py_elm_drag_item_container_pos(
 ObjectItem item = _object_item_to_python(it)
 
 try:
-o.data["drag_item_container_pos"](o, item, x, y, xposret, yposret, 
action, data if data is not NULL else None)
+o.internal_data["drag_item_container_pos"](o, item, x, y, xposret, 
yposret, action, data if data is not NULL else None)
 except Exception:
 traceback.print_exc()
 
@@ -352,7 +352,7 @@ cdef Eina_Bool py_elm_drop_item_container_cb(
 
 evdata.sel_data = ev
 
-cb = o.data["drop_item_container_cb"]
+cb = o.internal_data["drop_item_container_cb"]
 
 if data != NULL:
 cbdata = data
@@ -434,7 +434,7 @@ cdef Eina_Bool py_elm_item_container_data_get_cb(
 bint ret
 
 try:
-func = o.data["item_container_data_get_cb"]
+func = o.internal_data["item_container_data_get_cb"]
 ret = func(o, item, pyinfo)
 except Exception:
 traceback.print_exc()
diff --git a/efl/elementary/gengrid_widget.pxi 
b/efl/elementary/gengrid_widget.pxi
index a96c35d..58e7a54 100644
--- a/efl/elementary/gengrid_widget.pxi
+++ b/efl/elementary/gengrid_widget.pxi
@@ -651,9 +651,9 @@ cdef class Gengrid(Object):
 if itemgetcb is not None:
 if not callable(itemgetcb):
 raise TypeError("itemgetcb must be callable.")
-self.data["xy_item_get_cb"] = itemgetcb
+self.internal_data["xy_item_get_cb"] = itemgetcb
 
-self.data["item_container_data_get_cb"] = data_get
+self.internal_data["item_container_data_get_cb"] = data_get
 
 if not elm_drag_item_container_add(self.obj,
 tm_to_anim,
@@ -702,10 +702,10 @@ cdef class Gengrid(Object):
 if itemgetcb is not None:
 if not callable(itemgetcb):
 raise TypeError("itemgetcb must be callable.")
-self.data["xy_item_get_cb"] = itemgetcb
+self.internal_data["xy_item_get_cb"] = itemgetcb
 
-self.data["drag_item_container_pos"] = poscb
-self.data["drop_item_container_cb"] = dropcb
+self.internal_data["drag_item_container_pos"] = poscb
+self.internal_data["drop_item_container_cb"] = dropcb
 
 if not elm_drop_item_container_add(self.obj,
 format,
diff --git a/efl/elementary/genlist_widget.pxi 
b/efl/elementary/genlist_widget.pxi
index 416678b..b558f4a 100644
--- a/efl/elementary/genlist_widget.pxi
+++ b/efl/elementary/genlist_widget.pxi
@@ -723,17 +723,17 @@ cdef class Genlist(Object):
 
 """
 def __set__(self, object key):
-self.data['__filterkeyref'] = key # keep a reference for key
+self.internal_data['__filterkeyref'] = key # keep a reference for 
key
 elm_genlist_filter_set(self.obj, key if key is not None 
else NULL)
 
 def __get__(self):
-return self.data['__filterkeyref']
+return self.internal_data['__filterkeyref']
 
 def filter_set(self, key):
-self.data['__filterkeyref'] = key
+self.internal_data['__filterkeyref'] = key
 elm_genlist_filter_set(self.obj, key if key is not None else 
NULL)
 def filter_get(self):
-return self.data['__filterkeyref']
+return self.internal_data['__filterkeyref']
 
 #
 # Drag and Drop
@@ -757,9 +757,9 @@ cdef class Genlist(Object):
 if itemgetcb is not None:
 if not callable(itemgetcb):
 raise TypeError("itemgetcb must be callable.")
-self.data["xy_item_get_cb"] = itemgetcb
+self.internal_data["xy_item_get_cb"] = itemgetcb
 
-self.data["item_container_data_get_cb"] = data_get
+self.internal_data["item_container_data_get_cb"] = data_get
 
 if not elm_drag_item_container_add(self.obj,
 tm_to_anim,
@@ -808,10 +808,10 @@ cdef class 

[EGIT] [core/efl] master 01/01: evas: Updated documentation of evas_object_image_save.

2016-01-23 Thread Ji-Youn Park
jypark pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=c11764534bb71ec3fbcf5e91389277c730b0f1e9

commit c11764534bb71ec3fbcf5e91389277c730b0f1e9
Author: Ji-Youn Park 
Date:   Sat Jan 23 18:06:07 2016 +0830

   evas: Updated documentation of evas_object_image_save.
---
 src/lib/evas/Evas_Legacy.h | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h
index 7f2b3a5..8db7adc 100644
--- a/src/lib/evas/Evas_Legacy.h
+++ b/src/lib/evas/Evas_Legacy.h
@@ -2673,6 +2673,7 @@ EAPI void evas_object_image_mmap_get(const Eo *obj, const 
Eina_File **f, const c
 /**
  *
  * Save the given image object's contents to an (image) file.
+ * Proxy object is image object, but it doesn't have contents. So you can't 
use this function for proxy objects.
  *
  * The extension suffix on @p file will determine which saver
  * module Evas is to use when saving, thus the final file's
@@ -2682,11 +2683,11 @@ EAPI void evas_object_image_mmap_get(const Eo *obj, 
const Eina_File **f, const c
  * You can specify some flags when saving the image.  Currently
  * acceptable flags are @c quality and @c compress. Eg.: @c
  * "quality=100 compress=9"
- * 
- * quality is hint for the quality of image,0-100. 0 means low quality 
+ *
+ * quality is hint for the quality of image,0-100. 0 means low quality
  * and saved image size is small. 100 means high quality and saved image size 
is big.
  *
- * compress is hint for the compression modes (Eet ones) or for the 
compression flags (Png one) 
+ * compress is hint for the compression modes (Eet ones) or for the 
compression flags (Png one)
  * (1 == compress, 0 = don't compress).
  *
  * @param[in] file The filename to be used to save the image (extension

-- 




[EGIT] [bindings/python/python-efl] master 01/01: New elm widget: Combobox

2016-01-23 Thread Dave Andreoli
davemds pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=4f8dfc195f98bd1a12efe4f1c5d2259e75d2b4c1

commit 4f8dfc195f98bd1a12efe4f1c5d2259e75d2b4c1
Author: Dave Andreoli 
Date:   Sat Jan 23 12:19:20 2016 +0100

New elm widget: Combobox

with docs and example
---
 doc/elementary/combobox.rst  |  44 +
 doc/elementary/elementary.rst|   1 +
 doc/images/combobox-preview.png  | Bin 0 -> 30083 bytes
 efl/elementary/__init__.pyx  |   1 +
 efl/elementary/combobox.pxi  | 116 +++
 efl/elementary/combobox_cdef.pxi |   9 +++
 examples/elementary/test.py  |   2 +
 examples/elementary/test_combobox.py | 103 +++
 8 files changed, 276 insertions(+)

diff --git a/doc/elementary/combobox.rst b/doc/elementary/combobox.rst
new file mode 100644
index 000..713416a
--- /dev/null
+++ b/doc/elementary/combobox.rst
@@ -0,0 +1,44 @@
+.. currentmodule:: efl.elementary
+
+Combobox
+
+
+.. image:: /images/combobox-preview.png
+
+
+Widget description
+==
+
+This is a the classic combobox widget, it is the composition of a
+:class:`Button`, an :class:`Entry`, a :class:`Genlist` and an :class:`Hover`.
+Thus you can use all the functionality of the base classes on the
+:class:`Combobox` itself.
+
+
+Available styles
+
+
+- ``default`` a normal combobox.
+
+
+Emitted signals
+===
+
+- ``dismissed``: The combobox hover has been dismissed.
+- ``expanded``: The combobox hover has been expanded.
+- ``clicked``: The combobox button has been clicked.
+- ``item,selected``: An item has been selected (highlighted).
+- ``item,pressed``: An item has been pressed (clicked).
+- ``filter,done``:  Item filtering on genlist is completed.
+
+
+Inheritance diagram
+===
+
+.. inheritance-diagram:: Combobox
+:parts: 2
+
+
+.. autoclass:: _Combobox
+.. autoclass:: Combobox
+
diff --git a/doc/elementary/elementary.rst b/doc/elementary/elementary.rst
index 6349fa0..f1a81a3 100644
--- a/doc/elementary/elementary.rst
+++ b/doc/elementary/elementary.rst
@@ -402,6 +402,7 @@ Inheritance diagram
 efl.elementary.Check
 efl.elementary.Clock
 efl.elementary.Colorselector
+efl.elementary.Combobox
 efl.elementary.Configuration
 efl.elementary.Conformant
 efl.elementary.Ctxpopup
diff --git a/doc/images/combobox-preview.png b/doc/images/combobox-preview.png
new file mode 100644
index 000..73250f4
Binary files /dev/null and b/doc/images/combobox-preview.png differ
diff --git a/efl/elementary/__init__.pyx b/efl/elementary/__init__.pyx
index 2c0ca00..b3f7382 100644
--- a/efl/elementary/__init__.pyx
+++ b/efl/elementary/__init__.pyx
@@ -610,6 +610,7 @@ include "calendar.pxi"
 include "check.pxi"
 include "clock.pxi"
 include "colorselector.pxi"
+include "combobox.pxi"
 include "configuration.pxi"
 include "conformant.pxi"
 include "ctxpopup.pxi"
diff --git a/efl/elementary/combobox.pxi b/efl/elementary/combobox.pxi
new file mode 100644
index 000..5253468
--- /dev/null
+++ b/efl/elementary/combobox.pxi
@@ -0,0 +1,116 @@
+# Copyright (C) 2007-2015 various contributors (see AUTHORS)
+#
+# This file is part of Python-EFL.
+#
+# Python-EFL is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 3 of the License, or (at your option) any later version.
+#
+# Python-EFL is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this Python-EFL.  If not, see .
+#
+
+include "combobox_cdef.pxi"
+
+cdef class _Combobox(Object):
+def __init__(self, evasObject parent, *args, **kwargs):
+self._set_obj(elm_combobox_add(parent.obj))
+self._set_properties_from_keyword_args(kwargs)
+
+property expanded:
+""" Returns whether the combobox is expanded or not.
+
+:type: bool (**readonly**)
+
+"""
+def __get__(self):
+return bool(elm_combobox_expanded_get(self.obj))
+
+def expanded_get(self):
+return bool(elm_combobox_expanded_get(self.obj))
+
+def hover_begin(self):
+""" This triggers the combobox popup from code, the same as if the user
+had clicked the button.
+"""
+elm_combobox_hover_begin(self.obj)
+
+def hover_end(self):
+""" This dismisses the combobox popup as if the user had clicked
+outside the hover.
+"""
+elm_combobox_hover_end(self.obj)
+
+def callback_dismissed_add(self, func, *args, **kwargs):

[EGIT] [bindings/python/python-efl] master 01/01: New 1.17 API: ELM_GEN[GRID/LIST]_ITEM_SCROLLTO_BOTTOM

2016-01-23 Thread Dave Andreoli
davemds pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=9809eb2739b64b11f0072a353308106dd5a4ece2

commit 9809eb2739b64b11f0072a353308106dd5a4ece2
Author: Dave Andreoli 
Date:   Sat Jan 23 13:46:43 2016 +0100

New 1.17 API: ELM_GEN[GRID/LIST]_ITEM_SCROLLTO_BOTTOM

The grid enum was a bit messed, it was using the list enums, fixed and 
leave the old one in place for compatibility
---
 doc/elementary/gengrid.rst|   6 ++
 doc/elementary/genlist.rst|   6 ++
 efl/elementary/gengrid.py |   8 ++
 efl/elementary/gengrid_cdef.pxi   |  10 +++
 efl/elementary/gengrid_item.pxi   |  10 ++-
 efl/elementary/genlist.py |   1 +
 efl/elementary/genlist_cdef.pxi   |   1 +
 efl/elementary/genlist_item.pxi   |  10 ++-
 examples/elementary/test_gengrid.py   | 139 --
 examples/elementary/test_genlist_1.py |  69 +
 10 files changed, 163 insertions(+), 97 deletions(-)

diff --git a/doc/elementary/gengrid.rst b/doc/elementary/gengrid.rst
index 9527361..c279329 100644
--- a/doc/elementary/gengrid.rst
+++ b/doc/elementary/gengrid.rst
@@ -266,6 +266,12 @@ Items' scroll to types
 
 Scroll to the middle of viewport
 
+.. data:: ELM_GENGRID_ITEM_SCROLLTO_BOTTOM
+
+Scroll to the bottom of viewport
+
+.. versionadded:: 1.17
+
 
 .. _Elm_Gengrid_Object_Multi_Select_Mode:
 
diff --git a/doc/elementary/genlist.rst b/doc/elementary/genlist.rst
index 1d1b482..2218045 100644
--- a/doc/elementary/genlist.rst
+++ b/doc/elementary/genlist.rst
@@ -415,6 +415,12 @@ Genlist items' scroll-to types
 
 Scroll to the middle of viewport
 
+.. data:: ELM_GENLIST_ITEM_SCROLLTO_BOTTTOM
+
+Scroll to the bottom of viewport
+
+.. versionadded:: 1.17
+
 
 Inheritance diagram
 ===
diff --git a/efl/elementary/gengrid.py b/efl/elementary/gengrid.py
index 81e57a9..24f33ba 100644
--- a/efl/elementary/gengrid.py
+++ b/efl/elementary/gengrid.py
@@ -1,9 +1,17 @@
 from . import Gengrid, GengridItem, GengridItemClass
 
+# deprecated
 from . import ELM_GENLIST_ITEM_SCROLLTO_NONE
 from . import ELM_GENLIST_ITEM_SCROLLTO_IN
 from . import ELM_GENLIST_ITEM_SCROLLTO_TOP
 from . import ELM_GENLIST_ITEM_SCROLLTO_MIDDLE
+#
+
+from . import ELM_GENGRID_ITEM_SCROLLTO_NONE
+from . import ELM_GENGRID_ITEM_SCROLLTO_IN
+from . import ELM_GENGRID_ITEM_SCROLLTO_TOP
+from . import ELM_GENGRID_ITEM_SCROLLTO_MIDDLE
+from . import ELM_GENGRID_ITEM_SCROLLTO_BOTTOM
 
 from . import ELM_OBJECT_SELECT_MODE_DEFAULT
 from . import ELM_OBJECT_SELECT_MODE_ALWAYS
diff --git a/efl/elementary/gengrid_cdef.pxi b/efl/elementary/gengrid_cdef.pxi
index 922a783..779aa6c 100644
--- a/efl/elementary/gengrid_cdef.pxi
+++ b/efl/elementary/gengrid_cdef.pxi
@@ -2,6 +2,7 @@ cdef extern from "Elementary.h":
 
 ctypedef cEo Elm_Gengrid
 
+# deprecated
 cpdef enum Elm_Genlist_Item_Scrollto_Type:
 ELM_GENLIST_ITEM_SCROLLTO_NONE
 ELM_GENLIST_ITEM_SCROLLTO_IN
@@ -10,6 +11,15 @@ cdef extern from "Elementary.h":
 ctypedef enum Elm_Genlist_Item_Scrollto_Type:
 pass
 
+cpdef enum Elm_Gengrid_Item_Scrollto_Type:
+ELM_GENGRID_ITEM_SCROLLTO_NONE
+ELM_GENGRID_ITEM_SCROLLTO_IN
+ELM_GENGRID_ITEM_SCROLLTO_TOP
+ELM_GENGRID_ITEM_SCROLLTO_MIDDLE
+ELM_GENGRID_ITEM_SCROLLTO_BOTTOM
+ctypedef enum Elm_Gengrid_Item_Scrollto_Type:
+pass
+
 cpdef enum Elm_Object_Select_Mode:
 ELM_OBJECT_SELECT_MODE_DEFAULT
 ELM_OBJECT_SELECT_MODE_ALWAYS
diff --git a/efl/elementary/gengrid_item.pxi b/efl/elementary/gengrid_item.pxi
index 54f4bd2..ce4b8f4 100644
--- a/efl/elementary/gengrid_item.pxi
+++ b/efl/elementary/gengrid_item.pxi
@@ -261,26 +261,28 @@ cdef class GengridItem(ObjectItem):
 def selected_get(self):
 return bool(elm_gengrid_item_selected_get(self.item))
 
-def show(self, scrollto_type = ELM_GENLIST_ITEM_SCROLLTO_IN):
+def show(self, scrollto_type=ELM_GENGRID_ITEM_SCROLLTO_IN):
 """This causes gengrid to **redraw** its viewport's contents to the
 region containing the given ``item``, if it is not fully
 visible.
 
 .. seealso:: :py:func:`bring_in()`
 
-:param type: Where to position the item in the viewport.
+:param scrollto_type: Where to position the item in the viewport.
+:type scrollto_type: :ref:`Elm_Gengrid_Item_Scrollto_Type`
 
 """
 elm_gengrid_item_show(self.item, scrollto_type)
 
-def bring_in(self, scrollto_type = ELM_GENLIST_ITEM_SCROLLTO_IN):
+def bring_in(self, scrollto_type=ELM_GENGRID_ITEM_SCROLLTO_IN):
 """This causes gengrid to jump to the item and show
 it (by scrolling), if it is not fully visible. This will use
 animation to do so and take a period of time to complete.
 
 .. seealso:: :py:func:`show()`
 
-:param type: Where to 

[EGIT] [bindings/python/python-efl] master 01/02: New 1.17 API: elm.Popup.dismiss()

2016-01-23 Thread Dave Andreoli
davemds pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=190d0aa7b635682dc5ce1f83cab28006eb8fc27e

commit 190d0aa7b635682dc5ce1f83cab28006eb8fc27e
Author: Dave Andreoli 
Date:   Sat Jan 23 16:32:08 2016 +0100

New 1.17 API: elm.Popup.dismiss()
---
 doc/elementary/popup.rst  |  1 +
 efl/elementary/popup.pxi  | 19 +++
 efl/elementary/popup_cdef.pxi |  1 +
 examples/elementary/test_popup.py | 23 ++-
 4 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/doc/elementary/popup.rst b/doc/elementary/popup.rst
index 2747c63..3742613 100644
--- a/doc/elementary/popup.rst
+++ b/doc/elementary/popup.rst
@@ -71,6 +71,7 @@ Emitted signals
 - ``block,clicked`` - when ever user taps on Blocked Event area.
 - ``item,focused`` - the popup item has received focus. (since 1.10)
 - ``item,unfocused`` - the popup item has lost focus. (since 1.10)
+- ``dismissed`` - the popup has been dismissed. (since 1.17)
 
 
 Layout content parts
diff --git a/efl/elementary/popup.pxi b/efl/elementary/popup.pxi
index e14676a..90a54f8 100644
--- a/efl/elementary/popup.pxi
+++ b/efl/elementary/popup.pxi
@@ -211,6 +211,25 @@ cdef class Popup(LayoutClass):
 def __get__(self):
 return bool(elm_popup_allow_events_get(self.obj))
 
+def dismiss(self):
+"""Dismiss a popup object.
+
+.. versionadded:: 1.17
+
+"""
+elm_popup_dismiss(self.obj)
+
+def callback_dismissed_add(self, func, *args, **kwargs):
+"""When popup is closed as a result of a dismiss.
+
+.. versionadded:: 1.17
+
+"""
+self._callback_add("dismissed", func, args, kwargs)
+
+def callback_dismissed_del(self, func):
+self._callback_del("dismissed", func)
+
 def callback_timeout_add(self, func, *args, **kwargs):
 """When popup is closed as a result of timeout."""
 self._callback_add("timeout", func, args, kwargs)
diff --git a/efl/elementary/popup_cdef.pxi b/efl/elementary/popup_cdef.pxi
index 2216f5c..3f75bd4 100644
--- a/efl/elementary/popup_cdef.pxi
+++ b/efl/elementary/popup_cdef.pxi
@@ -33,3 +33,4 @@ cdef extern from "Elementary.h":
 double   elm_popup_timeout_get(const Evas_Object *obj)
 void elm_popup_allow_events_set(Evas_Object *obj, 
Eina_Bool allow)
 Eina_Boolelm_popup_allow_events_get(const Evas_Object *obj)
+void elm_popup_dismiss(const Evas_Object *obj)
diff --git a/examples/elementary/test_popup.py 
b/examples/elementary/test_popup.py
index a00e5f4..c938151 100644
--- a/examples/elementary/test_popup.py
+++ b/examples/elementary/test_popup.py
@@ -168,8 +168,27 @@ def cb_popup_center_text_1button_hide_show(li, item, win):
 g_popup.show()
 
 
+def _popup_dismissed_cb(popup):
+print("dismissed", popup)
+popup.delete()
+
+def cb_popup_center_title_1button_hide_effect(li, item, win):
+popup = Popup(win, text="This Popup has title area, content area and " \
+  "action area set, action area has one button Close",
+  size_hint_expand=EXPAND_BOTH)
+popup.part_text_set("title", "Title")
+popup.callback_dismissed_add(_popup_dismissed_cb)
+
+btn = Button(popup, text="Close")
+btn.callback_clicked_add(lambda b: popup.dismiss())
+popup.part_content_set("button1", btn)
+
+popup.show()
+
+
+
 def popup_clicked(obj):
-win = StandardWindow("popup", "Popup test", autodel=True, size=(480, 800))
+win = StandardWindow("popup", "Popup test", autodel=True, size=(400, 400))
 if obj is None:
 win.callback_delete_request_add(lambda o: elementary.exit())
 
@@ -196,6 +215,8 @@ def popup_clicked(obj):
cb_popup_center_title_text_2button_restack, win)
 li.item_append("popup-center-text + 1 button (check hide, show)", None, 
None,
cb_popup_center_text_1button_hide_show, win)
+li.item_append("popup-center-title + text + 1 button + hide effect", None, 
None,
+   cb_popup_center_title_1button_hide_effect, win)
 
 li.go()
 

-- 




[EGIT] [bindings/python/python-efl] master 02/02: New 1.17 API: elm.Notity.dismiss()

2016-01-23 Thread Dave Andreoli
davemds pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=cab804e69b47c4792a8c56bc9e27ca7be1610683

commit cab804e69b47c4792a8c56bc9e27ca7be1610683
Author: Dave Andreoli 
Date:   Sat Jan 23 16:40:49 2016 +0100

New 1.17 API: elm.Notity.dismiss()
---
 doc/elementary/notify.rst  |  1 +
 efl/elementary/notify.pxi  | 18 ++
 efl/elementary/notify_cdef.pxi |  2 +-
 3 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/doc/elementary/notify.rst b/doc/elementary/notify.rst
index 503c4e1..179faa1 100644
--- a/doc/elementary/notify.rst
+++ b/doc/elementary/notify.rst
@@ -21,6 +21,7 @@ Emitted signals
 
 - ``timeout`` - when timeout happens on notify and it's hidden
 - ``block,clicked`` - when a click outside of the notify happens
+- ``dismissed`` - When notify is closed as a result of a dismiss (since 1.17)
 
 
 Layout content parts
diff --git a/efl/elementary/notify.pxi b/efl/elementary/notify.pxi
index f9659d7..1d9d798 100644
--- a/efl/elementary/notify.pxi
+++ b/efl/elementary/notify.pxi
@@ -110,6 +110,13 @@ cdef class Notify(Object):
 def allow_events_get(self):
 return bool(elm_notify_allow_events_get(self.obj))
 
+def dismiss(self):
+"""Dismiss a notify object.
+
+.. versionadded:: 1.17
+
+"""
+elm_notify_dismiss(self.obj)
 
 property align:
 """Set the alignment of the notify object
@@ -157,6 +164,17 @@ cdef class Notify(Object):
 def callback_block_clicked_del(self, func):
 self._callback_del("block,clicked", func)
 
+def callback_dismissed_add(self, func, *args, **kwargs):
+"""When notify is closed as a result of a dismiss.
+
+.. versionadded:: 1.17
+
+"""
+self._callback_add("dismissed", func, args, kwargs)
+
+def callback_dismissed_del(self, func):
+self._callback_del("dismissed", func)
+
 
 property orient:
 def __get__(self):
diff --git a/efl/elementary/notify_cdef.pxi b/efl/elementary/notify_cdef.pxi
index acc31ec..635a175 100644
--- a/efl/elementary/notify_cdef.pxi
+++ b/efl/elementary/notify_cdef.pxi
@@ -26,4 +26,4 @@ cdef extern from "Elementary.h":
 Eina_Boolelm_notify_allow_events_get(const Evas_Object 
*obj)
 void elm_notify_align_set(Evas_Object *obj, double 
horizontal, double vertical)
 void elm_notify_align_get(const Evas_Object *obj, 
double *horizontal, double *vertical)
-
+void elm_notify_dismiss(const Evas_Object *obj)

-- 




[EGIT] [bindings/python/python-efl] master 01/01: New 1.17 API: elm.Configuration.profile_* family functions

2016-01-23 Thread Dave Andreoli
davemds pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=24318c8d3351d816827a0ad1e14fcb8c64484a2a

commit 24318c8d3351d816827a0ad1e14fcb8c64484a2a
Author: Dave Andreoli 
Date:   Sat Jan 23 15:56:05 2016 +0100

New 1.17 API: elm.Configuration.profile_* family functions
---
 efl/elementary/configuration.pxi  | 99 +--
 efl/elementary/configuration_cdef.pxi |  5 ++
 2 files changed, 99 insertions(+), 5 deletions(-)

diff --git a/efl/elementary/configuration.pxi b/efl/elementary/configuration.pxi
index aac0f56..421e148 100644
--- a/efl/elementary/configuration.pxi
+++ b/efl/elementary/configuration.pxi
@@ -92,7 +92,7 @@ cdef class Configuration(object):
 property profile_list:
 """Get Elementary's list of available profiles.
 
-:type: tuple of strings
+:type: tuple of strings (**readonly**)
 
 """
 def __get__(self):
@@ -101,6 +101,99 @@ cdef class Configuration(object):
 elm_config_profile_list_free(lst)
 return ret
 
+property profile_list_full:
+"""Get Elementary's list of available profiles, including hidden ones.
+
+This gets a full list of profiles even with hidden names that should
+not be user-visible.
+
+:type: tuple of strings (**readonly**)
+
+.. versionadded:: 1.17
+
+"""
+def __get__(self):
+cdef Eina_List *lst = elm_config_profile_list_full_get()
+ret = tuple(eina_list_strings_to_python_list(lst))
+elm_config_profile_list_free(lst)
+return ret
+
+def profile_exists(self, profile):
+"""Check if a profile of the given name exists.
+
+:param str profile: Name of the pofile to search
+:return: ``True`` if the profile exists, or ``False`` if not
+:rtype: bool
+
+.. versionadded:: 1.17
+
+"""
+if isinstance(profile, unicode): profile = 
PyUnicode_AsUTF8String(profile)
+return bool(elm_config_profile_exists(
+profile if profile is not None else 
NULL))
+
+def profile_derived_add(self, profile, derive_options):
+"""Add a new profile of the given name to be derived from the current 
profile
+
+This creates a new profile of name ``profile`` that will be derived 
from
+the currently used profile using the modification commands encoded in
+the ``derive_options`` string.
+
+At this point it is not expected that anyone would generally use this
+API except if you are a destktop environment and so the user base of
+this API will be enlightenment itself.
+
+:param str profile: The new profile's name
+:param str derive_options: Derive options detailing how to modify
+
+.. versionadded:: 1.17
+
+"""
+if isinstance(profile, unicode): profile = 
PyUnicode_AsUTF8String(profile)
+if isinstance(derive_options, unicode): derive_options = 
PyUnicode_AsUTF8String(derive_options)
+
+elm_config_profile_derived_add(
+profile if profile is not None else NULL,
+derive_options if derive_options is not None else 
NULL)
+
+def profile_derived_del(self, profile):
+"""Deletes a profile that is derived from the current one
+
+This deletes a derived profile added by :func:`profile_derived_add`.
+This will delete the profile of the given name ``profile`` that is
+derived from the current profile.
+
+At this point it is not expected that anyone would generally use this
+API except if you are a destktop environment and so the user base of
+this API will be enlightenment itself.
+
+:param str profile: The profile's name that is to be deleted
+
+.. versionadded:: 1.17
+
+"""
+if isinstance(profile, unicode): profile = 
PyUnicode_AsUTF8String(profile)
+
+elm_config_profile_derived_del(
+profile if profile is not None else NULL)
+
+def profile_save(self, profile):
+"""Take the current config and write it out to the named profile.
+
+This will take the current in-memory config and write it out to the
+named profile specified by ``profile``. This will not change profile
+for the application or make other processes switch profile.
+
+:param str profile: The profile's name
+
+.. versionadded:: 1.17
+
+"""
+if isinstance(profile, unicode): profile = 
PyUnicode_AsUTF8String(profile)
+
+elm_config_profile_save(
+profile if profile is not None else NULL)
+
 property scroll_bounce_enabled:
 """Whether scrollers should bounce when they reach their
 viewport's edge during a scroll.
@@ -190,7 +283,6 @@ cdef class Configuration(object):
 def __set__(self, int threshold):
 

[EGIT] [bindings/python/python-efl] master 01/01: just a bit of indentation

2016-01-23 Thread Dave Andreoli
davemds pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=0ecf04eba9e8f825486fad1daf5d36b5b8867181

commit 0ecf04eba9e8f825486fad1daf5d36b5b8867181
Author: Dave Andreoli 
Date:   Sat Jan 23 18:44:06 2016 +0100

just a bit of indentation
---
 include/efl.evas.pxd | 399 ++-
 1 file changed, 200 insertions(+), 199 deletions(-)

diff --git a/include/efl.evas.pxd b/include/efl.evas.pxd
index 96228cc..1d78d72 100644
--- a/include/efl.evas.pxd
+++ b/include/efl.evas.pxd
@@ -600,58 +600,58 @@ cdef extern from "Evas.h":
 # Canvas
 #
 Evas *evas_new()
-void evas_free(Evas *e)
+void  evas_free(Evas *e)
+
 const Eo_Class *evas_class_get()
 
-int evas_render_method_lookup(const char *name)
+intevas_render_method_lookup(const char *name)
 Eina_List *evas_render_method_list()
-void evas_render_method_list_free(Eina_List *list)
-
-void evas_output_method_set(Evas *e, int render_method)
-int evas_output_method_get(Evas *e)
+void   evas_render_method_list_free(Eina_List *list)
+void   evas_output_method_set(Evas *e, int render_method)
+intevas_output_method_get(Evas *e)
 
 void *evas_engine_info_get(Evas *e)
-int evas_engine_info_set(Evas *e, void *info)
+int   evas_engine_info_set(Evas *e, void *info)
 
-void evas_output_size_set(Evas *e, int w, int h)
-void evas_output_size_get(const Evas *e, int *w, int *h)
-void evas_output_viewport_set(Evas *e, Evas_Coord x, Evas_Coord y, 
Evas_Coord w, Evas_Coord h)
-void evas_output_viewport_get(const Evas *e, Evas_Coord *x, Evas_Coord *y, 
Evas_Coord *w, Evas_Coord *h)
+void   evas_output_size_set(Evas *e, int w, int h)
+void   evas_output_size_get(const Evas *e, int *w, int *h)
+void   evas_output_viewport_set(Evas *e, Evas_Coord x, Evas_Coord y, 
Evas_Coord w, Evas_Coord h)
+void   evas_output_viewport_get(const Evas *e, Evas_Coord *x, 
Evas_Coord *y, Evas_Coord *w, Evas_Coord *h)
 Evas_Coord evas_coord_screen_x_to_world(const Evas *e, int x)
 Evas_Coord evas_coord_screen_y_to_world(const Evas *e, int y)
-int evas_coord_world_x_to_screen(const Evas *e, Evas_Coord x)
-int evas_coord_world_y_to_screen(const Evas *e, Evas_Coord y)
+intevas_coord_world_x_to_screen(const Evas *e, Evas_Coord x)
+intevas_coord_world_y_to_screen(const Evas *e, Evas_Coord y)
 
-void evas_pointer_output_xy_get(const Evas *e, int *x, int *y)
-void evas_pointer_canvas_xy_get(const Evas *e, Evas_Coord *x, Evas_Coord 
*y)
-int evas_pointer_button_down_mask_get(const Evas *e)
-Eina_Bool evas_pointer_inside_get(const Evas *e)
+void   evas_pointer_output_xy_get(const Evas *e, int *x, int *y)
+void   evas_pointer_canvas_xy_get(const Evas *e, Evas_Coord *x, 
Evas_Coord *y)
+intevas_pointer_button_down_mask_get(const Evas *e)
+Eina_Bool  evas_pointer_inside_get(const Evas *e)
 
 Evas_Object *evas_object_top_at_xy_get(const Evas *e, Evas_Coord x, 
Evas_Coord y, Eina_Bool include_pass_events_objects, Eina_Bool 
include_hidden_objects)
 Evas_Object *evas_object_top_at_pointer_get(const Evas *e)
 Evas_Object *evas_object_top_in_rectangle_get(const Evas *e, Evas_Coord x, 
Evas_Coord y, Evas_Coord w, Evas_Coord h, Eina_Bool 
include_pass_events_objects, Eina_Bool include_hidden_objects)
 
-Eina_List *evas_objects_at_xy_get(const Evas *e, Evas_Coord x, Evas_Coord 
y, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects)
-Eina_List *evas_objects_in_rectangle_get(const Evas *e, Evas_Coord x, 
Evas_Coord y, Evas_Coord w, Evas_Coord h, Eina_Bool 
include_pass_events_objects, Eina_Bool include_hidden_objects)
+Eina_List   *evas_objects_at_xy_get(const Evas *e, Evas_Coord x, 
Evas_Coord y, Eina_Bool include_pass_events_objects, Eina_Bool 
include_hidden_objects)
+Eina_List   *evas_objects_in_rectangle_get(const Evas *e, Evas_Coord x, 
Evas_Coord y, Evas_Coord w, Evas_Coord h, Eina_Bool 
include_pass_events_objects, Eina_Bool include_hidden_objects)
 
-void evas_damage_rectangle_add(Evas *e, int x, int y, int w, int h)
-void evas_obscured_rectangle_add(Evas *e, int x, int y, int w, int h)
-void evas_obscured_clear(Evas *e)
+void   evas_damage_rectangle_add(Evas *e, int x, int y, int w, int h)
+void   evas_obscured_rectangle_add(Evas *e, int x, int y, int w, int h)
+void   evas_obscured_clear(Evas *e)
 Eina_List *evas_render_updates(Evas *e)
-void evas_render_updates_free(Eina_List *updates)
-void evas_render(Evas *e)
-void evas_norender(Evas *e)
-void *evas_data_attach_get(const Evas *e)
-void evas_data_attach_set(Evas *e, void *data)
+void   evas_render_updates_free(Eina_List *updates)
+void   evas_render(Evas *e)
+void   evas_norender(Evas 

[EGIT] [bindings/python/python-efl] master 01/01: fix the url for the remote image test

2016-01-23 Thread Dave Andreoli
davemds pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=625500bffcd2076d7ffc6a88d1c8b4be1eddaa2e

commit 625500bffcd2076d7ffc6a88d1c8b4be1eddaa2e
Author: Dave Andreoli 
Date:   Sat Jan 23 19:28:41 2016 +0100

fix the url for the remote image test
---
 examples/elementary/test_image.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/examples/elementary/test_image.py 
b/examples/elementary/test_image.py
index afdcce8..08bdabd 100644
--- a/examples/elementary/test_image.py
+++ b/examples/elementary/test_image.py
@@ -33,7 +33,7 @@ orients = [
 ("Flip Tranverse", EVAS_IMAGE_FLIP_TRANSVERSE),
 ]
 
-remote_url = 
"http://31.media.tumblr.com/29f1ecd4f98aaff73fb21f479b450d4c/tumblr_mqsxdciQmB1rrju89o1_1280.jpg;
+remote_url = 
"http://41.media.tumblr.com/29f1ecd4f98aaff73fb21f479b450d4c/tumblr_mqsxdciQmB1rrju89o1_1280.jpg;
 
 
 def _cb_im_download_start(im, pb):

-- 




[EGIT] [bindings/python/python-efl] master 01/01: New 1.17 API: evas.Object.paragraph_direction

2016-01-23 Thread Dave Andreoli
davemds pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=11d3007f028d9eae4e1832d94b96ccc1f63378e5

commit 11d3007f028d9eae4e1832d94b96ccc1f63378e5
Author: Dave Andreoli 
Date:   Sat Jan 23 18:34:13 2016 +0100

New 1.17 API: evas.Object.paragraph_direction
---
 efl/evas/efl.evas.pyx|  6 ++
 efl/evas/efl.evas_object.pxi | 18 ++
 include/efl.evas.pxd |  4 
 3 files changed, 28 insertions(+)

diff --git a/efl/evas/efl.evas.pyx b/efl/evas/efl.evas.pyx
index 3be00c0..cb1fa52 100644
--- a/efl/evas/efl.evas.pyx
+++ b/efl/evas/efl.evas.pyx
@@ -111,6 +111,12 @@ Evas_BiDi_Direction
 
 Right to left direction.
 
+.. data:: EVAS_BIDI_DIRECTION_INHERIT
+
+Inherit direction from parent object.
+
+.. versionadded:: 1.17
+
 
 .. _Evas_Callback_Type:
 
diff --git a/efl/evas/efl.evas_object.pxi b/efl/evas/efl.evas_object.pxi
index b981854..c203e89 100644
--- a/efl/evas/efl.evas_object.pxi
+++ b/efl/evas/efl.evas_object.pxi
@@ -684,6 +684,24 @@ cdef class Object(Eo):
 def is_frame_object_get(self):
 return bool(evas_object_is_frame_object_get(self.obj))
 
+property paragraph_direction:
+"""This handles text paragraph direction of the object.
+
+Even if the object is not textblock or text, its smart child objects
+can inherit the paragraph direction from the object.
+
+The default paragraph direction is EVAS_BIDI_DIRECTION_INHERIT.
+
+:type: :ref:`Evas_BiDi_Direction`
+
+.. versionadded:: 1.17
+
+"""
+def __set__(self, Evas_BiDi_Direction direction):
+evas_object_paragraph_direction_set(self.obj, direction)
+
+def __get__(self):
+return evas_object_paragraph_direction_get(self.obj)
 
 ##
  Stacking 
diff --git a/include/efl.evas.pxd b/include/efl.evas.pxd
index d6f7350..96228cc 100644
--- a/include/efl.evas.pxd
+++ b/include/efl.evas.pxd
@@ -61,6 +61,7 @@ cdef extern from "Evas.h":
 EVAS_BIDI_DIRECTION_NEUTRAL
 EVAS_BIDI_DIRECTION_LTR
 EVAS_BIDI_DIRECTION_RTL
+EVAS_BIDI_DIRECTION_INHERIT
 ctypedef enum Evas_BiDi_Direction:
 pass
 
@@ -803,6 +804,9 @@ cdef extern from "Evas.h":
 void evas_object_is_frame_object_set(Evas_Object *obj, Eina_Bool 
is_frame)
 Eina_Boolevas_object_is_frame_object_get(Evas_Object *obj)
 
+void evas_object_paragraph_direction_set(Evas_Object *obj, 
Evas_BiDi_Direction direction)
+Evas_BiDi_Direction  evas_object_paragraph_direction_get(Evas_Object *obj)
+
 
 
 # Smart Object

-- 




[EGIT] [apps/ephoto] master 02/02: Merge branch 'master' of git+ssh://git.enlightenment.org/apps/ephoto

2016-01-23 Thread Stephen Houston
okra pushed a commit to branch master.

http://git.enlightenment.org/apps/ephoto.git/commit/?id=6c38b82f950cadb60d548caa51167784bb53c1a0

commit 6c38b82f950cadb60d548caa51167784bb53c1a0
Merge: 71e1ef6 aa2c756
Author: Stephen Houston 
Date:   Sat Jan 23 12:13:11 2016 -0600

Merge branch 'master' of git+ssh://git.enlightenment.org/apps/ephoto

 configure.ac| 2 +-
 src/bin/Makefile.am | 2 +-
 src/bin/ephoto.c| 2 +-
 src/bin/ephoto.h| 7 ---
 src/bin/ephoto_config.c | 8 
 src/bin/ephoto_main.c   | 5 +++--
 6 files changed, 14 insertions(+), 12 deletions(-)

-- 




[EGIT] [apps/ephoto] master 01/02: Ephoto: Add French translation from Vincent Torri (vtorri)

2016-01-23 Thread Stephen Houston
okra pushed a commit to branch master.

http://git.enlightenment.org/apps/ephoto.git/commit/?id=71e1ef6aa645ab03e099b14a9611cdb9d46e750d

commit 71e1ef6aa645ab03e099b14a9611cdb9d46e750d
Author: Stephen Houston 
Date:   Sat Jan 23 12:12:21 2016 -0600

Ephoto: Add French translation from Vincent Torri (vtorri)
---
 po/fr.po | 754 +++
 1 file changed, 754 insertions(+)

diff --git a/po/fr.po b/po/fr.po
new file mode 100644
index 000..a4f9963
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,754 @@
+# French translations for ephoto package
+# Traductions françaises du paquet ephoto.
+# Copyright (C) 2016 Stephen "okra" Houston
+# This file is distributed under the same license as the ephoto package.
+# Vincent Torri , 2016.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ephoto 0.1.1\n"
+"Report-Msgid-Bugs-To: enlightenment-de...@lists.sourceforge.net\n"
+"POT-Creation-Date: 2016-01-23 07:53+0100\n"
+"PO-Revision-Date: 2016-01-23 08:00+0100\n"
+"Last-Translator: Vincent Torri \n"
+"Language-Team: French\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: src/bin/ephoto_bcg.c:338 src/bin/ephoto_single_browser.c:2225
+#: src/bin/ephoto_single_browser.c:2586
+msgid "Brightness/Contrast/Gamma"
+msgstr "Luminosité/Contraste/Gamma"
+
+#: src/bin/ephoto_bcg.c:356
+msgid "Brightness"
+msgstr "Luminosité"
+
+#: src/bin/ephoto_bcg.c:370
+msgid "Contrast"
+msgstr "Contraste"
+
+#: src/bin/ephoto_bcg.c:384
+msgid "Gamma"
+msgstr "Gamma"
+
+#: src/bin/ephoto_bcg.c:403 src/bin/ephoto_color.c:387
+#: src/bin/ephoto_cropper.c:722 src/bin/ephoto_hsv.c:410
+#: src/bin/ephoto_single_browser.c:2193 src/bin/ephoto_single_browser.c:2554
+msgid "Reset"
+msgstr "Restaurer"
+
+#: src/bin/ephoto_bcg.c:417 src/bin/ephoto_color.c:401
+#: src/bin/ephoto_cropper.c:736 src/bin/ephoto_hsv.c:424
+msgid "Apply"
+msgstr "Appliquer"
+
+#: src/bin/ephoto_bcg.c:431 src/bin/ephoto_color.c:415
+#: src/bin/ephoto_cropper.c:750 src/bin/ephoto_hsv.c:438
+#: src/bin/ephoto_thumb_browser.c:1188 src/bin/ephoto_thumb_browser.c:1658
+#: src/bin/ephoto_thumb_browser.c:1783
+msgid "Cancel"
+msgstr "Annuler"
+
+#: src/bin/ephoto_config.c:98 src/bin/ephoto_config.c:175
+msgid "Root Directory"
+msgstr "Répertoire racine"
+
+#: src/bin/ephoto_config.c:100 src/bin/ephoto_config.c:177
+msgid "Home Directory"
+msgstr "Répertoire personnel"
+
+#: src/bin/ephoto_config.c:102 src/bin/ephoto_config.c:179
+msgid "Last Open Directory"
+msgstr "Dernier répertoire ouvert"
+
+#: src/bin/ephoto_config.c:128 src/bin/ephoto_config.c:181
+#: src/bin/ephoto_config.c:195
+msgid "Custom Directory"
+msgstr "Répertoire personnalisé"
+
+#: src/bin/ephoto_config.c:150
+msgid "Hide Toolbar On Fullscreen"
+msgstr "Cacher la barre d'outil en plein écran"
+
+#: src/bin/ephoto_config.c:158
+msgid "Prompt Before Changing The Filesystem"
+msgstr "Message avant de changer le système de fichier"
+
+#: src/bin/ephoto_config.c:166
+msgid "Move Files When Dropped"
+msgstr "Déplacer les fichiers après être déposés"
+
+#: src/bin/ephoto_config.c:183
+msgid "Directory To Open Ephoto In"
+msgstr "Répertoire dans lequel ouvrir Ephoto"
+
+#: src/bin/ephoto_config.c:225
+msgid "second"
+msgid_plural "seconds"
+msgstr[0] "seconde"
+msgstr[1] "secondes"
+
+#: src/bin/ephoto_config.c:249
+msgid "Show Each Slide For"
+msgstr "Afficher chaque diapositive pour"
+
+#: src/bin/ephoto_config.c:258
+msgid "seconds"
+msgstr "secondes"
+
+#: src/bin/ephoto_config.c:270
+msgid "Slide Transition"
+msgstr "Trasition des diapositives"
+
+#: src/bin/ephoto_config.c:331 src/bin/ephoto_single_browser.c:1420
+msgid "Open Link In Browser"
+msgstr "Ouvrir le lien dans le navigateur"
+
+#: src/bin/ephoto_config.c:339
+msgid "Copy Link"
+msgstr "Copier le lien"
+
+#: src/bin/ephoto_config.c:369
+msgid ""
+"Ephoto is a comprehensive image viewer based on the EFL.For more "
+"information, please visit the Ephoto project page:http://www.;
+"smhouston.us/ephoto/>http://www.smhouston.us/ephoto/Ephoto "
+"also has a page on the Enlightenment wiki:https://phab.;
+"enlightenment.org/w/projects/ephoto>https://phab.enlightenment.org/w/;
+"projects/ephotoEphoto's source can be found through "
+"Enlightenment's git:http://git.enlightenment.org/apps/ephoto.;
+"git>http://git.enlightenment.org/apps/ephoto.gitAuthors:"
+msgstr ""
+"Ephoto est un lecteur d'image intuitif basé sur les EFL.Pour plus "
+"d'information, veuillez visiter la page de projet de Ephoto :"
+"http://www.smhouston.us/ephoto/>http://www.smhouston.us/ephoto;
+"/Ephoto a aussi une page web sur le wiki d'Enlightenment :"
+"https://phab."enlightenment.org/w/projects/ephoto>"
+"https://phab.enlightenment.org/w/projects/ephotoLe code source "
+"de Ephoto peut être téléchargé à partir du répertoire GIT d'Enlightenment :"