def __init__(self, shippo): self.shippo = shippo self.size = shippo.W, shippo.H # init view control buttons thick = 40 w, h = self.size visible = 0 self.buttons = [] self.buttons.append(Button(Rect((0, 0), (w, thick)), 'up', visible)) self.buttons.append(Button(Rect((w - 3*thick, 0), (3*thick, h)), 'right', visible)) self.buttons.append(Button(Rect((0, h - thick), (w, thick)), 'down', visible)) self.buttons.append(Button(Rect((0, 0), (thick, h)), 'left', visible)) self.buttons.append(Button(Rect((0, 0), (w, h)), 'scroll', 0)) for button in self.buttons: self.shippo.UISprites.append(button) # bind event self.speed = speed = 10 # scroll speed self.buttons[0].bind(Button.Over, self.mover((0, -speed))) self.buttons[1].bind(Button.Over, self.mover((speed, 0))) self.buttons[2].bind(Button.Over, self.mover((0, speed))) self.buttons[3].bind(Button.Over, self.mover((-speed, 0))) def scroll(event): ds = 0.05 if event.button == 4: # scroll up, zoom in ds = ds elif event.button == 5: ds = -ds self.shippo.viewBox.zoom(event.pos, ds) self.buttons[4].bind(Button.Scroll, scroll) # self.buttons[4].bind(Button.Press, lambda event:self.shippo.viewBox.zoom(event.pos, 0)) hidedash = Button(Rect(self.shippo.dashBoard.rect), 'hidedash', 0) self.buttons.append(hidedash) hidedash.bind(Button.Over, self.hide_dash) def start_show(event): self.showingDash = 1 self.shippo.dashBoard.hided = 0 hidedash.bind(Button.Out, start_show) self.showingDash = 0 # bind events for every ship def shower(obj): def show_detail(event): shippo.detailBoard.update_target(obj) return show_detail for ship in self.shippo.ships: ship.button.bind(Button.Over, shower(ship)) ship.button.bind(Button.Out, shower(None)) for res in self.shippo.resources: res.button.bind(Button.Over, shower(res)) res.button.bind(Button.Out, shower(None)) self.vim_bindings = {K_h: self.mover((-speed, 0)), K_j: self.mover((0, speed)), K_k: self.mover((0, -speed)), K_l: self.mover((speed, 0))}