/*************************************************************************** quickbar.h - description ------------------- begin : Mon Feb 11 2002 copyright : (C) 2002 by Martin Witte / Klas Kalass email : witte@kawo1.rwth-aachen.de ***************************************************************************/ /*************************************************************************** * * * 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 #endif #include #include "../../src/include/radio_interfaces.h" #include "../../src/include/widgetplugins.h" #include "../../src/include/stationselection_interfaces.h" class ButtonFlowLayout; class TQButtonGroup; class TDEConfig; class TQToolButton; /** *@author Martin Witte / Klas Kalass */ class QuickBar : public TQWidget, public WidgetPluginBase, public IRadioClient, public IStationSelection { TQ_OBJECT public: QuickBar(const TQString &name = TQString()); ~QuickBar(); virtual TQString pluginClassName() const { return "QuickBar"; } const TQString &name() const { return PluginBase::name(); } TQString &name() { return PluginBase::name(); } virtual bool connectI(Interface *i); virtual bool disconnectI(Interface *i); // IStationSelection RECEIVERS: bool setStationSelection(const TQStringList &sl); ANSWERS: const TQStringList & getStationSelection () const { return m_stationIDs; } // PluginBase public: virtual void saveState (TDEConfig *) const; virtual void restoreState (TDEConfig *); 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 TQString &/*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(TQDragEnterEvent* event); void dropEvent(TQDropEvent* event); // KDE/QT public slots: void toggleShown() { WidgetPluginBase::pToggleShown(); } void show(); void hide(); void showOnOrgDesktop(); void setGeometry (const TQRect &r); void setGeometry (int x, int y, int w, int h); protected: void rebuildGUI(); void showEvent(TQShowEvent *); void hideEvent(TQHideEvent *); void resizeEvent(TQResizeEvent *); const TQWidget *getWidget() const { return this; } TQWidget *getWidget() { return this; } protected : ButtonFlowLayout *m_layout; TQButtonGroup *m_buttonGroup; TQPtrList m_buttons; // config bool m_showShortName; TQStringList m_stationIDs; bool m_ignoreNoticeActivation; }; #endif