private void ResetLayout() { OldTiles.AddRange(Tiles); TileLayout.SuspendLayout(); if (m_factory.IsUsingTileView) { GameFileTileBase testTile = m_factory.CreateTile(); if (Tiles.Count == 0 || Tiles[0].GetType() != testTile.GetType()) { RecreateLayout(); } else { UpdateLayout(); } } TileLayout.ResumeLayout(); TilesRecreated?.Invoke(this, EventArgs.Empty); OldTiles.Clear(); }
private void RecreateLayout() { TileLayout.Controls.Clear(); Tiles.Clear(); for (int i = 0; i < MaxItems; i++) { GameFileTileBase tile = m_factory.CreateTile(); Tiles.Add(tile); TileLayout.Controls.Add(tile); } }
private void UpdateLayout() { if (Tiles.Count > MaxItems) { Tiles = Tiles.Take(MaxItems).ToList(); while (TileLayout.Controls.Count > MaxItems) { TileLayout.Controls.RemoveAt(TileLayout.Controls.Count - 1); } } else { int addCount = MaxItems - Tiles.Count; for (int i = 0; i < addCount; i++) { GameFileTileBase tile = m_factory.CreateTile(); Tiles.Add(tile); TileLayout.Controls.Add(tile); } } }