/// <summary> /// Add a button to this control and reorder the buttons into their proper order. /// Reordering buttons can be disabled if desired, for example if adding alot of buttons. /// Reordering can then be done with ReorderSubfolderButtons(). /// </summary> private void AddSubfolderButton(SubfolderInfo subfolderInfo, bool reorderAllButtons) { scrollPanel.Controls.Add(CreateSubfolderButton(subfolderInfo)); if (reorderAllButtons) { ReorderSubfolderButtons(); } }
public void RemoveSubfolderButton(SubfolderInfo subfolderInfo, bool reorderButtons) { bool changed = false; IEnumerable <SubfolderButton> buttons = scrollPanel.Controls.OfType <SubfolderButton>().Where(t => t.subfolderInfo == subfolderInfo); foreach (Control c in buttons) { scrollPanel.Controls.Remove(c); changed = true; } if (reorderButtons && changed) { ReorderSubfolderButtons(); } }
private SubfolderButton CreateSubfolderButton(SubfolderInfo subfolderInfo) { SubfolderButton button = new SubfolderButton(); button.Size = new Size(189, 22); button.UseMnemonic = false; button.Enabled = Enabled; button.Text = subfolderInfo.name; button.subfolderInfo = subfolderInfo; //tooltip.SetToolTip(button, directory + (custom ? "\nThis is a custom, user-added directory, right click to remove." : "")); button.TextAlign = ContentAlignment.BottomLeft; button.MouseUp += subfolderButton_MouseUp; return(button); }
public SubfolderButton() : base() { subfolderInfo = new SubfolderInfo(); }
public SubfolderButton(string name, string directory, bool custom) : base() { subfolderInfo = new SubfolderInfo(name, directory, custom); }
public SubfolderButtonClickedEventArgs(MouseEventArgs mea, SubfolderInfo subfolderInfo) : base(mea.Button, mea.Clicks, mea.X, mea.Y, mea.Delta) { SubfolderInfo = subfolderInfo; }