/* vim: set noexpandtab tabstop=4 shiftwidth=4 nowrap textwidth=100
*
* Echo Media Player
* Copyright (C) 2008 Shane O'Connell
*
* [ The original file includes a copyright header in this location describing
* the file as being released under the terms of the GNU General Public
* License. It has been removed in order to display the file as part of the
* archive. ]
*/
public class Echo.UI.UIService
{
private ActionManager _action_manager;
public enum RepeatValue
{
OFF, ALL, SINGLE
}
public enum ShuffleValue
{
OFF, ALL, BY_ARTIST, BY_ALBUM
}
public MainWindow main_window { get { return _main_window; } }
private MainWindow _main_window;
private StatusIcon _status_icon;
public UIService()
{
_action_manager = new ActionManager();
init_actions();
_main_window = new MainWindow(_action_manager);
_status_icon = new StatusIcon(_action_manager);
if (_status_icon.visible)
debug("visible");
else
debug("not visible");
}
public weak Gtk.Action? get_action(string name)
{
return _action_manager.get_action(name);
}
private void init_actions()
{
// Main menus
_action_manager.add_action("file-menu", "_File");
_action_manager.add_action("edit-menu", "_Edit");
_action_manager.add_action("view-menu", "_View");
_action_manager.add_action("playback-menu", "_Playback");
_action_manager.add_action("help-menu", "_Help");
// File menu
_action_manager.add_action("new-playlist", "New _Playlist", "gtk-new");
_action_manager.add_action("new-smart-playlist", "New _Smart Playlist");
_action_manager.add_action("open-file", null, "gtk-open");
_action_manager.add_action("open-url", "Open _URL");
_action_manager.add_action("refresh-libraries", "_Refresh Libraries", "gtk-refresh");
_action_manager.add_action("close", null, "gtk-close");
_action_manager.add_action("quit", null, "gtk-quit");
// Edit menu
_action_manager.add_action("edit-preferences", null, "gtk-preferences");
// View menu
_action_manager.add_toggle_action("view-browser", false, "Show _Browser");
_action_manager.add_action("view-fullscreen", null, "gtk-fullscreen", "F11");
// Playback menu
_action_manager.add_action("play-pause", null, "gtk-media-play");
_action_manager.add_action("next-track", "_Next", "gtk-media-next");
_action_manager.add_action("previous-track", null, "gtk-media-previous");
_action_manager.add_toggle_action("stop-when-finished", false, "Stop When _Finished");
// Repeat menu
_action_manager.add_action("repeat-menu", "_Repeat");
_action_manager.add_custom_action(
new Gtk.RadioAction("repeat-off", "Repeat _Off", null, null, RepeatValue.OFF));
_action_manager.get_action("repeat-off").set("active", true);
_action_manager.add_custom_action(
new Gtk.RadioAction("repeat-all", "Repeat _All", null, null, RepeatValue.ALL));
_action_manager.get_action("repeat-all").set("group", _action_manager.get_action("repeat-off"));
_action_manager.add_custom_action(
new Gtk.RadioAction("repeat-single", "Repeat _Single", null, null, RepeatValue.SINGLE));
_action_manager.get_action("repeat-single").set("group", _action_manager.get_action("repeat-off"));
_action_manager.add_toggle_action("shuffle", false, "_Shuffle");
/*
// Shuffle menu
_action_manager.add_action("shuffle-menu", "_Shuffle");
_action_manager.add_custom_action(
new Gtk.RadioAction("shuffle-off", "Shuffle _Off", null, null, ShuffleValue.OFF));
_action_manager.get_action("shuffle-off").set("active", true);
_action_manager.add_custom_action(
new Gtk.RadioAction("shuffle-all", "Shuffle _All", null, null, ShuffleValue.ALL));
_action_manager.get_action("shuffle-all").set("group", _action_manager.get_action("shuffle-off"));
_action_manager.add_custom_action(
new Gtk.RadioAction("shuffle-by-artist", "Shuffle By _Artist", null, null, ShuffleValue.BY_ARTIST));
_action_manager.get_action("shuffle-by-artist").set("group", _action_manager.get_action("shuffle-off"));
_action_manager.add_custom_action(
new Gtk.RadioAction("shuffle-by-album", "Shuffle By Al_bum", null, null, ShuffleValue.BY_ALBUM));
_action_manager.get_action("shuffle-by-album").set("group", _action_manager.get_action("shuffle-off"));
*/
// Help menu
_action_manager.add_action("about", null, "gtk-about");
}
}