summaryrefslogtreecommitdiff
path: root/noncore/applets/wirelessapplet/mgraph.cpp
authormickeyl <mickeyl>2002-08-04 19:06:53 (UTC)
committer mickeyl <mickeyl>2002-08-04 19:06:53 (UTC)
commitc2d27f3bc4fdf7407337a50c92dcb04ab4ce3525 (patch) (side-by-side diff)
tree3913529e3ce4ba338e030e922fe094470211e5b5 /noncore/applets/wirelessapplet/mgraph.cpp
parent55019d84057f9c2bd2b2483da2c128a0a927e003 (diff)
downloadopie-c2d27f3bc4fdf7407337a50c92dcb04ab4ce3525.zip
opie-c2d27f3bc4fdf7407337a50c92dcb04ab4ce3525.tar.gz
opie-c2d27f3bc4fdf7407337a50c92dcb04ab4ce3525.tar.bz2
wireless monitoring applet added to opie-cvs
Diffstat (limited to 'noncore/applets/wirelessapplet/mgraph.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/applets/wirelessapplet/mgraph.cpp71
1 files changed, 71 insertions, 0 deletions
diff --git a/noncore/applets/wirelessapplet/mgraph.cpp b/noncore/applets/wirelessapplet/mgraph.cpp
new file mode 100644
index 0000000..b4b86b0
--- a/dev/null
+++ b/noncore/applets/wirelessapplet/mgraph.cpp
@@ -0,0 +1,71 @@
+/**********************************************************************
+** MGraph
+**
+** A reusable graph widget.
+**
+** Copyright (C) 2002, Michael Lauer
+** mickey@tm.informatik.uni-frankfurt.de
+** http://www.Vanille.de
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** 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 "mgraph.h"
+#include "graphbackground.xpm"
+#include <qpainter.h>
+#include <qpixmap.h>
+
+//---------------------------------------------------------------------------
+
+MGraph::MGraph( QWidget *parent, const char *name, WFlags f )
+ : QFrame( parent, name, f ), min( 0 ), max( 0), values( 0 )
+{
+ background = new QPixmap( (const char** ) graphbackground_xpm );
+ values = new ValueList();
+}
+
+void MGraph::setFrameStyle( int style )
+{
+ QFrame::setFrameStyle( style );
+ setFixedSize( background->width() + frameWidth()*2, background->height() + frameWidth()*2 );
+}
+
+void MGraph::addValue( int value, bool followMax )
+{
+ values->append( value );
+ if ( followMax && (value > max) )
+ setMax( value );
+ if ( values->count() == background->width()-2 ) // compensate for graph display element border
+ values->remove( values->begin() );
+ repaint( false );
+}
+
+void MGraph::drawContents( QPainter* p )
+{
+ p->drawPixmap( frameWidth(), frameWidth(), (const QPixmap&) *background );
+ p->setPen( QColor( 40, 235, 40 ) );
+
+ int x = frameWidth() + 2; // compensate for graph display element border
+ int y = 0;
+
+ ValueList::ConstIterator it;
+ for ( it = values->begin(); it != values->end(); ++it )
+ {
+ y = frameWidth() + background->height() -3 - ( ( *(it)*(background->height()-4 ) /max ) );
+ p->drawPoint( x++, y );
+ }
+}
+
+MGraph::~MGraph()
+{
+ delete background;
+ delete values;
+}
+