/* 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. ]
*/
#ifndef MAINWINDOW_H_
#define MAINWINDOW_H_
#include "BrowserPane/BrowserPane.h"
#include "TabPane/TabPane.h"
#include "TrackInfoPane.h"
#include "../PlaybackManager.h"
#include "SourcesPane.h"
#include "../PlaySource.h"
#include "ProgressPane.h"
#include <gtkmm.h>
#include <libnotify/notify.h>
class MainWindow : public Gtk::Window
{
public:
MainWindow();
~MainWindow();
private:
void init_actiongroups();
void init_main_vbox();
void on_menu_file_quit();
void on_menu_file_close();
void on_menu_file_refresh();
void on_view_library_pane();
void set_shuffle(ShuffleType type);
void on_play();
Gtk::Alignment m_browser_pane_align;
BrowserPane m_browser_pane;
TabPane m_tab_pane;
TrackInfoPane m_track_info_pane;
SourcesPane m_sources_pane;
ProgressPane m_progress_pane;
Glib::RefPtr<Gtk::ActionGroup> m_refActionGroup;
Glib::RefPtr<Gtk::UIManager> m_refUIManager;
Glib::RefPtr<Gtk::StatusIcon> m_refStatusIcon;
void on_status_icon_click();
void on_status_icon_popup(guint button, guint32 time);
NotifyNotification* m_notify;
void show_libnotify_popup(PlaySourceRef playlist, int index, bool was_paused);
static void libnotify_action_callback(NotifyNotification* notify, gchar* action_id, gpointer user_data);
void on_media_stopped(PlaySourceRef playlist, int index, bool is_paused);
void on_media_started(PlaySourceRef playlist, int index, bool was_paused);
};
#endif /* MAINWINDOW_H_ */