public void SetThumbButtonInfos() { TaskbarButtonService taskbarServiceImpl = new TaskbarButtonService(); Interaction.GetBehaviors(RealWindow).Add(taskbarServiceImpl); EnqueueShowRealWindow(); ITaskbarButtonService taskbarService = taskbarServiceImpl; TaskbarThumbButtonInfo thumbButtonInfo_1 = new TaskbarThumbButtonInfo() { Description = "thumbButton1" }; TaskbarThumbButtonInfo thumbButtonInfo_2 = new TaskbarThumbButtonInfo() { Description = "thumbButton2" }; taskbarService.ThumbButtonInfos.Add(thumbButtonInfo_1); taskbarService.ThumbButtonInfos.Add(thumbButtonInfo_2); AssertHelper.AssertEnumerablesAreEqual(new ThumbButtonInfo[] { new ThumbButtonInfo() { Description = "thumbButton1" }, new ThumbButtonInfo() { Description = "thumbButton2" }, }, RealWindow.TaskbarItemInfo.ThumbButtonInfos, true, new string[] { "Command" }); }
public void TaskbarThumbButtonBindCommandWithParameter() { TaskbarButtonService taskbarServiceImpl = new TaskbarButtonService(); Interaction.GetBehaviors(RealWindow).Add(taskbarServiceImpl); EnqueueShowRealWindow(); ButtonViewModel viewModel = new ButtonViewModel(); ITaskbarButtonService taskbarService = taskbarServiceImpl; TaskbarThumbButtonInfo thumbButtonInfo_1 = new TaskbarThumbButtonInfo(); BindingOperations.SetBinding(thumbButtonInfo_1, TaskbarThumbButtonInfo.CommandParameterProperty, new Binding("CommandParameter") { Source = viewModel, Mode = BindingMode.OneWay }); BindingOperations.SetBinding(thumbButtonInfo_1, TaskbarThumbButtonInfo.CommandProperty, new Binding("Command") { Source = viewModel, Mode = BindingMode.OneWay }); taskbarService.ThumbButtonInfos.Add(thumbButtonInfo_1); int?parameter = null; viewModel.Command = new DelegateCommand <int?>(p => parameter = p); viewModel.CommandParameter = 13; RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].Command.Execute(RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].CommandParameter); Assert.AreEqual(13, parameter); }
public ThumbButtonInfoCommand(TaskbarThumbButtonInfo taskbarThumbButtonInfo) { ITaskbarThumbButtonInfo taskbarThumbButtonInfoInternal = taskbarThumbButtonInfo; Click = taskbarThumbButtonInfoInternal.Click; Action = taskbarThumbButtonInfo.Action; InternalCommand = taskbarThumbButtonInfo.Command; }
static void UnsubscribeFromTaskbarThumbButtonInfoPropertiesChanged(TaskbarThumbButtonInfo taskbarThumbButtonInfo) { ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoCommandParameterProperty); ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoCommandProperty); ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoDescriptionProperty); ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoDismissWhenClickedProperty); ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoImageSourceProperty); ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoIsBackgroundVisibleProperty); ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoIsEnabledProperty); ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoIsInteractiveProperty); ClearListenPropertyBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoVisibilityProperty); }
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 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; }
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); }
public void BindTaskbarThumbButtonInfoCommand() { VM vm = VM.Create(); RealWindow.DataContext = vm; TaskbarButtonService taskbarServiceImpl = new TaskbarButtonService(); TaskbarThumbButtonInfo bt = new TaskbarThumbButtonInfo(); BindingOperations.SetBinding(bt, TaskbarThumbButtonInfo.CommandProperty, new Binding("DoCommand")); taskbarServiceImpl.ThumbButtonInfos.Add(bt); Interaction.GetBehaviors(RealWindow).Add(taskbarServiceImpl); EnqueueShowRealWindow(); Assert.AreEqual(POCOViewModelExtensions.GetCommand(vm, x => x.Do()), bt.Command); }
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 void ThumbButtonPropertiesChanged() { TaskbarButtonService taskbarServiceImpl = new TaskbarButtonService(); Interaction.GetBehaviors(RealWindow).Add(taskbarServiceImpl); EnqueueShowRealWindow(); ImageSource imageSource1 = ApplicationJumpListServiceTestsImageSourceHelper.GetImageSource(AssemblyHelper.GetResourceUri(typeof(TaskbarButtonServiceTests).Assembly, "Icons/icon1.ico")); ImageSource imageSource2 = ApplicationJumpListServiceTestsImageSourceHelper.GetImageSource(AssemblyHelper.GetResourceUri(typeof(TaskbarButtonServiceTests).Assembly, "Icons/icon2.ico")); ITaskbarButtonService taskbarService = taskbarServiceImpl; TaskbarThumbButtonInfo thumbButtonInfo_1 = new TaskbarThumbButtonInfo() { Description = "thumbButton1", IsEnabled = true, IsInteractive = true, IsBackgroundVisible = false, DismissWhenClicked = false, Visibility = Visibility.Visible, ImageSource = imageSource1 }; taskbarService.ThumbButtonInfos.Add(thumbButtonInfo_1); RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].Description = "thumbButton2"; RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].IsEnabled = false; RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].IsInteractive = false; RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].IsBackgroundVisible = true; RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].DismissWhenClicked = true; RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].Visibility = Visibility.Collapsed; RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].ImageSource = imageSource2; EnqueueShowRealWindow(); AssertHelper.AssertEnumerablesAreEqual(new TaskbarThumbButtonInfo[] { new TaskbarThumbButtonInfo() { Description = "thumbButton2", IsEnabled = false, IsInteractive = false, IsBackgroundVisible = true, DismissWhenClicked = true, Visibility = Visibility.Collapsed, ImageSource = imageSource2 }, }, taskbarService.ThumbButtonInfos, true, new string[] { "ItemInfo" }); }
static void OnThumbButtonInfoChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { TaskbarThumbButtonInfo taskbarThumbButtonInfo = (TaskbarThumbButtonInfo)d; Container <ThumbButtonInfo> newValue = (Container <ThumbButtonInfo>)e.NewValue; Container <ThumbButtonInfo> oldValue = (Container <ThumbButtonInfo>)e.OldValue; if (oldValue.Content != null) { UnsubscribeFromThumbButtonInfoPropertiesChanged(oldValue.Content); if (GetTaskbarThumbButtonInfo(oldValue.Content).Content == taskbarThumbButtonInfo) { SetTaskbarThumbButtonInfo(oldValue.Content, new Container <TaskbarThumbButtonInfo>(null)); } } if (newValue.Content != null) { SetTaskbarThumbButtonInfo(newValue.Content, new Container <TaskbarThumbButtonInfo>(taskbarThumbButtonInfo)); SubscribeToThumbButtonInfoPropertiesChanged(newValue.Content); } }
public void T207524() { VM vm = VM.Create(); RealWindow.DataContext = vm; TaskbarButtonServiceTest taskbarServiceImpl = new TaskbarButtonServiceTest(); TaskbarThumbButtonInfo bt1 = new TaskbarThumbButtonInfo(); TaskbarThumbButtonInfo bt2 = new TaskbarThumbButtonInfo(); TaskbarThumbButtonInfo bt3 = new TaskbarThumbButtonInfo(); BindingOperations.SetBinding(bt1, TaskbarThumbButtonInfo.CommandProperty, new Binding("DoCommand")); BindingOperations.SetBinding(bt2, TaskbarThumbButtonInfo.CommandProperty, new Binding("DoCommand")); BindingOperations.SetBinding(bt3, TaskbarThumbButtonInfo.CommandProperty, new Binding("DoCommand")); taskbarServiceImpl.ThumbButtonInfos.Add(bt1); taskbarServiceImpl.ThumbButtonInfos.Add(bt2); taskbarServiceImpl.ThumbButtonInfos.Add(bt3); Interaction.GetBehaviors(RealWindow).Add(taskbarServiceImpl); EnqueueShowRealWindow(); Assert.AreEqual(1, taskbarServiceImpl.UpdateInternalItemsCount); EnqueueTestComplete(); }
static void SubscribeToTaskbarThumbButtonInfoPropertiesChanged(TaskbarThumbButtonInfo taskbarThumbButtonInfo) { BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoCommandParameterProperty, new Binding("CommandParameter") { Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay }); BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoCommandProperty, new Binding("Command") { Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay }); BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoDescriptionProperty, new Binding("Description") { Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay }); BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoDismissWhenClickedProperty, new Binding("DismissWhenClicked") { Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay }); BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoImageSourceProperty, new Binding("ImageSource") { Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay }); BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoIsBackgroundVisibleProperty, new Binding("IsBackgroundVisible") { Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay }); BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoIsEnabledProperty, new Binding("IsEnabled") { Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay }); BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoIsInteractiveProperty, new Binding("IsInteractive") { Source = taskbarThumbButtonInfo, Mode = BindingMode.OneWay }); BindingOperations.SetBinding(taskbarThumbButtonInfo, TaskbarThumbButtonInfoVisibilityProperty, new Binding("Visibility") { Source = taskbarThumbButtonInfo, 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<ThumbButtonInfo> GetThumbButtonInfo(TaskbarThumbButtonInfo d) { return (Container<ThumbButtonInfo>)d.GetValue(ThumbButtonInfoProperty); }
public static void SetThumbButtonInfo(TaskbarThumbButtonInfo d, Container<ThumbButtonInfo> value) { d.SetValue(ThumbButtonInfoProperty, value); }
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); }
public static TaskbarThumbButtonInfo UnWrap(ThumbButtonInfo thumbButtonInfo) { TaskbarThumbButtonInfo taskbarThumbButtonInfo = GetTaskbarThumbButtonInfo(thumbButtonInfo).Content; if(taskbarThumbButtonInfo == null) { taskbarThumbButtonInfo = new TaskbarThumbButtonInfo(); TaskbarThumbButtonInfoSetProperties(thumbButtonInfo, taskbarThumbButtonInfo); SetThumbButtonInfo(taskbarThumbButtonInfo, new Container<ThumbButtonInfo>(thumbButtonInfo)); } return taskbarThumbButtonInfo; }
static void ThumbButtonInfoSetProperties(TaskbarThumbButtonInfo taskbarThumbButtonInfo, ThumbButtonInfo thumbButtonInfo) { SetDoNotProcessPropertyChanged(thumbButtonInfo, true); try { 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; } finally { SetDoNotProcessPropertyChanged(thumbButtonInfo, false); } }
public static void SetThumbButtonInfo(TaskbarThumbButtonInfo d, Container <ThumbButtonInfo> value) { d.SetValue(ThumbButtonInfoProperty, value); }
public static Container <ThumbButtonInfo> GetThumbButtonInfo(TaskbarThumbButtonInfo d) { return((Container <ThumbButtonInfo>)d.GetValue(ThumbButtonInfoProperty)); }
static void TaskbarThumbButtonInfoSetProperties(ThumbButtonInfo thumbButtonInfo, TaskbarThumbButtonInfo taskbarThumbButtonInfo) { SetDoNotProcessPropertyChanged(taskbarThumbButtonInfo, true); try { taskbarThumbButtonInfo.CommandParameter = thumbButtonInfo.CommandParameter; ThumbButtonInfoCommand command = thumbButtonInfo.Command as ThumbButtonInfoCommand; if(command != null) { taskbarThumbButtonInfo.Command = command.InternalCommand; taskbarThumbButtonInfo.Action = command.Action; ITaskbarThumbButtonInfo taskbarThumbButtonInfoInternal = taskbarThumbButtonInfo; taskbarThumbButtonInfoInternal.Click = command.Click; } else { taskbarThumbButtonInfo.Command = command; } taskbarThumbButtonInfo.Description = thumbButtonInfo.Description; taskbarThumbButtonInfo.DismissWhenClicked = thumbButtonInfo.DismissWhenClicked; taskbarThumbButtonInfo.ImageSource = thumbButtonInfo.ImageSource; taskbarThumbButtonInfo.IsBackgroundVisible = thumbButtonInfo.IsBackgroundVisible; taskbarThumbButtonInfo.IsEnabled = thumbButtonInfo.IsEnabled; taskbarThumbButtonInfo.IsInteractive = thumbButtonInfo.IsInteractive; taskbarThumbButtonInfo.Visibility = thumbButtonInfo.Visibility; } finally { SetDoNotProcessPropertyChanged(taskbarThumbButtonInfo, false); } }