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

// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Tango Panel PC Shared Library")]
[assembly: AssemblyVersion("1.0.0.0")]

[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)
)]

//Friends With
[assembly: InternalsVisibleTo("Tango.PPC.UI")]
="c1">// This code is distributed under the GNU LGPL (for details please see \doc\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))); } } } }