def update_symbols(self, text, timestamp=None, inspeakers=None, inidea=None): #Stores timestamp if timestamp == None: timestamp = self.player.query_position(gst.FORMAT_TIME, None)[0] self.display.mark_set("mine", "1.%d" % floor(timestamp / 1000000000.0 / .2)) if len(str(self.display.get("mine"))) == 0: self.display.config(state=NORMAL) self.display.delete("mine") self.display.config(state=DISABLED) #Stores current speakers current_speakers = [] store_speakers = [] if inspeakers == None: for i in range(len(self.speakers)): if self.checkvars[i].get() == 1: current_speakers.append((self.alpha[i], self.colors[i])) store_speakers.append(i + 1) else: store_speakers = inspeakers current_speakers = [(self.alpha[i - 1], self.colors[i - 1]) for i in inspeakers] tempstr = "" for sp in current_speakers: tempstr += sp[0] if inidea or (inidea == None and self.idea_var.get() == 1): tmplbl = Label(self.display, name="%u" % self.imgID, image=self.imagemap[text], text=tempstr, compound="bottom", background="yellow") else: tmplbl = Label(self.display, name="%u" % self.imgID, image=self.imagemap[text], text=tempstr, compound="bottom", background="white") tmpwin = self.display.window_create('mine', window=tmplbl) tmplbl.bind("<Button-3>", self.deleteSymbol) #right click tmplbl.bind("<Button-1>", lambda ev: EditSymDialog(self, ev)) #left click self.imgID += 1 idea = False if inidea == True or (inidea == None and self.idea_var.get() == 1): idea = True if self.project != None: curr = Code(timestamp / 1000000000.0, text, store_speakers, idea) self.project.seq.insert(curr) self.imgMap[self.imgID - 1] = timestamp / 1000000000.0
def update_symbols(self, text, timestamp = None, inspeakers = None, inidea = None): #Stores timestamp if timestamp == None: timestamp = self.player.query_position(gst.FORMAT_TIME, None)[0] self.display.mark_set("mine", "1.%d" % floor(timestamp/1000000000.0/.2)) if len(str(self.display.get("mine"))) == 0: self.display.config(state=NORMAL) self.display.delete("mine") self.display.config(state=DISABLED) #Stores current speakers current_speakers = [] store_speakers = [] if inspeakers == None: for i in range(len(self.speakers)): if self.checkvars[i].get() == 1: current_speakers.append((self.alpha[i], self.colors[i])) store_speakers.append(i+1) else: store_speakers = inspeakers current_speakers = [(self.alpha[i-1], self.colors[i-1]) for i in inspeakers] tempstr = "" for sp in current_speakers: tempstr += sp[0] if inidea or (inidea == None and self.idea_var.get()==1): tmplbl = Label(self.display, name="%u" % self.imgID, image=self.imagemap[text], text=tempstr, compound="bottom", background="yellow") else: tmplbl = Label(self.display, name="%u" % self.imgID, image=self.imagemap[text], text=tempstr, compound="bottom", background="white") tmpwin = self.display.window_create('mine', window=tmplbl) tmplbl.bind("<Button-3>", self.deleteSymbol) #right click tmplbl.bind("<Button-1>", lambda ev: EditSymDialog(self, ev)) #left click self.imgID += 1 idea = False if inidea == True or (inidea == None and self.idea_var.get() == 1): idea = True if self.project != None: curr = Code(timestamp/1000000000.0, text, store_speakers, idea) self.project.seq.insert(curr) self.imgMap[self.imgID-1] = timestamp/1000000000.0
class Handle(Frame): def __init__(self, panedwindow, sash_index, disallow_dragging=False, on_click=None, **kw): image = kw.pop("image", None) Frame.__init__(self, panedwindow, class_="Handle", **kw) self._sash_index = sash_index if image: self._event_area = Label(self, image=image) self._event_area.pack() else: self._event_area = self self._center = int(self._event_area.winfo_reqwidth() / 2), int( self._event_area.winfo_reqheight() / 2) if disallow_dragging: if on_click: self._event_area.bind('<Button-1>', lambda event: on_click()) else: self._event_area.bind('<Button-1>', self._initiate_motion) self._event_area.bind('<B1-Motion>', self._on_dragging) self._event_area.bind('<ButtonRelease-1>', self.master._on_release) def _initiate_motion(self, event): self.master._active_sash = self._sash_index self._dx = event.x self._dy = event.y @property def sash_index(self): return self._sash_index def _on_dragging(self): raise NotImplementedError
class Handle(Frame): def __init__(self, panedwindow, sash_index, disallow_dragging=False, on_click=None, **kw): image = kw.pop("image", None) Frame.__init__(self, panedwindow, class_="Handle", **kw) self._sash_index = sash_index if image: self._event_area = Label(self, image=image) self._event_area.pack() else: self._event_area = self self._center = int(self._event_area.winfo_reqwidth()/2), int(self._event_area.winfo_reqheight()/2) if disallow_dragging: if on_click: self._event_area.bind('<Button-1>', lambda event: on_click()) else: self._event_area.bind('<Button-1>', self._initiate_motion) self._event_area.bind('<B1-Motion>', self._on_dragging) self._event_area.bind('<ButtonRelease-1>', self.master._on_release) def _initiate_motion(self, event) : self.master._active_sash = self._sash_index self._dx = event.x self._dy = event.y @property def sash_index(self): return self._sash_index def _on_dragging(self): raise NotImplementedError
def setCard(self,cardnum,row,col): dodel = False if cardnum == -1: dodel = True cardnum = 1 card = Card(cardnum) f = Frame(self, height = card.height, width = card.width) if (row == 2 and self.client.player == 'p1') or (row == 3 and self.client.player == 'p2'): f.config(height = card.height+20) if self.client.player == 'p1': f.grid(row=row+1, column=col) else: f.grid(row=6-row, column=NUM_COLS-col) f.pack_propagate(0) self.fgrid[row][col] = f pic = Label(f) if row <= 2: card.flip() if self.client.player == 'p2': card.flip() pic.config(image=card.img) pic.image = card.img pic.row = row pic.col = col pic.card = card def clicked(pic,ins,card): if ins.state == 'taking' and not pic.isNone: if pic.card.number == ins.activeCard: endTime = time.time() ins.delta = round(endTime-self.startTime,2) print(ins.delta) print("Got in "+str(ins.delta)) ins.client.sendMessage('took,'+str(ins.delta)+','+str(ins.faultCount)) if not ins.multiplayer: ins.client.oppSendMessage('p2,took,20,0') ins.changeState('waiting') pic.pack_forget() ins.model[pic.row][pic.col].isNone = True elif ins.activeCardRow == -1 or not (pic.row <= 2) == (ins.activeCardRow <= 2): ins.faults[int(pic.row <= 2)] = 1 ins.faultCount = sum(ins.faults) elif ins.state == 'move-select-start': ins.movingPic = (pic.row, pic.col) print('moving card:') print(ins.movingPic) if (((self.client.player == 'p1' and pic.row > 2) or (self.client.player == 'p2' and pic.row <= 2))\ and not pic.isNone) or not ins.multiplayer: ins.infoLabel.config(text="Card chosen. Select destination.") ins.changeState('move-select-stop') else: ins.infoLabel.config(text="Can't move that. Select a different card to move.") ins.moveButton.config(text="Cancel") elif ins.state == 'move-select-stop': print('to:') print((pic.row, pic.col)) if ((self.client.player == 'p1' and pic.row <= 2) or (self.client.player == 'p2' and pic.row > 2))\ and not pic.isNone: ins.infoLabel.config(text="Illegal move. Select a different card to move.") else: ins.swapCards(self.movingPic,(pic.row, pic.col)) ins.infoLabel.config(text="Move completed. Select next card.") ins.changeState('move-select-start') f.bind("<Button-1>",lambda e,pic=pic,self=self,card=card:clicked(pic,self,card)) pic.bind("<Button-1>",lambda e,pic=pic,self=self,card=card:clicked(pic,self,card)) pic.pack(fill=BOTH) self.model[row][col] = pic if dodel: pic.pack_forget() self.model[row][col].isNone = True else: self.model[row][col].isNone = False