246 lines
7.7 KiB
Python
246 lines
7.7 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.button import Button
|
|
from efl.elementary.list import List
|
|
from efl.elementary.icon import Icon
|
|
from efl.elementary.popup import Popup
|
|
|
|
|
|
def cb_bnt_close(btn, popup):
|
|
if "im" in popup.data:
|
|
popup.data["im"].delete()
|
|
popup.delete()
|
|
|
|
def cb_btn_restack(btn, popup):
|
|
im = evas.FilledImage(popup.evas);
|
|
im.file = "images/mystrale_2.jpg"
|
|
im.move(40, 40)
|
|
im.resize(500, 320)
|
|
im.show()
|
|
|
|
popup.data["im"] = im
|
|
popup.raise_()
|
|
|
|
def cb_popup_center_text(li, item, win):
|
|
popup = Popup(win)
|
|
popup.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
|
|
popup.text = "This Popup has content area and timeout value is 3 seconds"
|
|
popup.timeout = 3.0
|
|
popup.show()
|
|
|
|
def cb_popup_center_title_text_1button(li, item, win):
|
|
popup = Popup(win)
|
|
popup.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
|
|
popup.text = "This Popup has content area and " \
|
|
"action area set, action area has one button Close"
|
|
bt = Button(win)
|
|
bt.text = "Close"
|
|
bt.callback_clicked_add(cb_bnt_close, popup)
|
|
popup.part_content_set("button1", bt)
|
|
popup.show()
|
|
|
|
def cb_popup_center_title_text_1button(li, item, win):
|
|
popup = Popup(win)
|
|
popup.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
|
|
popup.text = "This Popup has title area, content area and " \
|
|
"action area set, action area has one button Close"
|
|
popup.part_text_set("title,text", "Title")
|
|
bt = Button(win)
|
|
bt.text = "Close"
|
|
bt.callback_clicked_add(cb_bnt_close, popup)
|
|
popup.part_content_set("button1", bt)
|
|
popup.show()
|
|
|
|
def cb_popup_center_title_text_block_clicked_event(li, item, win):
|
|
popup = Popup(win)
|
|
popup.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
|
|
popup.text = "This Popup has title area and content area. " \
|
|
"When clicked on blocked event region, popup gets deleted"
|
|
popup.part_text_set("title,text", "Title")
|
|
popup.callback_block_clicked_add(cb_bnt_close, popup)
|
|
popup.show()
|
|
|
|
def cb_popup_bottom_title_text_3button(li, item, win):
|
|
popup = Popup(win)
|
|
popup.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
|
|
popup.text = "This Popup has title area, content area and " \
|
|
"action area set with content being character wrapped. " \
|
|
"action area has three buttons OK, Cancel and Close"
|
|
popup.content_text_wrap_type = elementary.ELM_WRAP_CHAR
|
|
popup.part_text_set("title,text", "Title")
|
|
|
|
ic = Icon(win)
|
|
ic.file = "images/logo_small.png"
|
|
popup.part_content_set("title,icon", ic)
|
|
|
|
bt = Button(win)
|
|
bt.text = "OK"
|
|
popup.part_content_set("button1", bt)
|
|
|
|
bt = Button(win)
|
|
bt.text = "Cancel"
|
|
popup.part_content_set("button2", bt)
|
|
|
|
bt = Button(win)
|
|
bt.text = "Close"
|
|
bt.callback_clicked_add(cb_bnt_close, popup)
|
|
popup.part_content_set("button3", bt)
|
|
|
|
popup.show()
|
|
|
|
def cb_popup_center_title_content_3button(li, item, win):
|
|
popup = Popup(win)
|
|
popup.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
|
|
popup.part_text_set("title,text", "Title")
|
|
|
|
ic = Icon(win)
|
|
ic.file = "images/logo_small.png"
|
|
bt = Button(win)
|
|
bt.text = "Content"
|
|
bt.content = ic
|
|
popup.content = bt
|
|
|
|
bt = Button(win)
|
|
bt.text = "OK"
|
|
popup.part_content_set("button1", bt)
|
|
|
|
bt = Button(win)
|
|
bt.text = "Cancel"
|
|
popup.part_content_set("button2", bt)
|
|
|
|
bt = Button(win)
|
|
bt.text = "Close"
|
|
bt.callback_clicked_add(cb_bnt_close, popup)
|
|
popup.part_content_set("button3", bt)
|
|
|
|
popup.show()
|
|
|
|
def cb_popup_center_title_item_3button(li, item, win):
|
|
popup = Popup(win)
|
|
popup.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
|
|
popup.part_text_set("title,text", "Title")
|
|
|
|
for i in range(1, 11):
|
|
if i in [3, 5, 6]:
|
|
ic = Icon(win)
|
|
ic.file = "images/logo_small.png"
|
|
popup.item_append("item"+str(i), ic)
|
|
else:
|
|
popup.item_append("item"+str(i))
|
|
|
|
bt = Button(win)
|
|
bt.text = "OK"
|
|
popup.part_content_set("button1", bt)
|
|
|
|
bt = Button(win)
|
|
bt.text = "Cancel"
|
|
popup.part_content_set("button2", bt)
|
|
|
|
bt = Button(win)
|
|
bt.text = "Close"
|
|
bt.callback_clicked_add(cb_bnt_close, popup)
|
|
popup.part_content_set("button3", bt)
|
|
|
|
popup.show()
|
|
|
|
def cb_popup_center_title_text_2button_restack(li, item, win):
|
|
popup = Popup(win)
|
|
popup.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
|
|
popup.text = "When you click the 'Restack' button, " \
|
|
"an image will be located under this popup"
|
|
popup.part_text_set("title,text", "Title")
|
|
|
|
bt = Button(win)
|
|
bt.text = "Restack"
|
|
bt.callback_clicked_add(cb_btn_restack, popup)
|
|
popup.part_content_set("button1", bt)
|
|
|
|
bt = Button(win)
|
|
bt.text = "Close"
|
|
bt.callback_clicked_add(cb_bnt_close, popup)
|
|
popup.part_content_set("button3", bt)
|
|
|
|
popup.show()
|
|
|
|
times = 0
|
|
g_popup = None
|
|
def cb_popup_center_text_1button_hide_show(li, item, win):
|
|
global times
|
|
global g_popup
|
|
|
|
times += 1
|
|
|
|
if g_popup is not None:
|
|
g_popup.text = "You have checked this popup %d times." % times
|
|
g_popup.show()
|
|
return
|
|
|
|
g_popup = Popup(win)
|
|
g_popup.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
|
|
g_popup.text = "Hide this popup by using the button." \
|
|
"When you click list item again, you will see this popup again."
|
|
|
|
bt = Button(win)
|
|
bt.text = "Hide"
|
|
bt.callback_clicked_add(lambda b: g_popup.hide())
|
|
g_popup.part_content_set("button1", bt)
|
|
|
|
g_popup.show()
|
|
|
|
|
|
def popup_clicked(obj):
|
|
win = Window("popup", elementary.ELM_WIN_BASIC)
|
|
win.title_set("Popup 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 = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
|
|
bg.show()
|
|
|
|
li = List(win)
|
|
li.mode = elementary.ELM_LIST_LIMIT
|
|
li.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
|
|
li.callback_selected_add(lambda li, it: it.selected_set(False))
|
|
win.resize_object_add(li)
|
|
li.show()
|
|
|
|
li.item_append("popup-center-text", None, None,
|
|
cb_popup_center_text, win)
|
|
li.item_append("popup-center-text + 1 button", None, None,
|
|
cb_popup_center_title_text_1button, win)
|
|
li.item_append("popup-center-title + text + 1 button", None, None,
|
|
cb_popup_center_title_text_1button, win)
|
|
li.item_append("popup-center-title + text (block,clicked handling)", None, None,
|
|
cb_popup_center_title_text_block_clicked_event, win)
|
|
li.item_append("popup-bottom-title + text + 3 buttons", None, None,
|
|
cb_popup_bottom_title_text_3button, win)
|
|
li.item_append("popup-center-title + content + 3 buttons", None, None,
|
|
cb_popup_center_title_content_3button, win)
|
|
li.item_append("popup-center-title + items + 3 buttons", None, None,
|
|
cb_popup_center_title_item_3button, win)
|
|
li.item_append("popup-center-title + text + 2 buttons (check restacking)", None, None,
|
|
cb_popup_center_title_text_2button_restack, win)
|
|
li.item_append("popup-center-text + 1 button (check hide, show)", None, None,
|
|
cb_popup_center_text_1button_hide_show, win)
|
|
|
|
li.go()
|
|
win.resize(480, 800)
|
|
win.show()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
elementary.init()
|
|
|
|
popup_clicked(None)
|
|
|
|
elementary.run()
|
|
elementary.shutdown()
|