181 lines
5.0 KiB
Python
181 lines
5.0 KiB
Python
#!/usr/bin/env python
|
|
# encoding: utf-8
|
|
|
|
from efl import evas
|
|
from efl import elementary
|
|
from efl.elementary.window import Window
|
|
from efl.elementary.background import Background
|
|
from efl.elementary.box import Box
|
|
from efl.elementary.button import Button
|
|
from efl.elementary.entry import Entry
|
|
from efl.elementary.multibuttonentry import MultiButtonEntry
|
|
from efl.elementary.scroller import Scroller
|
|
|
|
|
|
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 = 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 = Background(win)
|
|
win.resize_object_add(bg)
|
|
bg.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
|
|
bg.show()
|
|
|
|
vbox = Box(win)
|
|
vbox.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
|
|
win.resize_object_add(vbox)
|
|
vbox.show()
|
|
|
|
sc = 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 = 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 = Box(win)
|
|
hbox.horizontal = True
|
|
hbox.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0)
|
|
vbox.pack_end(hbox)
|
|
hbox.show()
|
|
|
|
bt = 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 = 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 = 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 = 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 = Box(win)
|
|
hbox.horizontal = True
|
|
hbox.size_hint_weight = (evas.EVAS_HINT_EXPAND, 0.0)
|
|
vbox.pack_end(hbox)
|
|
hbox.show()
|
|
|
|
bt = 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 = 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 = 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 = 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()
|
|
|