python-efl/examples/elementary/test_erigo.py

74 lines
1.9 KiB
Python

#!/usr/bin/env python
# encoding: utf-8
import os
import time
from efl import elementary
from efl.utils.erigo import ErigoGui
from efl.elementary.icon import Icon
from efl.elementary.genlist import GenlistItemClass
prj_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "erigo_prj")
json_file = os.path.join(prj_path, "test_gui.egui")
class MyGenlistItemClass(GenlistItemClass):
def text_get(self, obj, part, data):
return 'Item #%d' % data
def content_get(self, obj, part, data):
if part == 'elm.swallow.icon':
return Icon(obj, standard='home')
class MyGui(ErigoGui):
def __init__(self, *args, **kargs):
ErigoGui.__init__(self, *args, **kargs)
self.gl_itc = MyGenlistItemClass(item_style='default')
def widget_generated(self, name, widget):
if name == 'elm_genlist1':
for i in range(100):
self.elm_genlist1.item_append(self.gl_itc, i)
def btn5_clicked_cb(self, btn):
print('USER CB INVOKED', btn)
self.elm_label1.text = 'User cb invoked!'
def btn8_clicked_cb(self, btn):
self.elm_win2.delete()
def win2_btn_clicked_cb(self, btn):
print('USER CB INVOKED', btn)
def win2_radio_changed_cb(self, radio):
print('Radio changed, value: %s' % radio.state_value)
def erigo_clicked(obj):
start_time = time.time()
# Test from file
egui = MyGui(json_file, verbose=True)
# Test from json string
# json = open(json_file).read()
# egui = MyGui(json_string=json, resources_path=prj_path, verbose=True)
egui.elm_label1.text = 'GUI Generated in %.5f seconds' % \
(time.time() - start_time)
if obj is None:
egui.elm_win1.callback_delete_request_add(lambda o: elementary.exit())
if __name__ == '__main__':
elementary.init()
erigo_clicked(None)
elementary.run()
elementary.shutdown()