summaryrefslogtreecommitdiffstats
path: root/tderadio3/plugins/gui-standard-display/radioview_frequencyradio.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tderadio3/plugins/gui-standard-display/radioview_frequencyradio.cpp')
-rw-r--r--tderadio3/plugins/gui-standard-display/radioview_frequencyradio.cpp443
1 files changed, 0 insertions, 443 deletions
diff --git a/tderadio3/plugins/gui-standard-display/radioview_frequencyradio.cpp b/tderadio3/plugins/gui-standard-display/radioview_frequencyradio.cpp
deleted file mode 100644
index 5ea255e..0000000
--- a/tderadio3/plugins/gui-standard-display/radioview_frequencyradio.cpp
+++ /dev/null
@@ -1,443 +0,0 @@
-/***************************************************************************
- tderadiodisplay.cpp - description
- -------------------
- begin : Mit Jan 29 2003
- copyright : (C) 2003 by Martin Witte
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * 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. *
- * *
- ***************************************************************************/
-
-#include "../../src/include/utils.h"
-
-#include <tqpainter.h>
-#include <tqimage.h>
-#include <tqpixmap.h>
-#include <kimageeffect.h> // fading, blending, ...
-#include <kpixmapio.h> // fast conversion between TQPixmap/TQImage
-#include "radioview_frequencyradio.h"
-#include "displaycfg.h"
-
-RadioViewFrequencyRadio::RadioViewFrequencyRadio(TQWidget *parent, const TQString &name )
- : RadioViewElement(parent, name, clsRadioDisplay),
- m_power(false),
- m_valid(false),
- m_frequency(0),
- m_quality(0.0),
- m_stereo(false)
-{
- setFrameStyle(Box | Sunken);
- setLineWidth(1);
- setMidLineWidth(1);
-
-
- // set some sensless default colors
- // real values are read in restoreState
- setDisplayColors(TQColor(20, 244, 20),
- TQColor(10, 117, 10).light(75),
- TQColor(10, 117, 10));
- setDisplayFont(TQFont("Helvetica"));
-
-}
-
-
-RadioViewFrequencyRadio::~RadioViewFrequencyRadio(){
-}
-
-
-float RadioViewFrequencyRadio::getUsability (Interface *i) const
-{
- if (dynamic_cast<IFrequencyRadio*>(i))
- return 1.0;
- else
- return 0.0;
-}
-
-
-void RadioViewFrequencyRadio::saveState (TDEConfig *config) const
-{
- config->writeEntry("frequency-view-colorActiveText", m_colorActiveText);
- config->writeEntry("frequency-view-colorInactiveText", m_colorInactiveText);
- config->writeEntry("frequency-view-colorButton", m_colorButton);
- config->writeEntry("frequency-view-font", m_font);
-}
-
-
-void RadioViewFrequencyRadio::restoreState (TDEConfig *config)
-{
- TQColor defaultActive (20, 244, 20),
- defaultInactive(TQColor(10, 117, 10).light(75)),
- defaultButton (10, 117, 10);
- TQFont defaultFont ("Helvetica");
- TQColor a, b, c;
- TQFont f;
- a = config->readColorEntry ("frequency-view-colorActiveText",
- &defaultActive);
- b = config->readColorEntry ("frequency-view-colorInactiveText",
- &defaultInactive);
- c = config->readColorEntry ("frequency-view-colorButton",
- &defaultButton);
- f = config->readFontEntry ("frequency-view-font",
- &defaultFont);
- setDisplayColors(a, b, c);
- setDisplayFont(f);
-}
-
-
-ConfigPageInfo RadioViewFrequencyRadio::createConfigurationPage()
-{
- DisplayConfiguration *a = new DisplayConfiguration(NULL);
- connectI(a);
- return ConfigPageInfo (a,
- i18n("Frequency Display"),
- i18n("Frequency Display"),
- TQString()
- );
-}
-
-
-// Interface
-
-bool RadioViewFrequencyRadio::connectI(Interface *i)
-{
- bool o = IDisplayCfg::connectI(i);
- bool c = ISoundStreamClient::connectI(i);
- if (dynamic_cast<IFrequencyRadio *>(i)) {
-
- bool a = IRadioDeviceClient::connectI(i);
- bool b = IFrequencyRadioClient::connectI(i);
- return o || a || b || c;
-
- } else {
- return o || c;
- }
-}
-
-
-bool RadioViewFrequencyRadio::disconnectI(Interface *i)
-{
- // no check for IFrequencyRadio, it's just a disconnect
-
- bool a = IRadioDeviceClient::disconnectI(i);
- bool b = IFrequencyRadioClient::disconnectI(i);
- bool c = ISoundStreamClient::disconnectI(i);
- bool o = IDisplayCfg::disconnectI(i);
-
- return a || b || c || o;
-}
-
-void RadioViewFrequencyRadio::noticeConnectedI (ISoundStreamServer *s, bool pointer_valid)
-{
- ISoundStreamClient::noticeConnectedI(s, pointer_valid);
- if (s && pointer_valid) {
- s->register4_notifySignalQualityChanged(this);
- s->register4_notifyStereoChanged(this);
- }
-}
-
-// IDisplayCfg
-
-bool RadioViewFrequencyRadio::setDisplayColors(const TQColor &activeText,
- const TQColor &inactiveText,
- const TQColor &button)
-{
- bool change = (activeText != m_colorActiveText || inactiveText != m_colorInactiveText || button != m_colorButton);
-
- m_colorActiveText = activeText;
- m_colorInactiveText = inactiveText;
- m_colorButton = button;
-
- TQPalette pl = palette();
- TQColorGroup cg = pl.inactive();
-
- TQBrush fg = cg.brush(TQColorGroup::Foreground),
- btn = cg.brush(TQColorGroup::Button),
- lgt = cg.brush(TQColorGroup::Light),
- drk = cg.brush(TQColorGroup::Dark),
- mid = cg.brush(TQColorGroup::Mid),
- txt = cg.brush(TQColorGroup::Text),
- btx = cg.brush(TQColorGroup::BrightText),
- bas = cg.brush(TQColorGroup::Base),
- bg = cg.brush(TQColorGroup::Background);
-
- fg.setColor (m_colorActiveText);
- btn.setColor(m_colorButton);
- lgt.setColor(m_colorButton.light(180));
- drk.setColor(m_colorButton.light( 50));
- mid.setColor(m_colorInactiveText);
- txt.setColor(m_colorActiveText);
- btx.setColor(m_colorActiveText);
- bas.setColor(m_colorButton);
- bg.setColor (m_colorButton);
-
- TQColorGroup ncg(fg, btn, lgt, drk, mid, txt, btx, bas, bg);
- pl.setInactive(ncg);
- pl.setActive(ncg);
- setPalette(pl);
-
- if (parentWidget() && parentWidget()->backgroundPixmap() ){
- KPixmapIO io;
- TQImage i = io.convertToImage(*parentWidget()->backgroundPixmap());
- KImageEffect::fade(i, 0.5, colorGroup().color(TQColorGroup::Dark));
- setPaletteBackgroundPixmap(io.convertToPixmap(i));
- setBackgroundOrigin(WindowOrigin);
- } else {
- setBackgroundColor(colorGroup().color(TQColorGroup::Button));
- }
-
- if (change)
- notifyDisplayColorsChanged(m_colorActiveText, m_colorInactiveText, m_colorButton);
- return true;
-}
-
-bool RadioViewFrequencyRadio::setDisplayFont (const TQFont &f)
-{
- if (m_font != f) {
- m_font = f;
- notifyDisplayFontChanged(m_font);
- RadioViewElement::setFont(f);
- }
- return true;
-}
-
-// IRadioDeviceClient
-
-
-bool RadioViewFrequencyRadio::noticePowerChanged (bool on, const IRadioDevice */*sender*/)
-{
- m_power = on;
-
- SoundStreamID ssid = queryCurrentSoundStreamID();
- float q = 0.0;
- bool s = false;
- querySignalQuality(ssid, q);
- noticeSignalQualityChanged(ssid, q);
- queryIsStereo(ssid, s);
- noticeStereoChanged(ssid, s);
-
- repaint();
- return true;
-}
-
-
-bool RadioViewFrequencyRadio::noticeStationChanged (const RadioStation &, const IRadioDevice */*sender*/)
-{
- return false; // we don't care
-}
-
-
-bool RadioViewFrequencyRadio::noticeDescriptionChanged (const TQString &, const IRadioDevice */*sender*/)
-{
- return false; // we don't care
-}
-
-
-// IRadioSoundClient
-
-bool RadioViewFrequencyRadio::noticeSignalQualityChanged(SoundStreamID id, float q)
-{
- if (queryCurrentSoundStreamID() != id)
- return false;
- m_quality = q;
- repaint ();
- return true;
-}
-
-
-bool RadioViewFrequencyRadio::noticeStereoChanged(SoundStreamID id, bool s)
-{
- if (queryCurrentSoundStreamID() != id)
- return false;
- m_stereo = s;
- repaint ();
- return true;
-}
-
-
-
-
-// IFrequencyRadioClient
-
-
-bool RadioViewFrequencyRadio::noticeFrequencyChanged(float f, const RadioStation *)
-{
- m_frequency = f;
- repaint ();
- return true;
-}
-
-
-bool RadioViewFrequencyRadio::noticeMinMaxFrequencyChanged(float /*min*/, float /*max*/)
-{
- return false; // we don't care
-}
-
-
-bool RadioViewFrequencyRadio::noticeDeviceMinMaxFrequencyChanged(float /*min*/, float /*max*/)
-{
- return false; // we don't care
-}
-
-
-bool RadioViewFrequencyRadio::noticeScanStepChanged(float /*s*/)
-{
- return false; // we don't care
-}
-
-
-
-void RadioViewFrequencyRadio::drawContents(TQPainter *paint)
-{
- if (!paint) return;
-
- TQRect r = contentsRect();
-
- int margin = TQMAX(4, TQMIN(r.width() / 50, r.height() / 50)),
- tmp = TQMIN(r.height(), (r.width() - 2*margin) / 4),
- xd_st = TQMIN((r.height() - margin * 2) / 3, tmp/3),
- xw = TQMIN(tmp / 2, xd_st * 3 / 2),
- penw = TQMAX(1, xw / 25),
- xh_st = xd_st,
- xx_st = r.x() + margin + xw + 2 * margin + penw/2,
- xy_st = r.y() + margin + penw/2,
-
- xx_am = xx_st,
- xy_am = xy_st + xh_st + margin / 2,
- xh_am = (r.bottom() - margin - xy_am + 1 - margin/2) / 2,
-
- xx_fm = xx_am,
- xy_fm = xy_am + xh_am + margin/2,
- xh_fm = xh_am,
-
- xh_sg = r.height() - margin * 2,
- xx_sg = r.x() + margin,
- xy_sg = r.y() + margin;
-
- TQPen activePen (colorGroup().color(TQColorGroup::Text), penw);
- TQPen inactivePen (colorGroup().color(TQColorGroup::Mid), penw);
- TQBrush activeBrush = colorGroup().brush(TQColorGroup::Text);
- TQBrush inactiveBrush = colorGroup().brush(TQColorGroup::Mid);
-
- // draw stereo symbol
- paint->setPen( (m_stereo && m_power) ? activePen : inactivePen);
- paint->drawArc((int)xx_st, (int)xy_st,
- (int)(xd_st - penw), (int)(xd_st - penw),
- 0, 360*16);
- paint->drawArc((int)(xx_st + xd_st/2), (int)xy_st,
- (int)(xd_st - penw), (int)(xd_st - penw),
- 0, 360*16);
-
- // draw signal quality symbol
- float cx = xx_sg,
- cy = xy_sg,
- cw = xw,
- ch = xw;
-
- float open_a = 30.0;
- // outer circle
- paint->setPen( (m_quality > 0.75 && m_power) ? activePen : inactivePen);
- paint->drawArc((int)rint(cx), (int)rint(cy),
- (int)rint(cw), (int)rint(ch),
- (int)(-90+open_a)*16, (int)(360 - 2*open_a)*16
- );
-
- // mid circle
- paint->setPen( (m_quality > 0.50 && m_power) ? activePen : inactivePen);
- cx += (float)xw/5.0; cy += (float)xw/5.0;
- cw -= (float)xw/2.5; ch -= (float)xw/2.5;
- paint->drawArc((int)rint(cx), (int)rint(cy),
- (int)rint(cw), (int)rint(ch),
- (int)(-90+open_a)*16, (int)(360 - 2*open_a)*16
- );
-
- // inner circle
- paint->setPen( (m_quality > 0.25 && m_power) ? activePen : inactivePen);
- cx += (float)xw/5.0; cy += (float)xw/5.0;
- cw -= (float)xw/2.5; ch -= (float)xw/2.5;
- paint->drawArc((int)rint(cx), (int)rint(cy),
- (int)rint(cw), (int)rint(ch),
- (int)(-90+open_a)*16, (int)(360 - 2*open_a)*16
- );
-
- // triangle
- TQPen tmppen = (m_quality > 0.1 && m_power) ? activePen : inactivePen;
- tmppen.setWidth(1);
- paint->setPen(tmppen);
- paint->setBrush( (m_quality > 0.1 && m_power) ? activeBrush : inactiveBrush);
- TQPointArray pts(3);
- pts.setPoint(0, (int)(xx_sg + xw / 4), (int)(xy_sg + xh_sg - penw/2));
- pts.setPoint(1, (int)(xx_sg + xw *3/4), (int)(xy_sg + xh_sg - penw/2));
- pts.setPoint(2, (int)(xx_sg + xw / 2), (int)(xy_sg + xw/2 + penw));
- paint->drawConvexPolygon(pts);
-
-
-
- // AM/FM display
-
- TQFont f = m_font;
- paint->setPen ( (m_frequency <= 10 && m_power) ? activePen : inactivePen);
- f.setPixelSize(xh_am);
- paint->setFont(f);
- paint->drawText(xx_am, xy_am + xh_am - 1, i18n("AM"));
- int xw_am = TQFontMetrics(f).width(i18n("AM"));
-
- paint->setPen ( (m_frequency > 10 && m_power) ? activePen : inactivePen);
- f.setPixelSize(xh_fm);
- paint->setFont(f);
- paint->drawText(xx_fm, xy_fm + xh_fm - 1, i18n("FM"));
- int xw_fm = TQFontMetrics(f).width(i18n("FM"));
-
- int xx_f = TQMAX(xx_fm + xw_fm, TQMAX(xw_am + xx_am, TQMAX(xx_st + xw, xw + xx_sg))) + margin,
- xy_f = r.y() + margin,
- xw_f = r.right() - margin - xx_f + 1,
- xh_f = r.bottom() - margin - xy_f + 1;
-
- // Frequency Display
-
- TQString s;
- if (m_frequency < 10) {
- s = i18n("%1 kHz").arg(TDEGlobal::locale()->formatNumber((int)(m_frequency * 1000), 0));
- } else {
- s = i18n("%1 MHz").arg(TDEGlobal::locale()->formatNumber(m_frequency, 2));
- }
-
- float pxs = xh_f;
- paint->setPen ( m_power ? activePen : inactivePen);
- f.setPixelSize((int)pxs);
- int n = 30;
- while (1) {
- TQFontMetrics fm(f);
- int sw = fm.boundingRect(xx_f, xy_f, xw_f, xh_f, TQt::AlignRight | TQt::AlignVCenter, s).width();
- if (sw <= xw_f || --n <= 0) break;
-
- float fact = (float)xw_f / (float)sw;
- pxs = TQMIN(pxs - 1, pxs * fact);
- f.setPixelSize(TQMAX(1,(int)pxs));
- }
- paint->setFont(f);
- paint->drawText(xx_f, xy_f, xw_f, xh_f, TQt::AlignRight | TQt::AlignVCenter, s);
-}
-
-
-
-
-
-
-void RadioViewFrequencyRadio::reparent (TQWidget *prnt,
- WFlags f,
- const TQPoint &p,
- bool showIt)
-{
- RadioViewElement::reparent(prnt, f, p, showIt);
- setDisplayColors(m_colorActiveText, m_colorInactiveText, m_colorButton);
-}
-
-
-#include "radioview_frequencyradio.moc"