private void pbRemote_MouseMove(object sender, MouseEventArgs mouseArgs) { var(posX, posY) = GetCoordsInImage(mouseArgs.X, mouseArgs.Y); var preset = _buttons.FirstOrDefault(p => posX >= (p.X - Range) && posX <= (p.X + Range) && posY >= (p.Y - Range) && posY <= (p.Y + Range)); var refresh = false; if (_lastHoveredPreset != null && (preset == null || preset != _lastHoveredPreset)) { var image = (Bitmap)pbRemote.Image; for (var y = Math.Max(0, _lastHoveredPreset.Y - Range); y < _lastHoveredPreset.Y + Range; y++) { for (var x = Math.Max(0, _lastHoveredPreset.X - Range); x < _lastHoveredPreset.X + Range; x++) { image.SetPixel(x, y, _backupImage.GetPixel(x, y)); } } refresh = true; } if (preset != null && preset != _lastHoveredPreset) { var image = (Bitmap)pbRemote.Image; var rec = new Rectangle(Math.Max(0, preset.X - Range), Math.Max(0, preset.Y - Range), Range * 2, Range * 2); using (var g = Graphics.FromImage(image)) { using (var cloud_brush = new SolidBrush(Color.FromArgb(128, Color.White))) { g.FillEllipse(cloud_brush, rec); } } //for (var y = preset.Y - 30; y < preset.Y + 30; y++) //{ // for (var x = preset.X - 30; x < preset.X + 30; x++) // { // var pixel = image.GetPixel(x, y); // image.SetPixel(x, y, Color.FromArgb(150, 0, 0)); // } //} refresh = true; } if (refresh) { pbRemote.Refresh(); } _lastHoveredPreset = preset; }
public LgPreset(LgPreset preset) : this() { id = GetNewId(); name = preset.name + " (copy)"; appId = preset.appId; foreach (var step in preset.steps) { steps.Add(step); } }
public LgPreset Clone() { var preset = new LgPreset(this); return(preset); }