using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Text; using System.Windows.Forms; using Client.Scraper; namespace BlueTube.Viewer { public partial class VerticalSingleColumnGalleryWidget : GalleryWidgetBase { #region Constructor public VerticalSingleColumnGalleryWidget() { InitializeComponent(); } #endregion protected override void OnAddItems(ScrapedPage page) { for (var i = 0; i < Constants.GetMaxDisplayCount(page.Videos.Count); i++) { var video = page.Videos[i]; AddItem(video); if (Constants.ShowAds && i % 4 == 0) { var ad = CreateAdWidget(Constants.VerticalAdId); this.tableLayoutPanel.Controls.Add(ad); } } } private WebViewWidget AddItem(ScrapedVideo video) { var widget = new WebViewWidget(video, Properties.Resources.TestHtml.Replace("{0}", video.Url).Replace("{1}", video.ImageUrl). Replace("{2}", video.Title).Replace("{3}", video.Duration.ToString())); widget.Anchor = AnchorStyles.Left | AnchorStyles.Right; widget.Width = this.Width; this.tableLayoutPanel.Controls.Add(widget); Application.DoEvents(); widget.ViewSelected += delegate(object sender, GalleryItemSelectedEventArgs e) { OnItemSelected(sender, e); }; return widget; } protected override void OnAddItem(ScrapedVideo video, bool select) { var found = false; LogManager.Log("Adding items to Veritcal gallery"); foreach (Control c in this.tableLayoutPanel.Controls) { var widget = c as WebViewWidget; if (widget != null) { if (widget.Video.Url == video.Url) { widget.SelectView(); found = true; } else widget.DeselectView(); } } if (!found) { var widget = AddItem(video); this.tableLayoutPanel.Controls.SetChildIndex(widget, 0); if (select) widget.SelectView(); } } protected override Control WidgetContainer { get { return this.tableLayoutPanel; } } private void flowLayoutPanel_Resize(object sender, EventArgs e) { foreach (Control c in this.tableLayoutPanel.Controls) c.Width = this.Width; } } }