def build_page(layout, page): layout.clear_widgets() links.clear() # TODO: will prevent iframe functionality to work for id, item in page.iteritems(): # create instances (ids) if item['type'] == 'button': wgt = Button() if Preferences.theme != 'default': wgt.background_normal = os.path.join(util.dir_theme, Preferences.theme, 'btn_normal.png') wgt.background_down = os.path.join(util.dir_theme, Preferences.theme, 'btn_down.png') wgt.color = Preferences.foreground wgt.border = [0,0,0,0] elif item['type'] == 'label': wgt = Label() if Preferences.theme != 'default': wgt.color = Preferences.foreground elif item['type'] == 'image': img_path = os.path.join(util.dir_img, item['source']) wgt = Image(source=img_path) elif item['type'] == 'textinput': wgt = TextInput() elif item['type'] == 'var-label': wgt = VariableLabel() elif item['type'] == 'led': wgt = Led() elif item['type'] == 'thermometer': wgt = Thermometer() elif item['type'] == 'manometer': wgt = Manometer() elif item['type'] == 'edit-grid': wgt = EditGrid() wgt.set_dimenstion(item['rows'], item['cols']) elif item['type'] == 'simul-grid': wgt = SimulGrid() wgt.set_dimenstion(item['rows'], item['cols']) wgt.build_network() Simulator.set_grid(wgt) elif item['type'] == 'graph': wgt = Graph() elif item['type'] == 'DatePicker': wgt = DatePicker() elif item['type'] == 'GraphLabel': wgt = GraphLabel() else: print 'Unknown component ' + item['type'] return wgt.id = id layout.add_widget(wgt) for id, item in page.iteritems(): # now can use references (id) wgt = get_widget(id) if 'text' in item: wgt.text = item['text'] if 'font_size' in item: wgt.font_size = item['font_size'] if 'pos' in item: wgt.pos = eval(item['pos']) if 'size' in item: wgt.size = eval(item['size']) if 'pos_hint' in item: wgt.pos_hint = item['pos_hint'] if 'size_hint' in item: wgt.size_hint = eval(item['size_hint']) if 'link' in item: links[wgt.id] = item['link'] wgt.bind(on_press=navigate) if 'click' in item: wgt.bind(on_press=eval(item['click'])) if 'halign' in item: wgt.halign = item['halign'] if 'multiline' in item: wgt.multiline = item['multiline'] if 'validate' in item: wgt.bind(on_text_validate=eval(item['validate'])) if 'variable' in item: wgt.set_var(item['variable']) if 'listener' in item: listeners = item['listener'].split(',') for listener in listeners: wgt.append_listener(get_widget(listener.strip())) if 'markup' in item: wgt.markup = item['markup']
def build_page(layout, page): layout.clear_widgets() links.clear() # TODO: will prevent iframe functionality to work for id, item in page.iteritems(): # create instances (ids) if item['type'] == 'button': wgt = Button() if Preferences.theme != 'default': wgt.background_normal = os.path.join(util.dir_theme, Preferences.theme, 'btn_normal.png') wgt.background_down = os.path.join(util.dir_theme, Preferences.theme, 'btn_down.png') wgt.color = Preferences.foreground wgt.border = [0, 0, 0, 0] elif item['type'] == 'label': wgt = Label() if Preferences.theme != 'default': wgt.color = Preferences.foreground elif item['type'] == 'image': img_path = os.path.join(util.dir_img, item['source']) wgt = Image(source=img_path) elif item['type'] == 'textinput': wgt = TextInput() elif item['type'] == 'var-label': wgt = VariableLabel() elif item['type'] == 'led': wgt = Led() elif item['type'] == 'thermometer': wgt = Thermometer() elif item['type'] == 'manometer': wgt = Manometer() elif item['type'] == 'edit-grid': wgt = EditGrid() wgt.set_dimenstion(item['rows'], item['cols']) elif item['type'] == 'simul-grid': wgt = SimulGrid() wgt.set_dimenstion(item['rows'], item['cols']) wgt.build_network() Simulator.set_grid(wgt) elif item['type'] == 'graph': wgt = Graph() elif item['type'] == 'DatePicker': wgt = DatePicker() elif item['type'] == 'GraphLabel': wgt = GraphLabel() else: print 'Unknown component ' + item['type'] return wgt.id = id layout.add_widget(wgt) for id, item in page.iteritems(): # now can use references (id) wgt = get_widget(id) if 'text' in item: wgt.text = item['text'] if 'font_size' in item: wgt.font_size = item['font_size'] if 'pos' in item: wgt.pos = eval(item['pos']) if 'size' in item: wgt.size = eval(item['size']) if 'pos_hint' in item: wgt.pos_hint = item['pos_hint'] if 'size_hint' in item: wgt.size_hint = eval(item['size_hint']) if 'link' in item: links[wgt.id] = item['link'] wgt.bind(on_press=navigate) if 'click' in item: wgt.bind(on_press=eval(item['click'])) if 'halign' in item: wgt.halign = item['halign'] if 'multiline' in item: wgt.multiline = item['multiline'] if 'validate' in item: wgt.bind(on_text_validate=eval(item['validate'])) if 'variable' in item: wgt.set_var(item['variable']) if 'listener' in item: listeners = item['listener'].split(',') for listener in listeners: wgt.append_listener(get_widget(listener.strip())) if 'markup' in item: wgt.markup = item['markup']