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; }