public void ItemInfoBinding() { TaskbarButtonService taskbarServiceImpl = new TaskbarButtonService(); Interaction.GetBehaviors(RealWindow).Add(taskbarServiceImpl); EnqueueShowRealWindow(); ITaskbarButtonService taskbarService = taskbarServiceImpl; ImageSource icon_1 = ApplicationJumpListServiceTestsImageSourceHelper.GetImageSource(AssemblyHelper.GetResourceUri(typeof(TaskbarButtonServiceTests).Assembly, "Icons/icon1.ico")); ThumbButtonInfo thumbButtonInfo = new ThumbButtonInfo() { Description = "thumbButton51" }; RealWindow.TaskbarItemInfo.ProgressValue = 0.5; RealWindow.TaskbarItemInfo.ProgressState = TaskbarItemProgressState.Error; RealWindow.TaskbarItemInfo.Overlay = icon_1; RealWindow.TaskbarItemInfo.Description = "test1"; RealWindow.TaskbarItemInfo.ThumbButtonInfos.Add(thumbButtonInfo); RealWindow.TaskbarItemInfo.ThumbnailClipMargin = new Thickness { Bottom = 1, Left = 50, Right = 99, Top = 11 }; Assert.AreEqual(0.5, taskbarService.ProgressValue); Assert.AreEqual(TaskbarItemProgressState.Error, taskbarService.ProgressState); Assert.AreEqual(icon_1, taskbarService.OverlayIcon); Assert.AreEqual("test1", taskbarService.Description); AssertHelper.AssertEnumerablesAreEqual(new TaskbarThumbButtonInfo[] { new TaskbarThumbButtonInfo() { Description = "thumbButton51" } }, taskbarService.ThumbButtonInfos, true, new string[] { "ItemInfo" }); Assert.AreEqual(new Thickness { Bottom = 1, Left = 50, Right = 99, Top = 11 }, taskbarService.ThumbnailClipMargin); }
public static void ThumbnailToolbar(IntPtr handle, ThumbButtonInfo Button) { if (!Win7.IsWin7) { return; } //Button.ImageSource = ; taskbar.ThumbButtonInfos.Add(Button); }
static void OnTaskbarThumbButtonInfoPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e, Action <TaskbarThumbButtonInfo, ThumbButtonInfo> setPropertyAction) { TaskbarThumbButtonInfo taskbarThumbButtonInfo = (TaskbarThumbButtonInfo)d; if (GetDoNotProcessPropertyChanged(taskbarThumbButtonInfo)) { return; } ThumbButtonInfo thumbButtonInfo = GetThumbButtonInfo(taskbarThumbButtonInfo).Content; ButtonInfoSetProperty(taskbarThumbButtonInfo, thumbButtonInfo, setPropertyAction); }
static void TaskbarThumbButtonInfoSetPropertiesCore(ThumbButtonInfo thumbButtonInfo, TaskbarThumbButtonInfo taskbarThumbButtonInfo) { CopyIfNeeded(taskbarThumbButtonInfo.CommandParameter, thumbButtonInfo.CommandParameter, x => taskbarThumbButtonInfo.CommandParameter = x); CopyCommandIsNeeded(thumbButtonInfo, taskbarThumbButtonInfo); CopyIfNeeded(taskbarThumbButtonInfo.Description, thumbButtonInfo.Description, x => taskbarThumbButtonInfo.Description = x); CopyIfNeeded(taskbarThumbButtonInfo.DismissWhenClicked, thumbButtonInfo.DismissWhenClicked, x => taskbarThumbButtonInfo.DismissWhenClicked = x); CopyIfNeeded(taskbarThumbButtonInfo.ImageSource, thumbButtonInfo.ImageSource, x => taskbarThumbButtonInfo.ImageSource = x); CopyIfNeeded(taskbarThumbButtonInfo.IsBackgroundVisible, thumbButtonInfo.IsBackgroundVisible, x => taskbarThumbButtonInfo.IsBackgroundVisible = x); CopyIfNeeded(taskbarThumbButtonInfo.IsEnabled, thumbButtonInfo.IsEnabled, x => taskbarThumbButtonInfo.IsEnabled = x); CopyIfNeeded(taskbarThumbButtonInfo.IsInteractive, thumbButtonInfo.IsInteractive, x => taskbarThumbButtonInfo.IsInteractive = x); CopyIfNeeded(taskbarThumbButtonInfo.Visibility, thumbButtonInfo.Visibility, x => taskbarThumbButtonInfo.Visibility = x); }
static void UnsubscribeFromThumbButtonInfoPropertiesChanged(ThumbButtonInfo thumbButtonInfo) { ClearListenPropertyBinding(thumbButtonInfo, ThumbButtonInfoCommandParameterProperty); ClearListenPropertyBinding(thumbButtonInfo, ThumbButtonInfoCommandProperty); ClearListenPropertyBinding(thumbButtonInfo, ThumbButtonInfoDescriptionProperty); ClearListenPropertyBinding(thumbButtonInfo, ThumbButtonInfoDismissWhenClickedProperty); ClearListenPropertyBinding(thumbButtonInfo, ThumbButtonInfoImageSourceProperty); ClearListenPropertyBinding(thumbButtonInfo, ThumbButtonInfoIsBackgroundVisibleProperty); ClearListenPropertyBinding(thumbButtonInfo, ThumbButtonInfoIsEnabledProperty); ClearListenPropertyBinding(thumbButtonInfo, ThumbButtonInfoIsInteractiveProperty); ClearListenPropertyBinding(thumbButtonInfo, ThumbButtonInfoVisibilityProperty); }
public static TaskbarThumbButtonInfo UnWrap(ThumbButtonInfo thumbButtonInfo) { TaskbarThumbButtonInfo taskbarThumbButtonInfo = GetTaskbarThumbButtonInfo(thumbButtonInfo).Content; if (taskbarThumbButtonInfo == null) { taskbarThumbButtonInfo = new TaskbarThumbButtonInfo(); ButtonInfoSetProperty(thumbButtonInfo, taskbarThumbButtonInfo, TaskbarThumbButtonInfoSetPropertiesCore); SetThumbButtonInfo(taskbarThumbButtonInfo, new Container <ThumbButtonInfo>(thumbButtonInfo)); } return(taskbarThumbButtonInfo); }
static void ClickThumbButton(ThumbButtonInfo thumbButtonInfo) { EventHandler clickHandler = (EventHandler)typeof(ThumbButtonInfo).GetField("Click", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(thumbButtonInfo); if (clickHandler != null) { clickHandler(thumbButtonInfo, EventArgs.Empty); } if (thumbButtonInfo.Command != null && thumbButtonInfo.Command.CanExecute(thumbButtonInfo.CommandParameter)) { thumbButtonInfo.Command.Execute(thumbButtonInfo.CommandParameter); } }
public static void ThumbnailToolbar(String Command, String Description, String Image) { if (!Win7.IsWin7) { return; } ThumbButtonInfo Button = new ThumbButtonInfo(); //Button.Command = Command; Button.Description = Description; Button.ImageSource = (DrawingImage)Application.Current.FindResource(Image); taskbar.ThumbButtonInfos.Add(Button); }
static void CopyCommandIsNeeded(ThumbButtonInfo thumbButtonInfo, TaskbarThumbButtonInfo taskbarThumbButtonInfo) { ThumbButtonInfoCommand command = thumbButtonInfo.Command as ThumbButtonInfoCommand; if (command != null) { CopyIfNeeded(taskbarThumbButtonInfo.Command, command.InternalCommand, x => taskbarThumbButtonInfo.Command = x); CopyIfNeeded(taskbarThumbButtonInfo.Action, command.Action, x => taskbarThumbButtonInfo.Action = x); ITaskbarThumbButtonInfo taskbarThumbButtonInfoInternal = taskbarThumbButtonInfo; CopyIfNeeded(taskbarThumbButtonInfoInternal.Click, command.Click, x => taskbarThumbButtonInfoInternal.Click = x); } else { taskbarThumbButtonInfo.Command = command; } }
public MainWindow(App application) { app = application; Width = app.Settings.Width; Height = app.Settings.Height; Title = Properties.Resources.AppName; Icon = ImageConverter.IconToBitmapFrame(CW.Properties.Resources.CW); StateChanged += MainWindowStateChanged; SourceInitialized += MainWindowSourceInitialized; SizeChanged += MainWindowSizeChanged; Closing += MainWindowClosing; Closed += MainWindowClosed; TaskbarItemInfo = new TaskbarItemInfo() { Description = Properties.Resources.AppName, ThumbButtonInfos = new ThumbButtonInfoCollection() }; ThumbButtonClear = new ThumbButtonInfo() { Description = app.Language.ClearDescription, ImageSource = ImageConverter.IconToBitmapFrame(CW.Properties.Resources.Clear) }; ThumbButtonClear.Click += ThumbButtonClearClick; TaskbarItemInfo.ThumbButtonInfos.Add(ThumbButtonClear); CommandBindings.Add ( new CommandBinding ( ApplicationCommands.Close, CloseCmdExecuted, CmdAlwaysCanExecute ) ); Grid1 = new Grid() { Background = app.Resources["BackgroungBrush"] as Brush }; CreateMainMenu(); CreateToolBar(); CreateListView(); CreateTabControl(); CreateStatusBar(); Content = Grid1; InitializeNotify(); IsAutorun = false; }
static void OnTaskbarThumbButtonInfoChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { ThumbButtonInfo thumbButtonInfo = (ThumbButtonInfo)d; Container <TaskbarThumbButtonInfo> newValue = (Container <TaskbarThumbButtonInfo>)e.NewValue; Container <TaskbarThumbButtonInfo> oldValue = (Container <TaskbarThumbButtonInfo>)e.OldValue; if (oldValue.Content != null) { UnsubscribeFromTaskbarThumbButtonInfoPropertiesChanged(oldValue.Content); if (GetThumbButtonInfo(oldValue.Content).Content == thumbButtonInfo) { SetThumbButtonInfo(oldValue.Content, new Container <ThumbButtonInfo>(null)); } } if (newValue.Content != null) { SetThumbButtonInfo(newValue.Content, new Container <ThumbButtonInfo>(thumbButtonInfo)); SubscribeToTaskbarThumbButtonInfoPropertiesChanged(newValue.Content); } }
static void SubscribeToThumbButtonInfoPropertiesChanged(ThumbButtonInfo thumbButtonInfo) { BindingOperations.SetBinding(thumbButtonInfo, ThumbButtonInfoCommandParameterProperty, new Binding("CommandParameter") { Source = thumbButtonInfo, Mode = BindingMode.OneWay }); BindingOperations.SetBinding(thumbButtonInfo, ThumbButtonInfoCommandProperty, new Binding("Command") { Source = thumbButtonInfo, Mode = BindingMode.OneWay }); BindingOperations.SetBinding(thumbButtonInfo, ThumbButtonInfoDescriptionProperty, new Binding("Description") { Source = thumbButtonInfo, Mode = BindingMode.OneWay }); BindingOperations.SetBinding(thumbButtonInfo, ThumbButtonInfoDismissWhenClickedProperty, new Binding("DismissWhenClicked") { Source = thumbButtonInfo, Mode = BindingMode.OneWay }); BindingOperations.SetBinding(thumbButtonInfo, ThumbButtonInfoImageSourceProperty, new Binding("ImageSource") { Source = thumbButtonInfo, Mode = BindingMode.OneWay }); BindingOperations.SetBinding(thumbButtonInfo, ThumbButtonInfoIsBackgroundVisibleProperty, new Binding("IsBackgroundVisible") { Source = thumbButtonInfo, Mode = BindingMode.OneWay }); BindingOperations.SetBinding(thumbButtonInfo, ThumbButtonInfoIsEnabledProperty, new Binding("IsEnabled") { Source = thumbButtonInfo, Mode = BindingMode.OneWay }); BindingOperations.SetBinding(thumbButtonInfo, ThumbButtonInfoIsInteractiveProperty, new Binding("IsInteractive") { Source = thumbButtonInfo, Mode = BindingMode.OneWay }); BindingOperations.SetBinding(thumbButtonInfo, ThumbButtonInfoVisibilityProperty, new Binding("Visibility") { Source = thumbButtonInfo, Mode = BindingMode.OneWay }); }
public void SetThumbButtonInfosClickAction() { TaskbarButtonService taskbarServiceImpl = new TaskbarButtonService(); Interaction.GetBehaviors(RealWindow).Add(taskbarServiceImpl); EnqueueShowRealWindow(); ITaskbarButtonService taskbarService = taskbarServiceImpl; TaskbarThumbButtonInfo taskbarThumbButtonInfo = new TaskbarThumbButtonInfo() { Description = "xxx" }; bool actionExecuted = false; bool clickExecuted = false; taskbarThumbButtonInfo.Action = () => { actionExecuted = true; }; taskbarThumbButtonInfo.Click += (s, e) => clickExecuted = true; taskbarService.ThumbButtonInfos.Add(taskbarThumbButtonInfo); ThumbButtonInfo thumbButtonInfo = RealWindow.TaskbarItemInfo.ThumbButtonInfos[0]; ClickThumbButton(thumbButtonInfo); Assert.IsTrue(actionExecuted); Assert.IsTrue(clickExecuted); }
public static Container <TaskbarThumbButtonInfo> GetTaskbarThumbButtonInfo(ThumbButtonInfo d) { return((Container <TaskbarThumbButtonInfo>)d.GetValue(TaskbarThumbButtonInfoProperty)); }
static void ThumbButtonInfoSetPropertiesCore(TaskbarThumbButtonInfo taskbarThumbButtonInfo, ThumbButtonInfo thumbButtonInfo) { thumbButtonInfo.CommandParameter = taskbarThumbButtonInfo.CommandParameter; thumbButtonInfo.Command = new ThumbButtonInfoCommand(taskbarThumbButtonInfo); thumbButtonInfo.Description = taskbarThumbButtonInfo.Description; thumbButtonInfo.DismissWhenClicked = taskbarThumbButtonInfo.DismissWhenClicked; thumbButtonInfo.ImageSource = taskbarThumbButtonInfo.ImageSource; thumbButtonInfo.IsBackgroundVisible = taskbarThumbButtonInfo.IsBackgroundVisible; thumbButtonInfo.IsEnabled = taskbarThumbButtonInfo.IsEnabled; thumbButtonInfo.IsInteractive = taskbarThumbButtonInfo.IsInteractive; thumbButtonInfo.Visibility = taskbarThumbButtonInfo.Visibility; }
private HRESULT _UpdateThumbButtons(bool attached) { THUMBBUTTON[] array = new THUMBBUTTON[7]; HRESULT result = this._RegisterThumbButtons(); if (result.Failed) { return(result); } ThumbButtonInfoCollection thumbButtonInfos = this.ThumbButtonInfos; HRESULT result2; try { uint num = 0u; if (!attached || thumbButtonInfos == null) { goto IL_1AE; } using (FreezableCollection <ThumbButtonInfo> .Enumerator enumerator = thumbButtonInfos.GetEnumerator()) { while (enumerator.MoveNext()) { ThumbButtonInfo thumbButtonInfo = enumerator.Current; THUMBBUTTON thumbbutton = new THUMBBUTTON { iId = num, dwMask = (THB.ICON | THB.TOOLTIP | THB.FLAGS) }; switch (thumbButtonInfo.Visibility) { case Visibility.Visible: goto IL_A5; case Visibility.Hidden: thumbbutton.dwFlags = (THBF.DISABLED | THBF.NOBACKGROUND); thumbbutton.hIcon = IntPtr.Zero; break; case Visibility.Collapsed: thumbbutton.dwFlags = THBF.HIDDEN; break; default: goto IL_A5; } IL_146: array[(int)((UIntPtr)num)] = thumbbutton; num += 1u; if (num != 7u) { continue; } break; IL_A5: thumbbutton.szTip = (thumbButtonInfo.Description ?? ""); thumbbutton.hIcon = this._GetHICONFromImageSource(thumbButtonInfo.ImageSource, this._overlaySize); if (!thumbButtonInfo.IsBackgroundVisible) { thumbbutton.dwFlags |= THBF.NOBACKGROUND; } if (!thumbButtonInfo.IsEnabled) { thumbbutton.dwFlags |= THBF.DISABLED; } else { thumbbutton.dwFlags = thumbbutton.dwFlags; } if (!thumbButtonInfo.IsInteractive) { thumbbutton.dwFlags |= THBF.NONINTERACTIVE; } if (thumbButtonInfo.DismissWhenClicked) { thumbbutton.dwFlags |= THBF.DISMISSONCLICK; goto IL_146; } goto IL_146; } goto IL_1AE; } IL_179: array[(int)((UIntPtr)num)] = new THUMBBUTTON { iId = num, dwFlags = (THBF.DISABLED | THBF.NOBACKGROUND | THBF.HIDDEN), dwMask = (THB.ICON | THB.TOOLTIP | THB.FLAGS) }; num += 1u; IL_1AE: if (num < 7u) { goto IL_179; } result2 = this._taskbarList.ThumbBarUpdateButtons(this._hwndSource.Handle, (uint)array.Length, array); } finally { foreach (THUMBBUTTON thumbbutton2 in array) { IntPtr hIcon = thumbbutton2.hIcon; if (IntPtr.Zero != hIcon) { Utility.SafeDestroyIcon(ref hIcon); } } } return(result2); }
public static void SetTaskbarThumbButtonInfo(ThumbButtonInfo d, Container <TaskbarThumbButtonInfo> value) { d.SetValue(TaskbarThumbButtonInfoProperty, value); }