summaryrefslogtreecommitdiff
authorsimon <simon>2002-12-09 22:26:11 (UTC)
committer simon <simon>2002-12-09 22:26:11 (UTC)
commit8bf05369dcdf93a712607aab6dacf407dcce5142 (patch) (unidiff)
treef11dcac538e4ad930335bcab2e4068721d167415
parent5a08075743a50a63eaad9c80884f4c2f4c69579b (diff)
downloadopie-8bf05369dcdf93a712607aab6dacf407dcce5142.zip
opie-8bf05369dcdf93a712607aab6dacf407dcce5142.tar.gz
opie-8bf05369dcdf93a712607aab6dacf407dcce5142.tar.bz2
- work around gcc2's stupid STL that requires libstdc++ in the default
allocator
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/mediawidget.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/noncore/multimedia/opieplayer2/mediawidget.h b/noncore/multimedia/opieplayer2/mediawidget.h
index 3b3a263..df03b22 100644
--- a/noncore/multimedia/opieplayer2/mediawidget.h
+++ b/noncore/multimedia/opieplayer2/mediawidget.h
@@ -1,129 +1,133 @@
1/* 1/*
2 Copyright (C) 2002 Simon Hausmann <hausmann@kde.org> 2 Copyright (C) 2002 Simon Hausmann <hausmann@kde.org>
3 (C) 2002 Max Reiss <harlekin@handhelds.org> 3 (C) 2002 Max Reiss <harlekin@handhelds.org>
4 (C) 2002 L. Potter <ljp@llornkcor.com> 4 (C) 2002 L. Potter <ljp@llornkcor.com>
5 (C) 2002 Holger Freyther <zecke@handhelds.org> 5 (C) 2002 Holger Freyther <zecke@handhelds.org>
6 6
7 This library is free software; you can redistribute it and/or 7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Library General Public 8 modify it under the terms of the GNU Library General Public
9 License as published by the Free Software Foundation; either 9 License as published by the Free Software Foundation; either
10 version 2 of the License, or (at your option) any later version. 10 version 2 of the License, or (at your option) any later version.
11 11
12 This library is distributed in the hope that it will be useful, 12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Library General Public License for more details. 15 Library General Public License for more details.
16 16
17 You should have received a copy of the GNU Library General Public License 17 You should have received a copy of the GNU Library General Public License
18 along with this library; see the file COPYING.LIB. If not, write to 18 along with this library; see the file COPYING.LIB. If not, write to
19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20 Boston, MA 02111-1307, USA. 20 Boston, MA 02111-1307, USA.
21*/ 21*/
22 22
23#ifndef MEDIAWIDGET_H 23#ifndef MEDIAWIDGET_H
24#define MEDIAWIDGET_H 24#define MEDIAWIDGET_H
25 25
26#include <qwidget.h> 26#include <qwidget.h>
27#include <qmap.h> 27#include <qmap.h>
28 28
29#include "mediaplayerstate.h" 29#include "mediaplayerstate.h"
30#include "playlistwidget.h" 30#include "playlistwidget.h"
31 31
32#include <vector> 32#include <vector>
33#include <memory>
33 34
34class MediaWidget : public QWidget 35class MediaWidget : public QWidget
35{ 36{
36 Q_OBJECT 37 Q_OBJECT
37public: 38public:
38 enum Command { Play = 0, Stop, Next, Previous, VolumeUp, VolumeDown, Loop, PlayList, Forward, Back, FullScreen, Undefined }; 39 enum Command { Play = 0, Stop, Next, Previous, VolumeUp, VolumeDown, Loop, PlayList, Forward, Back, FullScreen, Undefined };
39 enum ButtonType { NormalButton, ToggleButton }; 40 enum ButtonType { NormalButton, ToggleButton };
40 41
41 struct Button 42 struct Button
42 { 43 {
43 Button() : command( Undefined ), type( NormalButton ), isDown( false ) {} 44 Button() : command( Undefined ), type( NormalButton ), isDown( false ) {}
44 45
45 Command command; 46 Command command;
46 47
47 ButtonType type; // this should be part of the bitfield but gcc2 is too buggy to support this :-( 48 ButtonType type; // this should be part of the bitfield but gcc2 is too buggy to support this :-(
48 bool isDown : 1; 49 bool isDown : 1;
49 50
50 QBitmap mask; 51 QBitmap mask;
51 QPixmap pixUp; 52 QPixmap pixUp;
52 QPixmap pixDown; 53 QPixmap pixDown;
53 }; 54 };
55#if defined( _CC_GNU_ )
56 // use that allocator to avoid the default allocator that on gcc2 requires libstdc++ because
57 // in the BAD_ALLOC macro it uses std::cerr and friends :-(
58 typedef std::vector<Button, std::__allocator<Button, std::__new_alloc> > ButtonVector;
59#else
54 typedef std::vector<Button> ButtonVector; 60 typedef std::vector<Button> ButtonVector;
61#endif
55 62
56 struct SkinButtonInfo 63 struct SkinButtonInfo
57 { 64 {
58 Command command; 65 Command command;
59 const char *fileName; 66 const char *fileName;
60 ButtonType type; 67 ButtonType type;
61 }; 68 };
62 69
63 typedef std::vector<QBitmap> MaskVector;
64 typedef std::vector<QPixmap> PixmapVector;
65
66 MediaWidget( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QWidget *parent = 0, const char *name = 0 ); 70 MediaWidget( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QWidget *parent = 0, const char *name = 0 );
67 virtual ~MediaWidget(); 71 virtual ~MediaWidget();
68 72
69public slots: 73public slots:
70 virtual void setDisplayType( MediaPlayerState::DisplayType displayType ) = 0; 74 virtual void setDisplayType( MediaPlayerState::DisplayType displayType ) = 0;
71 virtual void setLength( long length ) = 0; 75 virtual void setLength( long length ) = 0;
72 virtual void setPlaying( bool playing ) = 0; 76 virtual void setPlaying( bool playing ) = 0;
73 77
74 virtual void loadSkin() = 0; 78 virtual void loadSkin() = 0;
75 79
76signals: 80signals:
77 void moreReleased(); 81 void moreReleased();
78 void lessReleased(); 82 void lessReleased();
79 void forwardReleased(); 83 void forwardReleased();
80 void backReleased(); 84 void backReleased();
81 void forwardClicked(); 85 void forwardClicked();
82 void backClicked(); 86 void backClicked();
83 void moreClicked(); 87 void moreClicked();
84 void lessClicked(); 88 void lessClicked();
85 89
86protected: 90protected:
87 void setupButtons( const SkinButtonInfo *skinInfo, uint buttonCount, 91 void setupButtons( const SkinButtonInfo *skinInfo, uint buttonCount,
88 const QString &imagePrefix, const QSize &buttonAreaSize ); 92 const QString &imagePrefix, const QSize &buttonAreaSize );
89 Button setupButton( const SkinButtonInfo &buttonInfo, const QString &imagePrefix ); 93 Button setupButton( const SkinButtonInfo &buttonInfo, const QString &imagePrefix );
90 QBitmap setupButtonMask( const Command &command, const QString &fileName ); 94 QBitmap setupButtonMask( const Command &command, const QString &fileName );
91 95
92 virtual void closeEvent( QCloseEvent * ); 96 virtual void closeEvent( QCloseEvent * );
93 97
94 virtual void paintEvent( QPaintEvent *pe ); 98 virtual void paintEvent( QPaintEvent *pe );
95 99
96 Button *buttonAt( const QPoint &position ); 100 Button *buttonAt( const QPoint &position );
97 101
98 virtual void mousePressEvent( QMouseEvent *event ); 102 virtual void mousePressEvent( QMouseEvent *event );
99 virtual void mouseReleaseEvent( QMouseEvent *event ); 103 virtual void mouseReleaseEvent( QMouseEvent *event );
100 104
101 virtual void makeVisible(); 105 virtual void makeVisible();
102 106
103 void handleCommand( Command command, bool buttonDown ); 107 void handleCommand( Command command, bool buttonDown );
104 108
105 bool isOverButton( const QPoint &position, int buttonId ) const; 109 bool isOverButton( const QPoint &position, int buttonId ) const;
106 110
107 void paintAllButtons( QPainter &p ); 111 void paintAllButtons( QPainter &p );
108 void paintButton( const Button &button ); 112 void paintButton( const Button &button );
109 void paintButton( QPainter &p, const Button &button ); 113 void paintButton( QPainter &p, const Button &button );
110 114
111 void setToggleButton( Button &button, bool down ); 115 void setToggleButton( Button &button, bool down );
112 void setToggleButton( Command command, bool down ); 116 void setToggleButton( Command command, bool down );
113 void toggleButton( Button &button ); 117 void toggleButton( Button &button );
114 118
115 MediaPlayerState &mediaPlayerState; 119 MediaPlayerState &mediaPlayerState;
116 PlayListWidget &playList; 120 PlayListWidget &playList;
117 121
118 ButtonVector buttons; 122 ButtonVector buttons;
119 123
120 QImage buttonMask; 124 QImage buttonMask;
121 125
122 QPoint upperLeftOfButtonMask; 126 QPoint upperLeftOfButtonMask;
123 127
124 QPixmap backgroundPixmap; 128 QPixmap backgroundPixmap;
125}; 129};
126 130
127#endif // MEDIAWIDGET_H 131#endif // MEDIAWIDGET_H
128/* vim: et sw=4 ts=4 132/* vim: et sw=4 ts=4
129 */ 133 */