def __init__(self, tk): super(DemoPanel, self).__init__(tk) self.setLayout(TabbedLayout()) self.buildpanel = Panel(tk) self.sourcepanel = Panel(tk, scrolling=True) self.descriptionpanel = Panel(tk) self.append(self.buildpanel, title="Demo") self.append(self.sourcepanel, title="Source") self.append(self.descriptionpanel, title="Description")
def build(self, tk, parent): parent.setLayout(HBox()) p1 = Panel(tk,width=200, height=200) p2 = Panel(tk, scrolling=True, width=200, height=200) p2.setLayout(VBox()) p1.append(StaticText(tk, "Non-scrolling panel")) p2.append(StaticText(tk, "Scrolling panel")) b = Button(tk, "Click me") p1.append(b) def click(e): p2.append(StaticText(tk, "Line added")) parent.layout() p2.scrollbottom() b.click = click parent.append(p1) parent.append(p2)
def run(self, tk): root = tk.root() root.setLayout(TabbedLayout()) self.controls_panel = Panel(tk) self.controls_panel.setLayout(TabbedLayout()) self.advanced_panel = Panel(tk) self.advanced_panel.setLayout(TabbedLayout()) self.layouts_panel = Panel(tk) self.layouts_panel.setLayout(TabbedLayout()) self.events_panel = Panel(tk) self.events_panel.setLayout(TabbedLayout()) self.xml_panel = Panel(tk) self.xml_panel.setLayout(TabbedLayout()) self.apps_panel = Panel(tk) self.apps_panel.setLayout(TabbedLayout()) self.mysource = Panel(tk, scrolling=True) root.append(self.controls_panel, title="Simple Controls") root.append(self.advanced_panel, title="Advanced Controls") root.append(self.layouts_panel, title="Layouts") root.append(self.events_panel, title="Events") root.append(self.xml_panel, title="XML") root.append(self.apps_panel, title="Apps") root.append(self.mysource, title="My Source") self.build_simple_controls(self.controls_panel, tk) self.build_advanced_controls(self.advanced_panel, tk) self.build_layouts(self.layouts_panel, tk) self.build_events(self.events_panel, tk) self.build_xml(self.xml_panel, tk) self.build_apps(self.apps_panel, tk) mysource = open(make_py(__file__), "r").read() self.mysource.append(StaticHTMLText(tk,highlight(mysource))) root.layout()
class Demo(App): title = "RCTK Demo" frontend = None controls_demos = ("controls_button", 'controls_statictext', 'controls_statichtmltext', 'controls_text', 'controls_checkbox', 'controls_radiobutton', 'controls_dropdown', 'controls_list', 'controls_date', 'controls_state', 'controls_image', 'controls_panel', 'controls_window') advanced_demos = ('controls_date', ) # XXX'controls_grid') layout_demos = ("layouts_grid", "layouts_grid_gravity", "layouts_grid_expand" ) event_demos = ("events_click", 'events_checkbox', 'events_timer') xml_demos = ("xml_simple", "xml_complex") app_demos = ("app_calculator", ) def __init__(self): pass def load_demo(self, name): mod = __import__(name, globals(), locals(), []) #, -1) demo = mod.Demo() return demo def load_source(self, name): mod = __import__(name, globals(), locals(), []) #, -1) sourcecode = open(make_py(mod.__file__), "r").read() return highlight(sourcecode) def load_demos(self, demos, panel, tk): for demoname in demos: demo = self.load_demo(demoname) sourcecode = self.load_source(demoname) demopanel = DemoPanel(tk) demopanel.descriptionpanel.append(StaticHTMLText(tk, demo.description)) demopanel.sourcepanel.append(StaticHTMLText(tk, sourcecode)) demo.build(tk, demopanel.buildpanel) panel.append(demopanel, title=demo.title) def build_simple_controls(self, panel, tk): self.load_demos(self.controls_demos, panel, tk) def build_advanced_controls(self, panel, tk): self.load_demos(self.advanced_demos, panel, tk) def build_layouts(self, panel, tk): self.load_demos(self.layout_demos, panel, tk) def build_events(self, panel, tk): self.load_demos(self.event_demos, panel, tk) def build_xml(self, panel, tk): self.load_demos(self.xml_demos, panel, tk) def build_apps(self, panel, tk): self.load_demos(self.app_demos, panel, tk) def run(self, tk): root = tk.root() root.setLayout(TabbedLayout()) self.controls_panel = Panel(tk) self.controls_panel.setLayout(TabbedLayout()) self.advanced_panel = Panel(tk) self.advanced_panel.setLayout(TabbedLayout()) self.layouts_panel = Panel(tk) self.layouts_panel.setLayout(TabbedLayout()) self.events_panel = Panel(tk) self.events_panel.setLayout(TabbedLayout()) self.xml_panel = Panel(tk) self.xml_panel.setLayout(TabbedLayout()) self.apps_panel = Panel(tk) self.apps_panel.setLayout(TabbedLayout()) self.mysource = Panel(tk, scrolling=True) root.append(self.controls_panel, title="Simple Controls") root.append(self.advanced_panel, title="Advanced Controls") root.append(self.layouts_panel, title="Layouts") root.append(self.events_panel, title="Events") root.append(self.xml_panel, title="XML") root.append(self.apps_panel, title="Apps") root.append(self.mysource, title="My Source") self.build_simple_controls(self.controls_panel, tk) self.build_advanced_controls(self.advanced_panel, tk) self.build_layouts(self.layouts_panel, tk) self.build_events(self.events_panel, tk) self.build_xml(self.xml_panel, tk) self.build_apps(self.apps_panel, tk) mysource = open(make_py(__file__), "r").read() self.mysource.append(StaticHTMLText(tk,highlight(mysource))) root.layout()