74 lines
1.9 KiB
Python
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()
|
|
|