Tools (IGoTool) are ways to easily specify behavior in response to mouse events for a whole GoView. To have a GoObject specify mouse-event behavior, have your object subclass implement this interface, and make sure the GoView's GoView.MouseDownTools list starts with an instance of GoToolAction, as it does by default. The GoToolAction will handle mouse events and set the properties and invoke the methods of the object implementing this interface. Typically this will be some object where a click (and perhaps a drag) should execute some code. One such class is GoButton.