private void BuildView() { podcast_view_scroller = new ScrolledWindow(); podcast_view_scroller.ShadowType = ShadowType.In; podcast_view_scroller.VscrollbarPolicy = PolicyType.Automatic; podcast_view_scroller.HscrollbarPolicy = PolicyType.Automatic; podcast_feed_view_scroller = new ScrolledWindow(); podcast_feed_view_scroller.ShadowType = ShadowType.In; podcast_feed_view_scroller.VscrollbarPolicy = PolicyType.Automatic; podcast_feed_view_scroller.HscrollbarPolicy = PolicyType.Automatic; podcast_model = new PodcastPlaylistModel(); podcast_feed_model = new PodcastFeedModel(); podcast_model.ClearModel(); podcast_feed_model.ClearModel(); podcast_model.QueueAdd(PodcastCore.Library.Podcasts); podcast_feed_model.QueueAdd(PodcastCore.Library.Feeds); podcast_view = new PodcastPlaylistView(podcast_model); podcast_view.ButtonPressEvent += OnPlaylistViewButtonPressEvent; podcast_feed_view = new PodcastFeedView(podcast_feed_model); podcast_feed_view.Selection.Changed += OnFeedViewSelectionChanged; podcast_feed_view.ButtonPressEvent += OnPodcastFeedViewButtonPressEvent; podcast_feed_view.SelectAll += OnSelectAllHandler; podcast_view_scroller.Add(podcast_view); podcast_feed_view_scroller.Add(podcast_feed_view); feed_info_pane = new HPaned(); feed_info_pane.Add1(podcast_feed_view_scroller); // -- later-- feed_info_pane.Add2 (); feed_playlist_pane = new VPaned(); feed_playlist_pane.Add1(feed_info_pane); feed_playlist_pane.Add2(podcast_view_scroller); try { feed_playlist_pane.Position = GConfSchemas.PlaylistSeparatorPositionSchema.Get(); } catch { feed_playlist_pane.Position = 300; GConfSchemas.PlaylistSeparatorPositionSchema.Set( feed_playlist_pane.Position ); } update_button = new ActionButton(Globals.ActionManager ["PodcastUpdateFeedsAction"]); viewWidget = feed_playlist_pane; viewWidget.ShowAll(); }
private void DestroyView() { viewWidget = null; if (podcast_view != null) { podcast_view.Shutdown(); } podcast_view = null; podcast_model = null; podcast_feed_view = null; podcast_feed_model = null; feed_view_popup_menu = null; }
public PodcastPlaylistView(PodcastPlaylistModel model) { if (model == null) { throw new NullReferenceException("model"); } columns = new ArrayList(3); schemas = new ArrayList(3); RulesHint = true; Selection.Mode = SelectionMode.Multiple; filter = new TreeModelFilter(model, null); filter.VisibleFunc = PodcastFilterFunc; sort = new TreeModelSort(filter); sort.DefaultSortFunc = PodcastFeedTitleTreeIterCompareFunc; Model = sort; podcast_title_column = NewColumn( Catalog.GetString("Title"), (int)Column.PodcastTitle, GConfSchemas.PodcastTitleColumnSchema ); feed_title_column = NewColumn( Catalog.GetString("Feed"), (int)Column.FeedTitle, GConfSchemas.PodcastFeedColumnSchema ); pubdate_column = NewColumn( Catalog.GetString("Date"), (int)Column.PubDate, GConfSchemas.PodcastDateColumnSchema ); /********************************************/ download_column = new TreeViewColumn(); Gtk.Image download_image = new Gtk.Image( PodcastPixbufs.DownloadColumnIcon ); download_image.Show(); download_column.Expand = false; download_column.Resizable = false; download_column.Clickable = false; download_column.Reorderable = false; download_column.Visible = true; download_column.Widget = download_image; CellRendererToggle download_renderer = new CellRendererToggle(); download_renderer.Activatable = true; download_renderer.Toggled += OnDownloadToggled; download_column.PackStart(download_renderer, true); download_column.SetCellDataFunc( download_renderer, new TreeCellDataFunc(DownloadCellToggle)); /********************************************/ activity_column = new TreeViewColumn(); Gtk.Image activity_image = new Gtk.Image( PodcastPixbufs.ActivityColumnIcon ); activity_image.Show(); activity_column.Expand = false; activity_column.Resizable = false; activity_column.Clickable = false; activity_column.Reorderable = false; activity_column.Visible = true; activity_column.Widget = activity_image; CellRendererPixbuf activity_renderer = new CellRendererPixbuf(); activity_column.PackStart(activity_renderer, true); activity_column.SetCellDataFunc(activity_renderer, new TreeCellDataFunc(TrackCellActivity)); /********************************************/ CellRendererText podcast_title_renderer = new CellRendererText(); CellRendererText feed_title_renderer = new CellRendererText(); CellRendererText pubdate_renderer = new CellRendererText(); podcast_title_column.PackStart(podcast_title_renderer, false); podcast_title_column.SetCellDataFunc(podcast_title_renderer, new TreeCellDataFunc(TrackCellPodcastTitle)); feed_title_column.PackStart(feed_title_renderer, true); feed_title_column.SetCellDataFunc(feed_title_renderer, new TreeCellDataFunc(TrackCellPodcastFeedTitle)); pubdate_column.PackStart(pubdate_renderer, true); pubdate_column.SetCellDataFunc(pubdate_renderer, new TreeCellDataFunc(TrackCellPubDate)); sort.SetSortFunc((int)Column.PodcastTitle, new TreeIterCompareFunc(PodcastTitleTreeIterCompareFunc)); sort.SetSortFunc((int)Column.FeedTitle, new TreeIterCompareFunc(PodcastFeedTitleTreeIterCompareFunc)); sort.SetSortFunc((int)Column.PubDate, new TreeIterCompareFunc(PodcastPubDateTreeIterCompareFunc)); InsertColumn(activity_column, (int)Column.Activity); InsertColumn(download_column, (int)Column.Download); InsertColumn(podcast_title_column, (int)Column.PodcastTitle); InsertColumn(feed_title_column, (int)Column.FeedTitle); InsertColumn(pubdate_column, (int)Column.PubDate); }
public PodcastPlaylistView(PodcastPlaylistModel model) { if (model == null) { throw new NullReferenceException ("model"); } columns = new ArrayList (3); schemas = new ArrayList (3); RulesHint = true; Selection.Mode = SelectionMode.Multiple; filter = new TreeModelFilter (model, null); filter.VisibleFunc = PodcastFilterFunc; sort = new TreeModelSort (filter); sort.DefaultSortFunc = PodcastFeedTitleTreeIterCompareFunc; Model = sort; podcast_title_column = NewColumn ( Catalog.GetString ("Title"), (int) Column.PodcastTitle, GConfSchemas.PodcastTitleColumnSchema ); feed_title_column = NewColumn ( Catalog.GetString ("Feed"), (int) Column.FeedTitle, GConfSchemas.PodcastFeedColumnSchema ); pubdate_column = NewColumn ( Catalog.GetString ("Date"), (int) Column.PubDate, GConfSchemas.PodcastDateColumnSchema ); /********************************************/ download_column = new TreeViewColumn(); Gtk.Image download_image = new Gtk.Image( PodcastPixbufs.DownloadColumnIcon ); download_image.Show(); download_column.Expand = false; download_column.Resizable = false; download_column.Clickable = false; download_column.Reorderable = false; download_column.Visible = true; download_column.Widget = download_image; CellRendererToggle download_renderer = new CellRendererToggle(); download_renderer.Activatable = true; download_renderer.Toggled += OnDownloadToggled; download_column.PackStart(download_renderer, true); download_column.SetCellDataFunc ( download_renderer, new TreeCellDataFunc(DownloadCellToggle)); /********************************************/ activity_column = new TreeViewColumn(); Gtk.Image activity_image = new Gtk.Image( PodcastPixbufs.ActivityColumnIcon ); activity_image.Show(); activity_column.Expand = false; activity_column.Resizable = false; activity_column.Clickable = false; activity_column.Reorderable = false; activity_column.Visible = true; activity_column.Widget = activity_image; CellRendererPixbuf activity_renderer = new CellRendererPixbuf(); activity_column.PackStart(activity_renderer, true); activity_column.SetCellDataFunc (activity_renderer, new TreeCellDataFunc (TrackCellActivity)); /********************************************/ CellRendererText podcast_title_renderer = new CellRendererText(); CellRendererText feed_title_renderer = new CellRendererText(); CellRendererText pubdate_renderer = new CellRendererText(); podcast_title_column.PackStart (podcast_title_renderer, false); podcast_title_column.SetCellDataFunc (podcast_title_renderer, new TreeCellDataFunc (TrackCellPodcastTitle)); feed_title_column.PackStart (feed_title_renderer, true); feed_title_column.SetCellDataFunc (feed_title_renderer, new TreeCellDataFunc (TrackCellPodcastFeedTitle)); pubdate_column.PackStart (pubdate_renderer, true); pubdate_column.SetCellDataFunc (pubdate_renderer, new TreeCellDataFunc (TrackCellPubDate)); sort.SetSortFunc((int)Column.PodcastTitle, new TreeIterCompareFunc(PodcastTitleTreeIterCompareFunc)); sort.SetSortFunc((int)Column.FeedTitle, new TreeIterCompareFunc(PodcastFeedTitleTreeIterCompareFunc)); sort.SetSortFunc((int)Column.PubDate, new TreeIterCompareFunc(PodcastPubDateTreeIterCompareFunc)); InsertColumn (activity_column, (int)Column.Activity); InsertColumn (download_column, (int)Column.Download); InsertColumn (podcast_title_column, (int)Column.PodcastTitle); InsertColumn (feed_title_column, (int)Column.FeedTitle); InsertColumn (pubdate_column, (int)Column.PubDate); }
private void DestroyView() { viewWidget = null; if (podcast_view != null) { podcast_view.Shutdown (); } podcast_view = null; podcast_model = null; podcast_feed_view = null; podcast_feed_model = null; feed_view_popup_menu = null; }
private void BuildView() { podcast_view_scroller = new ScrolledWindow(); podcast_view_scroller.ShadowType = ShadowType.In; podcast_view_scroller.VscrollbarPolicy = PolicyType.Automatic; podcast_view_scroller.HscrollbarPolicy = PolicyType.Automatic; podcast_feed_view_scroller = new ScrolledWindow(); podcast_feed_view_scroller.ShadowType = ShadowType.In; podcast_feed_view_scroller.VscrollbarPolicy = PolicyType.Automatic; podcast_feed_view_scroller.HscrollbarPolicy = PolicyType.Automatic; podcast_model = new PodcastPlaylistModel (); podcast_feed_model = new PodcastFeedModel (); podcast_model.ClearModel (); podcast_feed_model.ClearModel (); podcast_model.QueueAdd (PodcastCore.Library.Podcasts); podcast_feed_model.QueueAdd (PodcastCore.Library.Feeds); podcast_view = new PodcastPlaylistView (podcast_model); podcast_view.ButtonPressEvent += OnPlaylistViewButtonPressEvent; podcast_feed_view = new PodcastFeedView (podcast_feed_model); podcast_feed_view.Selection.Changed += OnFeedViewSelectionChanged; podcast_feed_view.ButtonPressEvent += OnPodcastFeedViewButtonPressEvent; podcast_feed_view.SelectAll += OnSelectAllHandler; podcast_view_scroller.Add (podcast_view); podcast_feed_view_scroller.Add (podcast_feed_view); feed_info_pane = new HPaned (); feed_info_pane.Add1 (podcast_feed_view_scroller); // -- later-- feed_info_pane.Add2 (); feed_playlist_pane = new VPaned (); feed_playlist_pane.Add1 (feed_info_pane); feed_playlist_pane.Add2 (podcast_view_scroller); try { feed_playlist_pane.Position = GConfSchemas.PlaylistSeparatorPositionSchema.Get (); } catch { feed_playlist_pane.Position = 300; GConfSchemas.PlaylistSeparatorPositionSchema.Set ( feed_playlist_pane.Position ); } update_button = new ActionButton (Globals.ActionManager ["PodcastUpdateFeedsAction"]); viewWidget = feed_playlist_pane; viewWidget.ShowAll (); }