public DragDropInterface(int width, int height)
        {
            background = new Color(0x34, 0x49, 0x5e);
            background2 = new Color(0x2c, 0x3e, 0x50);

            this.width = width;
            this.height = height;

            scrollDown = new ContinuousButton(new Color(0x29, 0x80, 0xb9), new Color(0x34, 0x98, 0xdb));
            scrollUp = new ContinuousButton(new Color(0x29, 0x80, 0xb9), new Color(0x34, 0x98, 0xdb));

            elements = new List<LooseDragDropLink>();
            suggestions = new List<LooseDragDropLink>();

            //Stuff - Remove this
            modes = new DragDropElement[]
            {
                new ModeToggleButton(new Color(0x34, 0x98, 0xdb), new Color(0x29, 0x80, 0xb9), "f(x)"),
                new ModeToggleButton(new Color(0x34, 0x98, 0xdb), new Color(0x29, 0x80, 0xb9), "X="),
                new ModeToggleButton(new Color(0x34, 0x98, 0xdb), new Color(0x29, 0x80, 0xb9), ":)(:")
            };
            //
            selectedMode = modes[0];
            selectedMode.TellSelected(true);
        }
        public void ReplaceDragDropElement(DragDropElement element)
        {
            element.SetX(this.element.GetX());
            element.SetY(this.element.GetY());
            bool selected = this.element.GetSelected();
            this.element = element;
            this.element.TellSelected(selected);

            this.element.SetLooseLink(this);
        }
 public LooseDragDropLink(DragDropElement element)
 {
     this.element = element;
     this.element.SetLooseLink(this);
 }
 private void UpdateMode(InputHandler inputHandler)
 {
     if(inputHandler.CheckLeftMouseJustPressed())
     {
         foreach (ModeToggleButton button in modes)
         {
             if (inputHandler.CheckMouseIn(button))
             {
                 selectedMode.TellSelected(false);
                 button.TellSelected(true);
                 selectedMode = button;
                 break;
             }
         }
     }
 }
 /// <summary>
 /// Needed if lazy, or do not have the ability to remove it otherwise.
 /// </summary>
 /// <param name="element"></param>
 public void RemoveElement(DragDropElement element)
 {
     LooseDragDropLink linkA = null;
     foreach(LooseDragDropLink link in elements)
     {
         if(link.GetElement() == element)
         {
             linkA = link;
         }
     }
     RemoveElement(linkA);
 }