def getDef(self): s = shardGen(shard) s.args['code'] = self.functioncode s.args['name'] = self.functionname # hack for displaying in connector gui s.label = self.functionname s.text = ''.join(self.functioncode) return s, self.functionname
def getInlineDef(self): s = shardGen(shard) indent = len(self.functioncode[0]) - len(self.functioncode[0].lstrip()) s.args['code'] = [line[indent:] for line in self.functioncode[1:]] s.args['name'] = self.functionname # hack for displaying in connector gui s.label = self.functionname s.text = ''.join(self.functioncode) return s, self.functionname
def setupWindow(self): self.window.title("Connector Shards") self.addframe = Tkinter.Frame(self.window, borderwidth=2, relief=Tkinter.GROOVE) self.addframe.grid(row=0, column=0, sticky=Tkinter.N+Tkinter.E+Tkinter.W+Tkinter.S, padx=4, pady=4) def menuCallback(index, text): self.click_menuChoice(shardGen(lookup[text])) lookup = {} for theclass in self.classes: lookup[theclass.__name__] = theclass items = list(lookup.keys()) self.choosebutton = ScrollingMenu(self.addframe, items, command = menuCallback) self.choosebutton.grid(row=0, column=0, columnspan=2, sticky=Tkinter.N) self.argPanel = None self.argCanvas = Tkinter.Canvas(self.addframe, relief=Tkinter.SUNKEN, borderwidth=2) self.argCanvas.grid(row=1, column=0, sticky=Tkinter.N+Tkinter.S+Tkinter.E+Tkinter.W) self.argCanvasWID = self.argCanvas.create_window(0,0, anchor=Tkinter.NW) self.argCanvasScroll = Tkinter.Scrollbar(self.addframe, orient=Tkinter.VERTICAL) self.argCanvasScroll.grid(row=1, column=1, sticky=Tkinter.N+Tkinter.S+Tkinter.E) self.argCanvasScroll['command'] = self.argCanvas.yview self.argCanvas['yscrollcommand'] = self.argCanvasScroll.set self.click_menuChoice(shardGen(lookup[items[0]])) self.addbutton = Tkinter.Button(self.addframe, text="ADD Shard", command=self.click_addComponent ) self.addbutton.grid(row=2, column=0, columnspan=2, sticky=Tkinter.S) self.addframe.rowconfigure(1, weight=1) self.addframe.columnconfigure(0, weight=1) self.updatebutton = Tkinter.Button(self.addframe, text="Update Shard", command=self.click_update) self.updatebutton.grid(row=3, column=0, columnspan=2, sticky=Tkinter.S) self.window.rowconfigure(0, weight=1) self.window.columnconfigure(0, weight=1) self.window.protocol("WM_DELETE_WINDOW", self.handleCloseWindowRequest )
def __init__(self, root=None): super(Tree, self).__init__() self.root = root if __name__ == "__main__": import sys # example for ShardGen.py: mouse handler from MagnaDoodle from MagnaGen import * from ShardGen import shardGen from ExampleMagnaShards import __INIT__ # needs to be specifically imported mh = shardGen(switchShard) # mousehandler mh.args["name"] = "mouseHandler" mh.args["switchVar"] = "event.type" mh.args["conditions"] = ["pygame.MOUSEBUTTONDOWN", "pygame.MOUSEBUTTONUP", "pygame.MOUSEMOTION"] mh.args["shards"] = [MOUSEBUTTONDOWN_handler, MOUSEBUTTONUP_handler, MOUSEMOTION_handler] # wrap switch in loop that reads from inbox pyl = shardGen(forShard) # pyevent loop pyl.args["name"] = "eventhandler" pyl.args["forVars"] = ["event"] pyl.args["inVar"] = r'self.recv("inbox")' pyl.children += [mh] # wrap event loop in inbox checking loop so that no invalid reads are performed ml = shardGen(whileShard) # mainloop ml.args["name"] = "LoopOverPygameEvents"
def menuCallback(index, text): self.click_menuChoice(shardGen(lookup[text]))
def __init__(self, root=None): super(Tree, self).__init__() self.root = root if __name__ == '__main__': import sys # example for ShardGen.py: mouse handler from MagnaDoodle from MagnaGen import * from ShardGen import shardGen from ExampleMagnaShards import __INIT__ # needs to be specifically imported mh = shardGen(switchShard) # mousehandler mh.args['name'] = 'mouseHandler' mh.args['switchVar'] = 'event.type' mh.args['conditions'] = [ 'pygame.MOUSEBUTTONDOWN', 'pygame.MOUSEBUTTONUP', 'pygame.MOUSEMOTION' ] mh.args['shards'] = [ MOUSEBUTTONDOWN_handler, MOUSEBUTTONUP_handler, MOUSEMOTION_handler ] # wrap switch in loop that reads from inbox pyl = shardGen(forShard) # pyevent loop pyl.args['name'] = 'eventhandler' pyl.args['forVars'] = ['event'] pyl.args['inVar'] = r'self.recv("inbox")' pyl.children += [mh]