python-efl/examples/elementary/test_popup.py

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