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);
        }
Esempio n. 2
0
        public static void ThumbnailToolbar(IntPtr handle, ThumbButtonInfo Button)
        {
            if (!Win7.IsWin7)
            {
                return;
            }

            //Button.ImageSource = ;

            taskbar.ThumbButtonInfos.Add(Button);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 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);
 }
Esempio n. 5
0
 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);
 }
Esempio n. 6
0
        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);
            }
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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;
 }
Esempio n. 11
0
        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);
            }
        }
Esempio n. 12
0
 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);
        }
Esempio n. 14
0
 public static Container <TaskbarThumbButtonInfo> GetTaskbarThumbButtonInfo(ThumbButtonInfo d)
 {
     return((Container <TaskbarThumbButtonInfo>)d.GetValue(TaskbarThumbButtonInfoProperty));
 }
Esempio n. 15
0
 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);
    }
Esempio n. 17
0
 public static void SetTaskbarThumbButtonInfo(ThumbButtonInfo d, Container <TaskbarThumbButtonInfo> value)
 {
     d.SetValue(TaskbarThumbButtonInfoProperty, value);
 }