/// <summary> /// Draws overlay. /// </summary> public void Draw(IEditableFrame Editor, Func <Point, Point> Transform = null) { _mouseClickOverlay?.Draw(Editor, Transform); _scrollOverlay?.Draw(Editor, Transform); _keyOverlay?.Draw(Editor, Transform); }
static void DrawKeys(KeystrokesSettings KeystrokesSettings, IEditableFrame Editor, string Text, IFont Font, byte Opacity, float OffsetY) { var size = Editor.MeasureString(Text, Font); int paddingX = KeystrokesSettings.HorizontalPadding, paddingY = KeystrokesSettings.VerticalPadding; var rect = new RectangleF(GetLeft(KeystrokesSettings, Editor.Width, size.Width), GetTop(KeystrokesSettings, Editor.Height, size.Height, OffsetY), size.Width + 2 * paddingX, size.Height + 2 * paddingY); Editor.FillRectangle(Color.FromArgb(Opacity, KeystrokesSettings.BackgroundColor), rect, KeystrokesSettings.CornerRadius); Editor.DrawString(Text, Font, Color.FromArgb(Opacity, KeystrokesSettings.FontColor), new RectangleF(rect.Left + paddingX, rect.Top + paddingY, size.Width, size.Height)); var border = KeystrokesSettings.BorderThickness; if (border > 0) { rect = new RectangleF(rect.Left - border / 2f, rect.Top - border / 2f, rect.Width + border, rect.Height + border); Editor.DrawRectangle(Color.FromArgb(Opacity, KeystrokesSettings.BorderColor), border, rect, KeystrokesSettings.CornerRadius); } }
public void Draw(IEditableFrame Editor, Func <Point, Point> PointTransform = null) { if (!_settings.DisplayScroll) { return; } if (_lastArgs is { } args) { var p = args.Location; var r = _settings.Radius; var d = 2 * r; Editor.FillEllipse(_settings.ScrollCircleColor, new RectangleF(p.X - r, p.Y - r, d, d)); var above = new Point(p.X, p.Y + r / 2); var below = new Point(p.X, p.Y - r / 2); // Scroll down if (args.Delta < 0) { (above, below) = (below, above); } Editor.DrawArrow(above, below, _settings.ScrollArrowColor, r / 4f); _lastArgs = null; } }
/// <summary> /// Draws overlay. /// </summary> public void Draw(IEditableFrame Editor, Func <Point, Point> Transform = null) { if (!_settings.Display) { return; } var clickRadius = _settings.Radius; var curPos = MouseCursor.CursorPosition; if (Transform != null) { curPos = Transform(curPos); } var d = clickRadius * 2; var x = curPos.X - clickRadius; var y = curPos.Y - clickRadius; Editor.FillEllipse(_settings.Color, new RectangleF(x, y, d, d)); var border = _settings.BorderThickness; if (border > 0) { x -= border / 2; y -= border / 2; d += border; Editor.DrawEllipse(_settings.BorderColor, border, new RectangleF(x, y, d, d)); } }
public void Draw(IEditableFrame Editor, Func <Point, Point> PointTransform = null) { var img = GetImage(Editor); if (img == null) { return; } var targetSize = new Size(img.Width, img.Height); try { if (Settings.Resize) { targetSize = new Size(Settings.ResizeWidth, Settings.ResizeHeight); } var point = GetPosition(new Size((int)Editor.Width, (int)Editor.Height), targetSize); var destRect = new Rectangle(point, targetSize); Editor.DrawImage(img, destRect, Settings.Opacity); } catch { } finally { if (_disposeImages) { img.Dispose(); } } }
protected void Draw(IEditableFrame Editor, IBitmapImage Image, PointF Position, SizeF?Size, int Opacity) { if (Image == null) { return; } var targetSize = Size ?? new Size(Image.Width, Image.Height); try { //var point = GetPosition(new Size((int)Editor.Width, (int)Editor.Height), targetSize); var destRect = new RectangleF(Position, targetSize); Editor.DrawImage(Image, destRect, Opacity); } catch { } finally { if (_disposeImages) { Image.Dispose(); } } }
public void Draw(IEditableFrame Editor, Func <Point, Point> PointTransform) { var repeat = (_repeat == 0 ? "" : $" x {_repeat + 1}"); var text = $"{Text}{repeat}"; DrawString(Editor, text, _settings); }
public override void Draw(IEditableFrame Editor, Func <Point, Point> PointTransform = null) { var pos = _settings.GetPosition(Editor.Width, Editor.Height); var w = _settings.GetWidth(Editor.Width); var h = _settings.GetHeight(Editor.Height); Draw(Editor, GetImage(Editor), pos, new SizeF(w, h), _settings.Opacity); }
protected override IBitmapImage GetImage(IEditableFrame Editor) { // No Webcam if (_webcamModel.AvailableCams.Count < 1 || _webcamModel.SelectedCam is NoWebcamItem) { return(null); } return(_webcamModel.WebcamCapture?.Capture(Editor)); }
protected override IBitmapImage GetImage(IEditableFrame Editor) { // No Webcam if (_webCamProvider.AvailableCams.Count < 1 || _webCamProvider.SelectedCam == _webCamProvider.AvailableCams[0]) { return(null); } return(_webCamProvider.Capture(Editor)); }
protected override IDisposable GetImage(IEditableFrame Editor, out Size Size) { if (_bmp == null) { _bmp = Editor.LoadBitmap(Settings.Source, out _size); } Size = _size; return(_bmp); }
protected override IDisposable GetImage(IEditableFrame Editor, out Size Size) { Size = new Size(_webCamProvider.Width, _webCamProvider.Height); // No Webcam if (_webCamProvider.AvailableCams.Count < 1 || _webCamProvider.SelectedCam == _webCamProvider.AvailableCams[0]) { return(null); } return(_webCamProvider.Capture(Editor)); }
public override void Draw(IEditableFrame Editor, Func <Point, Point> PointTransform) { var start = StartPoint; var end = EndPoint; if (PointTransform != null) { start = PointTransform(start); end = PointTransform(end); } Editor.DrawArrow(start, end, _settings.Color, _settings.Radius); base.Draw(Editor, PointTransform); }
public override void Draw(IEditableFrame Editor, Func <Point, Point> PointTransform = null) { var img = GetImage(Editor); var size = new Size(img.Width, img.Height); if (_settings.Resize) { size = new Size(_settings.ResizeWidth, _settings.ResizeHeight); } var pos = GetPosition(new SizeF(Editor.Width, Editor.Height), size); Draw(Editor, img, pos, size, _settings.Opacity); }
public static void Draw(IEditableFrame G, Func <Point, Point> Transform = null) { GetIcon(Transform, out var icon, out var location); if (icon == null) { return; } try { G.DrawImage(new DrawingImage(icon), new Rectangle(location, icon.Size)); } catch (ArgumentException) { } }
public virtual void Draw(IEditableFrame editor, Func <Point, Point> pointTransform = null) { if (!_overlaySettings.Display) { return; } var text = GetText(); if (string.IsNullOrWhiteSpace(text)) { return; } var fontSize = _overlaySettings.FontSize; var size = editor.MeasureString(text, fontSize); int paddingX = _overlaySettings.HorizontalPadding, paddingY = _overlaySettings.VerticalPadding; var rect = new RectangleF(GetLeft(_overlaySettings, editor.Width, size.Width), GetTop(_overlaySettings, editor.Height, size.Height), size.Width + 2 * paddingX, size.Height + 2 * paddingY); editor.FillRectangle(_overlaySettings.BackgroundColor, rect, _overlaySettings.CornerRadius); editor.DrawString(text, fontSize, _overlaySettings.FontColor, new RectangleF(rect.Left + paddingX, rect.Top + paddingY, size.Width, size.Height)); var border = _overlaySettings.BorderThickness; if (border <= 0) { return; } rect = new RectangleF(rect.Left - border / 2f, rect.Top - border / 2f, rect.Width + border, rect.Height + border); editor.DrawRectangle(_overlaySettings.BorderColor, border, rect, _overlaySettings.CornerRadius); }
public void Draw(IEditableFrame Editor, Func <Point, Point> PointTransform = null) { foreach (var overlaySetting in _overlaySettings) { if (!overlaySetting.Display) { continue; } Editor.FillRectangle(Color.Black, new RectangleF( GetLeft(overlaySetting, Editor.Width), GetTop(overlaySetting, Editor.Height), overlaySetting.Width, overlaySetting.Height)); } }
public void Draw(IEditableFrame Editor, Func <Point, Point> PointTransform = null) { if (!_settings.Display) { return; } if (_records?.Last == null) { return; } var offsetY = 0f; var fontSize = _settings.FontSize; byte opacity = 255; var index = 0; foreach (var keyRecord in _records) { ++index; if ((DateTime.Now - keyRecord.TimeStamp).TotalSeconds > _records.Size * _settings.Timeout) { continue; } using (var font = Editor.GetFont(_settings.FontFamily, Math.Max(1, fontSize))) { DrawKeys(_settings, Editor, keyRecord.Display, font, opacity, offsetY); var height = Editor.MeasureString("A", font).Height; offsetY += height + _settings.HistorySpacing; offsetY += _settings.VerticalPadding * 2 + _settings.BorderThickness * 2; } if (index == 1) { fontSize -= 5; opacity = 200; } } }
public override void Draw(IEditableFrame Editor, Func <Point, Point> PointTransform = null) { var curPos = Args.Location; if (PointTransform != null) { curPos = PointTransform(curPos); } float clickRadius = _settings.Radius; var d = clickRadius * 2; var x = curPos.X - clickRadius; var y = curPos.Y - clickRadius; var color = GetClickCircleColor(); Editor.FillEllipse(color, new RectangleF(x, y, d, d)); var border = _settings.BorderThickness; if (border > 0) { x -= border / 2f; y -= border / 2f; d += border; var borderColor = _settings.BorderColor; Editor.DrawEllipse(borderColor, border, new RectangleF(x, y, d, d)); } if (Args.Clicks > 1) { var font = Editor.GetFont("Arial", 15); Editor.DrawString(Args.Clicks.ToString(), font, Color.Black, new RectangleF(x + 10, y + 10, d, d)); } base.Draw(Editor, PointTransform); }
public static void DrawString(IEditableFrame Editor, string Text, KeystrokesSettings Settings) { if (string.IsNullOrWhiteSpace(Text)) { return; } using (var font = Editor.GetFont(Settings.FontFamily, Settings.FontSize)) { var size = Editor.MeasureString(Text, font); int paddingX = Settings.HorizontalPadding, paddingY = Settings.VerticalPadding; var rect = new RectangleF(KeyOverlay.GetLeft(Settings, Editor.Width, size.Width), KeyOverlay.GetTop(Settings, Editor.Height, size.Height), size.Width + 2 * paddingX, size.Height + 2 * paddingY); Editor.FillRectangle(Settings.BackgroundColor, rect, Settings.CornerRadius); Editor.DrawString(Text, font, Settings.FontColor, new RectangleF(rect.Left + paddingX, rect.Top + paddingY, size.Width, size.Height)); var border = Settings.BorderThickness; if (border > 0) { rect = new RectangleF(rect.Left - border / 2f, rect.Top - border / 2f, rect.Width + border, rect.Height + border); Editor.DrawRectangle(Settings.BorderColor, border, rect, Settings.CornerRadius); } } }
public override void Draw(IEditableFrame Editor, Func <Point, Point> PointTransform) { var p = Args.Location; var r = _settings.Radius; var d = 2 * r; Editor.FillEllipse(_settings.Color, new RectangleF(p.X - r, p.Y - r, d, d)); var above = new Point(p.X, p.Y + r / 2); var below = new Point(p.X, p.Y - r / 2); if (Args.Delta < 0) { (above, below) = (below, above); } Editor.DrawArrow(above, below, _settings.BorderColor, r / 4f); base.Draw(Editor, PointTransform); }
public override void Draw(IEditableFrame Editor, Func <Point, Point> PointTransform = null) { // No Webcam if (_webcamModel.AvailableCams.Count < 1 || _webcamModel.SelectedCam is NoWebcamItem) { return; } var cap = _webcamModel.WebcamCapture; if (cap == null) { return; } var pos = _settings.GetPosition(Editor.Width, Editor.Height); var w = _settings.GetWidth(Editor.Width); var h = _settings.GetHeight(Editor.Height); var imgWbyH = cap.Width / cap.Height; var frameWbyH = w / h; if (imgWbyH > frameWbyH) { var newH = w / imgWbyH; pos.Y += (h - newH) / 2; h = newH; } else { var newW = h * imgWbyH; pos.X += (w - newW) / 2; w = newW; } Draw(Editor, GetImage(Editor), pos, new SizeF(w, h), _settings.Opacity); }
public override void Draw(IEditableFrame Editor, Func <Point, Point> PointTransform = null) { // No Webcam if (_webcamModel.AvailableCams.Count < 1 || _webcamModel.SelectedCam is NoWebcamItem) { return; } var cap = _webcamCapture.Value; if (cap == null) { return; } var frameSize = new Size((int)Editor.Width, (int)Editor.Height); var webcamSize = new Size(cap.Width, cap.Height); var pos = _settings.GetPosition(frameSize, webcamSize); var size = _settings.GetSize(frameSize, webcamSize); Draw(Editor, GetImage(Editor), pos, size, _settings.Opacity); }
IBitmapImage GetImage(IEditableFrame Editor) { return(_bmp ??= Editor.LoadBitmap(_settings.Source)); }
public abstract void Draw(IEditableFrame Editor, Func <Point, Point> PointTransform = null);
public virtual void Draw(IEditableFrame Editor, Func <Point, Point> PointTransform) { KeyStep.DrawString(Editor, _modifierStates.ToString(_keymap), _keystrokesSettings); }
IBitmapImage GetImage(IEditableFrame Editor) { return(_webcamModel.WebcamCapture?.Capture(Editor)); }
protected abstract IBitmapImage GetImage(IEditableFrame Editor);
protected abstract IDisposable GetImage(IEditableFrame Editor, out Size Size);
public void Draw(IEditableFrame Editor, Func <Point, Point> PointTransform = null) { if (!_settings.Display) { return; } if (_clicked && _currentMouseRatio < MouseRatioMax) { _currentMouseRatio += MouseRatioDeltaUp; if (_currentMouseRatio > MouseRatioMax) { _currentMouseRatio = MouseRatioMax; } } else if (!_clicked && _currentMouseRatio > MouseRatioMin) { _currentMouseRatio -= MouseRatioDeltaDown; if (_currentMouseRatio < MouseRatioMin) { _currentMouseRatio = MouseRatioMin; } } if (_currentMouseRatio > MouseRatioMin) { var clickRadius = _settings.Radius * _currentMouseRatio; var platformServices = ServiceProvider.Get <IPlatformServices>(); var curPos = platformServices.CursorPosition; if (PointTransform != null) { curPos = PointTransform(curPos); } var d = clickRadius * 2; var x = curPos.X - clickRadius; var y = curPos.Y - clickRadius; var color = GetClickCircleColor(); color = Color.FromArgb(ToByte(color.A * _currentMouseRatio), color); Editor.FillEllipse(color, new RectangleF(x, y, d, d)); var border = _settings.BorderThickness * _currentMouseRatio; if (border > 0) { x -= border / 2f; y -= border / 2f; d += border; var borderColor = _settings.BorderColor; borderColor = Color.FromArgb(ToByte(borderColor.A * _currentMouseRatio), borderColor); Editor.DrawEllipse(borderColor, border, new RectangleF(x, y, d, d)); } } }