summaryrefslogtreecommitdiffstats
path: root/kradio3/plugins/gui-quickbar/quickbar.h
diff options
context:
space:
mode:
Diffstat (limited to 'kradio3/plugins/gui-quickbar/quickbar.h')
-rw-r--r--kradio3/plugins/gui-quickbar/quickbar.h138
1 files changed, 138 insertions, 0 deletions
diff --git a/kradio3/plugins/gui-quickbar/quickbar.h b/kradio3/plugins/gui-quickbar/quickbar.h
new file mode 100644
index 0000000..7bf5193
--- /dev/null
+++ b/kradio3/plugins/gui-quickbar/quickbar.h
@@ -0,0 +1,138 @@
+/***************************************************************************
+ quickbar.h - description
+ -------------------
+ begin : Mon Feb 11 2002
+ copyright : (C) 2002 by Martin Witte / Klas Kalass
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * 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 KRADIO_QUICKBAR_H
+#define KRADIO_QUICKBAR_H
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <qwidget.h>
+
+#include "../../src/include/radio_interfaces.h"
+#include "../../src/include/widgetplugins.h"
+#include "../../src/include/stationselection_interfaces.h"
+
+class ButtonFlowLayout;
+class QButtonGroup;
+class KConfig;
+class QToolButton;
+
+/**
+ *@author Martin Witte / Klas Kalass
+ */
+
+class QuickBar : public QWidget,
+ public WidgetPluginBase,
+ public IRadioClient,
+ public IStationSelection
+{
+Q_OBJECT
+public:
+ QuickBar(const QString &name = QString::null);
+ ~QuickBar();
+
+ virtual QString pluginClassName() const { return "QuickBar"; }
+
+ const QString &name() const { return PluginBase::name(); }
+ QString &name() { return PluginBase::name(); }
+
+ virtual bool connectI(Interface *i);
+ virtual bool disconnectI(Interface *i);
+
+ // IStationSelection
+
+RECEIVERS:
+ bool setStationSelection(const QStringList &sl);
+
+ANSWERS:
+ const QStringList & getStationSelection () const { return m_stationIDs; }
+
+
+ // PluginBase
+
+public:
+ virtual void saveState (KConfig *) const;
+ virtual void restoreState (KConfig *);
+
+ virtual ConfigPageInfo createConfigurationPage();
+ virtual AboutPageInfo createAboutPage();
+
+ // IRadioClient
+
+RECEIVERS:
+ bool noticePowerChanged(bool on);
+ bool noticeStationChanged (const RadioStation &, int idx);
+ bool noticeStationsChanged(const StationList &sl);
+ bool noticePresetFileChanged(const QString &/*f*/) { return false; }
+
+ bool noticeCurrentSoundStreamIDChanged(SoundStreamID /*id*/) { return false; }
+
+ // button/station Management
+
+
+protected slots:
+
+ void buttonClicked(int id);
+
+protected:
+
+ int getButtonID(const RadioStation &rs) const;
+ void activateCurrentButton();
+ void activateButton(const RadioStation &);
+
+ void autoSetCaption();
+
+
+ void dragEnterEvent(QDragEnterEvent* event);
+ void dropEvent(QDropEvent* event);
+
+ // KDE/QT
+
+public slots:
+
+ void toggleShown() { WidgetPluginBase::pToggleShown(); }
+ void show();
+ void hide();
+ void showOnOrgDesktop();
+ void setGeometry (const QRect &r);
+ void setGeometry (int x, int y, int w, int h);
+
+protected:
+ void rebuildGUI();
+ void showEvent(QShowEvent *);
+ void hideEvent(QHideEvent *);
+ void resizeEvent(QResizeEvent *);
+
+ const QWidget *getWidget() const { return this; }
+ QWidget *getWidget() { return this; }
+
+protected :
+
+ ButtonFlowLayout *m_layout;
+ QButtonGroup *m_buttonGroup;
+
+ QPtrList<QToolButton> m_buttons;
+
+ // config
+ bool m_showShortName;
+ QStringList m_stationIDs;
+
+ bool m_ignoreNoticeActivation;
+};
+#endif