public FilteredListSourceContents(string name,
                                          SchemaEntry <int> pane_top_position,
                                          SchemaEntry <int> pane_left_position)
        {
            this.name = name;
            this.pane_top_position  = pane_top_position;
            this.pane_left_position = pane_left_position;

            InitializeViews();

            string position = Layout();

            if (ForcePosition != null)
            {
                return;
            }

            if (ServiceManager.Contains("InterfaceActionService"))
            {
                action_service = ServiceManager.Get <InterfaceActionService> ();

                if (action_service.FindActionGroup("BrowserView") == null)
                {
                    browser_view_actions = new ActionGroup("BrowserView");

                    browser_view_actions.Add(new RadioActionEntry [] {
                        new RadioActionEntry("BrowserLeftAction", null,
                                             Catalog.GetString("Browser on Left"), null,
                                             Catalog.GetString("Show the artist/album browser to the left of the track list"), 0),

                        new RadioActionEntry("BrowserTopAction", null,
                                             Catalog.GetString("Browser on Top"), null,
                                             Catalog.GetString("Show the artist/album browser above the track list"), 1),
                    }, position == "top" ? 1 : 0, null);

                    browser_view_actions.Add(new ToggleActionEntry [] {
                        new ToggleActionEntry("BrowserVisibleAction", null,
                                              Catalog.GetString("Show Browser"), "<control>B",
                                              Catalog.GetString("Show or hide the artist/album browser"),
                                              null, BrowserVisible.Get())
                    });

                    action_service.AddActionGroup(browser_view_actions);
                    //action_merge_id = action_service.UIManager.NewMergeId ();
                    action_service.UIManager.AddUiFromString(menu_xml);
                }

                (action_service.FindAction("BrowserView.BrowserLeftAction") as RadioAction).Changed += OnViewModeChanged;
                (action_service.FindAction("BrowserView.BrowserTopAction") as RadioAction).Changed  += OnViewModeChanged;
                action_service.FindAction("BrowserView.BrowserVisibleAction").Activated             += OnToggleBrowser;
            }

            ServiceManager.SourceManager.ActiveSourceChanged += delegate {
                ThreadAssist.ProxyToMain(delegate {
                    browser_container.Visible = ActiveSourceCanHasBrowser ? BrowserVisible.Get() : false;
                });
            };

            NoShowAll = true;
        }
 private void ShowPack()
 {
     PackStart(container, true, true, 0);
     NoShowAll = false;
     ShowAll();
     NoShowAll = true;
     browser_container.Visible = ForcePosition != null || BrowserVisible.Get();
 }
        /// <summary>
        /// Draw the source contents
        /// </summary>
        private void ShowPack()
        {
            PackStart(container, true, true, 0);
            VBox instruct = new VBox();
            //instruct.ExposeEvent += (o, a) => {
            //    using (Cairo.Context cr = Gdk.CairoHelper.Create (instruct.GdkWindow)) {
            //        double radius = 10;
            //        int x = a.Event.Area.X;
            //        int y = a.Event.Area.Y;
            //        int width = a.Event.Area.Width;
            //        int height = a.Event.Area.Height;

            //        cr.MoveTo (x + radius, y);
            //        cr.Arc (x + width - radius, y + radius, radius, Math.PI * 1.5, Math.PI * 2);
            //        cr.Arc (x + width - radius, y + height - radius, radius, 0, Math.PI * .5);
            //        cr.Arc (x + radius, y + height - radius, radius, Math.PI * .5, Math.PI);
            //        cr.Arc (x + radius, y + radius, radius, Math.PI, Math.PI * 1.5);
            //        cr.Color = new Cairo.Color (.5, .5, .5, 1);
            //        cr.Stroke ();
            //    }
            // not yet sure which is the better code.
            //                Gdk.Window win = a.Event.Window;
            //                Gdk.Rectangle area = a.Event.Area;
            //
            //                win.DrawRectangle (Style.BaseGC (StateType.Active), false, area);
            //
            //                a.RetVal = true;
            //};
            Label help_label = new Label(
                AddinManager.CurrentLocalizer.GetString("Click a genre to load/refresh entries or type a query. Use the refresh button to refresh genres."));

            instruct.PackStart(help_label, false, true, 10);
            PackStart(instruct, false, true, 10);
            NoShowAll = false;
            ShowAll();
            NoShowAll = true;
            browser_container.Visible = ForcePosition != null || BrowserVisible.Get();
        }
Пример #4
0
        public virtual bool SetSource(ISource source)
        {
            this.source = source;

            browser_container.Visible = ForcePosition != null || ActiveSourceCanHasBrowser && BrowserVisible.Get();
            return(true);
        }
Пример #5
0
        protected override void OnShown()
        {
            base.OnShown();

            browser_container.Visible = ActiveSourceCanHasBrowser && BrowserVisible.Get();
        }
        /// <summary>
        /// Constructor -- creates the source contents for a plugin and sets up the event handlers for the view
        /// and the plugin refresh events.
        /// </summary>
        /// <param name="plugin">
        /// A <see cref="ILiveRadioPlugin"/> -- the plugin to set up the source contents for.
        /// </param>
        public LiveRadioPluginSourceContents(ILiveRadioPlugin plugin)
        {
            base.Name   = plugin.Name;
            this.plugin = plugin;

            InitializeViews();

            string position = ForcePosition == null?BrowserPosition.Get() : ForcePosition;

            if (position == "top")
            {
                LayoutTop();
            }
            else
            {
                LayoutLeft();
            }

            plugin.GenreListLoaded        += OnPluginGenreListLoaded;
            plugin.RequestResultRetrieved += OnPluginRequestResultRetrieved;

            if (ForcePosition != null)
            {
                return;
            }

            if (ServiceManager.Contains("InterfaceActionService"))
            {
                action_service = ServiceManager.Get <InterfaceActionService> ();

                if (action_service.FindActionGroup("BrowserView") == null)
                {
                    browser_view_actions = new ActionGroup("BrowserView");

                    browser_view_actions.Add(new RadioActionEntry [] {
                        new RadioActionEntry("BrowserLeftAction", null,
                                             AddinManager.CurrentLocalizer.GetString("Browser on Left"), null,
                                             AddinManager.CurrentLocalizer.GetString("Show the artist/album browser to the left of the track list"), 0),

                        new RadioActionEntry("BrowserTopAction", null,
                                             AddinManager.CurrentLocalizer.GetString("Browser on Top"), null,
                                             AddinManager.CurrentLocalizer.GetString("Show the artist/album browser above the track list"), 1),
                    }, position == "top" ? 1 : 0, null);

                    browser_view_actions.Add(new ToggleActionEntry [] {
                        new ToggleActionEntry("BrowserVisibleAction", null,
                                              AddinManager.CurrentLocalizer.GetString("Show Browser"), "<control>B",
                                              AddinManager.CurrentLocalizer.GetString("Show or hide the artist/album browser"),
                                              null, BrowserVisible.Get())
                    });


                    action_service.AddActionGroup(browser_view_actions);
                    action_service.UIManager.AddUiFromString(menu_xml);
                }

                (action_service.FindAction("BrowserView.BrowserLeftAction") as RadioAction).Changed += OnViewModeChanged;
                (action_service.FindAction("BrowserView.BrowserTopAction") as RadioAction).Changed  += OnViewModeChanged;
                action_service.FindAction("BrowserView.BrowserVisibleAction").Activated             += OnToggleBrowser;
            }

            ServiceManager.SourceManager.ActiveSourceChanged += delegate {
                ThreadAssist.ProxyToMain(delegate {
                    browser_container.Visible = ActiveSourceCanHasBrowser ? BrowserVisible.Get() : false;
                });
            };

            NoShowAll = true;
        }