New style enums for edje

This commit is contained in:
Davide Andreoli 2015-01-04 22:02:09 +01:00
parent 419405e456
commit 3ebc6f21e9
5 changed files with 189 additions and 159 deletions

View File

@ -30,106 +30,6 @@ from efl.utils.conversions cimport _ctouni, _touni, \
eina_list_strings_to_python_list
# Edje_Message_Type:
EDJE_MESSAGE_NONE = 0
EDJE_MESSAGE_SIGNAL = 1
EDJE_MESSAGE_STRING = 2
EDJE_MESSAGE_INT = 3
EDJE_MESSAGE_FLOAT = 4
EDJE_MESSAGE_STRING_SET = 5
EDJE_MESSAGE_INT_SET = 6
EDJE_MESSAGE_FLOAT_SET = 7
EDJE_MESSAGE_STRING_INT = 8
EDJE_MESSAGE_STRING_FLOAT = 9
EDJE_MESSAGE_STRING_INT_SET = 10
EDJE_MESSAGE_STRING_FLOAT_SET = 11
# Edje_Aspect_Control:
EDJE_ASPECT_CONTROL_NONE = 0
EDJE_ASPECT_CONTROL_NEITHER = 1
EDJE_ASPECT_CONTROL_HORIZONTAL = 2
EDJE_ASPECT_CONTROL_VERTICAL = 3
EDJE_ASPECT_CONTROL_BOTH = 4
# Edje_Drag_Dir:
EDJE_DRAG_DIR_NONE = 0
EDJE_DRAG_DIR_X = 1
EDJE_DRAG_DIR_Y = 2
EDJE_DRAG_DIR_XY = 3
# Edje_Load_Error:
EDJE_LOAD_ERROR_NONE = 0
EDJE_LOAD_ERROR_GENERIC = 1
EDJE_LOAD_ERROR_DOES_NOT_EXIST = 2
EDJE_LOAD_ERROR_PERMISSION_DENIED = 3
EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED = 4
EDJE_LOAD_ERROR_CORRUPT_FILE = 5
EDJE_LOAD_ERROR_UNKNOWN_FORMAT = 6
EDJE_LOAD_ERROR_INCOMPATIBLE_FILE = 7
EDJE_LOAD_ERROR_UNKNOWN_COLLECTION = 8
# Edje_Part_Type:
EDJE_PART_TYPE_NONE = 0
EDJE_PART_TYPE_RECTANGLE = 1
EDJE_PART_TYPE_TEXT = 2
EDJE_PART_TYPE_IMAGE = 3
EDJE_PART_TYPE_SWALLOW = 4
EDJE_PART_TYPE_TEXTBLOCK = 5
EDJE_PART_TYPE_GRADIENT = 6
EDJE_PART_TYPE_GROUP = 7
EDJE_PART_TYPE_BOX = 8
EDJE_PART_TYPE_TABLE = 9
EDJE_PART_TYPE_EXTERNAL = 10
EDJE_PART_TYPE_LAST = 11
# Edje_Text_Effect:
EDJE_TEXT_EFFECT_NONE = 0
EDJE_TEXT_EFFECT_PLAIN = 1
EDJE_TEXT_EFFECT_OUTLINE = 2
EDJE_TEXT_EFFECT_SOFT_OUTLINE = 3
EDJE_TEXT_EFFECT_SHADOW = 4
EDJE_TEXT_EFFECT_SOFT_SHADOW = 5
EDJE_TEXT_EFFECT_OUTLINE_SHADOW = 6
EDJE_TEXT_EFFECT_OUTLINE_SOFT_SHADOW = 7
EDJE_TEXT_EFFECT_FAR_SHADOW = 8
EDJE_TEXT_EFFECT_FAR_SOFT_SHADOW = 9
EDJE_TEXT_EFFECT_GLOW = 10
EDJE_TEXT_EFFECT_LAST = 11
# Edje_Action_Type:
EDJE_ACTION_TYPE_NONE = 0
EDJE_ACTION_TYPE_STATE_SET = 1
EDJE_ACTION_TYPE_ACTION_STOP = 2
EDJE_ACTION_TYPE_SIGNAL_EMIT = 3
EDJE_ACTION_TYPE_DRAG_VAL_SET = 4
EDJE_ACTION_TYPE_DRAG_VAL_STEP = 5
EDJE_ACTION_TYPE_DRAG_VAL_PAGE = 6
EDJE_ACTION_TYPE_SCRIPT = 7
EDJE_ACTION_TYPE_FOCUS_SET = 8
EDJE_ACTION_TYPE_LUA_SCRIPT = 9
EDJE_ACTION_TYPE_LAST = 10
# Edje_Tween_Mode:
EDJE_TWEEN_MODE_NONE = 0
EDJE_TWEEN_MODE_LINEAR = 1
EDJE_TWEEN_MODE_SINUSOIDAL = 2
EDJE_TWEEN_MODE_ACCELERATE = 3
EDJE_TWEEN_MODE_DECELERATE = 4
EDJE_TWEEN_MODE_LAST = 5
# Edje_External_Param_Type:
EDJE_EXTERNAL_PARAM_TYPE_INT = 0
EDJE_EXTERNAL_PARAM_TYPE_DOUBLE = 1
EDJE_EXTERNAL_PARAM_TYPE_STRING = 2
EDJE_EXTERNAL_PARAM_TYPE_BOOL = 3
EDJE_EXTERNAL_PARAM_TYPE_CHOICE = 4
EDJE_EXTERNAL_PARAM_TYPE_MAX = 5
# Edje_Input_Hints
EDJE_INPUT_HINT_NONE = 0
EDJE_INPUT_HINT_AUTO_COMPLETE = 1
EDJE_INPUT_HINT_SENSITIVE_DATA = 2
def init():
cdef int r = edje_init()

View File

@ -60,15 +60,15 @@ cdef class ExternalParam:
def __get__(self):
if self.obj == NULL:
raise ValueError("Object uninitialized")
if self.obj.type == EDJE_EXTERNAL_PARAM_TYPE_INT:
if self.obj.type == <int>EDJE_EXTERNAL_PARAM_TYPE_INT:
return self.obj.i
elif self.obj.type == EDJE_EXTERNAL_PARAM_TYPE_DOUBLE:
elif self.obj.type == <int>EDJE_EXTERNAL_PARAM_TYPE_DOUBLE:
return self.obj.d
elif self.obj.type == EDJE_EXTERNAL_PARAM_TYPE_STRING or \
self.obj.type == EDJE_EXTERNAL_PARAM_TYPE_CHOICE:
elif self.obj.type == <int>EDJE_EXTERNAL_PARAM_TYPE_STRING or \
self.obj.type == <int>EDJE_EXTERNAL_PARAM_TYPE_CHOICE:
if self.obj.s != NULL:
return self.obj.s
elif self.obj.type == EDJE_EXTERNAL_PARAM_TYPE_BOOL:
elif self.obj.type == <int>EDJE_EXTERNAL_PARAM_TYPE_BOOL:
return bool(self.obj.i)
@ -313,15 +313,15 @@ cdef class ExternalParamInfoChoice(ExternalParamInfo):
cdef ExternalParamInfo ExternalParamInfo_from_ptr(type, Edje_External_Param_Info *ptr):
cdef ExternalParamInfo p
if ptr.type == EDJE_EXTERNAL_PARAM_TYPE_INT:
if ptr.type == <int>EDJE_EXTERNAL_PARAM_TYPE_INT:
p = ExternalParamInfoInt()
elif ptr.type == EDJE_EXTERNAL_PARAM_TYPE_DOUBLE:
elif ptr.type == <int>EDJE_EXTERNAL_PARAM_TYPE_DOUBLE:
p = ExternalParamInfoDouble()
elif ptr.type == EDJE_EXTERNAL_PARAM_TYPE_STRING:
elif ptr.type == <int>EDJE_EXTERNAL_PARAM_TYPE_STRING:
p = ExternalParamInfoString()
elif ptr.type == EDJE_EXTERNAL_PARAM_TYPE_BOOL:
elif ptr.type == <int>EDJE_EXTERNAL_PARAM_TYPE_BOOL:
p = ExternalParamInfoBool()
elif ptr.type == EDJE_EXTERNAL_PARAM_TYPE_CHOICE:
elif ptr.type == <int>EDJE_EXTERNAL_PARAM_TYPE_CHOICE:
p = ExternalParamInfoChoice()
else:
msg = "Don't know how to convert parameter %s of type %s" % \

View File

@ -345,29 +345,29 @@ cdef Message MessageStringFloatSet_from_ptr(void *msg):
cdef Message Message_from_type(Edje_Message_Type type, int id, void *msg):
cdef Message m
if type == EDJE_MESSAGE_NONE:
if type == <int>EDJE_MESSAGE_NONE:
return None
elif type == EDJE_MESSAGE_SIGNAL:
elif type == <int>EDJE_MESSAGE_SIGNAL:
m = MessageSignal()
elif type == EDJE_MESSAGE_STRING:
elif type == <int>EDJE_MESSAGE_STRING:
m = MessageString_from_ptr(msg)
elif type == EDJE_MESSAGE_INT:
elif type == <int>EDJE_MESSAGE_INT:
m = MessageInt_from_ptr(msg)
elif type == EDJE_MESSAGE_FLOAT:
elif type == <int>EDJE_MESSAGE_FLOAT:
m = MessageFloat_from_ptr(msg)
elif type == EDJE_MESSAGE_STRING_SET:
elif type == <int>EDJE_MESSAGE_STRING_SET:
m = MessageStringSet_from_ptr(msg)
elif type == EDJE_MESSAGE_INT_SET:
elif type == <int>EDJE_MESSAGE_INT_SET:
m = MessageIntSet_from_ptr(msg)
elif type == EDJE_MESSAGE_FLOAT_SET:
elif type == <int>EDJE_MESSAGE_FLOAT_SET:
m = MessageFloatSet_from_ptr(msg)
elif type == EDJE_MESSAGE_STRING_INT:
elif type == <int>EDJE_MESSAGE_STRING_INT:
m = MessageStringInt_from_ptr(msg)
elif type == EDJE_MESSAGE_STRING_FLOAT:
elif type == <int>EDJE_MESSAGE_STRING_FLOAT:
m = MessageStringFloat_from_ptr(msg)
elif type == EDJE_MESSAGE_STRING_INT_SET :
elif type == <int>EDJE_MESSAGE_STRING_INT_SET :
m = MessageStringIntSet_from_ptr(msg)
elif type == EDJE_MESSAGE_STRING_FLOAT_SET :
elif type == <int>EDJE_MESSAGE_STRING_FLOAT_SET :
m = MessageStringFloatSet_from_ptr(msg)
m._type = type

View File

@ -810,19 +810,19 @@ cdef class Edje(Object):
p.name = c_param
p.type = edje_object_part_external_param_type_get(self.obj, c_part, c_param)
if p.type >= EDJE_EXTERNAL_PARAM_TYPE_MAX:
if p.type >= <int>EDJE_EXTERNAL_PARAM_TYPE_MAX:
return None
if not edje_object_part_external_param_get(self.obj, c_part, &p):
return None
if p.type == EDJE_EXTERNAL_PARAM_TYPE_BOOL:
if p.type == <int>EDJE_EXTERNAL_PARAM_TYPE_BOOL:
return bool(p.i)
elif p.type == EDJE_EXTERNAL_PARAM_TYPE_INT:
elif p.type == <int>EDJE_EXTERNAL_PARAM_TYPE_INT:
return p.i
elif p.type == EDJE_EXTERNAL_PARAM_TYPE_DOUBLE:
elif p.type == <int>EDJE_EXTERNAL_PARAM_TYPE_DOUBLE:
return p.d
elif p.type == EDJE_EXTERNAL_PARAM_TYPE_STRING or \
p.type == EDJE_EXTERNAL_PARAM_TYPE_CHOICE:
elif p.type == <int>EDJE_EXTERNAL_PARAM_TYPE_STRING or \
p.type == <int>EDJE_EXTERNAL_PARAM_TYPE_CHOICE:
return _ctouni(p.s)
def part_box_append(self, part, Object obj):

View File

@ -21,41 +21,171 @@ from efl.evas cimport Object, Evas_Object, Evas, Evas_Font_Size, Evas_Coord
cdef extern from "Edje.h":
####################################################################
# Enumerations
# Define (these are not accessible from python atm)
#
ctypedef enum Edje_Message_Type:
pass
ctypedef enum Edje_Aspect_Control:
pass
ctypedef enum Edje_Drag_Dir:
pass
ctypedef enum Edje_Load_Error:
pass
ctypedef enum Edje_Part_Type:
pass
ctypedef enum Edje_Text_Effect:
pass
ctypedef enum Edje_Action_Type:
pass
ctypedef enum Edje_Tween_Mode:
pass
ctypedef enum Edje_External_Param_Type:
pass
ctypedef enum Edje_Input_Hints:
pass
cdef int EDJE_EXTERNAL_INT_UNSET
cdef double EDJE_EXTERNAL_DOUBLE_UNSET
cdef unsigned int EDJE_EXTERNAL_TYPE_ABI_VERSION
####################################################################
# Enums
#
cpdef enum Edje_Message_Type:
EDJE_MESSAGE_NONE
EDJE_MESSAGE_SIGNAL
EDJE_MESSAGE_STRING
EDJE_MESSAGE_INT
EDJE_MESSAGE_FLOAT
EDJE_MESSAGE_STRING_SET
EDJE_MESSAGE_INT_SET
EDJE_MESSAGE_FLOAT_SET
EDJE_MESSAGE_STRING_INT
EDJE_MESSAGE_STRING_FLOAT
EDJE_MESSAGE_STRING_INT_SET
EDJE_MESSAGE_STRING_FLOAT_SET
ctypedef enum Edje_Message_Type:
pass
cpdef enum Edje_Aspect_Control:
EDJE_ASPECT_CONTROL_NONE
EDJE_ASPECT_CONTROL_NEITHER
EDJE_ASPECT_CONTROL_HORIZONTAL
EDJE_ASPECT_CONTROL_VERTICAL
EDJE_ASPECT_CONTROL_BOTH
ctypedef enum Edje_Aspect_Control:
pass
cpdef enum Edje_Drag_Dir:
EDJE_DRAG_DIR_NONE
EDJE_DRAG_DIR_X
EDJE_DRAG_DIR_Y
EDJE_DRAG_DIR_XY
ctypedef enum Edje_Drag_Dir:
pass
cpdef enum Edje_Load_Error:
EDJE_LOAD_ERROR_NONE
EDJE_LOAD_ERROR_GENERIC
EDJE_LOAD_ERROR_DOES_NOT_EXIST
EDJE_LOAD_ERROR_PERMISSION_DENIED
EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED
EDJE_LOAD_ERROR_CORRUPT_FILE
EDJE_LOAD_ERROR_UNKNOWN_FORMAT
EDJE_LOAD_ERROR_INCOMPATIBLE_FILE
EDJE_LOAD_ERROR_UNKNOWN_COLLECTION
EDJE_LOAD_ERROR_RECURSIVE_REFERENCE
ctypedef enum Edje_Load_Error:
pass
cpdef enum Edje_Part_Type:
EDJE_PART_TYPE_NONE
EDJE_PART_TYPE_RECTANGLE
EDJE_PART_TYPE_TEXT
EDJE_PART_TYPE_IMAGE
EDJE_PART_TYPE_SWALLOW
EDJE_PART_TYPE_TEXTBLOCK
EDJE_PART_TYPE_GRADIENT
EDJE_PART_TYPE_GROUP
EDJE_PART_TYPE_BOX
EDJE_PART_TYPE_TABLE
EDJE_PART_TYPE_EXTERNAL
EDJE_PART_TYPE_SPACER
EDJE_PART_TYPE_MESH_NODE
EDJE_PART_TYPE_LIGHT
EDJE_PART_TYPE_CAMERA
EDJE_PART_TYPE_LAST
ctypedef enum Edje_Part_Type:
pass
cpdef enum Edje_Text_Effect:
EDJE_TEXT_EFFECT_NONE
EDJE_TEXT_EFFECT_PLAIN
EDJE_TEXT_EFFECT_OUTLINE
EDJE_TEXT_EFFECT_SOFT_OUTLINE
EDJE_TEXT_EFFECT_SHADOW
EDJE_TEXT_EFFECT_SOFT_SHADOW
EDJE_TEXT_EFFECT_OUTLINE_SHADOW
EDJE_TEXT_EFFECT_OUTLINE_SOFT_SHADOW
EDJE_TEXT_EFFECT_FAR_SHADOW
EDJE_TEXT_EFFECT_FAR_SOFT_SHADOW
EDJE_TEXT_EFFECT_GLOW
EDJE_TEXT_EFFECT_LAST
EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM_RIGHT
EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM
EDJE_TEXT_EFFECT_SHADOW_DIRECTION_BOTTOM_LEFT
EDJE_TEXT_EFFECT_SHADOW_DIRECTION_LEFT
EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP_LEFT
EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP
EDJE_TEXT_EFFECT_SHADOW_DIRECTION_TOP_RIGHT
EDJE_TEXT_EFFECT_SHADOW_DIRECTION_RIGHT
ctypedef enum Edje_Text_Effect:
pass
cpdef enum Edje_Action_Type:
EDJE_ACTION_TYPE_NONE
EDJE_ACTION_TYPE_STATE_SET
EDJE_ACTION_TYPE_ACTION_STOP
EDJE_ACTION_TYPE_SIGNAL_EMIT
EDJE_ACTION_TYPE_DRAG_VAL_SET
EDJE_ACTION_TYPE_DRAG_VAL_STEP
EDJE_ACTION_TYPE_DRAG_VAL_PAGE
EDJE_ACTION_TYPE_SCRIPT
EDJE_ACTION_TYPE_FOCUS_SET
EDJE_ACTION_TYPE_RESERVED00
EDJE_ACTION_TYPE_FOCUS_OBJECT
EDJE_ACTION_TYPE_PARAM_COPY
EDJE_ACTION_TYPE_PARAM_SET
EDJE_ACTION_TYPE_SOUND_SAMPLE
EDJE_ACTION_TYPE_SOUND_TONE
EDJE_ACTION_TYPE_PHYSICS_IMPULSE
EDJE_ACTION_TYPE_PHYSICS_TORQUE_IMPULSE
EDJE_ACTION_TYPE_PHYSICS_FORCE
EDJE_ACTION_TYPE_PHYSICS_TORQUE
EDJE_ACTION_TYPE_PHYSICS_FORCES_CLEAR
EDJE_ACTION_TYPE_PHYSICS_VEL_SET
EDJE_ACTION_TYPE_PHYSICS_ANG_VEL_SET
EDJE_ACTION_TYPE_PHYSICS_STOP
EDJE_ACTION_TYPE_PHYSICS_ROT_SET
EDJE_ACTION_TYPE_VIBRATION_SAMPLE
EDJE_ACTION_TYPE_LAST
ctypedef enum Edje_Action_Type:
pass
cpdef enum Edje_Tween_Mode:
EDJE_TWEEN_MODE_NONE
EDJE_TWEEN_MODE_LINEAR
EDJE_TWEEN_MODE_SINUSOIDAL
EDJE_TWEEN_MODE_ACCELERATE
EDJE_TWEEN_MODE_DECELERATE
EDJE_TWEEN_MODE_ACCELERATE_FACTOR
EDJE_TWEEN_MODE_DECELERATE_FACTOR
EDJE_TWEEN_MODE_SINUSOIDAL_FACTOR
EDJE_TWEEN_MODE_DIVISOR_INTERP
EDJE_TWEEN_MODE_BOUNCE
EDJE_TWEEN_MODE_SPRING
EDJE_TWEEN_MODE_CUBIC_BEZIER
EDJE_TWEEN_MODE_LAST
EDJE_TWEEN_MODE_MASK
EDJE_TWEEN_MODE_OPT_FROM_CURRENT
ctypedef enum Edje_Tween_Mode:
pass
cpdef enum Edje_External_Param_Type:
EDJE_EXTERNAL_PARAM_TYPE_INT
EDJE_EXTERNAL_PARAM_TYPE_DOUBLE
EDJE_EXTERNAL_PARAM_TYPE_STRING
EDJE_EXTERNAL_PARAM_TYPE_BOOL
EDJE_EXTERNAL_PARAM_TYPE_CHOICE
EDJE_EXTERNAL_PARAM_TYPE_MAX
ctypedef enum Edje_External_Param_Type:
pass
cpdef enum Edje_Input_Hints:
EDJE_INPUT_HINT_NONE
EDJE_INPUT_HINT_AUTO_COMPLETE
EDJE_INPUT_HINT_SENSITIVE_DATA
ctypedef enum Edje_Input_Hints:
pass
####################################################################
# Structures