public Tuple <int, int> RemoveWidget(ColumnLayoutItem w) { if (CanRemoveWidget()) { ChatColumn toRemove = null; int c = 0, r; foreach (var column in Columns) { r = 0; foreach (var row in column.Widgets) { if (row == w) { column.RemoveWidget(w); if (column.WidgetCount == 0) { toRemove = column; r = -1; } goto end; } r++; } c++; } return(Tuple.Create(0, 0)); end: if (toRemove != null) { RemoveColumn(toRemove); } layout(); return(Tuple.Create(c, r)); //Columns.FirstOrDefault(x => x.Widgets.Contains(w)).Process(col => //{ // col.RemoveWidget(w); // if (col.WidgetCount == 0) // { // RemoveColumn(col); // } //}); } return(null); }
public void AddWidget(ColumnLayoutItem control, int column = -1, int row = -1) { if (row == -1) { if (column == -1) { AddColumn(new ChatColumn(control)); } else { InsertColumn(column, new ChatColumn(control)); } } else { if (column == ColumnCount) { AddColumn(new ChatColumn()); } Columns.ElementAt(column).InsertWidget(row, control); } Controls.Add(control); }
public ChatColumn FindColumn(ColumnLayoutItem w) { return(Columns.FirstOrDefault(x => x.Widgets.Contains(w))); }