示例#1
0
        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);
        }
示例#2
0
        /// <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));
            }
        }
示例#3
0
        /// <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();
        }
示例#4
0
        /// <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));
            }
        }
示例#5
0
        /// <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);
        }
示例#6
0
        /// <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));
            }
        }
示例#7
0
        /// <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);
            }
        }