You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tderadio/plugins/gui-quickbar/quickbar.h

140 lines
3.8 KiB

/***************************************************************************
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 <config.h>
#endif
#include <tqwidget.h>
#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<TQToolButton> m_buttons;
// config
bool m_showShortName;
TQStringList m_stationIDs;
bool m_ignoreNoticeActivation;
};
#endif