python-efl/tests/elementary/test_multibuttonentry.py

174 lines
4.8 KiB
Python

#!/usr/bin/env python
# encoding: utf-8
from efl import elementary
from efl import evas
counter = 0
def cb_item_selected(mbe, item):
print "cb!!!!!!!!!!!" # TODO this is never called
print mbe
print item
def cb_btn_item_prepend(btn, mbe):
global counter
counter += 1
item = mbe.item_prepend("item #%d" % (counter), cb_item_selected, "PippO")
def cb_btn_item_append(btn, mbe):
global counter
counter += 1
item = mbe.item_append("item #%d" % (counter), cb_item_selected, "PippO")
def cb_btn_item_insert_after(btn, mbe):
global counter
counter += 1
after = mbe.selected_item
item = mbe.item_insert_after(after, "item #%d" % (counter), cb_item_selected)
def cb_btn_item_insert_before(btn, mbe):
global counter
counter += 1
before = mbe.selected_item
item = mbe.item_insert_before(before, "item #%d" % (counter), cb_item_selected)
def cb_btn_clear2(btn, mbe):
for item in mbe.items:
item.delete()
def cb_filter1(mbe, text):
return True
def multibuttonentry_clicked(obj, item=None):
win = elementary.Window("multibuttonentry", elementary.ELM_WIN_BASIC)
win.title_set("MultiButtonEntry test")
win.autodel_set(True)
if obj is None:
win.callback_delete_request_add(lambda o: elementary.exit())
bg = elementary.Background(win)
win.resize_object_add(bg)
bg.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
bg.show()
vbox = elementary.Box(win)
vbox.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
win.resize_object_add(vbox)
vbox.show()
sc = elementary.Scroller(win)
sc.bounce = (False, True)
sc.policy = (elementary.ELM_SCROLLER_POLICY_OFF, elementary.ELM_SCROLLER_POLICY_AUTO)
sc.size_hint_align = (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL)
sc.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
vbox.pack_end(sc)
sc.show()
mbe = elementary.MultiButtonEntry(win)
mbe.size_hint_align = (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL)
mbe.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
mbe.text = "To: "
mbe.part_text_set("guide", "Tap to add recipient")
mbe.filter_append(cb_filter1)
sc.content = mbe
mbe.show()
print mbe.entry
hbox = elementary.Box(win)
hbox.horizontal = True
hbox.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0)
vbox.pack_end(hbox)
hbox.show()
bt = elementary.Button(win)
bt.text = "item_append"
bt.size_hint_align = (evas.EVAS_HINT_FILL, 0.0)
bt.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0)
bt.callback_clicked_add(cb_btn_item_append, mbe)
hbox.pack_end(bt)
bt.show()
bt = elementary.Button(win)
bt.text = "item_prepend"
bt.size_hint_align = (evas.EVAS_HINT_FILL, 0.0)
bt.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0)
bt.callback_clicked_add(cb_btn_item_prepend, mbe)
hbox.pack_end(bt)
bt.show()
bt = elementary.Button(win)
bt.text = "item_insert_after"
bt.size_hint_align = (evas.EVAS_HINT_FILL, 0.0)
bt.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0)
bt.callback_clicked_add(cb_btn_item_insert_after, mbe)
hbox.pack_end(bt)
bt.show()
bt = elementary.Button(win)
bt.text = "item_insert_before"
bt.size_hint_align = (evas.EVAS_HINT_FILL, 0.0)
bt.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0)
bt.callback_clicked_add(cb_btn_item_insert_before, mbe)
hbox.pack_end(bt)
bt.show()
hbox = elementary.Box(win)
hbox.horizontal = True
hbox.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0)
vbox.pack_end(hbox)
hbox.show()
bt = elementary.Button(win)
bt.text = "delete selected item"
bt.size_hint_align = (evas.EVAS_HINT_FILL, 0.0)
bt.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0)
bt.callback_clicked_add(lambda btn: mbe.selected_item.delete())
hbox.pack_end(bt)
bt.show()
bt = elementary.Button(win)
bt.text = "clear"
bt.size_hint_align = (evas.EVAS_HINT_FILL, 0.0)
bt.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0)
bt.callback_clicked_add(lambda bt: mbe.clear())
hbox.pack_end(bt)
bt.show()
bt = elementary.Button(win)
bt.text = "clear2"
bt.size_hint_align = (evas.EVAS_HINT_FILL, 0.0)
bt.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0)
bt.callback_clicked_add(cb_btn_clear2, mbe)
hbox.pack_end(bt)
bt.show()
bt = elementary.Button(win)
bt.text = "toggle expand"
bt.size_hint_align = (evas.EVAS_HINT_FILL, 0.0)
bt.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0)
bt.callback_clicked_add(lambda btn: mbe.expanded_set(not mbe.expanded_get()))
hbox.pack_end(bt)
bt.show()
mbe.focus = True
win.resize(320, 320)
win.show()
if __name__ == "__main__":
elementary.init()
multibuttonentry_clicked(None)
elementary.run()
elementary.shutdown()