private GUIItem AddNewTaskItem(WinHandle window)
        {
            //window.TitleChanged += Window_TitleChanged;
            var g = new GUIItem();

            Application.Current.Dispatcher.Invoke(() =>
            {
                try
                {
                    StackPanel s       = new StackPanel();
                    ListBoxItem holder = new ListBoxItem();
                    holder.Focusable   = false;
                    s.Tag = window.Ptr.ToString();

                    holder.MouseLeftButtonUp += (object sender, MouseButtonEventArgs e) =>
                    {
                        RefreshTasks();
                        window.MaximizeMinimize();
                    };
                    ContextMenu o = new ContextMenu();
                    var h         = new MenuItem()
                    {
                        Header = "Close"
                    };
                    h.Click += (object sender, RoutedEventArgs e) => { InteropHelper.CloseWindow((IntPtr)int.Parse(s.Tag.ToString())); };
                    o.Items.Add(h);
                    s.ContextMenu = o;
                    Label l       = new Label();
                    l.Content     = window.Title;
                    s.Width       = 60;
                    l.Foreground  = new SolidColorBrush(Colors.White);
                    l.FontSize    = 10;
                    Image m       = new Image();
                    var handle    = window.WindowIcon.ToBitmap().GetHbitmap();
                    try
                    {
                        m.Source = Imaging.CreateBitmapSourceFromHBitmap(handle, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
                        m.Width  = 25;
                        m.Height = 25;
                        s.Children.Add(m);
                    }
                    finally { InteropHelper.DeleteObject(handle); }
                    s.Children.Add(l);
                    s.Height       = 60;
                    g.Destroy      = () => { Application.Current.Dispatcher.Invoke(() => { Left += s.Width; ProcMenu.Width -= s.Width; ProcMenu.Items.Remove(ProcMenu.Items.OfType <ListBoxItem>().Where(x => x.Tag == s.Tag).First()); }); };
                    holder.Content = s;
                    RefreshTasks();
                    ProcMenu.Items.Add(holder);
                    Console.WriteLine("Added");
                    ProcMenu.Width += s.Width;
                    Left           -= s.Width;
                    Width           = ProcMenu.Width;
                }
                catch
                (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            });
            return(g);
        }