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;
        }
示例#2
0
        public LgPreset(LgPreset preset) : this()
        {
            id    = GetNewId();
            name  = preset.name + " (copy)";
            appId = preset.appId;

            foreach (var step in preset.steps)
            {
                steps.Add(step);
            }
        }
示例#3
0
        public LgPreset Clone()
        {
            var preset = new LgPreset(this);

            return(preset);
        }