summaryrefslogtreecommitdiff
path: root/noncore/net/wellenreiter/gui/graphwindow.cpp
Side-by-side diff
Diffstat (limited to 'noncore/net/wellenreiter/gui/graphwindow.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/graphwindow.cpp34
1 files changed, 29 insertions, 5 deletions
diff --git a/noncore/net/wellenreiter/gui/graphwindow.cpp b/noncore/net/wellenreiter/gui/graphwindow.cpp
index b4174d3..d53421c 100644
--- a/noncore/net/wellenreiter/gui/graphwindow.cpp
+++ b/noncore/net/wellenreiter/gui/graphwindow.cpp
@@ -10,24 +10,51 @@
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
**********************************************************************/
#include "graphwindow.h"
#include <qpainter.h>
#include <qpixmap.h>
#include <qtimer.h>
+/* XPM */
+static char * background[] = {
+"16 16 6 1",
+" c None",
+". c #52676E",
+"+ c #3F545B",
+"@ c #394E56",
+"# c #2F454C",
+"$ c #364B52",
+".+++++++++++++++",
+"@###############",
+"+$$$$$$$$$$$$$$$",
+"@###############",
+"+$$$$$$$$$$$$$$$",
+"@###############",
+"+$$$$$$$$$$$$$$$",
+"@###############",
+"+$$$$$$$$$$$$$$$",
+"@###############",
+"+$$$$$$$$$$$$$$$",
+"@###############",
+"+$$$$$$$$$$$$$$$",
+"@###############",
+"+$$$$$$$$$$$$$$$",
+"@###############"};
+
+
MFrequencySpectrum::MFrequencySpectrum( int channels, QWidget* parent, const char* name, WFlags f)
:QWidget( parent, name,f ), _channels( channels )
{
_values = new int[_channels];
_dirty = new bool[_channels];
for ( int i = 0; i < channels; ++i )
{ _values[i] = 0;
_dirty[i] = true;
}
// we draw everything on our own
setBackgroundMode( QWidget::NoBackground );
@@ -76,25 +103,25 @@ void MFrequencySpectrum::drawBar( QPainter* p, int x, int y, int width, int heig
int s = (s2-s1)*i/maxheight + s1;
int v = (v2-v1)*i/maxheight + v1;
if ( i == 0 )
drawBottomLine( p, x, y-i, width, QColor( h,s,v, QColor::Hsv ) );
else if ( i == height-1 )
drawTopLine( p, x, y-i, width, QColor( h,s,v, QColor::Hsv ) );
else
drawLine( p, x, y-i, width, QColor( h,s,v, QColor::Hsv ) );
}
}
-void MFrequencySpectrum::paintEvent( QPaintEvent* e )
+void MFrequencySpectrum::paintEvent( QPaintEvent* )
{
QPixmap pm( size() );
QPainter p;
p.begin( &pm );
p.drawTiledPixmap( 0, 0, size().width(), size().height(), QPixmap( (const char**) &background ) );
int xmargin = 5;
int ymargin = 2;
int y = size().height() - 2 * ymargin;
int x = 0;
int width = ( size().width() - 2 * xmargin ) / _channels;
@@ -109,50 +136,47 @@ void MFrequencySpectrum::paintEvent( QPaintEvent* e )
}
p.end();
bitBlt( this, 0, 0, &pm );
}
void MFrequencySpectrum::mousePressEvent( QMouseEvent* e )
{
int xmargin = 5;
int ymargin = 2;
int y = size().height() - 2 * ymargin;
- int x = 0;
int width = ( size().width() - 2 * xmargin ) / _channels;
QPoint pos = e->pos();
int channel = ( pos.x()-xmargin ) / width;
int height = 100 - ( pos.y()-ymargin )*100/y;
if ( channel < 15 ) _values[channel] = height;
}
Legende::Legende( int channels, QWidget* parent, const char* name, WFlags f )
:QFrame( parent, name, f ), _channels( channels )
{
setLineWidth( 2 );
setFrameStyle( Panel + Sunken );
setFixedHeight( 16 );
}
void Legende::drawContents( QPainter* p )
{
int xmargin = 5;
- int ymargin = 2;
- int x = 0;
int width = ( contentsRect().width() - 2 * xmargin ) / _channels;
for ( int i = 0; i < _channels; ++i )
p->drawText( xmargin + (width*i), 12, QString().sprintf( "%02d", i+1 ) );
}
MGraphWindow::MGraphWindow( QWidget* parent, const char* name, WFlags f )
:QVBox( parent, name, f )
{
spectrum = new MFrequencySpectrum( 14, this );
legende = new Legende( 14, this );
@@ -161,25 +185,25 @@ MGraphWindow::MGraphWindow( QWidget* parent, const char* name, WFlags f )
void MGraphWindow::testGraph()
{
static int i = 0;
spectrum->setValue( i++, 100 );
if ( i == 14 ) i = 0;
QTimer::singleShot( 2000, this, SLOT( testGraph() ) );
}
-void MGraphWindow::timerEvent( QTimerEvent* e )
+void MGraphWindow::timerEvent( QTimerEvent* )
{
for ( int i = 0; i < 14; i++ )
{
spectrum->decrease( i, 1 );
}
spectrum->repaint();
}
void MGraphWindow::traffic( int channel, int signal )
{
spectrum->setValue( channel-1, signal );