/// <inheritdoc/> public override bool ProcessMouse(SadConsole.Input.MouseScreenObjectState info) { if (Parent.Host.CapturedControl == this) { if (info.Mouse.LeftButtonDown == false) { Parent.Host.ReleaseControl(); } else { var newState = new ControlMouseState(this, info); var location = newState.MousePosition; //if (info.ConsolePosition.X >= Position.X && info.ConsolePosition.X < Position.X + Width) if (location.X >= -6 && location.X <= Width + 5 && location.Y > -4 && location.Y < Height + 3) { Surface[_selectedColorPosition.X, _selectedColorPosition.Y].Glyph = 0; _selectedColorPosition = new Point(Math.Clamp(location.X, 0, Width - 1), Math.Clamp(location.Y, 0, Height - 1)); SelectedColorSafe = Surface[_selectedColorPosition.X, _selectedColorPosition.Y].Background; Surface[_selectedColorPosition.X, _selectedColorPosition.Y].Glyph = 4; } IsDirty = true; } } return(base.ProcessMouse(info)); }
/// <inheritdoc/> public override bool ProcessMouse(SadConsole.Input.MouseScreenObjectState info) { if (Parent.Host.CapturedControl == this) { if (info.Mouse.LeftButtonDown == false) { Parent.Host.ReleaseControl(); } else { var newState = new ControlMouseState(this, info); Point location = newState.MousePosition; //if (info.ConsolePosition.X >= Position.X && info.ConsolePosition.X < Position.X + Width) if (location.X >= 0 && location.X <= Width - 1 && location.Y > -4 && location.Y < Height + 3) { SelectedPosition = location.X; SelectedColorSafe = Surface[SelectedPosition, 0].Foreground; } IsDirty = true; } } return(base.ProcessMouse(info)); }