New 1.17 API: edje size_class family functions

This commit is contained in:
Davide Andreoli 2016-01-21 21:33:23 +01:00
parent 005dd26f73
commit 926c325de8
2 changed files with 155 additions and 6 deletions

View File

@ -149,6 +149,7 @@ def password_show_last_set(int show_last):
def password_show_last_timeout_set(double timeout):
edje_password_show_last_timeout_set(timeout)
def color_class_set(color_class,
int r, int g, int b, int a,
int r2, int g2, int b2, int a2,
@ -159,7 +160,6 @@ def color_class_set(color_class,
<const char *>color_class if color_class is not None else NULL,
r, g, b, a, r2, g2, b2, a2, r3, g3, b3, a3)
def color_class_get(color_class):
cdef int r, g, b, a
cdef int r2, g2, b2, a2
@ -171,14 +171,12 @@ def color_class_get(color_class):
&r, &g, &b, &a, &r2, &g2, &b2, &a2, &r3, &g3, &b3, &a3)
return (r, g, b, a, r2, g2, b2, a2, r3, g3, b3, a3)
def color_class_del(color_class):
if isinstance(color_class, unicode):
color_class = PyUnicode_AsUTF8String(color_class)
edje_color_class_del(
<const char *>color_class if color_class is not None else NULL)
def color_class_list():
cdef:
Eina_List *lst
@ -204,7 +202,6 @@ def text_class_set(text_class, font, int size):
<const char *>font if font is not None else NULL,
size)
def text_class_get(text_class):
""" Get the font and the font size from Edje text class.
@ -233,7 +230,6 @@ def text_class_del(text_class):
edje_text_class_del(
<const char *>text_class if text_class is not None else NULL)
def text_class_list():
cdef:
Eina_List *lst
@ -249,6 +245,91 @@ def text_class_list():
return ret
def size_class_set(size_class, int minw, int minh, int maxw, int maxh):
"""Set the Edje size class.
:param str size_class: The size class name
:param int minw: The min width
:param int minh: The min height
:param int maxw: The max width
:param int maxh: The max height
:return: True on success or False on error
:rtype: bool
.. versionadded:: 1.17
"""
if isinstance(size_class, unicode):
size_class = PyUnicode_AsUTF8String(size_class)
return bool(edje_size_class_set(
<const char *>size_class if size_class is not None else NULL,
minw, minh, maxw, maxh))
def size_class_get(size_class):
"""Get the Edje size class.
:param str size_class: The size class name
:return: (minw, minh, maxw, maxh)
:rtype: 4 int's tuple
.. versionadded:: 1.17
"""
cdef int minw, minh, maxw, maxh, ret
if isinstance(size_class, unicode):
size_class = PyUnicode_AsUTF8String(size_class)
ret = edje_size_class_get(
<const char *>size_class if size_class is not None else NULL,
&minw, &minh, &maxw, &maxh)
if ret == 0:
return None
else:
return (minw, minh, maxw, maxh)
def size_class_del(size_class):
"""Delete the size class.
This function deletes any values at the process level for the specified
size class.
:param str size_class: The size class name
.. versionadded:: 1.17
"""
if isinstance(size_class, unicode):
size_class = PyUnicode_AsUTF8String(size_class)
edje_color_class_del(
<const char *>size_class if size_class is not None else NULL)
def size_class_list():
"""List size classes.
This function lists all size classes known about by the current process.
:return: A list of size class names.
:rtype: list of strings
.. versionadded:: 1.17
"""
cdef:
Eina_List *lst
Eina_List *itr
ret = []
lst = edje_size_class_list()
itr = lst
while itr:
ret.append(_touni(<char*>itr.data))
eina_stringshare_del(<Eina_Stringshare*>itr.data)
itr = itr.next
eina_list_free(lst)
return ret
def message_signal_process():
edje_message_signal_process()

View File

@ -370,8 +370,76 @@ cdef class Edje(Object):
<const char *>text_class if text_class is not None else NULL,
&font, &size)
return (_ctouni(font), size)
def size_class_set(self, size_class, int minw, int minh, int maxw, int maxh):
"""Sets the object size class.
This function sets the min and max values for an object level size
class. This will make all edje parts in the specified object that have
the specified size class update their min and max size with given
values.
:param str size_class: The size class name
:param int minw: The min width
:param int minh: The min height
:param int maxw: The max width
:param int maxh: The max height
:return: True on success or False on error
:rtype: bool
.. versionadded:: 1.17
"""
if isinstance(size_class, unicode):
size_class = PyUnicode_AsUTF8String(size_class)
return bool(edje_object_size_class_set(self.obj,
<const char *>size_class if size_class is not None else NULL,
minw, minh, maxw, maxh))
def size_class_get(self, size_class):
"""Gets the object size class.
This function gets the min and max values for an object level size
class. These values will only be valid until the size class is changed
or the edje object is deleted.
:param str size_class: The size class name
:return: (minw, minh, maxw, maxh)
:rtype: 4 int's tuple
.. versionadded:: 1.17
"""
cdef int minw, minh, maxw, maxh
if isinstance(size_class, unicode):
size_class = PyUnicode_AsUTF8String(size_class)
edje_object_size_class_get(self.obj,
<const char *>size_class if size_class is not None else NULL,
&minw, &minh, &maxw, &maxh)
return (minw, minh, maxw, maxh)
def size_class_del(self, size_class):
"""Delete the object size class.
This function deletes any values at the object level for the specified
object and size class.
Note: Deleting the size class will revert it to the values defined by
edje_size_class_set() or the size class defined in the theme file.
:param str size_class: The size class name
.. versionadded:: 1.17
"""
if isinstance(size_class, unicode):
size_class = PyUnicode_AsUTF8String(size_class)
edje_object_size_class_del(self.obj,
<const char *>size_class if size_class is not None else NULL)
property scale:
"""The scaling factor for a given Edje object.