tasn pushed a commit to branch master.
commit 0e24e64bb2da30cc78e74adbc0feda7eb07c652f
Author: Simon Busch <[email protected]>
Date: Thu Mar 5 18:08:28 2009 +0000
Add some type checks for List widget
SVN revision: 39378
---
elementary/__init__.py | 3 +-
elementary/elementary.c_elementary.pyx | 54 +++++++++++++++++++++++++++++++---
2 files changed, 52 insertions(+), 5 deletions(-)
diff --git a/elementary/__init__.py b/elementary/__init__.py
index 9109a16..8f47417 100644
--- a/elementary/__init__.py
+++ b/elementary/__init__.py
@@ -21,7 +21,8 @@ import c_elementary
from c_elementary import Object, Window, Background, Icon, \
Box, Button, Scroller, Label, Toggle, Frame, Table, \
Clock, Layout, Hover, Entry, AnchorView, AnchorBlock, Bubble, \
- Photo, Hoversel, Toolbar, List, Slider, init, shutdown, run, exit
+ Photo, Hoversel, Toolbar, ToolbarItem, List, ListItem, Slider, \
+ init, shutdown, run, exit
ELM_WIN_BASIC = 0
ELM_WIN_DIALOG = 1
diff --git a/elementary/elementary.c_elementary.pyx
b/elementary/elementary.c_elementary.pyx
index d2d1b58..58f0ecb 100644
--- a/elementary/elementary.c_elementary.pyx
+++ b/elementary/elementary.c_elementary.pyx
@@ -868,15 +868,35 @@ cdef class ListItem:
def append(self, c_evas.Object list, label, c_evas.Object icon,
c_evas.Object end, callback, data = None):
if not self.item == NULL:
raise Exception("Item was already created!")
+
+ cdef c_evas.Evas_Object* icon_obj
+ cdef c_evas.Evas_Object* end_obj
+ icon_obj = NULL
+ end_obj = NULL
+
+ if not icon == None:
+ icon_obj = icon.obj
+ if not end == None:
+ end_obj = end.obj
- self.item = elm_list_item_append(list.obj, label, icon.obj, end.obj,
_list_callback, NULL)
+ self.item = elm_list_item_append(list.obj, label, icon_obj, end_obj,
_list_callback, NULL)
self._create_mapping(callback, data)
def prepend(self, c_evas.Object list, label, c_evas.Object icon,
c_evas.Object end, callback, data = None):
if not self.item == NULL:
raise Exception("Item was already created!")
+
+ cdef c_evas.Evas_Object* icon_obj
+ cdef c_evas.Evas_Object* end_obj
+ icon_obj = NULL
+ end_obj = NULL
+
+ if not icon == None:
+ icon_obj = icon.obj
+ if not end == None:
+ end_obj = end.obj
- self.item = elm_list_item_prepend(list.obj, label, icon.obj, end.obj,
_list_callback, NULL)
+ self.item = elm_list_item_prepend(list.obj, label, icon_obj, end_obj,
_list_callback, NULL)
self._create_mapping(callback, data)
def insert_before(self, c_evas.Object list, ListItem before, label,
c_evas.Object icon,
@@ -884,14 +904,40 @@ cdef class ListItem:
if not self.item == NULL:
raise Exception("Item was already created!")
- self.item = elm_list_item_insert_before(list.obj, before.item, label,
icon.obj, end.obj, _list_callback, NULL)
+ if before == None:
+ raise ValueError("need a valid before object to add an item before
another item")
+
+ cdef c_evas.Evas_Object* icon_obj
+ cdef c_evas.Evas_Object* end_obj
+ icon_obj = NULL
+ end_obj = NULL
+
+ if not icon == None:
+ icon_obj = icon.obj
+ if not end == None:
+ end_obj = end.obj
+
+ self.item = elm_list_item_insert_before(list.obj, before.item, label,
icon_obj, end_obj, _list_callback, NULL)
self._create_mapping(callback, data)
def insert_after(self, c_evas.Object list, ListItem after, label,
c_evas.Object icon, c_evas.Object end, callback, data = None):
if not self.item == NULL:
raise Exception("Item was already created!")
+
+ if after == None:
+ raise ValueError("need a valid after object to add an item after
another item")
+
+ cdef c_evas.Evas_Object* icon_obj
+ cdef c_evas.Evas_Object* end_obj
+ icon_obj = NULL
+ end_obj = NULL
+
+ if not icon == None:
+ icon_obj = icon.obj
+ if not end == None:
+ end_obj = end.obj
- self.item = elm_list_item_insert_after(list.obj, after.item, label,
icon.obj, end.obj,
+ self.item = elm_list_item_insert_after(list.obj, after.item, label,
icon_obj, end_obj,
_list_callback, NULL)
self._create_mapping(callback, data)
--
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar