PageRenderTime 107ms CodeModel.GetById 40ms app.highlight 4ms RepoModel.GetById 30ms app.codeStats 0ms

/src/tomahawktrayicon.h

http://github.com/tomahawk-player/tomahawk
C++ Header | 77 lines | 41 code | 18 blank | 18 comment | 0 complexity | d9b3c1a91897e55ae79b3bd98db40417 MD5 | raw file
 1/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
 2 *
 3 *   Copyright 2010-2011, Christian Muehlhaeuser <muesli@tomahawk-player.org>
 4 *   Copyright 2010-2011, Jeff Mitchell <jeff@tomahawk-player.org>
 5 *
 6 *   Tomahawk is free software: you can redistribute it and/or modify
 7 *   it under the terms of the GNU General Public License as published by
 8 *   the Free Software Foundation, either version 3 of the License, or
 9 *   (at your option) any later version.
10 *
11 *   Tomahawk is distributed in the hope that it will be useful,
12 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
13 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 *   GNU General Public License for more details.
15 *
16 *   You should have received a copy of the GNU General Public License
17 *   along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#ifndef TOMAHAWK_TRAYICON_H
21#define TOMAHAWK_TRAYICON_H
22
23#include <QSystemTrayIcon>
24#include <QTimer>
25#include <QMenu>
26
27#include "Result.h"
28
29class TomahawkTrayIcon : public QSystemTrayIcon
30{
31    Q_OBJECT
32
33public:
34    TomahawkTrayIcon( QObject* parent );
35    virtual bool event( QEvent* e );
36
37    void setShowHideWindow( bool show = true );
38
39public slots:
40    void setResult( const Tomahawk::result_ptr& result );
41
42private slots:
43    void onAnimationTimer();
44    void onActivated( QSystemTrayIcon::ActivationReason reason );
45    void showWindow();
46
47    void onPause();
48    void onPlay();
49    void onStop();
50    void onResume();
51
52    void onSocialActionsLoaded();
53    void onStopContinueAfterTrackChanged();
54    void stopContinueAfterTrackActionTriggered();
55    void loveTrackTriggered();
56
57    void menuAboutToShow();
58
59private:
60    void refreshToolTip();
61    ~TomahawkTrayIcon();
62
63    QTimer m_animationTimer;
64    Tomahawk::result_ptr m_currentTrack;
65
66    QList<QPixmap> m_animationPixmaps;
67    int m_currentAnimationFrame;
68
69    QMenu* m_contextMenu;
70
71    QAction* m_showWindowAction;
72    QAction* m_stopContinueAfterTrackAction;
73    QAction* m_loveTrackAction;
74};
75
76#endif // TOMAHAWK_TRAYICON_H
77