예제 #1
0
class DesignBox(tk.Frame):
  # canvas is the model....
  canvas = None
  xscrollbar = None
  yscrollbar = None
  def __init__(self, master):
    tk.Frame.__init__(self, master)

    self.rowconfigure(0, weight = 1)
    self.columnconfigure(0, weight = 1)

    ## Add scrollbars for canvas
    self.xscrollbar = tk.Scrollbar(self, orient = tk.HORIZONTAL)
    self.xscrollbar.grid(row = 1, column = 0, sticky = sticky_all)
    self.yscrollbar = tk.Scrollbar(self, orient = tk.VERTICAL)
    self.yscrollbar.grid(row = 0, column = 1, sticky = sticky_all)

    self.canvas = ModelCanvas(self, mode = 'edit')
    self.canvas.grid(row = 0, column = 0, sticky = sticky_all)

    self.xscrollbar['command'] = self.canvas.xview
    self.yscrollbar['command'] = self.canvas.yview
    self.canvas.config(xscrollcommand = self.xscrollbar.set, yscrollcommand = self.yscrollbar.set)

    ## Set up event handlers
    self.bind_all('<<ModelSelect>>', self.handle_model_select)

  def switch_model(self, model):
    self.canvas.set_model(model)

  def handle_model_select(self, event):
    print 'modelselect'
    model = utils.event_data_retrieve(event.state)
    self.switch_model(model)