#!/usr/bin/env python #button.py from graphics import * class Button: """This is a clickable button.""" def __init__(self, win, center, width, height, label): w,h = width/2.0, height/2.0 x,y = center.getX(), center.getY() self.xmax, self.xmin = x+w, x-w self.ymax, self.ymin = y+h, y-h p1 = Point(self.xmin, self.ymin) p2 = Point(self.xmax, self.ymax) self.rect = Rectangle(p1,p2) self.rect.setFill('white') self.rect.draw(win) self.label = Text(center, label) self.label.draw(win) self.deactivate() def getLabel(self): return self.label.getText() def activate(self): self.label.setFill('black') self.rect.setWidth(1) self.active = True def deactivate(self): self.label.setFill('darkgrey') self.rect.setWidth(1) self.active = False def clicked(self, p): return self.active and \ self.xmin <= p.getX() <= self.xmax and \ self.ymin <= p.getY() <= self.ymax