private static Icon LoadIcon(IconKind kind) { uint dpi = WindowsTaskbar.Dpi; switch (kind) { case IconKind.EarTrumpet: return(IconHelper.LoadIconForTaskbar((string)App.Current.Resources["EarTrumpetIconDark"], dpi)); case IconKind.EarTrumpet_LightTheme: return(IconHelper.LoadIconForTaskbar((string)App.Current.Resources["EarTrumpetIconLight"], dpi)); case IconKind.Muted: return(IconHelper.LoadIconForTaskbar(SndVolSSO.GetPath(SndVolSSO.IconId.Muted), dpi)); case IconKind.NoDevice: return(IconHelper.LoadIconForTaskbar(SndVolSSO.GetPath(SndVolSSO.IconId.NoDevice), dpi)); case IconKind.SpeakerZeroBars: return(IconHelper.LoadIconForTaskbar(SndVolSSO.GetPath(SndVolSSO.IconId.SpeakerZeroBars), dpi)); case IconKind.SpeakerOneBar: return(IconHelper.LoadIconForTaskbar(SndVolSSO.GetPath(SndVolSSO.IconId.SpeakerOneBar), dpi)); case IconKind.SpeakerTwoBars: return(IconHelper.LoadIconForTaskbar(SndVolSSO.GetPath(SndVolSSO.IconId.SpeakerTwoBars), dpi)); case IconKind.SpeakerThreeBars: return(IconHelper.LoadIconForTaskbar(SndVolSSO.GetPath(SndVolSSO.IconId.SpeakerThreeBars), dpi)); default: throw new NotImplementedException(); } }
public MenuItem(string tag, string name, IconKind icon, Action action) { this.tag = tag; this.name = name; this.icon = icon; this.action = action; }
internal static void ImportLegacyIcons(string platform, PlatformIconKind kind, PlatformIcon[] platformIcons) { if (!Enum.IsDefined(typeof(IconKind), kind.kind)) { return; } IconKind iconKind = (IconKind)kind.kind; Texture2D[] legacyIcons = GetIconsForPlatform(platform, iconKind); int[] legacyIconWidths = GetIconWidthsForPlatform(platform, iconKind); int[] legacyIconHeights = GetIconHeightsForPlatform(platform, iconKind); for (var i = 0; i < legacyIcons.Length; i++) { List <PlatformIcon> selectedIcons = new List <PlatformIcon>(); foreach (var icon in platformIcons) { if (icon.width == legacyIconWidths[i] && icon.height == legacyIconHeights[i]) { selectedIcons.Add(icon); } } foreach (var selectedIcon in selectedIcons) { selectedIcon.SetTextures(legacyIcons[i]); } } }
private static Drawing GetDrawing(IconKind iconKind) { switch (iconKind) { case IconKind.SaveDocument: return(Combine(IconKind.Document, IconKind.Save)); } return(null); }
public ExpanderItemSelection( IconKind icon, string title, ViewModelBase viewModel, Swatch swatch) { Icon = icon; Title = title; ViewModel = viewModel; Swatch = swatch; }
public static Icon CreateAndResolveThroughBuiltInAddons(IconKind kind) { var args = new AddonTrayIconEventArgs { Kind = kind, Icon = Create(kind) }; foreach (var addon in BuiltInItems.OrderBy(b => b.Priority)) { addon.TrayIconChanging(args); } return(args.Icon); }
public override int GetHashCode() { unchecked { var hashCode = Position; hashCode = (hashCode * 397) ^ (SearchText?.GetHashCode() ?? 0); hashCode = (hashCode * 397) ^ Filter.GetHashCode(); hashCode = (hashCode * 397) ^ Highlight.GetHashCode(); hashCode = (hashCode * 397) ^ UseRegex.GetHashCode(); hashCode = (hashCode * 397) ^ IgnoreCase.GetHashCode(); hashCode = (hashCode * 397) ^ (HighlightHue?.GetHashCode() ?? 0); hashCode = (hashCode * 397) ^ (IconKind?.GetHashCode() ?? 0); hashCode = (hashCode * 397) ^ IsGlobal.GetHashCode(); hashCode = (hashCode * 397) ^ IsExclusion.GetHashCode(); return(hashCode); } }
public static Icon CreateAndResolveAll(IconKind kind) { var items = BuiltInItems.ToList(); if (AddonItems != null) { items.AddRange(AddonItems); } items = items.OrderBy(b => b.Priority).ToList(); var args = new AddonTrayIconEventArgs { Kind = kind, Icon = Create(kind) }; foreach (var addon in items) { addon.TrayIconChanging(args); } return(args.Icon); }
private Icon SelectAndLoadIcon(IconKind kind) { if (_settings.UseLegacyIcon) { kind = IconKind.EarTrumpet; } try { if (System.Windows.SystemParameters.HighContrast) { using (var icon = LoadIcon(kind)) { return(ColorIconForHighContrast(icon, kind, _isMouseOver)); } } else if (SystemSettings.IsSystemLightTheme) { if (kind == IconKind.EarTrumpet) { return(LoadIcon(IconKind.EarTrumpet_LightTheme)); } else { using (var icon = LoadIcon(kind)) { return(ColorIconForLightTheme(icon, kind)); } } } else { return(LoadIcon(kind)); } } // Legacy fallback if SndVolSSD.dll icons are unavailable. catch (Exception ex) when(kind != IconKind.EarTrumpet) { Trace.WriteLine($"TaskbarIconSource LoadIcon: {ex}"); return(SelectAndLoadIcon(IconKind.EarTrumpet)); } }
// Returns a list of icon sizes for the specified platform of a specific kind. public static int[] GetIconSizesForTargetGroup(BuildTargetGroup platform, IconKind kind) { if (platform == BuildTargetGroup.iOS || platform == BuildTargetGroup.tvOS || platform == BuildTargetGroup.Android) { IPlatformIconProvider iconProvider = GetPlatformIconProvider(platform); if (iconProvider == null) { return new int[] {} } ; PlatformIconKind platformIconKind = iconProvider.GetPlatformIconKindFromEnumValue(kind); return(GetPlatformIcons(platform, platformIconKind).Select(s => s.width).ToArray()); } else { return(GetIconWidthsForPlatform(GetPlatformName(platform), kind)); } }
// Returns the list of assigned icons for the specified platform of a specific kind. public static Texture2D[] GetIconsForTargetGroup(BuildTargetGroup platform, IconKind kind) { if (platform == BuildTargetGroup.iOS || platform == BuildTargetGroup.tvOS || platform == BuildTargetGroup.Android) { IPlatformIconProvider iconProvider = GetPlatformIconProvider(platform); if (iconProvider == null) { return new Texture2D[] {} } ; PlatformIconKind platformIconKind = iconProvider.GetPlatformIconKindFromEnumValue(kind); return(GetPlatformIcons(platform, platformIconKind).Select(t => t.GetTexture(0)).ToArray()); } else { Texture2D[] icons = GetIconsForPlatform(GetPlatformName(platform), kind); return(icons); } }
internal static Brush GetBrush(IconKind iconKind) { if (Brushes.ContainsKey(iconKind)) { return(Brushes[iconKind]); } Drawing drawing = null; if (Instance.Contains(iconKind)) { drawing = Instance[iconKind] as Drawing; } else { drawing = GetDrawing(iconKind); } var brush = new DrawingBrush(drawing); brush.Freeze(); Brushes.Add(iconKind, brush); return(brush); }
public static Icon Create(IconKind kind) { switch (kind) { case IconKind.Invalid: throw new InvalidOperationException("invalid icon"); case IconKind.OriginalIcon: return(new Icon(Application.GetResourceStream(new Uri("pack://application:,,,/EarTrumpet;component/Assets/Tray.ico")).Stream)); default: try { return(IconUtils.GetIconFromFile(Interop.SndVolSSO.DllPath, (int)kind, WindowsTaskbar.Current.Dpi > 1)); } catch (Exception ex) { Trace.WriteLine($"Couldn't load icon: {ex}"); return(Create(IconKind.OriginalIcon)); } } throw new NotImplementedException(); }
public static Icon ColorIcon(Icon originalIcon, IconKind kind, System.Windows.Media.Color newColor) { using (var bitmap = originalIcon.ToBitmap()) { originalIcon.Dispose(); for (int y = 0; y < bitmap.Height; y++) { for (int x = 0; x < bitmap.Width * (kind == IconKind.NoDevice ? 0.4 : 1); x++) { var pixel = bitmap.GetPixel(x, y); if (pixel.R > 220) { bitmap.SetPixel(x, y, System.Drawing.Color.FromArgb(pixel.A, newColor.R, newColor.G, newColor.B)); } } } return(Icon.FromHandle(bitmap.GetHicon())); } }
internal static extern int[] GetIconHeightsForPlatform(string platform, IconKind kind);
internal static extern Texture2D GetIconForPlatformAtSize(string platform, int width, int height, IconKind kind);
internal static extern void SetIconsForPlatform(string platform, Texture2D[] icons, IconKind kind);
internal static extern int[] GetIconWidthsForPlatform(string platform, IconKind kind);
public IconExtension( IconKind kind, double size) : this(kind) { Size = size; }
internal static extern Texture2D[] GetIconsForPlatform(string platform, IconKind kind);
private static Drawing Combine(IconKind middle, IconKind leftTop = IconKind.Default, IconKind rightTop = IconKind.Default, IconKind rightBottom = IconKind.Default, IconKind leftBottom = IconKind.Default) { double middleHeight = 1; double middleWidth = 1; Point middleCenter = new Point(8, 8); if ((leftTop | rightTop) != IconKind.Default) { middleHeight -= 0.1; middleCenter.Y += 8; } if ((leftBottom | rightBottom) != IconKind.Default) { middleHeight -= 0.1; middleCenter.Y -= 8; } if ((rightTop | rightBottom) != IconKind.Default) { middleWidth -= 0.1; middleCenter.X -= 8; } if ((leftTop | leftBottom) != IconKind.Default) { middleWidth -= 0.1; middleCenter.X += 8; } Contract.Assert(middleWidth != 1 || middleHeight != 1); DrawingGroup drawingGroup = new DrawingGroup(); var baseDrawing = (Instance[middle] as DrawingGroup).Clone(); baseDrawing.Transform = new ScaleTransform(middleWidth, middleHeight, middleCenter.X, middleCenter.Y); drawingGroup.Children.Add(baseDrawing); DrawingGroup modifier = null; if (leftTop != IconKind.Default) { modifier = (Instance[leftTop] as DrawingGroup).Clone(); modifier.Transform = new ScaleTransform(0.5, 0.5, 0, 0); drawingGroup.Children.Add(modifier); } if (rightTop != IconKind.Default) { modifier = (Instance[rightTop] as DrawingGroup).Clone(); modifier.Transform = new ScaleTransform(0.5, 0.5, 16, 0); drawingGroup.Children.Add(modifier); } if (rightBottom != IconKind.Default) { modifier = (Instance[rightBottom] as DrawingGroup).Clone(); modifier.Transform = new ScaleTransform(0.5, 0.5, 16, 16); drawingGroup.Children.Add(modifier); } if (leftBottom != IconKind.Default) { modifier = (Instance[leftBottom] as DrawingGroup).Clone(); modifier.Transform = new ScaleTransform(0.5, 0.5, 0, 16); drawingGroup.Children.Add(modifier); } drawingGroup.Freeze(); return(drawingGroup); }
public IconExtension( IconKind kind) : this() { Kind = kind; }
private static Icon ColorIconForHighContrast(Icon darkIcon, IconKind kind, bool isMouseOver) { return(IconHelper.ColorIcon(darkIcon, GetIconFillPercent(kind), isMouseOver ? System.Windows.SystemColors.HighlightTextColor : System.Windows.SystemColors.WindowTextColor)); }
private void OnTrayPropertyChanged() { _kind = IconKindFromDeviceCollection(_collection); CheckForUpdate(); }
private static Icon ColorIconForLightTheme(Icon darkIcon, IconKind kind) { return(IconHelper.ColorIcon(darkIcon, GetIconFillPercent(kind), System.Windows.Media.Colors.Black)); }
// Only fill part of the icon, so we can preserve the red X. private static double GetIconFillPercent(IconKind kind) => kind == IconKind.NoDevice ? 0.4 : 1;
private void SetLegacyPlatformIcons(string platform, Texture2D[] icons, IconKind kind, ref LegacyBuildTargetIcons[] allIcons) { allIcons = PlayerSettings.SetPlatformIconsForTargetIcons(platform, icons, kind, allIcons); SerializeLegacyIcons(); }
public MenuItem(string name, IconKind icon) { this.name = name; this.icon = icon; }
// Old API methods, will be made obsolete when the new API is implemented for all platforms, // currently it functions as a wrapper for the new API for all platforms that support it (iOS, Android & tvOS). public static void SetIconsForTargetGroup(BuildTargetGroup platform, Texture2D[] icons, IconKind kind) { if (platform == BuildTargetGroup.iOS || platform == BuildTargetGroup.tvOS || platform == BuildTargetGroup.Android) { IPlatformIconProvider iconProvider = GetPlatformIconProvider(platform); if (iconProvider == null) { return; } PlatformIconKind platformIconKind = iconProvider.GetPlatformIconKindFromEnumValue(kind); PlatformIcon[] platformIcons = GetPlatformIcons(platform, platformIconKind); for (var i = 0; i < icons.Length; i++) { platformIcons[i].SetTexture(icons[i], 0); } SetPlatformIcons(platform, platformIconKind, platformIcons); } else { SetIconsForPlatform(GetPlatformName(platform), icons, kind); } }