slight improvement to the context view layout imo.
[amarok.git] / src / StarManager.h
blobf836ae4c3e288ac18320851462befb39318c447f
1 /*
2 Copyright (C) 2007 Jeff Mitchell <kde-dev@emailgoeshere.com>
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the GNU General Public License
6 as published by the Free Software Foundation; either version 2
7 of the License, or (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
20 #ifndef AMAROK_STAR_MANAGER_H
21 #define AMAROK_STAR_MANAGER_H
23 #include <QImage>
24 #include <QPixmap>
26 class StarManager : public QObject
29 Q_OBJECT
31 public:
32 StarManager();
33 ~StarManager();
34 static StarManager *instance();
36 QPixmap* getStar( int num );
37 QPixmap* getGreyStar() { return &m_greyedStarPix; }
38 QPixmap* getHalfStar( int num = -1 );
39 QImage& getStarImage( int num );
40 QImage& getGreyStarImage() { return m_greyedStar; }
41 QImage& getHalfStarImage( int num = -1 );
43 bool setColor( int starNum, const QColor &color );
44 bool setHalfColor( const QColor &color );
46 void reinitStars( int height = -1, int margin = -1 );
48 signals:
49 void ratingsColorsChanged();
51 private:
53 int m_height;
54 int m_margin;
56 //cached stars...why both? For faster conversion when drawing context browser
57 QPixmap m_starPix;
58 QImage m_star;
59 QPixmap m_greyedStarPix;
60 QImage m_greyedStar;
61 QPixmap m_halfStarPix;
62 QImage m_halfStar;
64 QImage m_images[5];
65 QImage m_halfimages[5];
66 QPixmap m_pixmaps[5];
67 QPixmap m_halfpixmaps[5];
69 QColor m_colors[5];
70 QColor m_halfStarColor;
73 #endif