From: <moi...@us...> - 2007-03-23 15:15:20
|
Revision: 214 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=214&view=rev Author: moiristo Date: 2007-03-23 08:15:17 -0700 (Fri, 23 Mar 2007) Log Message: ----------- Version 0.8: Lists all emissions, logo's, changed plugin name Modified Paths: -------------- trunk/plugins/UitzendingGemist/UitGemist/NLGemist.cs trunk/plugins/UitzendingGemist/UitGemist/ShowWaitCursor.cs trunk/plugins/UitzendingGemist/UitGemist/UitGemist.csproj trunk/plugins/UitzendingGemist/UitGemist/UitGemistPlugin.cs trunk/plugins/UitzendingGemist/UitGemist.suo Added Paths: ----------- trunk/plugins/UitzendingGemist/UitGemist/NLSecondScreen.cs trunk/plugins/UitzendingGemist/UitGemist/TienGemist.cs trunk/plugins/UitzendingGemist/UitGemist/TienSecondScreen.cs trunk/plugins/UitzendingGemist/skin/[Project Mayhem]/RtlGemist.xml.bak trunk/plugins/UitzendingGemist/skin/[Project Mayhem]/UitGemist.xml.bak trunk/plugins/UitzendingGemist/skin/[Project Mayhem]/UitGemist2.xml.bak trunk/plugins/UitzendingGemist/skin/[Project Mayhem]/UitGemistMain.xml.bak Removed Paths: ------------- trunk/plugins/UitzendingGemist/UitGemist/SecondScreen.cs Modified: trunk/plugins/UitzendingGemist/UitGemist/NLGemist.cs =================================================================== --- trunk/plugins/UitzendingGemist/UitGemist/NLGemist.cs 2007-03-23 13:29:45 UTC (rev 213) +++ trunk/plugins/UitzendingGemist/UitGemist/NLGemist.cs 2007-03-23 15:15:17 UTC (rev 214) @@ -9,6 +9,7 @@ using MediaPortal.Dialogs; using MediaPortal.Playlists; using System.Xml; +using System.Xml.XPath; using System.IO; namespace MediaPortal.GUI.UitGemist @@ -42,7 +43,7 @@ #endregion #region Variables - private String MainUrlBody = String.Empty; + private String MainUrlBody = String.Empty; private StringCollection Names = new StringCollection(); private StringCollection Urls = new StringCollection(); @@ -64,6 +65,7 @@ private bool ViewMoetJeZien = false; public static ShowWaitCursor wc = new ShowWaitCursor(); + public static String xmlFile = @"http://player.omroep.nl/xml/metaplayer.xml.php"; #endregion public override int GetID @@ -148,7 +150,7 @@ if (ViewFavorieten) { //SecondScreen.ViewVideo = true; - SecondScreen.Url = FavUrlsSecondScreen[facadeview.SelectedListItemIndex]; + NLSecondScreen.Url = FavUrlsSecondScreen[facadeview.SelectedListItemIndex]; GUIWindowManager.ActivateWindow(6801); } else if (ViewMoetJeZien) @@ -160,7 +162,7 @@ } else { - SecondScreen.Url = UrlsSecondScreen[facadeview.SelectedListItemIndex]; + NLSecondScreen.Url = UrlsSecondScreen[facadeview.SelectedListItemIndex]; GUIWindowManager.ActivateWindow(6801); } } @@ -278,18 +280,38 @@ public static string GetPlayUrl(string url) { - string page = wc.GetUrl(url, true); - Log.Debug(""+page.Length); - Regex r = new Regex(@"src=.(?<url>.*?\.asf)", RegexOptions.Multiline); + string result = ""; + string queryString = url.Substring(url.IndexOf('?')); + url = xmlFile + queryString; - Match m = r.Match(page); - Log.Debug(""+m.Success); - url = m.Groups[1].Value; - Log.Debug("url length:" + url.Length); - Log.Debug(url); - url = url.Replace(".rm", ".asf"); - url = ConvertString(url); - return url; + string xml = wc.GetXML(url); + //Regex r = new Regex(@"src=.(?<url>.*?\.asf)", RegexOptions.Multiline); + + //Match m = r.Match(page); + //Log.Debug(""+m.Success); + //url = m.Groups[1].Value; + //Log.Debug("url length:" + url.Length); + //Log.Debug(url); + //url = url.Replace(".rm", ".asf"); + //url = ConvertString(url); + try + { + XPathDocument document = new XPathDocument(new System.IO.StringReader(xml)); + XPathNavigator navigator = document.CreateNavigator(); + XPathExpression stream; + if(ShowWaitCursor.getBroadBand()) stream = XPathExpression.Compile("//streams/stream[@compressie_kwaliteit='bb' and @compressie_formaat='wmv']"); //returns node + else stream = XPathExpression.Compile("//streams/stream[@compressie_kwaliteit='sb' and @compressie_formaat='wmv']"); //returns node + + XPathNavigator node = navigator.SelectSingleNode(stream); + result = node.Value; + } + catch (XmlException e) + { + Log.Info("UitGemist: XML error for url '" + url + "'. Details follow."); + Log.Info("UitGemist: Line number: " + e.LineNumber + ":"); + Log.Info(e.StackTrace); + } + return result; } /// <summary> /// Fills the facadeview with item Added: trunk/plugins/UitzendingGemist/UitGemist/NLSecondScreen.cs =================================================================== --- trunk/plugins/UitzendingGemist/UitGemist/NLSecondScreen.cs (rev 0) +++ trunk/plugins/UitzendingGemist/UitGemist/NLSecondScreen.cs 2007-03-23 15:15:17 UTC (rev 214) @@ -0,0 +1,227 @@ +using System; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.Text; +using System.Text.RegularExpressions; +using MediaPortal.GUI.Library; +using MediaPortal.Player; +using MediaPortal.Dialogs; +using MediaPortal.Playlists; + +namespace MediaPortal.GUI.UitGemist +{ + public class NLSecondScreen: GUIWindow + { + //#region SkinControlAttributes + [SkinControlAttribute(10)] + protected GUIListControl listview = null; + [SkinControlAttribute(3)] + protected GUIImage image = null; + //[SkinControlAttribute(3)] + //protected GUIImage imgPrgramma = null; + //[SkinControlAttribute(4)] + //protected GUILabelControl lblGenre = null; + //[SkinControlAttribute(5)] + //protected GUILabelControl lblOmroep = null; + //[SkinControlAttribute(6)] + //protected GUISelectButtonControl btnRubriek = null; + //#endregion + + public static string Url = string.Empty; + public static bool ViewVideo = false; + private string imageurl = string.Empty; + private StringCollection Datum = new StringCollection(); + private StringCollection Omschrijving = new StringCollection(); + private StringCollection Views = new StringCollection(); + private StringCollection Waardering = new StringCollection(); + private StringCollection StreamUrl = new StringCollection(); + + public override int GetID + { + get + { + return 6801; + } + set + { + base.GetID = value; + } + } + + public override bool Init() + { + return Load(GUIGraphicsContext.Skin + @"\UitGemist2.xml"); + } + + protected override void OnPageLoad() + { + if (ViewVideo) + { + NLGemist.wc.GetUrl("http://www.uitzendinggemist.nl"); + GetInfo(Url); + ViewVideo = false; + } + else + { + GetInfo(Url); + } + Showlist(); + base.OnPageLoad(); + } + + protected override void OnPageDestroy(int new_windowId) + { + image.FileName = GUIGraphicsContext.Skin + @"\media\background.png"; + base.OnPageDestroy(new_windowId); + } + + protected override void OnClicked(int controlId, GUIControl control, Action.ActionType actionType) + { + if (control == listview) + { + string mmsurl = string.Empty; + mmsurl = NLGemist.GetPlayUrl(StreamUrl[listview.SelectedListItemIndex]); + if (g_Player.Play(mmsurl)) + { + GUIGraphicsContext.IsFullScreenVideo = true; + GUIWindowManager.ActivateWindow((int)GUIWindow.Window.WINDOW_FULLSCREEN_VIDEO); + ViewVideo = true; + } + } + base.OnClicked(controlId, control, actionType); + } + + public override bool OnMessage(GUIMessage message) + { + if (message.Message == GUIMessage.MessageType.GUI_MSG_ITEM_FOCUS || message.Message == GUIMessage.MessageType.GUI_MSG_ITEM_FOCUS_CHANGED) + { + if (listview.SelectedListItemIndex != -1) + { + GUIPropertyManager.SetProperty("#rating", Waardering[listview.SelectedListItemIndex]); + GUIPropertyManager.SetProperty("#plotoutline", Omschrijving[listview.SelectedListItemIndex]); + } + } + return base.OnMessage(message); + } + + private void GetInfo(string url) + { + Datum.Clear(); + Views.Clear(); + Omschrijving.Clear(); + Waardering.Clear(); + StreamUrl.Clear(); + + string result = NLGemist.wc.GetUrl(url, true); + result = NLGemist.ConvertString(result); + + //get image + Match m = Regex.Match(result, @"<img\ssrc=.(http://www.omroep.nl/u/.*?.png)"); + imageurl = m.Groups[1].Value; + image.FileName = NLGemist.wc.DownloadImage(imageurl); + + //get Programma-Naam + m = Regex.Match(result, @"<title>(.*?)</title>"); + GUIPropertyManager.SetProperty("#title", m.Groups[1].Value); + + //get Programma-omschrijving + m = Regex.Match(result, @"<p\sstyle=.margin-top.5px..>(.*?)<", RegexOptions.Singleline); + GUIPropertyManager.SetProperty("#plot", m.Groups[1].Value); + + //get Genre + m = Regex.Match(result, @"genre</b>.*?title=.(.*?).>", RegexOptions.Singleline); + GUIPropertyManager.SetProperty("#genre", m.Groups[1].Value); + + // get Omproep + m = Regex.Match(result, @"omroep</b>.*?title=.(.*?).>", RegexOptions.Singleline); + GUIPropertyManager.SetProperty("#credits", m.Groups[1].Value); + + // get Afleveringen + bool moreEmissions = false; + GetAfleveringen(result, out moreEmissions); + + if (moreEmissions) + { + string series2url = url.Replace(@"/index.php/serie", @"/index.php/serie2"); + GetAfleveringen(NLGemist.wc.GetUrl(series2url, true), out moreEmissions); + } + } + + private void GetAfleveringen(string page, out bool hasMoreEmissions) + { + Match m = Regex.Match(page, @"tbody\sid=.afleveringen.>(.*?)</tbody>", RegexOptions.Singleline); + if (m.Success) + { + string afleveringen = m.Groups[1].Value; + + //get datum + MatchCollection mc = Regex.Matches(afleveringen, @"(\d{2}-\d{2}-\d{4})</td>"); + foreach (Match m1 in mc) + { + Datum.Add(m1.Groups[1].Value); + } + + //get omschrijving + mc = Regex.Matches(afleveringen, @"(.*?).<a\shref=./index"); + foreach (Match m1 in mc) + { + Omschrijving.Add(m1.Groups[1].Value); + } + + //get views + mc = Regex.Matches(afleveringen, @"right.>(\d.*)</td>"); + foreach (Match m1 in mc) + { + Views.Add(m1.Groups[1].Value); + } + + //get waardering + mc = Regex.Matches(afleveringen, @">(\d\.\d)<"); + foreach (Match m1 in mc) + { + double r = double.Parse(m1.Groups[1].Value); + r = r * 2; + r = r / 10; + Waardering.Add(r.ToString()); + } + + //get stream-url + mc = Regex.Matches(afleveringen, @"(http://player.omroep.nl/.*?).\s"); + foreach (Match m1 in mc) + { + StreamUrl.Add(m1.Groups[1].Value); + } + } + + m = Regex.Match(page, @"meer afleveringen", RegexOptions.Singleline); + if (m.Success) hasMoreEmissions = true; + else hasMoreEmissions = false; + } + + private void Showlist() + { + listview.Clear(); + int i = 0; + while(i<Datum.Count) + { + GUIListItem item = new GUIListItem(); + item.IconImage = "defaultVideo.png"; + item.Label = Datum[i]; + item.Label2 = "Views: "+Views[i]; + listview.Add(item); + i++; + } + } + + + + + + + + + + + + } +} Deleted: trunk/plugins/UitzendingGemist/UitGemist/SecondScreen.cs =================================================================== --- trunk/plugins/UitzendingGemist/UitGemist/SecondScreen.cs 2007-03-23 13:29:45 UTC (rev 213) +++ trunk/plugins/UitzendingGemist/UitGemist/SecondScreen.cs 2007-03-23 15:15:17 UTC (rev 214) @@ -1,211 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.Specialized; -using System.Text; -using System.Text.RegularExpressions; -using MediaPortal.GUI.Library; -using MediaPortal.Player; -using MediaPortal.Dialogs; -using MediaPortal.Playlists; - -namespace MediaPortal.GUI.UitGemist -{ - public class SecondScreen: GUIWindow - { - //#region SkinControlAttributes - [SkinControlAttribute(10)] - protected GUIListControl listview = null; - [SkinControlAttribute(3)] - protected GUIImage image = null; - //[SkinControlAttribute(3)] - //protected GUIImage imgPrgramma = null; - //[SkinControlAttribute(4)] - //protected GUILabelControl lblGenre = null; - //[SkinControlAttribute(5)] - //protected GUILabelControl lblOmroep = null; - //[SkinControlAttribute(6)] - //protected GUISelectButtonControl btnRubriek = null; - //#endregion - - public static string Url = string.Empty; - public static bool ViewVideo = false; - private string imageurl = string.Empty; - private StringCollection Datum = new StringCollection(); - private StringCollection Omschrijving = new StringCollection(); - private StringCollection Views = new StringCollection(); - private StringCollection Waardering = new StringCollection(); - private StringCollection StreamUrl = new StringCollection(); - - public override int GetID - { - get - { - return 6801; - } - set - { - base.GetID = value; - } - } - - public override bool Init() - { - return Load(GUIGraphicsContext.Skin + @"\UitGemist2.xml"); - } - - protected override void OnPageLoad() - { - if (ViewVideo) - { - NLGemist.wc.GetUrl("http://www.uitzendinggemist.nl"); - GetInfo(Url); - ViewVideo = false; - } - else - { - GetInfo(Url); - } - Showlist(); - base.OnPageLoad(); - } - - protected override void OnPageDestroy(int new_windowId) - { - image.FileName = GUIGraphicsContext.Skin + @"\media\background.png"; - base.OnPageDestroy(new_windowId); - } - - protected override void OnClicked(int controlId, GUIControl control, Action.ActionType actionType) - { - if (control == listview) - { - string mmsurl = string.Empty; - mmsurl = NLGemist.GetPlayUrl(StreamUrl[listview.SelectedListItemIndex]); - GUIGraphicsContext.IsFullScreenVideo = true; - GUIWindowManager.ActivateWindow((int)GUIWindow.Window.WINDOW_FULLSCREEN_VIDEO); - g_Player.FullScreen = true; - ViewVideo = true; - g_Player.Play(mmsurl); - } - base.OnClicked(controlId, control, actionType); - } - - public override bool OnMessage(GUIMessage message) - { - if (message.Message == GUIMessage.MessageType.GUI_MSG_ITEM_FOCUS || message.Message == GUIMessage.MessageType.GUI_MSG_ITEM_FOCUS_CHANGED) - { - if (listview.SelectedListItemIndex != -1) - { - GUIPropertyManager.SetProperty("#rating", Waardering[listview.SelectedListItemIndex]); - GUIPropertyManager.SetProperty("#plotoutline", Omschrijving[listview.SelectedListItemIndex]); - } - } - return base.OnMessage(message); - } - - private void GetInfo(string url) - { - Datum.Clear(); - Views.Clear(); - Omschrijving.Clear(); - Waardering.Clear(); - StreamUrl.Clear(); - - string result = NLGemist.wc.GetUrl(url, true); - result = NLGemist.ConvertString(result); - - //get image - Match m = Regex.Match(result, @"<img\ssrc=.(http://gids.omroep.nl.*?.png)"); - imageurl = m.Groups[1].Value; - image.FileName = NLGemist.wc.DownloadImage(imageurl); - - //get Programma-Naam - m = Regex.Match(result, @"<title>(.*?)</title>"); - GUIPropertyManager.SetProperty("#title", m.Groups[1].Value); - - //get Programma-omschrijving - m = Regex.Match(result, @"<p\sstyle=.margin-top.5px..>(.*?)<", RegexOptions.Singleline); - GUIPropertyManager.SetProperty("#plot", m.Groups[1].Value); - - //get Genre - m = Regex.Match(result, @"genre</b>.*?title=.(.*?).>", RegexOptions.Singleline); - GUIPropertyManager.SetProperty("#genre", m.Groups[1].Value); - - // get Omproep - m = Regex.Match(result, @"omroep</b>.*?title=.(.*?).>", RegexOptions.Singleline); - GUIPropertyManager.SetProperty("#credits", m.Groups[1].Value); - - // get Afleveringen - m = Regex.Match(result, @"tbody\sid=.afleveringen.>(.*?)</tbody>", RegexOptions.Singleline); - if (m.Success) - { - string afleveringen = m.Groups[1].Value; - - //get datum - MatchCollection mc = Regex.Matches(afleveringen, @"(\d{2}-\d{2}-\d{4})</td>"); - foreach (Match m1 in mc) - { - Datum.Add(m1.Groups[1].Value); - } - - //get omschrijving - mc = Regex.Matches(afleveringen, @"(.*?).<a\shref=./index"); - foreach (Match m1 in mc) - { - Omschrijving.Add(m1.Groups[1].Value); - } - - //get views - mc = Regex.Matches(afleveringen, @"right.>(\d.*)</td>"); - foreach (Match m1 in mc) - { - Views.Add(m1.Groups[1].Value); - } - - //get waardering - mc = Regex.Matches(afleveringen, @">(\d\.\d)<"); - foreach (Match m1 in mc) - { - double r = double.Parse(m1.Groups[1].Value); - r = r * 2; - r = r / 10; - Waardering.Add(r.ToString()); - } - - //get stream-url - mc = Regex.Matches(afleveringen, @"(http://player.omroep.nl/.*?).\s"); - foreach (Match m1 in mc) - { - StreamUrl.Add(m1.Groups[1].Value); - } - - } - } - - private void Showlist() - { - listview.Clear(); - int i = 0; - while(i<Datum.Count) - { - GUIListItem item = new GUIListItem(); - item.IconImage = "defaultVideo.png"; - item.Label = Datum[i]; - item.Label2 = "Views: "+Views[i]; - listview.Add(item); - i++; - } - } - - - - - - - - - - - - } -} Modified: trunk/plugins/UitzendingGemist/UitGemist/ShowWaitCursor.cs =================================================================== --- trunk/plugins/UitzendingGemist/UitGemist/ShowWaitCursor.cs 2007-03-23 13:29:45 UTC (rev 213) +++ trunk/plugins/UitzendingGemist/UitGemist/ShowWaitCursor.cs 2007-03-23 15:15:17 UTC (rev 214) @@ -137,12 +137,12 @@ secondRequest.ContentType = postType; secondRequest.CookieContainer = new CookieContainer(); - Cookie c = new Cookie(); - c.Domain = "player.omroep.nl"; - c.Name = "player_instellingen"; - c.Value = "formaat:wmv&kwaliteit:bb"; + //Cookie c = new Cookie(); + //c.Domain = "player.omroep.nl"; + //c.Name = "player_instellingen"; + //c.Value = "formaat:wmv&kwaliteit:bb"; - secondRequest.CookieContainer.Add(c); + //secondRequest.CookieContainer.Add(c); CookieCollection cookies = firstResponse.Cookies; secondRequest.CookieContainer.Add(cookies); Added: trunk/plugins/UitzendingGemist/UitGemist/TienGemist.cs =================================================================== --- trunk/plugins/UitzendingGemist/UitGemist/TienGemist.cs (rev 0) +++ trunk/plugins/UitzendingGemist/UitGemist/TienGemist.cs 2007-03-23 15:15:17 UTC (rev 214) @@ -0,0 +1,395 @@ +using System; +using System.Collections; +using System.Collections.Specialized; +using System.Text; +using System.Text.RegularExpressions; +using MediaPortal.GUI.Library; +using MediaPortal.Player; +using MediaPortal.Util; +using MediaPortal.Dialogs; +using MediaPortal.Playlists; +using System.Xml; +using System.Xml.XPath; +using System.IO; + +namespace MediaPortal.GUI.UitGemist +{ + struct Program + { + public string name; + public string ep; + public string date; + public string link; + } + + public class TienGemist : GUIWindow + { + #region SkinControlAttributes + [SkinControlAttribute(50)] + protected GUIFacadeControl facadeview = null; + [SkinControlAttribute(2)] + protected GUIButtonControl btnFavoriet = null; + [SkinControlAttribute(3)] + protected GUIButtonControl btnTopFifty = null; + [SkinControlAttribute(4)] + protected GUIButtonControl btnPrograms = null; + + + #endregion + + #region Variables + private String MainUrlBody = String.Empty; + + private ArrayList progs = new ArrayList(); + private ArrayList favs = new ArrayList(); + private int FavCount = 0; + + private bool ViewFavorieten = false; + private bool ViewTopFifty = false; + + public static ShowWaitCursor wc = new ShowWaitCursor(); + public static String rootUrl = @"http://www.tien.tv"; + public static String rootPage = rootUrl + @"/web/show/id=54585/langid=43"; + #endregion + + public override int GetID + { + get + { + return 6803; + } + set + { + base.GetID = value; + } + } + + public override bool Init() + { + return Load(GUIGraphicsContext.Skin + @"\TienGemist.xml"); + } + + public override void OnAction(Action action) + { + if (action.wID == Action.ActionType.ACTION_PLAY) + { + string mmsurl = string.Empty; + int index = facadeview.SelectedListItemIndex; + if (ViewFavorieten) + { + mmsurl = GetPlayUrl(((Program) favs[index]).link); + } + else + { + mmsurl = GetPlayUrl(((Program)progs[index]).link); + } + + PlayUitzending(mmsurl); + } + + base.OnAction(action); + } + + protected override void OnClicked(int controlId, GUIControl control, Action.ActionType actionType) + { + if (control == btnFavoriet) + { + ShowList(favs); + ViewFavorieten = true; + } + if (control == btnTopFifty) + { + ShowTopFifty(); + } + if (control == btnPrograms) + { + GetUitzendingen(); + } + if (control == facadeview) + { + TienSecondScreen.Url = ((Program) favs[facadeview.SelectedListItemIndex]).link; + GUIWindowManager.ActivateWindow(6804); + } + base.OnClicked(controlId, control, actionType); + } + + public override bool OnMessage(GUIMessage message) + { + return base.OnMessage(message); + } + + + protected override void OnPageLoad() + { + LoadFavorietenXML(); + if (ViewFavorieten) + { + ViewFavorieten = true; + ShowList(favs); + } + else if (progs.Count <= 0 || ViewTopFifty == true) + { + ShowTopFifty(); + } + else + { + ShowList(progs); + } + base.OnPageLoad(); + } + + protected override void OnPageDestroy(int new_windowId) + { + MainUrlBody = string.Empty; + SaveFavorietenXML(); + favs.Clear(); + base.OnPageDestroy(new_windowId); + } + + protected override void OnShowContextMenu() + { + if (ViewFavorieten) return; + + GUIListItem item = facadeview.SelectedListItem; + + GUIDialogMenu menu = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); + menu.Reset(); + menu.SetHeading("Extra Opties:"); + if (ViewFavorieten == false) + menu.Add("Toevoegen aan favorieten."); + if (ViewFavorieten == true) + menu.Add("Verwijderen van favorieten."); + menu.DoModal(GetID); + if (menu.SelectedId == -1) return; + if (menu.SelectedLabelText == "Toevoegen aan favorieten.") + { + favs.Add(progs[facadeview.SelectedListItemIndex]); + } + if (menu.SelectedLabelText == "Verwijderen van favorieten.") + { + favs.RemoveAt(facadeview.SelectedListItemIndex); + ShowList(favs); + } + base.OnShowContextMenu(); + } + + private void GetUitzendingen() + { + progs.Clear(); + ViewFavorieten = false; + + string result = wc.GetXML(rootPage); + try + { + XPathDocument document = new XPathDocument(new System.IO.StringReader(result)); + XPathNavigator navigator = document.CreateNavigator(); + XPathExpression programs = XPathExpression.Compile("//select[name='selector_2']//option"); //returns nodeset with rows per program + + + XPathNodeIterator nodes = navigator.Select(programs); + while (nodes.MoveNext()) + { + XPathNavigator node = nodes.Current; + Program p = new Program(); + p.name = node.SelectSingleNode(".").Value; + p.link = node.SelectSingleNode("./@value").Value; + progs.Add(p); + } + } + catch (XmlException e) + { + Log.Info("UitGemist: Invalid xml document '" + rootPage + "'. Details follow."); + Log.Info("UitGemist: Line number: " + e.LineNumber + ":"); + Log.Info(e.StackTrace); + } + + ShowList(progs); + } + + private void GetUitzending(string url) + { + progs.Clear(); + ViewFavorieten = false; + + string result = wc.GetXML(url); + try + { + XPathDocument document = new XPathDocument(new System.IO.StringReader(result)); + XPathNavigator navigator = document.CreateNavigator(); + XPathExpression programs = XPathExpression.Compile("//table[class='Program']//tr"); //returns nodeset with rows per program + + + XPathNodeIterator nodes = navigator.Select(programs); + while (nodes.MoveNext()) + { + XPathNavigator node = nodes.Current; + Program p = new Program(); + p.name = node.SelectSingleNode("./td[1]/h1").Value; + p.ep = node.SelectSingleNode("./td[1]/h2").Value; + p.date = node.SelectSingleNode("./td[2]/h2").Value; + p.link = node.SelectSingleNode("./td[2]/a/@href").Value; + progs.Add(p); + } + } + catch (XmlException e) + { + Log.Info("UitGemist: Invalid xml document '" + url + "'. Details follow."); + Log.Info("UitGemist: Line number: " + e.LineNumber + ":"); + Log.Info(e.StackTrace); + } + + ShowList(progs); + } + + public static string GetPlayUrl(string url) + { + string page = wc.GetUrl(url); + Regex r = new Regex(@"var url =.(?<url>.*?);", RegexOptions.Multiline); + + Match m = r.Match(page); + Log.Debug("" + m.Success); + url = m.Groups[1].Value; + Log.Debug("url length:" + url.Length); + Log.Debug(url); + url = ConvertString(url); + + return url; + } + /// <summary> + /// Fills the facadeview with item + /// </summary> + /// <param name="names">labels for the items</param> + private void ShowList(ArrayList progs) + { + ViewTopFifty = false; + facadeview.View = GUIFacadeControl.ViewMode.List; + facadeview.Clear(); + foreach (Object o in progs) + { + Program p = (Program)o; + GUIListItem item = new GUIListItem(); + item.Label = p.name; + if(p.ep != null) item.Label2 = p.ep; + if(p.date != null) item.Label3 = p.date; + item.IsFolder = true; + Util.Utils.SetDefaultIcons(item); + facadeview.Add(item); + } + focusFacade(); + } + + /// <summary> + /// Converts a string with wrong characters and replaces those with the good ones + /// </summary> + /// <param name="convertstring">input string</param> + /// <returns>converted string</returns> + public static string ConvertString(string convertstring) + { + convertstring = convertstring.Replace("&", "&"); + convertstring = convertstring.Replace("'", "'"); + convertstring = convertstring.Replace("é", "\xE9"); + convertstring = convertstring.Replace("ö", "\xF6"); + convertstring = convertstring.Replace("ë", "\xEB"); + convertstring = convertstring.Replace("ü", "\xFC"); + convertstring.Trim(); + return convertstring; + } + + /// <summary> + /// Error Dialog + /// </summary> + /// <param name="text">error text</param> + private void ShowDialog(string text) + { + GUIDialogOK dialog = new GUIDialogOK(); + dialog.SetHeading("Error"); + dialog.SetLine(1, text); + dialog.DoModal(GetID); + } + + /// <summary> + /// Save the favorites + /// </summary> + private void SaveFavorietenXML() + { + string dir = Directory.GetCurrentDirectory(); + + File.Delete(dir + @"\UitGemistFav.xml"); + using (MediaPortal.Profile.Settings writer = new MediaPortal.Profile.Settings(dir + @"\UitGemistFav.xml", false)) + { + writer.Clear(); + int i = 0; + foreach (Object o in favs) + { + Program p = (Program)o; + writer.SetValue(i.ToString(), "ProgrammaNaam", p.name); + writer.SetValue(i.ToString(), "ProgrammaUrl", p.link); + i++; + } + while (i < FavCount) + { + writer.SetValue(i.ToString(), "ProgrammaNaam", ""); + writer.SetValue(i.ToString(), "PorgrammaUrl", ""); + i++; + } + } + } + + /// <summary> + /// Load the favorites + /// </summary> + private void LoadFavorietenXML() + { + string dir = Directory.GetCurrentDirectory(); + using (MediaPortal.Profile.Settings reader = new MediaPortal.Profile.Settings(dir + @"\UitGemistFav.xml", false)) + { + int i = 0; + while (i != 100) + { + string result = reader.GetValueAsString(i.ToString(), "ProgrammaNaam", ""); + if (result.Equals("")) + { + FavCount = i - 1; + return; + } + else + { + Program p = new Program(); + p.name = reader.GetValue(i.ToString(), "ProgrammaNaam"); + p.link = reader.GetValue(i.ToString(), "ProgrammaUrl"); + favs.Add(p); + i++; + } + } + } + } + + /// <summary> + /// Shows the last 50 added items + /// </summary> + private void ShowTopFifty() + { + GetUitzending(rootPage); + } + + private void PlayUitzending(string url) + { + if (g_Player.Play(url)) + { + GUIGraphicsContext.IsFullScreenVideo = true; + GUIWindowManager.ActivateWindow((int)GUIWindow.Window.WINDOW_FULLSCREEN_VIDEO); + } + } + + private void focusFacade() + { + if (facadeview.Count > 0 && !facadeview.Focus) GUIControl.FocusControl(GUIWindowManager.ActiveWindow, facadeview.GetID); + else if (facadeview.Count == 0) GUIControl.FocusControl(GUIWindowManager.ActiveWindow, btnFavoriet.GetID); + } + + } + + + + +} \ No newline at end of file Added: trunk/plugins/UitzendingGemist/UitGemist/TienSecondScreen.cs =================================================================== --- trunk/plugins/UitzendingGemist/UitGemist/TienSecondScreen.cs (rev 0) +++ trunk/plugins/UitzendingGemist/UitGemist/TienSecondScreen.cs 2007-03-23 15:15:17 UTC (rev 214) @@ -0,0 +1,211 @@ +using System; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.Text; +using System.Text.RegularExpressions; +using MediaPortal.GUI.Library; +using MediaPortal.Player; +using MediaPortal.Dialogs; +using MediaPortal.Playlists; + +namespace MediaPortal.GUI.UitGemist +{ + public class TienSecondScreen: GUIWindow + { + //#region SkinControlAttributes + [SkinControlAttribute(10)] + protected GUIListControl listview = null; + [SkinControlAttribute(3)] + protected GUIImage image = null; + //[SkinControlAttribute(3)] + //protected GUIImage imgPrgramma = null; + //[SkinControlAttribute(4)] + //protected GUILabelControl lblGenre = null; + //[SkinControlAttribute(5)] + //protected GUILabelControl lblOmroep = null; + //[SkinControlAttribute(6)] + //protected GUISelectButtonControl btnRubriek = null; + //#endregion + + public static string Url = string.Empty; + public static bool ViewVideo = false; + private string imageurl = string.Empty; + private StringCollection Datum = new StringCollection(); + private StringCollection Omschrijving = new StringCollection(); + private StringCollection Views = new StringCollection(); + private StringCollection Waardering = new StringCollection(); + private StringCollection StreamUrl = new StringCollection(); + + public override int GetID + { + get + { + return 6804; + } + set + { + base.GetID = value; + } + } + + public override bool Init() + { + return Load(GUIGraphicsContext.Skin + @"\TienGemist2.xml"); + } + + protected override void OnPageLoad() + { + if (ViewVideo) + { + NLGemist.wc.GetUrl("http://www.uitzendinggemist.nl"); + GetInfo(Url); + ViewVideo = false; + } + else + { + GetInfo(Url); + } + Showlist(); + base.OnPageLoad(); + } + + protected override void OnPageDestroy(int new_windowId) + { + image.FileName = GUIGraphicsContext.Skin + @"\media\background.png"; + base.OnPageDestroy(new_windowId); + } + + protected override void OnClicked(int controlId, GUIControl control, Action.ActionType actionType) + { + if (control == listview) + { + string mmsurl = string.Empty; + mmsurl = NLGemist.GetPlayUrl(StreamUrl[listview.SelectedListItemIndex]); + GUIGraphicsContext.IsFullScreenVideo = true; + GUIWindowManager.ActivateWindow((int)GUIWindow.Window.WINDOW_FULLSCREEN_VIDEO); + g_Player.FullScreen = true; + ViewVideo = true; + g_Player.Play(mmsurl); + } + base.OnClicked(controlId, control, actionType); + } + + public override bool OnMessage(GUIMessage message) + { + if (message.Message == GUIMessage.MessageType.GUI_MSG_ITEM_FOCUS || message.Message == GUIMessage.MessageType.GUI_MSG_ITEM_FOCUS_CHANGED) + { + if (listview.SelectedListItemIndex != -1) + { + GUIPropertyManager.SetProperty("#rating", Waardering[listview.SelectedListItemIndex]); + GUIPropertyManager.SetProperty("#plotoutline", Omschrijving[listview.SelectedListItemIndex]); + } + } + return base.OnMessage(message); + } + + private void GetInfo(string url) + { + Datum.Clear(); + Views.Clear(); + Omschrijving.Clear(); + Waardering.Clear(); + StreamUrl.Clear(); + + string result = NLGemist.wc.GetUrl(url, true); + result = NLGemist.ConvertString(result); + + //get image + Match m = Regex.Match(result, @"<img\ssrc=.(http://gids.omroep.nl.*?.png)"); + imageurl = m.Groups[1].Value; + image.FileName = NLGemist.wc.DownloadImage(imageurl); + + //get Programma-Naam + m = Regex.Match(result, @"<title>(.*?)</title>"); + GUIPropertyManager.SetProperty("#title", m.Groups[1].Value); + + //get Programma-omschrijving + m = Regex.Match(result, @"<p\sstyle=.margin-top.5px..>(.*?)<", RegexOptions.Singleline); + GUIPropertyManager.SetProperty("#plot", m.Groups[1].Value); + + //get Genre + m = Regex.Match(result, @"genre</b>.*?title=.(.*?).>", RegexOptions.Singleline); + GUIPropertyManager.SetProperty("#genre", m.Groups[1].Value); + + // get Omproep + m = Regex.Match(result, @"omroep</b>.*?title=.(.*?).>", RegexOptions.Singleline); + GUIPropertyManager.SetProperty("#credits", m.Groups[1].Value); + + // get Afleveringen + m = Regex.Match(result, @"tbody\sid=.afleveringen.>(.*?)</tbody>", RegexOptions.Singleline); + if (m.Success) + { + string afleveringen = m.Groups[1].Value; + + //get datum + MatchCollection mc = Regex.Matches(afleveringen, @"(\d{2}-\d{2}-\d{4})</td>"); + foreach (Match m1 in mc) + { + Datum.Add(m1.Groups[1].Value); + } + + //get omschrijving + mc = Regex.Matches(afleveringen, @"(.*?).<a\shref=./index"); + foreach (Match m1 in mc) + { + Omschrijving.Add(m1.Groups[1].Value); + } + + //get views + mc = Regex.Matches(afleveringen, @"right.>(\d.*)</td>"); + foreach (Match m1 in mc) + { + Views.Add(m1.Groups[1].Value); + } + + //get waardering + mc = Regex.Matches(afleveringen, @">(\d\.\d)<"); + foreach (Match m1 in mc) + { + double r = double.Parse(m1.Groups[1].Value); + r = r * 2; + r = r / 10; + Waardering.Add(r.ToString()); + } + + //get stream-url + mc = Regex.Matches(afleveringen, @"(http://player.omroep.nl/.*?).\s"); + foreach (Match m1 in mc) + { + StreamUrl.Add(m1.Groups[1].Value); + } + + } + } + + private void Showlist() + { + listview.Clear(); + int i = 0; + while(i<Datum.Count) + { + GUIListItem item = new GUIListItem(); + item.IconImage = "defaultVideo.png"; + item.Label = Datum[i]; + item.Label2 = "Views: "+Views[i]; + listview.Add(item); + i++; + } + } + + + + + + + + + + + + } +} Modified: trunk/plugins/UitzendingGemist/UitGemist/UitGemist.csproj =================================================================== --- trunk/plugins/UitzendingGemist/UitGemist/UitGemist.csproj 2007-03-23 13:29:45 UTC (rev 213) +++ trunk/plugins/UitzendingGemist/UitGemist/UitGemist.csproj 2007-03-23 15:15:17 UTC (rev 214) @@ -29,7 +29,7 @@ <WarningLevel>4</WarningLevel> </PropertyGroup> <ItemGroup> - <Reference Include="Core, Version=1.0.2560.37327, Culture=neutral, processorArchitecture=MSIL"> + <Reference Include="Core, Version=1.0.2586.6922, Culture=neutral, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\trunk\mediaportal\Core\bin\Release\Core.dll</HintPath> </Reference> @@ -42,20 +42,22 @@ <Reference Include="System.Drawing" /> <Reference Include="System.Windows.Forms" /> <Reference Include="System.Xml" /> - <Reference Include="Utils, Version=1.0.2560.37325, Culture=neutral, processorArchitecture=MSIL"> + <Reference Include="Utils, Version=1.0.2586.6921, Culture=neutral, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>..\..\..\trunk\mediaportal\Utils\bin\Release\Utils.dll</HintPath> </Reference> </ItemGroup> <ItemGroup> + <Compile Include="TienSecondScreen.cs" /> <Compile Include="RTLGemist.cs" /> - <Compile Include="SecondScreen.cs" /> + <Compile Include="NLSecondScreen.cs" /> <Compile Include="ConfigurationForm.cs"> <SubType>Form</SubType> </Compile> <Compile Include="ConfigurationForm.Designer.cs"> <DependentUpon>ConfigurationForm.cs</DependentUpon> </Compile> + <Compile Include="TienGemist.cs" /> <Compile Include="UitGemistMain.cs" /> <Compile Include="UitGemistPlugin.cs" /> <Compile Include="NLGemist.cs" /> @@ -77,6 +79,6 @@ </Target> --> <PropertyGroup> - <PostBuildEvent>xcopy $(TargetPath) D:\MediaPortal\trunk\mediaportal\xbmc\bin\Release\plugins\windows\$(TargetFileName) /y</PostBuildEvent> + <PostBuildEvent>xcopy $(TargetPath) D:\MediaPortal\trunk\mediaportal\xbmc\bin\Release\plugins\windows /y</PostBuildEvent> </PropertyGroup> </Project> \ No newline at end of file Modified: trunk/plugins/UitzendingGemist/UitGemist/UitGemistPlugin.cs =================================================================== --- trunk/plugins/UitzendingGemist/UitGemist/UitGemistPlugin.cs 2007-03-23 13:29:45 UTC (rev 213) +++ trunk/plugins/UitzendingGemist/UitGemist/UitGemistPlugin.cs 2007-03-23 15:15:17 UTC (rev 214) @@ -37,7 +37,7 @@ // Returns the name of the plugin which is shown in the plugin menu public string PluginName() { - return "Uitzending Gemist"; + return "TV Gemist"; } // Returns the description of the plugin is shown in the plugin menu Modified: trunk/plugins/UitzendingGemist/UitGemist.suo =================================================================== (Binary files differ) Added: trunk/plugins/UitzendingGemist/skin/[Project Mayhem]/RtlGemist.xml.bak =================================================================== --- trunk/plugins/UitzendingGemist/skin/[Project Mayhem]/RtlGemist.xml.bak (rev 0) +++ trunk/plugins/UitzendingGemist/skin/[Project Mayhem]/RtlGemist.xml.bak 2007-03-23 15:15:17 UTC (rev 214) @@ -0,0 +1,52 @@ +<window> + <id>6802</id> + <defaultcontrol>50</defaultcontrol> + <allowoverlay>yes</allowoverlay> + <define>#header.label:RTLGemist</define> +<controls> + <import>common.window.xml</import> + <control> + <type>image</type> + <description>BackGround</description> + <id>1</id> + <posX>0</posX> + <posY>0</posY> + <width>720</width> + <height>576</height> + <texture>background3.png</texture> + </control> + <control> + <type>group</type> + <description>group element</description> + <animation>FlyInFromLeft</animation> + <layout>StackLayout</layout> + <posX>5</posX> + <posY>125</posY> + <control> + <description>Favorieten</description> + <type>button</type> + <id>2</id> + <label>Favorieten</label> + <onup>17</onup> + <ondown>3</ondown> + </control> + <control> + <description>Top Tien</description> + <type>button</type> + <id>3</id> + <label>Top Tien</label> + <onup>2</onup> + <ondown>4</ondown> + </control> + <control> + <description>Programma's</description> + <type>button</type> + <id>4</id> + <label>Programma's</label> + <onup>3</onup> + <ondown>2</ondown> + </control> + </control> + <import>common.facade.xml</import> +</controls> +</window> \ No newline at end of file Added: trunk/plugins/UitzendingGemist/skin/[Project Mayhem]/UitGemist.xml.bak =================================================================== --- trunk/plugins/UitzendingGemist/skin/[Project Mayhem]/UitGemist.xml.bak (rev 0) +++ trunk/plugins/UitzendingGemist/skin/[Project Mayhem]/UitGemist.xml.bak 2007-03-23 15:15:17 UTC (rev 214) @@ -0,0 +1,127 @@ +<window> + <id>6800</id> + <defaultcontrol>50</defaultcontrol> + <allowoverlay>yes</allowoverlay> + <define>#header.label:UitGemist</define> +<controls> + <import>common.window.xml</import> + <control> + <type>image</type> + <description>BackGround</description> + <id>1</id> + <posX>0</posX> + <posY>0</posY> + <width>720</width> + <height>576</height> + <texture>background3.png</texture> + </control> + <control> + <type>group</type> + <description>group element</description> + <animation>FlyInFromLeft</animation> + <layout>StackLayout</layout> + <posX>5</posX> + <posY>125</posY> + <control> + <description>Favorieten</description> + <type>button</type> + <id>2</id> + <label>Favorieten</label> + <onup>17</onup> + <ondown>3</ondown> + </control> + <control> + <type>selectbutton</type> + <description>Letter button</description> + <id>3</id> + <label>Titel</label> + <onup>2</onup> + <ondown>4</ondown> + </control> + <control> + <type>selectbutton</type> + <description>Letter button</description> + <id>4</id> + <label>Dag</label> + <onup>3</onup> + <ondown>5</ondown> + </control> + <control> + <type>selectbutton</type> + <description>Letter button</description> + <id>5</id> + <label>Net/zender</label> + <onup>4</onup> + <ondown>6</ondown> + </control> + <control> + <type>selectbutton</type> + <description>Letter button</description> + <id>6</id> + <label>Omroep</label> + <onup>5</onup> + <ondown>7</ondown> + </control> + <control> + <type>selectbutton</type> + <description>Letter button</description> + <id>7</id> + <label>Genre</label> + <onup>6</onup> + <ondown>8</ondown> + </control> + <control> + <description>Moet je Zien</description> + <type>button</type> + <id>8</id> + <label>Moet je zien</label> + <onup>7</onup> + <onright>50</onright> + <ondown>50</ondown> + </control> + <control> + <type>group</type> + <description>group element</description> + <control> + <type>imagelist</type> + <id>11</id> + <posX>550</posX> + <posY>350</posY> + <width>100</width> + <height>32</height> + <textureWidth>16</textureWidth> + <textureHeight>16</textureHeight> + <subitems> + <subitem>greystar.png</subitem> + <subitem>star.png</subitem> + </subitems> + <orientation>horizontal</orientation> + <align>left</align> + <percentage>#rating</percentage> + </control> + <control> + <type>textboxscrollup</type> + <description>Programma-info</description> + <id>12</id> + <posX>260</posX> + <posY>380</posY> + <width>375</width> + <height>100</height> + <label>#plot</label> + <textcolor>ffffffff</textcolor> + <font>font12</font> + </control> + <control> + <description>Bekeken</description> + <type>label</type> + <id>13</id> + <posX>260</posX> + <posY>350</posY> + <label>#votes keer bekeken</label> + <textcolor>ffffffff</textcolor> + </control> + </control> + </control> + <import>common.facade.xml</import> +</controls> +</window> \ No newline at end of file Added: trunk/plugins/UitzendingGemist/skin/[Project Mayhem]/UitGemist2.xml.bak =================================================================== --- trunk/plugins/UitzendingGemist/skin/[Project Mayhem]/UitGemist2.xml.bak (rev 0) +++ trunk/plugins/UitzendingGemist/skin/[Project Mayhem]/UitGemist2.xml.bak 2007-03-23 15:15:17 UTC (rev 214) @@ -0,0 +1,136 @@ +<window> + <id>6801</id> + <defaultcontrol>10</defaultcontrol> + <allowoverlay>yes</allowoverlay> + <define>#header.label:Programma</define> + <controls> + <import>common.window.xml</import> + <control> + <type>image</type> + <description>BackGround</description> + <id>9</id> + <posX>0</posX> + <posY>0</posY> + <width>720</width> + <height>576</height> + <texture>background.png</texture> + </control> + <control> + <type>group</type> + <description>group element</description> + <animation>FlyInFromTop</animation> + <control> + <type>image</type> + <description>Program image</description> + <id>3</id> + <posX>60</posX> + <posY>125</posY> + <width>100</width> + <height>75</height> + <texture>background.png</texture> + </control> + <control> + <description>Naam van gekozen programma</description> + <type>label</type> + <id>2</id> + <posX>170</posX> + <posY>105</posY> + <label>#title</label> + </control> + <control> + <description>Genre</description> + <type>label</type> + <id>0</id> + <posX>555</posX> + <posY>120</posY> + <label>Genre</label> + <textcolor>ffffffff</textcolor> + </control> + <control> + <description>Display wich genre</description> + <type>label</type> + <id>4</id> + <posX>555</posX> + <posY>138</posY> + <label>#genre</label> + </control> + <control> + <description>Omroep</description> + <type>label</type> + <id>8</id> + <posX>555</posX> + <posY>162</posY> + <label>Omroep</label> + <textcolor>ffffffff</textcolor> + </control> + <control> + <description>Display which omroep</description> + <type>label</type> + <id>5</id> + <posX>555</posX> + <posY>180</posY> + <label>#credits</label> + </control> + <control> + <type>imagelist</type> + <id>7</id> + <posX>555</posX> + <posY>205</posY> + <width>100</width> + <height>32</height> + <textureWidth>16</textureWidth> + <textureHeight>16</textureHeight> + <subitems> + <subitem>greystar.png</subitem> + <subitem>star.png</subitem> + </subitems> + <orientation>horizontal</orientation> + <align>left</align> + <percentage>#rating</percentage> + </control> + <control> + <type>textboxscrollup</type> + <description>Programma-info</description> + <id>6</id> + <posX>170</posX> + <posY>125</posY> + <width>375</width> + <height>105</height> + <label>#plot</label> + <font>font12</font> + <textcolor>ffffffff</textcolor> + </control> + <control> + <description>afleveringen</description> + <type>listcontrol</type> + <id>10</id> + <posX>170</posX> + <posY>240</posY> + <width>485</width> + <height>200</height> + <textXOff>10</textXOff> + <textYOff>2</textYOff> + <textXOff2>420</textXOff2> + <textYOff2>2</textYOff2> + <spaceBetweenItems>5</spaceBetweenItems> + <textureHeight>25</textureHeight> + <keepaspectratio>no</keepaspectratio> + <font2>font10</font2> + <font3>font10</font3> + <onup>17</onup> + </control> + <control> + <type>textboxscrollup</type> + <description>Programma-info</description> + <id>1</id> + <posX>170</posX> + <posY>400</posY> + <width>375</width> + <height>100</height> + <label>#plotoutline</label> + <font>font12</font> + <textcolor>ffffffff</textcolor> + </control> + </control> + </controls> +</window> Added: trunk/plugins/UitzendingGemist/skin/[Project Mayhem]/UitGemistMain.xml.bak =================================================================== --- trunk/plugins/UitzendingGemist/skin/[Project Mayhem]/UitGemistMain.xml.bak (rev 0) +++ trunk/plugins/UitzendingGemist/skin/[Project Mayhem]/UitGemistMain.xml.bak 2007-03-23 15:15:17 UTC (rev 214) @@ -0,0 +1,58 @@ +<window> + <id>6799</id> + <defaultcontrol>2</defaultcontrol> + <allowoverlay>yes</allowoverlay> + <define>#header.label:UitzendingGemist</define> + <define>#header.image:</define> + <define>#header.hover:hover_uitgemist.png</define> + + <controls> + <import>common.window.xml</import> + <control> + <description>BackGround</description> + <type>image</type> + <id>1</id> + <posX>0</posX> + <posY>0</posY> + <texture>background.png</texture> + </control> + <control> + <type>group</type> + <description>group element</description> + <animation effect="fade" time="250">WindowOpen</animation> + <animation effect="fade" time="500">WindowClose</animation> + <animation effect="slide" time="250" start="-300,0">WindowOpen</animation> + <animation effect="slide" time="500" end="0,-300">WindowClose</animation> + <layout>StackLayout</layout> + <posX>80</posX> + <posY>120</posY> + + <!-- topmost item needs an onup with a value of 17 for topbar to work --> + <control> + <description>UitzendingGemist.nl</description> + <type>button</type> + <id>2</id> + <width>575</width> + <height>90</height> + <textureNoFocus>nlgemist.png</textureNoFocus> + <textureFocus>hover_nlgemist.png</textureFocus> + <onup>17</onup> + </control> + + <!-- last item needs an ondown with a value of 2 to support wraparound --> + <control> + <description>RTL Gemist</description> + <type>button</type> + <id>3</id> + <width>575</width> + <height>90</height> + <textXOff>10</textXOff> + <textYOff>5</textYOff> + <textureNoFocus>rtlgemist.png</textureNoFocus> + <textureFocus>hover_rtlgemist.png</textureFocus> + <ondown>2</ondown> + </control> + + </control> + </controls> +</window> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |