aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Properties/AssemblyInfo.cs
blob: d36d85f22b6d1b7746c77a7f8ca76d6294682c9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Windows;

[assembly: AssemblyTitle("Tango - Machine Studio Logging Module")]
[assembly: AssemblyVersion("2.0.18.1737")]

[assembly: ComVisible(false)]

[assembly:ThemeInfo(
    ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
                             //(used if a resource is not found in the page,
                             // or application resource dictionaries)
    ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
                                      //(used if a resource is not found in the page,
                                      // app, or any theme specific resource dictionaries)
)]
oc\license.txt) using System; using System.Windows; using System.Windows.Controls; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Threading; using Tango.Scripting.Editors.Rendering; using Tango.Scripting.Editors.Utils; namespace Tango.Scripting.Editors.Editing { sealed class CaretLayer : Layer { bool isVisible; Rect caretRectangle; DispatcherTimer caretBlinkTimer = new DispatcherTimer(); bool blink; public CaretLayer(TextView textView) : base(textView, KnownLayer.Caret) { this.IsHitTestVisible = false; caretBlinkTimer.Tick += new EventHandler(caretBlinkTimer_Tick); } void caretBlinkTimer_Tick(object sender, EventArgs e) { blink = !blink; InvalidateVisual(); } public void Show(Rect caretRectangle) { this.caretRectangle = caretRectangle; this.isVisible = true; StartBlinkAnimation(); InvalidateVisual(); } public void Hide() { if (isVisible) { isVisible = false; StopBlinkAnimation(); InvalidateVisual(); } } void StartBlinkAnimation() { TimeSpan blinkTime = Win32.CaretBlinkTime; blink = true; // the caret should visible initially // This is important if blinking is disabled (system reports a negative blinkTime) if (blinkTime.TotalMilliseconds > 0) { caretBlinkTimer.Interval = blinkTime; caretBlinkTimer.Start(); } } void StopBlinkAnimation() { caretBlinkTimer.Stop(); } internal Brush CaretBrush; protected override void OnRender(DrawingContext drawingContext) { base.OnRender(drawingContext); if (isVisible && blink) { Brush caretBrush = this.CaretBrush; if (caretBrush == null) caretBrush = (Brush)textView.GetValue(TextBlock.ForegroundProperty); Rect r = new Rect(caretRectangle.X - textView.HorizontalOffset, caretRectangle.Y - textView.VerticalOffset, caretRectangle.Width, caretRectangle.Height); drawingContext.DrawRectangle(caretBrush, null, PixelSnapHelpers.Round(r, PixelSnapHelpers.GetPixelSize(this))); } } } }