internal static ControlBase XmlElementHandler(Xml.Parser parser, Type type, ControlBase parent) { ListBoxRow element = new ListBoxRow(parent); parser.ParseAttributes(element); if (parser.MoveToContent()) { int colIndex = 1; foreach (string elementName in parser.NextElement()) { if (elementName == "Column") { if (parser.MoveToContent()) { ControlBase column = parser.ParseElement(element); element.SetCellContents(colIndex++, column, true); } else { string colText = parser.GetAttribute("Text"); element.SetCellText(colIndex++, colText != null ? colText : String.Empty); } } } } return(element); }
/// <summary> /// Unselects the specified row. /// </summary> /// <param name="row">Row to unselect.</param> public void UnselectRow(ListBoxRow row) { row.IsSelected = false; m_SelectedRows.Remove(row); if (RowUnselected != null) { RowUnselected.Invoke(this, new ItemSelectedEventArgs(row)); } }
/// <summary> /// Add row. /// </summary> /// <param name="row">Row.</param> public void AddRow(ListBoxRow row) { row.Parent = this; m_Table.AddRow(row); row.Selected += OnRowSelected; Invalidate(); }
/// <summary> /// Handler for the row double click event. /// </summary> /// <param name="control">Event source.</param> protected virtual void OnRowDoubleClicked(ControlBase control, ClickedEventArgs args) { ListBoxRow row = control as ListBoxRow; if (row == null) { return; } if (RowDoubleClicked != null) { RowDoubleClicked.Invoke(this, new ItemSelectedEventArgs(row)); } }
/// <summary> /// Adds a new row. /// </summary> /// <param name="label">Row text.</param> /// <param name="name">Internal control name.</param> /// <param name="UserData">User data for newly created row</param> /// <returns>Newly created control.</returns> public ListBoxRow AddRow(string label, string name, Object UserData) { ListBoxRow row = new ListBoxRow(this); m_Table.AddRow(row); row.SetCellText(0, label); row.Name = name; row.UserData = UserData; row.Selected += OnRowSelected; row.DoubleClicked += OnRowDoubleClicked; Invalidate(); return(row); }
/// <summary> /// Slelects the specified row. /// </summary> /// <param name="control">Row to select.</param> /// <param name="clearOthers">Determines whether to deselect previously selected rows.</param> public void SelectRow(ControlBase control, bool clearOthers = false) { if (!AllowMultiSelect || clearOthers) { UnselectAll(); } ListBoxRow row = control as ListBoxRow; if (row == null) { return; } // TODO: make sure this is one of our rows! row.IsSelected = true; m_SelectedRows.Add(row); if (RowSelected != null) { RowSelected.Invoke(this, new ItemSelectedEventArgs(row)); } }
/// <summary> /// Handler for the row selection event. /// </summary> /// <param name="control">Event source.</param> protected virtual void OnRowSelected(ControlBase control, ItemSelectedEventArgs args) { // [omeg] changed default behavior bool clear = false;// !InputHandler.InputHandler.IsShiftDown; ListBoxRow row = args.SelectedItem as ListBoxRow; if (row == null) { return; } if (row.IsSelected) { if (IsToggle) { UnselectRow(row); } } else { SelectRow(row, clear); } }