// Type of laundry items
// @author Kim Bruce

dialect "rtobjectdraw"

// type of laundry items that can be dragged around
type Laundry = {
    // move the item by specified offsets
    moveBy(dx:Number, dy:Number) -> Done

    // move the item to a specified position
    moveTo(point:Point) -> Done

    // check to see if the item contains a specified location
    contains(point:Point) -> Boolean

    // return color of laundry item
    color -> Color

    // set the color of laundry item to newColor
    color:=(newColor:Color) -> Done

    // move laundry item back to start position
    reset -> Done

    // send laundry item in front of all others on canvas
    sendToFront -> Done

    // remove the laundry item from the canvas
    removeFromCanvas -> Done
}