private void BuildWindow() { VBox.Spacing = 12; main_box = VBox; var save_button = new Button("gtk-save") { CanDefault = true }; name_entry = new Entry(); name_entry.Text = feed.Title; name_entry.Changed += delegate { save_button.Sensitive = !String.IsNullOrEmpty(name_entry.Text); }; subscribed_check = new CheckButton(Catalog.GetString("Check periodically for new episodes")) { TooltipText = Catalog.GetString("If checked, Banshee will check every hour to see if this podcast has new episodes") }; download_check = new CheckButton(Catalog.GetString("Download new episodes")); DownloadPref = feed.AutoDownload; archive_check = new CheckButton(Catalog.GetString("Archive all episodes except the newest one")); MaxItemCount = (int)feed.MaxItemCount; subscribed_check.Toggled += delegate { download_check.Sensitive = archive_check.Sensitive = subscribed_check.Active; }; subscribed_check.Active = feed.IsSubscribed; download_check.Sensitive = archive_check.Sensitive = subscribed_check.Active; var last_updated_text = new Label(feed.LastDownloadTime.ToString("f")) { Justify = Justification.Left, Xalign = 0f }; var feed_url_text = new Label() { Text = feed.Url.ToString(), Wrap = false, Selectable = true, Xalign = 0f, Justify = Justification.Left, Ellipsize = Pango.EllipsizeMode.End }; string description_string = String.IsNullOrEmpty(feed.Description) ? Catalog.GetString("No description available") : feed.Description; var header_box = new HBox() { Spacing = 6 }; header_image_frame = new Frame(); header_image = new Image(); LoadCoverArt(fake_track); header_image_frame.Add( CoverArtEditor.For(header_image, (x, y) => true, () => fake_track, () => LoadCoverArt(fake_track) ) ); header_box.PackStart(header_image_frame, false, false, 0); var table = new Hyena.Widgets.SimpleTable <int> (); table.XOptions[0] = AttachOptions.Fill; table.XOptions[1] = AttachOptions.Expand | AttachOptions.Fill; table.AddRow(0, HeaderLabel(Catalog.GetString("Name:")), name_entry); table.AddRow(1, HeaderLabel(Catalog.GetString("Website:")), new Gtk.Alignment(0f, 0f, 0f, 0f) { Child = new LinkButton(feed.Link, Catalog.GetString("Visit")) { Image = new Gtk.Image(Gtk.Stock.JumpTo, Gtk.IconSize.Button) } }); header_box.PackStart(table, true, true, 0); main_box.PackStart(header_box, false, false, 0); Add(Catalog.GetString("Subscription Options"), subscribed_check, download_check, archive_check); var details = new Banshee.Gui.TrackEditor.StatisticsPage(); details.AddItem(Catalog.GetString("Feed URL:"), feed_url_text.Text); details.AddItem(Catalog.GetString("Last Refreshed:"), last_updated_text.Text); details.AddItem(Catalog.GetString("Description:"), description_string, true); details.AddItem(Catalog.GetString("Category:"), feed.Category); details.AddItem(Catalog.GetString("Keywords:"), feed.Keywords); details.AddItem(Catalog.GetString("Copyright:"), feed.Copyright); details.HeightRequest = 120; Add(true, Catalog.GetString("Details"), details); AddActionWidget(new Button("gtk-cancel") { CanDefault = true }, ResponseType.Cancel); AddActionWidget(save_button, ResponseType.Ok); }
private void BuildWindow() { VBox.Spacing = 12; main_box = VBox; var save_button = new Button ("gtk-save") { CanDefault = true }; name_entry = new Entry (); name_entry.Text = feed.Title; name_entry.Changed += delegate { save_button.Sensitive = !String.IsNullOrEmpty (name_entry.Text); }; subscribed_check = new CheckButton (Catalog.GetString ("Check periodically for new episodes")) { TooltipText = Catalog.GetString ("If checked, Banshee will check every hour to see if this podcast has new episodes") }; download_check = new CheckButton (Catalog.GetString ("Download new episodes")); DownloadPref = feed.AutoDownload; archive_check = new CheckButton (Catalog.GetString ("Archive all episodes except the newest one")); MaxItemCount = (int)feed.MaxItemCount; subscribed_check.Toggled += delegate { download_check.Sensitive = archive_check.Sensitive = subscribed_check.Active; }; subscribed_check.Active = feed.IsSubscribed; download_check.Sensitive = archive_check.Sensitive = subscribed_check.Active; var last_updated_text = new Label (feed.LastDownloadTime.ToString ("f")) { Justify = Justification.Left, Xalign = 0f }; var feed_url_text = new Label () { Text = feed.Url.ToString (), Wrap = false, Selectable = true, Xalign = 0f, Justify = Justification.Left, Ellipsize = Pango.EllipsizeMode.End }; string description_string = String.IsNullOrEmpty (feed.Description) ? Catalog.GetString ("No description available") : feed.Description; var header_box = new HBox () { Spacing = 6 }; header_image_frame = new Frame (); header_image = new Image (); LoadCoverArt (fake_track); header_image_frame.Add ( CoverArtEditor.For (header_image, (x, y) => true, () => fake_track, () => LoadCoverArt (fake_track) ) ); header_box.PackStart (header_image_frame, false, false, 0); var table = new Hyena.Widgets.SimpleTable<int> (); table.XOptions[0] = AttachOptions.Fill; table.XOptions[1] = AttachOptions.Expand | AttachOptions.Fill; table.AddRow (0, HeaderLabel (Catalog.GetString ("Name:")), name_entry); table.AddRow (1, HeaderLabel (Catalog.GetString ("Website:")), new Gtk.Alignment (0f, 0f, 0f, 0f) { Child = new LinkButton (feed.Link, Catalog.GetString ("Visit")) { Image = new Gtk.Image (Gtk.Stock.JumpTo, Gtk.IconSize.Button) } }); header_box.PackStart (table, true, true, 0); main_box.PackStart (header_box, false, false, 0); Add (Catalog.GetString ("Subscription Options"), subscribed_check, download_check, archive_check); var details = new Banshee.Gui.TrackEditor.StatisticsPage (); details.AddItem (Catalog.GetString ("Feed URL:"), feed_url_text.Text); details.AddItem (Catalog.GetString ("Last Refreshed:"), last_updated_text.Text); details.AddItem (Catalog.GetString ("Description:"), description_string, true); details.AddItem (Catalog.GetString ("Category:"), feed.Category); details.AddItem (Catalog.GetString ("Keywords:"), feed.Keywords); details.AddItem (Catalog.GetString ("Copyright:"), feed.Copyright); details.HeightRequest = 120; Add (true, Catalog.GetString ("Details"), details); AddActionWidget (new Button ("gtk-cancel") { CanDefault = true }, ResponseType.Cancel); AddActionWidget (save_button, ResponseType.Ok); }