public void RemoveItem(OverlayItem item)
 {
     foreach (OverlayItem child in (this.Content as Canvas).Children)
     {
         if (child.Identifier == item.Identifier)
         {
             (this.Content as Canvas).Children.Remove(child);
             return;
         }
     }
 }
 private void Overlay_MouseDown(object sender, MouseHookEventArgs e)
 {
     if (Keyboard.IsKeyDown(Key.LeftShift))
     {
         foreach (OverlayItem item in (this.Content as Canvas).Children)
         {
             if (item.IsPointOver(e.MouseXPos, e.MouseYPos))
             {
                 _moving           = true;
                 _selectedItem     = item;
                 _relativeMousePos = Mouse.GetPosition(_selectedItem);
                 return; // Only want to move 1 at a time for overlapping elements
             }
         }
     }
 }
        private void Overlay_MouseUp(object sender, MouseHookEventArgs e)
        {
            _moving           = false;
            _selectedItem     = null;
            _relativeMousePos = default(Point);

            // Save settings
            var config = ConfigManager.GetPingConfig();

            if (config.OverlayEnabled) // Make sure the overlay is enabled so we don't end up clearing the list
            {
                config.ServersEnabled.Clear();

                foreach (var server in (this.Content as Canvas).Children.OfType <PingItem>())
                {
                    config.ServersEnabled.Add(new Server(server.Identifier, server.XPos, server.YPos));
                }
            }

            ConfigManager.SaveConfig();
        }
 public void AddItem(OverlayItem item)
 {
     (this.Content as Canvas).Children.Add(item);
     item.MoveTo(item.XPos, item.YPos);
 }