2 # -*- coding: utf-8 -*-
3 """piece list TK widget.
14 import common.model as model
15 import utils.scrolledlistbox as SL
17 from piece import Piece
18 from pieceinfo import PieceInfo
20 __all__ = ["PieceList"]
22 LIST_WIDTH = config.LIST_WIDTH
25 class PieceList(Tk.Frame):
27 def __init__(self, master=None):
28 Tk.Frame.__init__(self, master)
33 lb = Tk.Label(self, text='Piece list')
36 self.piecelist = SL.ScrolledListbox(self,
39 self.piecelist.pack(anchor=Tk.W)
41 self.pieceinfo = PieceInfo(self)
42 self.pieceinfo.pack(anchor=Tk.W)
49 now = self.piecelist.curselection()
50 if now != self.current:
53 self.after(250, self.poll)
55 def changed(self, selection):
59 name = self.piecelist.get(selection[0])
62 def append(self, piece):
65 for idx, item in enumerate(self.pieces):
66 if piece.name == item.name:
69 self.pieces.append(piece)
70 self.piecelist.insert(Tk.END, piece.name)
72 def remove(self, name=None):
77 for idx, item in enumerate(self.pieces):
80 self.piecelist.delete(idx)
85 def setlist(self, pieces):
86 """ clear list and set pieces
89 self.piecelist.delete(0, Tk.END)
93 def select(self, name):
94 """ update piece list, piece info
96 for idx, item in enumerate(self.pieces):
99 self.piecelist.selection_anchor(idx)
100 self.piecelist.configure()
101 self.pieceinfo.show(item)
103 def getpiece(self, name=None):
108 for idx, item in enumerate(self.pieces):
109 if item.name == name:
116 modelpath = '../../data/model'
124 for modelfile in modelfiles:
125 fname = os.path.join(modelpath, modelfile)
126 md = model.load(fname)
127 pieces.append(Piece(md, 64, 32))
135 if __name__ == "__main__":