import objectdraw.*;
import java.awt.*;
public class WhatADrag extends WindowController{
// Starting position for t-shirt sleeves
private static final int SLEEVES_LEFT = 50,
SLEEVES_TOP = 50;
// width and height of the t-shirt sleeves
private static final int SLEEVES_WIDTH = 100;
private static final int SLEEVES_HEIGHT = 25;
// starting position for the t-shirt body
private static final int BODY_LEFT = SLEEVES_LEFT + SLEEVES_WIDTH/4;
private static final int BODY_TOP = SLEEVES_TOP;
// width and height of the t-shirt body
private static final int BODY_WIDTH = SLEEVES_WIDTH/2;
private static final int BODY_HEIGHT = SLEEVES_HEIGHT * 3;
// t-shirt to be dragged
private FilledRect sleeves, body;
// point where mouse was last seen
private Location lastPoint;
// whether the t-shirt has been grabbed by the mouse
private boolean shirtGrabbed = false;
// make the box
public void begin() {
sleeves = new FilledRect(SLEEVES_LEFT, SLEEVES_TOP,
SLEEVES_WIDTH, SLEEVES_HEIGHT,
canvas);
body = new FilledRect(BODY_LEFT, BODY_TOP,
BODY_WIDTH, BODY_HEIGHT,
canvas);
}
// Save starting point and whether point was in shirt
public void onMousePress(Location point) {
lastPoint = point;
shirtGrabbed = sleeves.contains(point) || body.contains(point);
}
// if mouse is in shirt, then drag the shirt
public void onMouseDrag(Location point) {
if ( shirtGrabbed ) {
sleeves.move( point.getX() - lastPoint.getX(),
point.getY() - lastPoint.getY() );
body.move( point.getX() - lastPoint.getX(),
point.getY() - lastPoint.getY() );
lastPoint = point;
}
}
}