Freya  0.0.1
A Gtk3 MPD Client
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
src/GManager/MenuList.hh
Go to the documentation of this file.
00001 /***********************************************************
00002 * This file is part of Freya
00003 * - A free MPD Gtk3 MPD Client -
00004 *
00005 * Authors: Christopher Pahl, Christoph Piechula,
00006 *          Eduard Schneider
00007 *
00008 * Copyright (C) [2011-2012]
00009 * Hosted at: https://github.com/studentkittens/Freya
00010 *
00011 *              __..--''``---....___   _..._    __
00012 *    /// //_.-'    .-/";  `        ``<._  ``.''_ `. / // /
00013 *   ///_.-' _..--.'_                        `( ) ) // //
00014 *   / (_..-' // (< _     ;_..__               ; `' / ///
00015 *    / // // //  `-._,_)' // / ``--...____..-' /// / //
00016 *  Ascii-Art by Felix Lee <flee@cse.psu.edu>
00017 *
00018 * Freya is free software: you can redistribute it and/or modify
00019 * it under the terms of the GNU General Public License as published by
00020 * the Free Software Foundation, either version 3 of the License, or
00021 * (at your option) any later version.
00022 *
00023 * Freya is distributed in the hope that it will be useful,
00024 * but WITHOUT ANY WARRANTY; without even the implied warranty of
00025 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00026 * GNU General Public License for more details.
00027 *
00028 * You should have received a copy of the GNU General Public License
00029 * along with Freya. If not, see <http://www.gnu.org/licenses/>.
00030 **************************************************************/
00031 #ifndef FREYA_MENULIST_GUARD
00032 #define FREYA_MENULIST_GUARD
00033 
00034 #include "../ui_includes.hh"
00035 #include "../MPD/Client.hh"
00036 #include "../MPD/AbstractClientUser.hh"
00037 #include "../Notify/Notify.hh"
00038 
00039 namespace GManager
00040 {
00046     class MenuList : public MPD::AbstractClientUser
00047     {
00048     public:
00049 
00050         MenuList(MPD::Client &client, Glib::RefPtr<Gtk::Builder> &builder);
00051         ~MenuList();
00052 
00053     private:
00054 
00055         void on_connection_change(bool server_changed, bool is_connected);
00056         void on_client_update(enum mpd_idle event, MPD::NotifyData &data);
00057 
00058         void on_menu_connect();
00059         void on_menu_disconnect();
00060         void on_menu_quit();
00061 
00062         void on_menu_play();
00063         void on_menu_stop();
00064         void on_menu_prev();
00065         void on_menu_next();
00066 
00067         void on_menu_random();
00068         void on_menu_repeat();
00069         void on_menu_single();
00070         void on_menu_consume();
00071 
00072         void on_menu_about();
00073 
00074         bool running;
00075 
00076         /* Widgets */
00077         Gtk::MenuItem *menu_connect, *menu_disconnect, *menu_quit,
00078             *menu_play, *menu_stop, *menu_prev, *menu_next,
00079             *menu_playback,  *menu_about;
00080 
00081         Gtk::CheckMenuItem *menu_random, *menu_repeat, *menu_single, *menu_consume;
00082         Gtk::AboutDialog * window_about;
00083     };
00084 
00085 }
00086 
00087 
00088 
00089 #endif