def __init__(self, app, parent, title, **kw): logging.info('PysolAboutDialog:') super(PysolAboutDialog, self).__init__() self._url = kw['url'] logging.info('PysolAboutDialog: txt=%s' % title) text = kw['text'] text = text + '\n' + self._url logging.info('PysolAboutDialog: txt=%s' % text) text = text + '\n\n' + 'Adaptation to Kivy/Android\n' + \ ' Copyright (C) (2016-17) LB' self.parent = parent self.app = app self.window = None self.running = False self.status = 1 # -> von help.py so benötigt self.button = 0 # -> von help.py so benötigt # bestehenden Dialog rezyklieren. logging.info('PysolAboutDialog: 1') onlyone = PysolAboutDialog.AboutDialog if (onlyone and onlyone.running): return if (onlyone): onlyone.parent.pushWork('AboutDialog', onlyone.window) onlyone.running = True return # neuen Dialog aufbauen. window = LTopLevel(parent, title, size_hint=(1.0, 1.0)) window.titleline.bind(on_press=self.onClick) self.parent.pushWork('AboutDialog', window) self.window = window self.running = True PysolAboutDialog.AboutDialog = self if kw['image']: image = LImage(texture=kw['image'].texture) image.size_hint = (1, 0.8) al = AnchorLayout() al.add_widget(image) al.size_hint = (1, 0.3) window.content.add_widget(al) label = FText(text=text, halign='center', size_hint=(1, 1)) window.content.add_widget(label) '''
def __init__(self, parent, title, app, gameid, **kw): super(SelectGameDialog, self).__init__() self.parent = parent self.app = app self.gameid = gameid self.random = None self.running = False self.window = None # bestehenden Dialog rezyklieren. si = SelectGameDialog.SingleInstance # if (si and si.running): return if (si and si.running): si.parent.popWork('SelectGame') si.running = False return if (si): si.parent.pushWork('SelectGame', si.window) si.running = True return # neuen Dialog aufbauen. window = LTopLevel(parent, title) window.titleline.bind(on_press=self.onClick) self.parent.pushWork('SelectGame', window) self.window = window self.running = True SelectGameDialog.SingleInstance = self # Asynchron laden. def loaderCB(treeview, node): # Beispielcode aus doku: # # for name in ('Item 1', 'Item 2'): # yield TreeViewLabel(text=name, parent=node) # # LGameNode ist ein Button. Es stellt sich heraus, dass # wir (ev. darum) parent=node NICHT setzen dürfen, da das # sonst zum versuchten doppelten einfügen des gleichen # widget im tree führt. if node: if not hasattr(node, "gamenode"): # (das löst ein problem mit dem root knoten), return v = treeview.gameview if node: n = node.gamenode n.tree = treeview.gametree nodes = n.getContents() if type(nodes) is list: # Blaetter for node in nodes: # print ('**game=%s' % node.text) yield LGameNode(node, v, text=node.text, is_leaf=True, command=self.selectCmd) if type(nodes) is tuple: # Knoten for nn in nodes: # print ('**node=%s' % nn.text) newnode = LGameNode(nn, v, text=nn.text, is_leaf=False) yield newnode print('all nodes done') else: # Knoten nodes = treeview.gametree.rootnodes[:] for n in nodes: newnode = LGameNode(n, v, text=n.text, is_leaf=False) # print ('**node=%s' % newnode) yield newnode # treeview aufsetzen. tree = SelectGameData(app) tv = self.tvroot = LGameRoot(tree, self.app.canvas, root_options=dict(text='Tree One')) tv.size_hint = 1, None tv.hide_root = True tv.load_func = loaderCB tv.bind(minimum_height=tv.setter('height')) # tree in einem Scrollwindow präsentieren. root = LScrollView(pos=(0, 0)) root.add_widget(tv) window.content.add_widget(root)
def __init__(self, parent, app=None, home=None): self.parent = parent self.app = app self.home = home self.url = None self.history = Struct( list=[], index=0, ) self.visited_urls = [] self.images = {} # need to keep a reference because of garbage collection self.defcursor = "default" # self.defcursor = parent["cursor"] # self.defcursor = 'xterm' self.handcursor = "hand2" self.title = "Browser" self.window = None self.running = False # prüfen ob noch aktiv. if parent.workStack.peek(self.title) is not None: parent.popWork(self.title) pc = self.make_pop_command(parent, self.title) cc = self.make_close_command(parent, self.title) # neuen Dialog aufbauen. window = LTopLevel(app.top, self.title, size_hint=(1.8, 1.0)) window.titleline.bind(on_press=cc) self.parent.pushWork(self.title, window) self.window = window self.running = True content = BoxLayout(orientation='vertical') # buttonline = # BoxLayout(orientation='horizontal', size_hint=(1.0, 0.1)) # create buttons self.homeButton = HTMLButton(text="Index", on_release=self.goHome) self.backButton = HTMLButton(text="Back", on_release=self.goBack) self.forwardButton = HTMLButton( text="Forward", on_release=self.goForward) self.closeButton = HTMLButton(text="Close", on_release=self.goHome) ''' buttonline.add_widget(self.homeButton) buttonline.add_widget(self.backButton) buttonline.add_widget(self.forwardButton) buttonline.add_widget(self.closeButton) content.add_widget(buttonline) ''' ''' self.homeButton = Tkinter.Button(parent, text=_("Index"), width=button_width, command=self.goHome) self.homeButton.grid(row=0, column=0, sticky='w') self.backButton = Tkinter.Button(parent, text=_("Back"), width=button_width, command=self.goBack) self.backButton.grid(row=0, column=1, sticky='w') self.forwardButton = Tkinter.Button(parent, text=_("Forward"), width=button_width, command=self.goForward) self.forwardButton.grid(row=0, column=2, sticky='w') self.closeButton = Tkinter.Button(parent, text=_("Close"), width=button_width, command=self.destroy) self.closeButton.grid(row=0, column=3, sticky='e') ''' # create text widget self.text = HTMLText( pop_command=pc, text="hallo", size_hint=(1.0, 1.0)) self.text.label.bind(on_ref_press=self.refpress) content.add_widget(self.text) ''' text_frame = Tkinter.Frame(parent) text_frame.grid(row=1, column=0, columnspan=4, sticky='nsew') text_frame.grid_propagate(False) vbar = Tkinter.Scrollbar(text_frame) vbar.pack(side='right', fill='y') self.text = Tkinter.Text(text_frame, fg='black', bg='white', bd=1, relief='sunken', cursor=self.defcursor, wrap='word', padx=10) self.text.pack(side='left', fill='both', expand=True) self.text["yscrollcommand"] = vbar.set vbar["command"] = self.text.yview ''' self.window.content.add_widget(content) # statusbar # self.statusbar = HtmlStatusbar(parent, row=2, column=0, columnspan=4) # parent.columnconfigure(2, weight=1) # parent.rowconfigure(1, weight=1) # load images for name, fn in self.symbols_fn.items(): self.symbols_img[name] = self.getImage(fn)