using System;
using System.Collections.Generic;
using Chernobyl.Collections.Generic.Event;
using Chernobyl.Event;
using Chernobyl.Mathematics.Mechanics;
namespace Chernobyl.Input.Controls
{
///
/// Makes creating new IButton classes easier by implementing
/// some of the properties and methods and making allowing for
/// the button to be (de)serialized to/from an XML file. Do NOT
/// work with the class "ButtonControl" (like use it as a method parameter)
/// because not every button will derive from "ButtonControl". Instead,
/// work with "IButton".
///
public abstract class ButtonControl : Control, IButtonControl
{
///
/// Initializes a new instance of the class.
///
/// The instance that gives out services for use
/// by this type and takes services from this type for use by other systems.
protected ButtonControl(IEventCollection