private void Initialize() { interface_action_service.GlobalActions.Add(new Gtk3.ActionEntry [] { new Gtk3.ActionEntry("CloseAction", Gtk3.Stock.Close, AddinManager.CurrentLocalizer.GetString("_Close"), "<Control>W", AddinManager.CurrentLocalizer.GetString("Close"), CloseWindow) }); actions = new BansheeActionGroup(interface_action_service, "AppIndicator"); actions.Add(new Gtk3.ToggleActionEntry [] { new Gtk3.ToggleActionEntry("ShowHideAction", null, AddinManager.CurrentLocalizer.GetString("_Show Banshee"), null, AddinManager.CurrentLocalizer.GetString("Show the Banshee main window"), ToggleShowHide, PrimaryWindowVisible) }); interface_action_service.AddActionGroup(actions); ui_manager_id = (int)interface_action_service.UIManager.AddUiFromResource("AppIndicatorMenu.xml"); ServiceManager.PlayerEngine.ConnectEvent(OnPlayerEvent, PlayerEvent.StartOfStream | PlayerEvent.EndOfStream | PlayerEvent.TrackInfoUpdated | PlayerEvent.StateChange); artwork_manager_service = ServiceManager.Get <ArtworkManager> (); artwork_manager_service.AddCachedSize(icon_size); // Forcefully load this show_notifications = ShowNotifications; DrawAppIndicator(); }
private void Initialize() { interface_action_service.GlobalActions.Add(new ActionEntry [] { new ActionEntry("CloseAction", Stock.Close, Catalog.GetString("_Close"), "<Control>W", Catalog.GetString("Close"), CloseWindow) }); actions = new BansheeActionGroup(interface_action_service, "NotificationArea"); actions.Add(new ToggleActionEntry [] { new ToggleActionEntry("ToggleNotificationsAction", null, Catalog.GetString("_Show Notifications"), null, Catalog.GetString("Show notifications when item changes"), ToggleNotifications, ShowNotifications) }); interface_action_service.AddActionGroup(actions); ui_manager_id = (int)interface_action_service.UIManager.AddUiFromResource("NotificationAreaMenu.xml"); ServiceManager.PlayerEngine.ConnectEvent(OnPlayerEvent, PlayerEvent.StartOfStream | PlayerEvent.EndOfStream | PlayerEvent.TrackInfoUpdated | PlayerEvent.StateChange); // Forcefully load this show_notifications = ShowNotifications; artwork_manager_service = ServiceManager.Get <ArtworkManager> (); artwork_manager_service.AddCachedSize(icon_size); }
public WebSource(string name, int order, string id) : base(name, name, order, id) { TypeUniqueId = id; Properties.Set <bool> ("Nereid.SourceContents.HeaderVisible", false); actions = new BansheeActionGroup(id); actions.Add( new ActionEntry("ZoomIn" + id, Stock.ZoomIn, null, "<control>plus", null, (o, a) => view.ZoomIn()), new ActionEntry("ZoomOut" + id, Stock.ZoomOut, null, "<control>minus", null, (o, a) => view.ZoomOut()), new ActionEntry("Zoom100" + id, Stock.Zoom100, null, "<control>0", null, (o, a) => view.Zoom = 1f) ); Properties.Set <string> ("ActiveSourceUIString", String.Format(@" <ui> <menubar name=""MainMenu"" action=""MainMenuAction""> <menu name=""ViewMenu"" action=""ViewMenuAction""> <placeholder name=""ViewMenuAdditions""> <separator/> <menuitem action=""ZoomIn{0}""/> <menuitem action=""ZoomOut{0}""/> <menuitem action=""Zoom100{0}""/> <separator/> </placeholder> </menu> </menubar> </ui>", TypeUniqueId )); Properties.Set <BansheeActionGroup> ("ActiveSourceActions", actions); }
public NowPlayingSource() : base("now-playing", Catalog.GetString("Now Playing"), 10, "now-playing") { Properties.SetString("Icon.Name", "applications-multimedia"); Properties.Set <bool> ("Nereid.SourceContents.HeaderVisible", false); Properties.SetString("ActiveSourceUIResource", "ActiveSourceUI.xml"); var simplified_conf = CreateSchema <bool> ("simplified_mode"); var actions = new BansheeActionGroup("NowPlaying"); actions.AddImportant(new ToggleActionEntry("SimplifyNowPlaying", null, Catalog.GetString("Simplify"), "F9", Catalog.GetString("Hide/Show the source list, menu, toolbar, and status bar"), delegate { bool simple = !Properties.Get <bool> ("Nereid.SimpleUI"); Properties.Set <bool> ("Nereid.SimpleUI", simple); (actions["SimplifyNowPlaying"] as ToggleAction).Active = simple; simplified_conf.Set(simple); }, simplified_conf.Get()) ); Properties.Set <bool> ("Nereid.SimpleUI", simplified_conf.Get()); Properties.Set <BansheeActionGroup> ("ActiveSourceActions", actions); ServiceManager.SourceManager.AddSource(this); ServiceManager.PlaybackController.Transition += OnPlaybackControllerTransition; ServiceManager.PlaybackController.TrackStarted += OnPlaybackControllerTrackStarted; ServiceManager.PlayerEngine.ConnectEvent(OnTrackInfoUpdated, PlayerEvent.TrackInfoUpdated); ServiceManager.PlayerEngine.ConnectEvent(OnCreateVideoWindow, PlayerEvent.PrepareVideoWindow); }
public FixSource() : base(Catalog.GetString("Metadata Fixer"), Catalog.GetString("Metadata Fixer"), -1) { TypeUniqueId = "fixes"; var header_widget = new HBox() { Spacing = 6 }; header_widget.PackStart(new Label(Catalog.GetString("Problem Type:")), false, false, 0); var combo = new Banshee.Widgets.DictionaryComboBox <Solver> (); foreach (var solver in problem_model.Solvers) { combo.Add(solver.Name, solver); } combo.Changed += (o, a) => { problem_model.Solver = combo.ActiveValue; SetStatus(problem_model.Solver.Description, false, false, "gtk-info"); }; combo.Active = 0; var apply_button = new Hyena.Widgets.ImageButton(Catalog.GetString("Apply Selected Fixes"), "gtk-apply"); apply_button.Clicked += (o, a) => problem_model.Fix(); problem_model.Reloaded += (o, a) => apply_button.Sensitive = problem_model.SelectedCount > 0; header_widget.PackStart(combo, false, false, 0); header_widget.PackStart(apply_button, false, false, 0); header_widget.ShowAll(); Properties.SetStringList("Icon.Name", "search", "gtk-search"); Properties.SetString("ActiveSourceUIResource", "ActiveUI.xml"); Properties.SetString("GtkActionPath", "/FixSourcePopup"); Properties.Set <Gtk.Widget> ("Nereid.SourceContents.HeaderWidget", header_widget); Properties.Set <Banshee.Sources.Gui.ISourceContents> ("Nereid.SourceContents", new View(problem_model)); Properties.SetString("UnmapSourceActionLabel", Catalog.GetString("Close")); Properties.SetString("UnmapSourceActionIconName", "gtk-close"); var actions = new BansheeActionGroup("fix-source"); actions.AddImportant( new ActionEntry("RefreshProblems", Stock.Refresh, Catalog.GetString("Refresh"), null, null, (o, a) => { problem_model.Refresh(); }) ); actions.Register(); problem_model.Reload(); }
public DuplicateSongDetectorSource() : base(AddinManager.CurrentLocalizer.GetString("Duplicate Song Detector"), AddinManager.CurrentLocalizer.GetString("Duplicate Song Detector"), sort_order, "extension-unique-id") { Properties.SetStringList("Icon.Name", "search", "gtk-search"); Properties.Set <Banshee.Sources.Gui.ISourceContents> ("Nereid.SourceContents", new SongDuplicateView()); Properties.SetString("ActiveSourceUIResource", "ActiveUI.xml"); Properties.SetString("UnmapSourceActionLabel", AddinManager.CurrentLocalizer.GetString("Close")); Properties.SetString("UnmapSourceActionIconName", "gtk-close"); var actions = new BansheeActionGroup("duplicate-source"); actions.AddImportant( new Gtk.ActionEntry("onStartDetecting", Gtk.Stock.Refresh, AddinManager.CurrentLocalizer.GetString("Refresh"), null, null, (o, a) => { SongDuplicateView.ReloadWindow(); }) ); actions.Register(); }
public void Dispose() { if (disposed) { return; } if (current_nf != null) { try { current_nf.Close(); } catch {} } if (notif_area != null) { notif_area.Dispose(); notif_area = null; } ServiceManager.PlayerEngine.DisconnectEvent(OnPlayerEvent); elements_service.PrimaryWindowClose = null; Gtk.Action close_action = interface_action_service.GlobalActions["CloseAction"]; if (close_action != null) { interface_action_service.GlobalActions.Remove(close_action); } if (ui_manager_id >= 0) { interface_action_service.RemoveActionGroup("NotificationArea"); interface_action_service.UIManager.RemoveUi((uint)ui_manager_id); ui_manager_id = -1; } actions = null; elements_service = null; interface_action_service = null; disposed = true; }
public FolderSyncSource() : base(AddinManager.CurrentLocalizer.GetString("FolderSync"), "FolderSync", sort_order, "extension-unique-id") { Properties.SetStringList("Icon.Name", "refresh", "gtk-refresh"); Properties.Set <ISourceContents> ("Nereid.SourceContents", Controller); Properties.SetString("ActiveSourceUIResource", "ActiveUI.xml"); Properties.SetString("UnmapSourceActionLabel", AddinManager.CurrentLocalizer.GetString("Close")); Properties.SetString("UnmapSourceActionIconName", "gtk-close"); var actions = new BansheeActionGroup("directory-sync"); actions.AddImportant( new Gtk.ActionEntry("StopSyncing", Gtk.Stock.Stop, AddinManager.CurrentLocalizer.GetString("Stop"), null, null, (o, a) => { if (Controller != null) { Controller.StopSync(); } }) ); actions.Register(); }