Added support for more erigo widgets

This commit is contained in:
Davide Andreoli 2015-01-31 16:29:33 +01:00
parent 6015567953
commit 2e7ae199ad
3 changed files with 160 additions and 3 deletions

View File

@ -29,7 +29,13 @@ TODO
- visibility (will be fixed in eo)
* how to manage translations??
* what when we create the same widget more than one time ?
* Radio.group_add is not a property !!
* Widget that seems not usable in erigo itsef:
- Icon: how to set a standard icon?
- ActionSlider: how to configure it?
- Separator is missing
"""
import os
@ -48,15 +54,22 @@ except NameError:
KLASSES = {
'Elm_Win': ('efl.elementary.window', 'Window'),
'Elm_Actionslider': ('efl.elementary.actionslider', 'Actionslider'),
'Elm_Bg': ('efl.elementary.background', 'Background'),
'Elm_Box': ('efl.elementary.box', 'Box'),
'Elm_Button': ('efl.elementary.button', 'Button'),
'Elm_Clock': ('efl.elementary.clock', 'Clock'),
'Elm_Check': ('efl.elementary.check', 'Check'),
'Elm_Entry': ('efl.elementary.entry', 'Entry'),
'Elm_Icon': ('efl.elementary.icon', 'Icon'),
'Elm_Image': ('efl.elementary.image', 'Image'),
'Elm_Label': ('efl.elementary.label', 'Label'),
'Elm_Layout': ('efl.elementary.layout', 'Layout'),
'Elm_Menu': ('efl.elementary.menu', 'Menu'),
'Elm_Radio': ('efl.elementary.radio', 'Radio'),
'Elm_Table': ('efl.elementary.table', 'Table'),
'Elm_Win': ('efl.elementary.window', 'Window'),
}
@ -141,6 +154,9 @@ def _widget_generate(self, name, parent_name=None):
p_vals = _params_list_parse(mod, p_vals)
if p_name == 'file':
p_vals = _resource_find(self, p_vals)
elif p_name == 'group_add':
w.group_add(self._widgets[p_vals[0]])
continue
if len(p_vals) == 1:
setattr(w, p_name, p_vals[0])
else:

View File

@ -17,7 +17,8 @@
{
"btn5_clicked_cb_alias":"btn5_clicked_cb",
"btn8_clicked_cb_alias":"btn8_clicked_cb",
"win2_btn_clicked_cb_alias":"win2_btn_clicked_cb"
"win2_btn_clicked_cb_alias":"win2_btn_clicked_cb",
"win2_radio_changed_alias":"win2_radio_changed_cb"
}
},
"Widgets":
@ -334,7 +335,7 @@
"Evas.Object.visibility":[true],
"Evas.Object.size_hint_align":[-1, -1]
},
"Contains":["elm_label2", "elm_button7"]
"Contains":["elm_label2", "elm_button7", "elm_check1", "elm_check2", "elm_radio1", "elm_radio2", "elm_radio3", "elm_actionslider1", "elm_clock1", "elm_entry1"]
},
"elm_label2":
{
@ -514,6 +515,143 @@
{
"clicked":["Modify", "elm_image1", "Efl.File.file", ["pyefl_logo", null]]
}
},
"elm_check1":
{
"Desc":
{
"parent":"elm_box2",
"class":"Elm_Check"
},
"Properties":
{
"Evas.Object.size_hint_weight":[1, 1],
"Evas.Object.visibility":[true],
"Elm_Widget.part_text":[null, "Check One"]
},
"Callbacks":
{
"changed":["Modify", "elm_check2", "Elm_Check.state", [true]]
}
},
"elm_check2":
{
"Desc":
{
"parent":"elm_box2",
"class":"Elm_Check"
},
"Properties":
{
"Evas.Object.size_hint_weight":[1, 1],
"Evas.Object.visibility":[true],
"Elm_Widget.part_text":[null, "Check Two"]
}
},
"elm_radio1":
{
"Desc":
{
"parent":"elm_box2",
"class":"Elm_Radio"
},
"Properties":
{
"Evas.Object.size_hint_weight":[1, 1],
"Evas.Object.visibility":[true],
"Elm_Widget.part_text":[null, "Radio One"],
"Elm_Radio.state_value":[1]
},
"Callbacks":
{
"changed":["Invoke", "win2_radio_changed_alias", null]
}
},
"elm_radio2":
{
"Desc":
{
"parent":"elm_box2",
"class":"Elm_Radio"
},
"Properties":
{
"Evas.Object.size_hint_weight":[1, 1],
"Evas.Object.visibility":[true],
"Elm_Widget.part_text":[null, "Radio Two"],
"Elm_Radio.group_add":["elm_radio1"],
"Elm_Radio.state_value":[2]
},
"Callbacks":
{
"changed":["Invoke", "win2_radio_changed_alias", null]
}
},
"elm_radio3":
{
"Desc":
{
"parent":"elm_box2",
"class":"Elm_Radio"
},
"Properties":
{
"Evas.Object.size_hint_weight":[1, 1],
"Evas.Object.visibility":[true],
"Elm_Widget.part_text":[null, "Radio Three"],
"Elm_Radio.group_add":["elm_radio1"],
"Elm_Radio.state_value":[3]
},
"Callbacks":
{
"changed":["Invoke", "win2_radio_changed_alias", null]
}
},
"elm_actionslider1":
{
"Desc":
{
"parent":"elm_box2",
"class":"Elm_Actionslider"
},
"Properties":
{
"Evas.Object.size_hint_weight":[1, 1],
"Evas.Object.visibility":[true],
"Elm_Widget.part_text":[null, "slide"],
"Evas.Object.size_hint_align":[-1, 0.50]
}
},
"elm_clock1":
{
"Desc":
{
"parent":"elm_box2",
"class":"Elm_Clock"
},
"Properties":
{
"Evas.Object.size_hint_weight":[1, 1],
"Evas.Object.visibility":[true],
"Evas.Object.size":[40, 40]
}
},
"elm_entry1":
{
"Desc":
{
"parent":"elm_box2",
"class":"Elm_Entry"
},
"Properties":
{
"Evas.Object.size_hint_weight":[1, 1],
"Evas.Object.visibility":[true],
"Evas.Object.size_hint_align":[-1, 0.50],
"Elm_Entry.single_line":[true],
"Elm_Entry.scrollable":[true],
"Elm_Widget.part_text":["guide", "Editable entry"]
}
}
}
}

View File

@ -26,6 +26,9 @@ class MyGui(ErigoGui):
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()