# 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 . cdef class Message: """Base class to represent Edje messages. :ivar type: message type. :ivar id: message id. """ property type: def __get__(self): return self._type property id: def __get__(self): return self._id cdef class MessageString(Message): """String message. :ivar str: message contents. :ivar val: same as str. """ property str: def __get__(self): if self.obj == NULL: raise ValueError("Object uninitialized") if self.obj.str != NULL: return self.obj.str property val: # copy from 'str', to make api consistent def __get__(self): if self.obj == NULL: raise ValueError("Object uninitialized") if self.obj.str != NULL: return self.obj.str cdef class MessageInt(Message): """Integer message. :ivar val: message contents. """ property val: def __get__(self): if self.obj == NULL: raise ValueError("Object uninitialized") return self.obj.val cdef class MessageFloat(Message): """Float message. :ivar val: message contents. """ property val: def __get__(self): if self.obj == NULL: raise ValueError("Object uninitialized") return self.obj.val cdef class MessageStringSet(Message): """String set message. :ivar val: message contents. """ property val: def __get__(self): cdef int i if self.obj == NULL: raise ValueError("Object uninitialized") lst = [] for i from 0 <= i < self.obj.count: if self.obj.str[i] != NULL: lst.append(self.obj.str[i]) return lst def __len__(self): if self.obj == NULL: raise ValueError("Object uninitialized") return self.obj.count def __getitem__(self, int index): if self.obj == NULL: raise ValueError("Object uninitialized") if index < 0 or index >= self.obj.count: raise IndexError("list index out of range") return self.obj.str[index] cdef class MessageIntSet(Message): """Integer set message. :ivar val: message contents. """ property val: def __get__(self): cdef int i if self.obj == NULL: raise ValueError("Object uninitialized") lst = [] for i from 0 <= i < self.obj.count: lst.append(self.obj.val[i]) return lst def __len__(self): if self.obj == NULL: raise ValueError("Object uninitialized") return self.obj.count def __getitem__(self, int index): if self.obj == NULL: raise ValueError("Object uninitialized") if index < 0 or index >= self.obj.count: raise IndexError("list index out of range") return self.obj.val[index] cdef class MessageFloatSet(Message): """Float set message. :ivar val: message contents. """ property val: def __get__(self): cdef int i if self.obj == NULL: raise ValueError("Object uninitialized") lst = [] for i from 0 <= i < self.obj.count: lst.append(self.obj.val[i]) return lst def __len__(self): if self.obj == NULL: raise ValueError("Object uninitialized") return self.obj.count def __getitem__(self, int index): if self.obj == NULL: raise ValueError("Object uninitialized") if index < 0 or index >= self.obj.count: raise IndexError("list index out of range") return self.obj.val[index] cdef class MessageStringInt(Message): """String + Integer message. :ivar str: string. :ivar val: integer. """ property str: def __get__(self): if self.obj == NULL: raise ValueError("Object uninitialized") if self.obj.str != NULL: return self.obj.str property val: def __get__(self): if self.obj == NULL: raise ValueError("Object uninitialized") return self.obj.val cdef class MessageStringFloat(Message): """String + float message. :ivar str: string. :ivar val: float. """ property str: def __get__(self): if self.obj == NULL: raise ValueError("Object uninitialized") if self.obj.str != NULL: return self.obj.str property val: def __get__(self): if self.obj == NULL: raise ValueError("Object uninitialized") return self.obj.val cdef class MessageStringIntSet(Message): """String + Integer set message. :ivar str: string. :ivar val: integer list. """ property str: def __get__(self): if self.obj == NULL: raise ValueError("Object uninitialized") if self.obj.str != NULL: return self.obj.str property val: def __get__(self): cdef int i if self.obj == NULL: raise ValueError("Object uninitialized") lst = [] for i from 0 <= i < self.obj.count: lst.append(self.obj.val[i]) return lst def __len__(self): if self.obj == NULL: raise ValueError("Object uninitialized") return self.obj.count def __getitem__(self, int index): if self.obj == NULL: raise ValueError("Object uninitialized") if index < 0 or index >= self.obj.count: raise IndexError("list index out of range") return self.obj.val[index] cdef class MessageStringFloatSet(Message): """String + Float set message. :ivar str: string. :ivar val: float list. """ property str: def __get__(self): if self.obj == NULL: raise ValueError("Object uninitialized") if self.obj.str != NULL: return self.obj.str property val: def __get__(self): cdef int i if self.obj == NULL: raise ValueError("Object uninitialized") lst = [] for i from 0 <= i < self.obj.count: lst.append(self.obj.val[i]) return lst def __len__(self): if self.obj == NULL: raise ValueError("Object uninitialized") return self.obj.count def __getitem__(self, int index): if self.obj == NULL: raise ValueError("Object uninitialized") if index < 0 or index >= self.obj.count: raise IndexError("list index out of range") return self.obj.val[index] cdef Message MessageString_from_ptr(void *msg): cdef MessageString m m = MessageString() m.obj = msg return m cdef Message MessageInt_from_ptr(void *msg): cdef MessageInt m m = MessageInt() m.obj = msg return m cdef Message MessageFloat_from_ptr(void *msg): cdef MessageFloat m m = MessageFloat() m.obj = msg return m cdef Message MessageStringSet_from_ptr(void *msg): cdef MessageStringSet m m = MessageStringSet() m.obj = msg return m cdef Message MessageIntSet_from_ptr(void *msg): cdef MessageIntSet m m = MessageIntSet() m.obj = msg return m cdef Message MessageFloatSet_from_ptr(void *msg): cdef MessageFloatSet m m = MessageFloatSet() m.obj = msg return m cdef Message MessageStringInt_from_ptr(void *msg): cdef MessageStringInt m m = MessageStringInt() m.obj = msg return m cdef Message MessageStringFloat_from_ptr(void *msg): cdef MessageStringFloat m m = MessageStringFloat() m.obj = msg return m cdef Message MessageStringIntSet_from_ptr(void *msg): cdef MessageStringIntSet m m = MessageStringIntSet() m.obj = msg return m cdef Message MessageStringFloatSet_from_ptr(void *msg): cdef MessageStringFloatSet m m = MessageStringFloatSet() m.obj = msg return m cdef Message Message_from_type(Edje_Message_Type type, int id, void *msg): cdef Message m if type == EDJE_MESSAGE_NONE: return None elif type == EDJE_MESSAGE_SIGNAL: m = MessageSignal() elif type == EDJE_MESSAGE_STRING: m = MessageString_from_ptr(msg) elif type == EDJE_MESSAGE_INT: m = MessageInt_from_ptr(msg) elif type == EDJE_MESSAGE_FLOAT: m = MessageFloat_from_ptr(msg) elif type == EDJE_MESSAGE_STRING_SET: m = MessageStringSet_from_ptr(msg) elif type == EDJE_MESSAGE_INT_SET: m = MessageIntSet_from_ptr(msg) elif type == EDJE_MESSAGE_FLOAT_SET: m = MessageFloatSet_from_ptr(msg) elif type == EDJE_MESSAGE_STRING_INT: m = MessageStringInt_from_ptr(msg) elif type == EDJE_MESSAGE_STRING_FLOAT: m = MessageStringFloat_from_ptr(msg) elif type == EDJE_MESSAGE_STRING_INT_SET : m = MessageStringIntSet_from_ptr(msg) elif type == EDJE_MESSAGE_STRING_FLOAT_SET : m = MessageStringFloatSet_from_ptr(msg) m._type = type m._id = id return m