aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/SideChains/RealTimeGraphX/GraphRect.cs
blob: 823bb059df55ba79cc9bec966094c598c12e8e07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RealTimeGraphX
{
    public struct GraphRect
    {
        public double Top { get; set; }
        public double Left { get; set; }
        public double Width { get; set; }
        public double Height { get; set; }

        public double Right
        {
            get { return Left + Width; }
        }

        public double Bottom
        {
            get { return Top + Height; }
        }

        public GraphRect(double x, double y, double w, double h)
        {
            Left = x;
            Top = y;
            Width = w;
            Height = h;
        }
    }
}
ass="w"> String> typeDescriptionCache; static FileItem() { iconCache = new Dictionary<string, BitmapSource>(); smallIconCache = new Dictionary<string, BitmapSource>(); typeDescriptionCache = new Dictionary<string, string>(); } public FileItem() { Type = FileSystemItemType.File; } public String Extension { get { return System.IO.Path.GetExtension(Path); } } private BitmapSource _icon; public BitmapSource Icon { get { if (_icon == null) { _icon = GetFileIcon(); } return _icon; } } private BitmapSource _smallIcon; public BitmapSource SmallIcon { get { if (_smallIcon == null) { _smallIcon = GetSmallFileIcon(); } return _smallIcon; } } public override string Description { get { if (typeDescriptionCache.ContainsKey(Extension)) { return typeDescriptionCache[Extension]; } else { var tempFile = TemporaryManager.Default.CreateFile(Extension); var shellFile = Microsoft.WindowsAPICodePack.Shell.ShellFile.FromFilePath(tempFile); var text = shellFile.Properties.System.ItemTypeText.Value.ToStringSafe(); shellFile.Dispose(); tempFile.Delete(); typeDescriptionCache.Add(Extension, text); return text; } } } protected BitmapSource GetFileIcon() { if (iconCache.ContainsKey(Extension)) { return iconCache[Extension]; } else { var tempFile = TemporaryManager.Default.CreateFile(Extension); var shellFile = Microsoft.WindowsAPICodePack.Shell.ShellFile.FromFilePath(tempFile); var source = shellFile.Thumbnail.MediumBitmapSource; shellFile.Dispose(); tempFile.Delete(); iconCache.Add(Extension, source); return source; } } private BitmapSource GetSmallFileIcon() { if (smallIconCache.ContainsKey(Extension)) { return smallIconCache[Extension]; } else { var tempFile = TemporaryManager.Default.CreateFile(Extension); var shellFile = Microsoft.WindowsAPICodePack.Shell.ShellFile.FromFilePath(tempFile); var source = shellFile.Thumbnail.SmallBitmapSource; shellFile.Dispose(); tempFile.Delete(); smallIconCache.Add(Extension, source); return source; } } private BitmapSource IconToBitmapSource(Icon icon) { var imageSource = Imaging.CreateBitmapSourceFromHIcon( icon.Handle, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); return imageSource; } } }