VideoSearch / MovieTube.Viewer /Controls /VerticalSingleColumnGalleryWidget.cs
niobures's picture
VideoSearch
e26fba6 verified
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using MovieTube.Client.Scraper;
namespace MovieTube.Viewer
{
public partial class VerticalSingleColumnGalleryWidget : GalleryWidgetBase
{
#region Constructor
public VerticalSingleColumnGalleryWidget()
{
InitializeComponent();
}
#endregion
protected override void OnAddItems(MoviePage page)
{
for (var i = 0; i < Constants.GetMaxDisplayCount(page.Videos.Count); i++)
{
var video = page.Videos[i];
foreach(var l in video.Links)
AddItem(l);
if (Constants.ShowAds && i % 4 == 0)
{
var ad = CreateAdWidget(Constants.VerticalAdId);
this.tableLayoutPanel.Controls.Add(ad);
}
}
}
private LinkViewWidget AddItem(MovieLink video)
{
//create links
var widget = new LinkViewWidget(video);
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);
};
widget.DownloadClicked += delegate(object sender, GalleryItemSelectedEventArgs e)
{
OnDownloadClicked(sender, e);
};
return widget;
}
protected override void OnAddItem(Movie video, bool select)
{
var found = false;
LogManager.Log("Adding items to Veritcal gallery");
foreach (Control c in this.tableLayoutPanel.Controls)
{
var widget = c as LinkViewWidget;
if (widget != null)
{
var link = widget.Video as MovieLink;
if(link.DowloadUrl == video.Url)
{
widget.SelectView();
found = true;
}
else
widget.DeselectView();
}
}
if (!found)
{
foreach (var link in video.Links)
{
var widget = AddItem(link);
//this.tableLayoutPanel.Controls.SetChildIndex(widget, 0);
}
if (select)
{
var widget = this.tableLayoutPanel.Controls[0] as LinkViewWidget;
widget.SelectView();
}
}
}
protected override Control WidgetContainer
{
get
{
return this.tableLayoutPanel;
}
}
public LinkViewWidget GetItem(MovieLink link)
{
foreach (LinkViewWidget c in this.tableLayoutPanel.Controls)
{
if (c.Video == link)
return c;
}
return null;
}
private void flowLayoutPanel_Resize(object sender, EventArgs e)
{
foreach (Control c in this.tableLayoutPanel.Controls)
c.Width = this.Width;
}
}
}