![]() Qtopia Home - Classes - Hierachy - Annotated - Functions - Licenses - Reference |
![]() |
This is the verbatim text of the controlwidgetbase.h include file. It is provided only for illustration; the copyright remains with Trolltech.
/********************************************************************** ** Copyright (C) 2000-2005 Trolltech AS. All rights reserved. ** ** This file is part of the Qtopia Environment. ** ** This program is free software; you can redistribute it and/or modify it ** under the terms of the GNU General Public License as published by the ** Free Software Foundation; either version 2 of the License, or (at your ** option) any later version. ** ** A copy of the GNU GPL license version 2 is included in this package as ** LICENSE.GPL. ** ** This program is distributed in the hope that it will be useful, but ** WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ** See the GNU General Public License for more details. ** ** In addition, as a special exception Trolltech gives permission to link ** the code of this program with Qtopia applications copyrighted, developed ** and distributed by Trolltech under the terms of the Qtopia Personal Use ** License Agreement. You must comply with the GNU General Public License ** in all respects for all of the code used other than the applications ** licensed under the Qtopia Personal Use License Agreement. If you modify ** this file, you may extend this exception to your version of the file, ** but you are not obligated to do so. If you do not wish to do so, delete ** this exception statement from your version. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ #ifndef CONTROL_WIDGET_BASE_H #define CONTROL_WIDGET_BASE_H #include <qwidget.h> #include <qpainter.h> #include <qdrawutil.h> #include <qpixmap.h> #include <qbitmap.h> #include <qimage.h> #include <qstring.h> #include <qslider.h> #include <qlineedit.h> #include <qframe.h> #include <qtimer.h> #include "mediaplayerstate.h" #include "action.h" #include "ticker.h" enum MediaButtonType { PlayButton, StopButton, PauseButton, PreviousButton, NextButton, ForwardButton, BackwardButton, VolumeUpButton, VolumeDownButton, LoopButton, PlayListButton, FullscreenButton, MaxButtonTypes }; struct MediaButton { bool isToggle, isHeld, isDown, hasImage; const char *skinImage; MediaButtonType buttonType; }; class ScalableImage { public: QImage unscaledImg; QPixmap scaledPix; bool loaded; bool scaled; QPoint offset; }; /* * Abstract base class used by AudioWidget and VideoWidget classes */ class ControlWidgetBase : public QWidget { Q_OBJECT public: ControlWidgetBase( QWidget* parent, const QString& skin, const QString& audio, const char* name ); ~ControlWidgetBase(); // Format seconds as 0:00 static QString toTimeString( long ); virtual void setTickerText( const QString & ) { } virtual void updateVolume(); virtual void makeVisible() { } public slots: void sliderPressed(); void sliderReleased(); void setPosition( long ); void setLength( long ); void setPaused( bool b ); void setSeekable( bool b ); void setLooping( bool b ); void setPlaying( bool b ); void setFullscreen( bool b ); void setSkin( const QString& skin ); void loadImages(); void scaleImages(); void hideVolumeOverlay(); void stop(); void play(); signals: void sliderMoved( long ); void moreClicked(); void lessClicked(); void moreReleased(); void lessReleased(); void forwardClicked(); void backwardClicked(); void forwardReleased(); void backwardReleased(); protected: virtual void virtualResize() = 0; // Make the class abstract virtual void virtualPaint( QPaintEvent *event ) = 0; virtual void virtualUpdateSlider() = 0; virtual void paintButton( QPainter& p, int i ); virtual void drawOverlays(); QString timeAsString( long ); void keyPressEvent( QKeyEvent *event ); void keyReleaseEvent( QKeyEvent *event ); void mouseMoveEvent( QMouseEvent *event ); void mousePressEvent( QMouseEvent *event ); void mouseReleaseEvent( QMouseEvent *event ); void closeEvent( QCloseEvent *event ); void resizeEvent( QResizeEvent *event ); void paintEvent( QPaintEvent *event ); void resetButtons(); void updateSlider(); void setButtonData( MediaButton *mediaButtons, int count ); void resizeObjects( int w, int h, int scaleW, int scaleH, int cornerWidgetWidth = 0 ); void setToggleButton( MediaButtonType, bool ); void toggleButton( int ); void paintAllButtons( QPainter& p ); void getButtonPix( bool down ); void getButtonMask( int i ); bool videoGeometry(QRect &); void drawVolumeOverlay(bool inPaintEvent=true); int skinW, skinH; int skinScaleW, skinScaleH; int actualScaleW, actualScaleH; QString skinType; QString skinFile; QString skin; MediaButton *buttons; int buttonCount; int buttonMap[MaxButtonTypes]; QImage imgButtonMask; ScalableImage mediaButtonImg[2]; ScalableImage mediaButtonMask[MaxButtonTypes]; ScalableImage background; bool bgNeedsScaling; bool imagesLoaded; bool imagesScaled; bool hadFirstResize; bool resized; bool canPaint; int drawnVolume; MySlider slider; Ticker time; bool sliderBeingMoved; QTimer volumeTimeout; bool drawVolume; int xoff, yoff; }; #endif // CONTROL_WIDGET_BASE_H
Copyright © 2005 Trolltech | Trademarks | Qtopia version 2.2.0
|