summaryrefslogtreecommitdiffstats
path: root/juk/slideraction.h
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commite2de64d6f1beb9e492daf5b886e19933c1fa41dd (patch)
tree9047cf9e6b5c43878d5bf82660adae77ceee097a /juk/slideraction.h
downloadtdemultimedia-e2de64d6f1beb9e492daf5b886e19933c1fa41dd.tar.gz
tdemultimedia-e2de64d6f1beb9e492daf5b886e19933c1fa41dd.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdemultimedia@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'juk/slideraction.h')
-rw-r--r--juk/slideraction.h97
1 files changed, 97 insertions, 0 deletions
diff --git a/juk/slideraction.h b/juk/slideraction.h
new file mode 100644
index 00000000..f312196c
--- /dev/null
+++ b/juk/slideraction.h
@@ -0,0 +1,97 @@
+/***************************************************************************
+ begin : Wed Feb 6 2002
+ copyright : (C) 2002 - 2004 by Scott Wheeler
+ email : wheeler@kde.org
+***************************************************************************/
+
+/***************************************************************************
+ * *
+ * 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 SLIDERACTION_H
+#define SLIDERACTION_H
+
+#include <kaction.h>
+#include <qslider.h>
+
+class QBoxLayout;
+class QDockWindow;
+
+class VolumeSlider : public QSlider
+{
+ Q_OBJECT
+
+public:
+ VolumeSlider(Orientation o, QWidget *parent, const char *name);
+
+ int volume() const;
+ void setVolume(int value);
+
+ void setOrientation(Orientation o);
+
+signals:
+ void signalVolumeChanged(int value);
+
+protected:
+ virtual void wheelEvent(QWheelEvent *e);
+ virtual void focusInEvent(QFocusEvent *);
+
+private slots:
+ void slotValueChanged(int value);
+};
+
+class SliderAction : public KAction
+{
+ Q_OBJECT
+
+public:
+ SliderAction(const QString &text, QObject *parent, const char *name);
+ virtual ~SliderAction();
+
+ VolumeSlider *volumeSlider() const { return m_volumeSlider; }
+ QSlider *trackPositionSlider() const { return m_trackPositionSlider; }
+
+ bool dragging() const { return m_dragging; }
+ bool volumeDragging() const { return m_volumeDragging; }
+
+ virtual int plug(QWidget *parent, int index = -1);
+ virtual void unplug(QWidget *widget);
+
+ static const int minPosition;
+ static const int maxPosition;
+
+public slots:
+ void slotUpdateOrientation();
+
+signals:
+ void signalPositionChanged(int position);
+ void signalVolumeChanged(int volume);
+
+private:
+ QWidget *createWidget(QWidget *parent);
+
+private slots:
+ void slotUpdateSize();
+ void slotVolumeSliderPressed();
+ void slotVolumeSliderReleased();
+ void slotSliderPressed();
+ void slotSliderReleased();
+ void slotToolbarDestroyed();
+
+private:
+ KToolBar *m_toolBar;
+ QBoxLayout *m_layout;
+ QSlider *m_trackPositionSlider;
+ VolumeSlider *m_volumeSlider;
+ bool m_dragging;
+ bool m_volumeDragging;
+
+ static const int volumeMax = 50;
+};
+
+#endif