/// <summary> /// Adds a new category to the list. /// </summary> /// <param name="categoryName">Name of the category.</param> /// <returns>Newly created control.</returns> public virtual CollapsibleCategory Add(string categoryName) { CollapsibleCategory cat = new CollapsibleCategory(this); cat.Text = categoryName; Add(cat); return(cat); }
/// <summary> /// Adds a category to the list. /// </summary> /// <param name="category">Category control to add.</param> protected virtual void Add(CollapsibleCategory category) { category.Parent = this; category.Dock = Pos.Top; category.Margin = new Margin(1, 0, 1, 1); category.Selected += OnCategorySelected; category.Collapsed += OnCategoryCollapsed; // this relies on fact that category.m_List is set to its parent }
/// <summary> /// Unselects all entries. /// </summary> public virtual void UnselectAll() { foreach (ControlBase child in Children) { CollapsibleCategory cat = child as CollapsibleCategory; if (cat == null) { continue; } cat.UnselectAll(); } }
/// <summary> /// Handler for category collapsed event. /// </summary> /// <param name="control">Event source: <see cref="CollapsibleCategory"/>.</param> protected virtual void OnCategoryCollapsed(ControlBase control, EventArgs args) { CollapsibleCategory cat = control as CollapsibleCategory; if (cat == null) { return; } if (CategoryCollapsed != null) { CategoryCollapsed.Invoke(control, EventArgs.Empty); } }
/// <summary> /// Handler for ItemSelected event. /// </summary> /// <param name="control">Event source: <see cref="CollapsibleList"/>.</param> protected virtual void OnCategorySelected(ControlBase control, EventArgs args) { CollapsibleCategory cat = control as CollapsibleCategory; if (cat == null) { return; } if (ItemSelected != null) { ItemSelected.Invoke(this, new ItemSelectedEventArgs(cat)); } }
// todo: iterator, make this as function? check if works /// <summary> /// Selected entry. /// </summary> public Button GetSelectedButton() { foreach (ControlBase child in Children) { CollapsibleCategory cat = child as CollapsibleCategory; if (cat == null) { continue; } Button button = cat.GetSelectedButton(); if (button != null) { return(button); } } return(null); }