tasn pushed a commit to branch master.

commit 3ebba1afe1be0e582b26ad8c847e10aba3918e7c
Author: Simon Busch <[email protected]>
Date:   Thu Mar 12 11:42:34 2009 +0000

    Fix assertions and implement test for pager widget
    
    SVN revision: 39450
---
 elementary/elementary.c_elementary_pager.pxi |   4 +-
 tests/test.py                                | 165 ++++++++++++++++++++++++++-
 2 files changed, 162 insertions(+), 7 deletions(-)

diff --git a/elementary/elementary.c_elementary_pager.pxi 
b/elementary/elementary.c_elementary_pager.pxi
index 8cf9788..590989e 100644
--- a/elementary/elementary.c_elementary_pager.pxi
+++ b/elementary/elementary.c_elementary_pager.pxi
@@ -21,11 +21,10 @@ _pager_mapping = dict()
 
 cdef class Pager(Object):
     def __init__(self, c_evas.Object parent):
-        assert parent == None
+    #    assert parent == None
         self._set_obj(elm_pager_add(parent.obj))
         
     def content_push(self, c_evas.Object content):
-        assert content == None
         elm_pager_content_push(self.obj, content.obj)
         
         # register in our object dict
@@ -44,7 +43,6 @@ cdef class Pager(Object):
             _pager_mapping.pop(obj._get_obj_addr())
         
     def content_promote(self, c_evas.Object content):
-        assert content == None
         elm_pager_content_promote(self.obj, content.obj)
         
     def bottom_get(self):
diff --git a/tests/test.py b/tests/test.py
index a050de9..c3d4d6d 100644
--- a/tests/test.py
+++ b/tests/test.py
@@ -3,9 +3,10 @@ import elementary
 import edje
 import evas
 
-def destroy(obj, event, *args, **kargs):
+def destroy(obj, event, data):
     print "DEBUG: window destroy callback called!"
-    raise Exception()
+    print "DEBUG: data:"
+    print data
     elementary.exit()
     
 def bg_plain_clicked(obj, event, data):
@@ -698,13 +699,168 @@ def toolbar_clicked(obj, event, *args, **kargs):
     win.resize(320, 320)
     win.show()
 
+def my_pager_1(obj, event, data):
+    data["pager"].content_promote(data["pg2"])
+
+def my_pager_2(obj, event, data):
+    data["pager"].content_promote(data["pg3"])
+
+def my_pager_3(obj, event, data):
+    data["pager"].content_promote(data["pg1"])
+
+def my_pager_pop(obj, event, data):
+    data["pager"].content_pop()
+
+def pager_clicked(obj, event, data):
+    win = elementary.Window("pager", elementary.ELM_WIN_BASIC)
+    win.autodel_set(True)
+    win.title_set("Pager")
+
+    bg = elementary.Background(win)
+    win.resize_object_add(bg)
+    bg.size_hint_weight_set(1.0, 1.0)
+    bg.show()
+
+    print win
+    pg = elementary.Pager(win)
+    win.resize_object_add(pg)
+    pg.show()
+
+    info = dict()
+    info["pager"] = pg
+
+    bx = elementary.Box(win)
+    bx.size_hint_weight_set(1.0, 1.0)
+    bx.show()
+
+    lb = elementary.Label(win)
+    lb.label_set("This is page 1 in a pager stack.<br>"
+                       "<br>"
+                       "So what is a pager stack? It is a stack<br>"
+                       "of pages that hold widgets in it. The<br>"
+                       "pages can be pushed and popped on and<br>"
+                       "off the stack, activated and otherwise<br>"
+                       "activated if already in the stack<br>"
+                       "(activated means promoted to the top of<br>"
+                       "the stack).<br>"
+                       "<br>"
+                       "The theme may define the animation how<br>"
+                       "show and hide of pages.")
+
+    bx.pack_end(lb)
+    lb.show()
+
+    bt = elementary.Button(win)
+    bt.label_set("Flip to 2")
+    bt.clicked = (my_pager_1, info)
+    bx.pack_end(bt)
+    bt.show()
+
+    bt = elementary.Button(win)
+    bt.label_set("Popme")
+    bt.clicked = (my_pager_pop, info)
+    bx.pack_end(bt)
+    bt.show()
+
+    pg.content_push(bx)
+
+    info["pg1"] = bx;
+    
+    bx = elementary.Box(win)
+    bx.size_hint_weight_set(1.0, 1.0)
+    bx.show()
+    
+    lb = elementary.Label(win)
+    lb.label_set("This is page 2 in a pager stack.<br>"
+                       "<br>"
+                       "This is just like the previous page in<br>"
+                       "the pager stack.")
+    
+    bx.pack_end(lb)
+    lb.show()
+    
+    bt = elementary.Button(win)
+    bt.label_set("Flip to 3")
+    bt.clicked = (my_pager_2, info)
+    bx.pack_end(bt)
+    bt.show()
+    
+    bt = elementary.Button(win)
+    bt.label_set("Popme")
+    bt.clicked = (my_pager_pop, info)
+    bx.pack_end(bt)
+    bt.show()
+
+    pg.content_push(bx)
+    
+    info["pg2"] = bx
+    
+    bx = elementary.Box(win)
+    bx.size_hint_weight_set(1.0, 1.0)
+    bx.show()
+    
+    lb = elementary.Label(win)
+    lb.label_set("This is page 3 in a pager stack.<br>"
+                       "<br>"
+                       "This is just like the previous page in<br>"
+                       "the pager stack.")
+    
+    bx.pack_end(lb)
+    lb.show()
+    
+    bt = elementary.Button(win)
+    bt.label_set("Flip to 1")
+    bt.clicked = (my_pager_3, info)
+    bx.pack_end(bt)
+    bt.show()
+    
+    bt = elementary.Button(win)
+    bt.label_set("Popme")
+    bt.clicked = (my_pager_pop, info)
+    bx.pack_end(bt)
+    bt.show()
+    
+    pg.content_push(bx)
+     
+    info["pg3"] = bx
+
+    win.resize(320, 320)
+    win.show()
+    
+    """
+
+   bx = elm_box_add(win);
+   evas_object_size_hint_weight_set(bx, 1.0, 1.0);
+   evas_object_show(bx);
+   lb = elm_label_add(win);
+   elm_label_label_set(lb,
+                       "This is page 3 in a pager stack.<br>"
+                       "<br>"
+                       "This is just like the previous page in<br>"
+                       "the pager stack."
+                       );
+   elm_box_pack_end(bx, lb);
+   evas_object_show(lb);
+   bt = elm_button_add(win);
+   elm_button_label_set(bt, "Flip to 1");
+   evas_object_smart_callback_add(bt, "clicked", my_pager_3, &info);
+   elm_box_pack_end(bx, bt);
+   evas_object_show(bt);
+   bt = elm_button_add(win);
+   elm_button_label_set(bt, "Popme");
+   evas_object_smart_callback_add(bt, "clicked", my_pager_pop, &info);
+   elm_box_pack_end(bx, bt);
+   evas_object_show(bt);
+   elm_pager_content_push(pg, bx);
+   info.pg3 = bx;
+    """
 
 
 if __name__ == "__main__":
     elementary.init()
     win = elementary.Window("test", elementary.ELM_WIN_BASIC)
     win.title_set("python-elementary test application")
-    win.destroy = destroy
+    win.destroy = (destroy, ("test", "test1"))
     
     bg = elementary.Background(win)
     win.resize_object_add(bg)
@@ -756,7 +912,8 @@ if __name__ == "__main__":
                ("Notepad", notepad_clicked),
                ("Anchorview", anchorview_clicked),
                ("Anchorblock", anchorblock_clicked),
-               ("Toolbar", toolbar_clicked)]
+               ("Toolbar", toolbar_clicked),
+               ("Pager", pager_clicked)]
     
     
     for btn in buttons:

-- 

------------------------------------------------------------------------------
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

Reply via email to