コード例 #1
0
        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();
        }
コード例 #2
0
        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;
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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;
        }
コード例 #6
0
        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 ();
        }