sliderwidget.h

来自「Amarok是一款在LINUX或其他类UNIX操作系统中运行的音频播放器软件。 」· C头文件 代码 · 共 162 行

H
162
字号
/***************************************************************************                       amarokslider.h  -  description                          ------------------- begin                : Dec 15 2003 copyright            : (C) 2003 by Mark Kretschmann email                : markey@web.de copyright            : (C) 2005 by Gábor Lehel email                : illissius@gmail.com***************************************************************************//*************************************************************************** *                                                                         * *   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.                                   * *                                                                         * ***************************************************************************/#ifndef AMAROKSLIDER_H#define AMAROKSLIDER_H#include <config.h>#include "metabundle.h"#include <kpixmap.h>#include <kurl.h>#include <qpixmap.h>#include <qslider.h>#include <qvaluevector.h>class QPalette;class QTimer;namespace Amarok{    class Slider : public QSlider    {        Q_OBJECT        public:            Slider( Qt::Orientation, QWidget*, uint max = 0 );            virtual void setValue( int );            //WARNING non-virtual - and thus only really intended for internal use            //this is a major flaw in the class presently, however it suits our            //current needs fine            int value() const { return adjustValue( QSlider::value() ); }        signals:            //we emit this when the user has specifically changed the slider            //so connect to it if valueChanged() is too generic            //Qt also emits valueChanged( int )            void sliderReleased( int );        protected:            virtual void wheelEvent( QWheelEvent* );            virtual void mouseMoveEvent( QMouseEvent* );            virtual void mouseReleaseEvent( QMouseEvent* );            virtual void mousePressEvent( QMouseEvent* );            virtual void slideEvent( QMouseEvent* );            bool m_sliding;            /// we flip the value for vertical sliders            int adjustValue( int v ) const            {               int mp = (minValue() + maxValue()) / 2;               return orientation() == Vertical ? mp - (v - mp) : v;            }        private:            bool m_outside;            int  m_prevValue;            Slider( const Slider& ); //undefined            Slider &operator=( const Slider& ); //undefined    };    class PrettySlider : public Slider    {        Q_OBJECT        public:            typedef enum            {                Normal,  // Same behavior as Slider *unless* there's a moodbar                Pretty            } SliderMode;            PrettySlider( Qt::Orientation orientation, SliderMode mode,                          QWidget *parent, uint max = 0 );            virtual void newBundle( const MetaBundle &bundle );        protected:            virtual void paintEvent( QPaintEvent *e );            virtual void slideEvent( QMouseEvent* );            virtual void mousePressEvent( QMouseEvent* );        protected slots:            void moodbarJobEvent( int newState );            void slotMoodbarPrefs( bool show, bool moodier, int alter, bool withMusic );        private:            PrettySlider( const PrettySlider& ); //undefined            PrettySlider &operator=( const PrettySlider& ); //undefined            SliderMode m_mode;            MetaBundle m_bundle;  // Has our moodbar data!            bool       m_showingMoodbar;    };    class VolumeSlider: public Slider    {        Q_OBJECT        public:            VolumeSlider( QWidget *parent, uint max = 0 );        protected:            virtual void paintEvent( QPaintEvent* );            virtual void hideEvent( QHideEvent* );            virtual void showEvent( QShowEvent* );            virtual void enterEvent( QEvent* );            virtual void leaveEvent( QEvent* );            virtual void paletteChange( const QPalette& );            virtual void slideEvent( QMouseEvent* );            virtual void mousePressEvent( QMouseEvent* );            virtual void contextMenuEvent( QContextMenuEvent* );            virtual void wheelEvent( QWheelEvent *e );        private slots:            virtual void slotAnimTimer();        private:            void generateGradient();            VolumeSlider( const VolumeSlider& ); //undefined            VolumeSlider &operator=( const VolumeSlider& ); //undefined            ////////////////////////////////////////////////////////////////            static const int ANIM_INTERVAL = 18;            static const int ANIM_MAX = 18;            bool    m_animEnter;            int     m_animCount;            QTimer* m_animTimer;            QPixmap m_pixmapInset;            KPixmap m_pixmapGradient;            QValueVector<QPixmap> m_handlePixmaps;    };}#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?