public void OnRecentVisit(object sender, MouseEventArgs e)
        {
            if (HistoryList.Count > 0)
            {
                ExplorerSkin.Box.Top    = TopBorder1.Top + TopBorder1.Height;
                ExplorerSkin.Box.Width  = 200;
                ExplorerSkin.Box.Height = 400;
                if (HistoryButton.VerticalAlignment == VerticalAlignment.left)
                {
                    if (Maximized)
                    {
                        ExplorerSkin.Box.Left = TopBorder1.Left;
                    }
                    else
                    {
                        ExplorerSkin.Box.Left = LeftBorder.Left + LeftBorder.Width;
                    }
                }
                else
                {
                    ExplorerSkin.Box.Left = RightBorder1.Left - ExplorerSkin.Box.Width;
                }
                HistoryButton.ForceState = ButtonState.Pressed;
                HistoryButton.HoverState = ButtonState.Pressed;
                TopBorder1.Update();

                ExplorerSkin.Box.Items.Clear();
                for (int i = 0; i < HistoryList.Count; i++)
                {
                    var path = HistoryList[i];
                    var item = new LayeredPopupMenuItem(Path.GetFileName(path), path, null);
                    if (i == CurrentIndex)
                    {
                        item.Checked = true;
                        item.Bold    = true;
                        Bitmap image = Image.FromHbitmap(ExplorerSkin.RecentIcons.Frames[0].HBitmap);
                        image.MakeTransparent(Color.Black);

                        item.Image = image;
                    }
                    else if (i < CurrentIndex)
                    {
                        Bitmap image = Image.FromHbitmap(ExplorerSkin.RecentIcons.Frames[1].HBitmap);
                        image.MakeTransparent(Color.Black);
                        item.HoveredImage = image;
                    }
                    else if (i > CurrentIndex)
                    {
                        Bitmap image = Image.FromHbitmap(ExplorerSkin.RecentIcons.Frames[2].HBitmap);
                        image.MakeTransparent(Color.Black);
                        item.HoveredImage = image;
                    }
                    ExplorerSkin.Box.Items.Add(item);
                }

                ExplorerSkin.Box.Show();

                ExplorerSkin.Box.ItemClicked     += Navigate;
                ExplorerSkin.Box.PopupMenuClosed += OnRecentClose;
            }
        }
        private void BreadcrumbButtonOnMouseEnter(object sender, MouseEventArgs e)
        {
            if (!PressedMode)
            {
                return;
            }

            DropdownMenu.Items.Clear();

            var    button     = (LayeredButtonWithSkinElement)sender;
            string folderPath = ButtonToPath(sender);

            if (button.Text == "My Computer" || button.Text == "Computer")
            {
                foreach (DriveInfo d in DriveInfo.GetDrives())
                {
                    DropdownMenu.Items.Add(new LayeredPopupMenuItem(d.Name, d.Name, null));
                }
            }
            else if (Directory.Exists(folderPath))
            {
                string   Path    = ButtonToPath(sender);
                string[] folders = Directory.GetDirectories(Path);

                foreach (string folder in folders)
                {
                    String forldername = System.IO.Path.GetFileName(folder);
                    Icon   folderIcon  = ExtendedFileInfo.GetIconForFilename(folder, true);

                    var item = new LayeredPopupMenuItem(forldername, folder,
                                                        folderIcon.ToBitmap());

                    folderIcon.Dispose();

                    DropdownMenu.Items.Add(item);

                    if (_buttons.IndexOf(button) + 1 < _buttons.Count)
                    {
                        string folderbefore = ButtonToPath(_buttons[_buttons.IndexOf(button) + 1]);
                        folderbefore = folderbefore.Remove(folderbefore.Length - 1);

                        if (folder.Equals(folderbefore))
                        {
                            item.Bold = true;
                        }
                    }
                }
            }
            else
            {
                return;
            }

            foreach (LayeredButtonWithSkinElement layeredButton in _buttons)
            {
                layeredButton.ForceState = ButtonState.None;
            }

            button.HoverState = ButtonState.Pressed;
            button.ForceState = ButtonState.Pressed;

            if (BreadcrumbButton.ElementAlign == VerticalAlignment.right)
            {
                DropdownMenu.Left = Parent.Left + (button.Location.X - DropdownMenu.Width) + button.Size.Width / 2;
            }
            else
            {
                DropdownMenu.Left = Parent.Left + button.Location.X + button.Size.Width / 2;
            }

            DropdownMenu.Top = Parent.Top + button.Location.Y + button.Size.Height;

            if (DropdownMenu.Items.Count == 0)
            {
                DropdownMenu.Height = 0;
            }

            DropdownMenu.Show();
            DropdownMenu.ItemClicked += DropDownMenuItemClicked;
        }
        private void BreadcrumbButtonOnMouseEnter(object sender, MouseEventArgs e)
        {
            if (!PressedMode) return;

            DropdownMenu.Items.Clear();

            var button = (LayeredButtonWithSkinElement) sender;
            string folderPath = ButtonToPath(sender);

            if (button.Text == "My Computer" || button.Text == "Computer")
            {
                foreach (DriveInfo d in DriveInfo.GetDrives())
                {
                    DropdownMenu.Items.Add(new LayeredPopupMenuItem(d.Name, d.Name, null));
                }
            }
            else if (Directory.Exists(folderPath))
            {
                string Path = ButtonToPath(sender);
                string[] folders = Directory.GetDirectories(Path);

                foreach (string folder in folders)
                {
                    String forldername = System.IO.Path.GetFileName(folder);
                    Icon folderIcon = ExtendedFileInfo.GetIconForFilename(folder, true);

                    var item = new LayeredPopupMenuItem(forldername, folder,
                        folderIcon.ToBitmap());

                    folderIcon.Dispose();

                    DropdownMenu.Items.Add(item);

                    if (_buttons.IndexOf(button) + 1 < _buttons.Count)
                    {
                        string folderbefore = ButtonToPath(_buttons[_buttons.IndexOf(button) + 1]);
                        folderbefore = folderbefore.Remove(folderbefore.Length - 1);

                        if (folder.Equals(folderbefore))
                        {
                            item.Bold = true;
                        }
                    }
                }
            }
            else
            {
                return;
            }

            foreach (LayeredButtonWithSkinElement layeredButton in _buttons)
            {
                layeredButton.ForceState = ButtonState.None;
            }

            button.HoverState = ButtonState.Pressed;
            button.ForceState = ButtonState.Pressed;

            if (BreadcrumbButton.ElementAlign == VerticalAlignment.right)
            {
                DropdownMenu.Left = Parent.Left + (button.Location.X - DropdownMenu.Width) + button.Size.Width/2;
            }
            else
            {
                DropdownMenu.Left = Parent.Left + button.Location.X + button.Size.Width/2;
            }

            DropdownMenu.Top = Parent.Top + button.Location.Y + button.Size.Height;

            if (DropdownMenu.Items.Count == 0)
            {
                DropdownMenu.Height = 0;
            }

            DropdownMenu.Show();
            DropdownMenu.ItemClicked += DropDownMenuItemClicked;
        }
        public void OnRecentVisit(object sender, MouseEventArgs e)
        {
            if (HistoryList.Count > 0)
            {
                ExplorerSkin.Box.Top = TopBorder1.Top + TopBorder1.Height;
                ExplorerSkin.Box.Width = 200;
                ExplorerSkin.Box.Height = 400;
                if (HistoryButton.VerticalAlignment == VerticalAlignment.left)
                {
                    if (Maximized)
                    {
                        ExplorerSkin.Box.Left = TopBorder1.Left;
                    }
                    else
                    {
                        ExplorerSkin.Box.Left = LeftBorder.Left + LeftBorder.Width;
                    }
                }
                else
                {
                    ExplorerSkin.Box.Left = RightBorder1.Left - ExplorerSkin.Box.Width;
                }
                HistoryButton.ForceState = ButtonState.Pressed;
                HistoryButton.HoverState = ButtonState.Pressed;
                TopBorder1.Update();

                ExplorerSkin.Box.Items.Clear();
                for (int i = 0; i < HistoryList.Count; i++)
                {
                    var path = HistoryList[i];
                    var item = new LayeredPopupMenuItem(Path.GetFileName(path), path, null);
                    if (i == CurrentIndex)
                    {
                        item.Checked = true;
                        item.Bold = true;
                        Bitmap image = Image.FromHbitmap(ExplorerSkin.RecentIcons.Frames[0].HBitmap);
                        image.MakeTransparent(Color.Black);

                        item.Image = image;
                    }
                    else if (i < CurrentIndex)
                    {
                        Bitmap image = Image.FromHbitmap(ExplorerSkin.RecentIcons.Frames[1].HBitmap);
                        image.MakeTransparent(Color.Black);
                        item.HoveredImage = image;
                    }
                    else if (i > CurrentIndex)
                    {
                        Bitmap image = Image.FromHbitmap(ExplorerSkin.RecentIcons.Frames[2].HBitmap);
                        image.MakeTransparent(Color.Black);
                        item.HoveredImage = image;
                    }
                    ExplorerSkin.Box.Items.Add(item);
                }

                ExplorerSkin.Box.Show();

                ExplorerSkin.Box.ItemClicked += Navigate;
                ExplorerSkin.Box.PopupMenuClosed += OnRecentClose;
            }
        }