summaryrefslogtreecommitdiffstats
path: root/libkdeedu/kdeeduplot
diff options
context:
space:
mode:
Diffstat (limited to 'libkdeedu/kdeeduplot')
-rw-r--r--libkdeedu/kdeeduplot/Makefile.am15
-rw-r--r--libkdeedu/kdeeduplot/README23
-rw-r--r--libkdeedu/kdeeduplot/kplotaxis.cpp32
-rw-r--r--libkdeedu/kdeeduplot/kplotaxis.h86
-rw-r--r--libkdeedu/kdeeduplot/kplotobject.cpp49
-rw-r--r--libkdeedu/kdeeduplot/kplotobject.h205
-rw-r--r--libkdeedu/kdeeduplot/kplotwidget.cpp405
-rw-r--r--libkdeedu/kdeeduplot/kplotwidget.h264
8 files changed, 0 insertions, 1079 deletions
diff --git a/libkdeedu/kdeeduplot/Makefile.am b/libkdeedu/kdeeduplot/Makefile.am
deleted file mode 100644
index 21b84f2a..00000000
--- a/libkdeedu/kdeeduplot/Makefile.am
+++ /dev/null
@@ -1,15 +0,0 @@
-INCLUDES= $(all_includes)
-SUBDIRS = .
-
-lib_LTLIBRARIES = libtdeeduplot.la
-
-libtdeeduplotincludedir = $(includedir)/libtdeedu
-libtdeeduplotinclude_HEADERS = kplotobject.h kplotaxis.h kplotwidget.h
-
-libtdeeduplot_la_SOURCES = kplotobject.cpp kplotaxis.cpp kplotwidget.cpp
-
-libtdeeduplot_la_LDFLAGS = $(all_libraries) -no-undefined -version-info 3:0:2
-libtdeeduplot_la_LIBADD = $(LIB_TDECORE) $(LIB_QT)
-
-METASOURCES = AUTO
-
diff --git a/libkdeedu/kdeeduplot/README b/libkdeedu/kdeeduplot/README
deleted file mode 100644
index ab695f9a..00000000
--- a/libkdeedu/kdeeduplot/README
+++ /dev/null
@@ -1,23 +0,0 @@
-This library provides KPlotWidget and KPlotObject classes.
-
-KPlotWidget is a QWidget-derived class that provides a virtual baseclass
-for easy data-plotting. The idea behind KPlotWidget is that you only have
-to specify information in "data units"; i.e., the natural units of the
-data being plotted. KPlotWidget automatically converts everything
-to screen pixel units.
-
-KPlotWidget draws X and Y axes with tickmarks and tick labels. It
-automatically determines how many tickmarks to use and where they should
-be, based on the data limits specified for the plot. You change the limits
-by calling setLimits( double x1, double x2, double y1, double y2 ), and
-then calling updateTickmarks() to recompute the positions of tickmarks
-and ticklabels.
-
-Data to be plotted are stored using the KPlotObject class. KPlotObject
-consists of a QPtrList of DPoints, each specifying the X,Y coordinates
-of a data point (DPoint is like QPoint, but the X and Y values are doubles
-instead of ints). KPlotObject also specifies the "type" of data to be
-plotted (POINTS or CURVE or POLYGON or LABEL).
-
-Jason Harris
-kstars@30doradus.org
diff --git a/libkdeedu/kdeeduplot/kplotaxis.cpp b/libkdeedu/kdeeduplot/kplotaxis.cpp
deleted file mode 100644
index 69af4673..00000000
--- a/libkdeedu/kdeeduplot/kplotaxis.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-/***************************************************************************
- kplotaxis.cpp - An axis for the plot widget
- -------------------
- begin : 16 June 2005
- copyright : (C) 2005 by Andreas Nicolai
- email : Andreas.Nicolai@gmx.net
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * 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 <tqpainter.h>
-#include <kdebug.h>
-#include <klocale.h>
-#include "kplotaxis.h"
-
-KPlotAxis::KPlotAxis() : m_visible(true), m_labelFieldWidth(0), m_labelFmt('g'),
- m_labelPrec(2)
-{
-}
-
-KPlotAxis::KPlotAxis(const TQString& label) : m_visible(true), m_label(label),
- m_labelFieldWidth(0), m_labelFmt('g'), m_labelPrec(2)
-{
-}
-
diff --git a/libkdeedu/kdeeduplot/kplotaxis.h b/libkdeedu/kdeeduplot/kplotaxis.h
deleted file mode 100644
index 3209b18c..00000000
--- a/libkdeedu/kdeeduplot/kplotaxis.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/***************************************************************************
- kplotaxis.h - An axis for the plot widget
- -------------------
- begin : 16 June 2005
- copyright : (C) 2005 by Andreas Nicolai
- email : Andreas.Nicolai@gmx.net
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * 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 KPLOTAXIS_H
-#define KPLOTAXIS_H
-
-#include <tqstring.h>
-
-#include <kdemacros.h>
-
-/**class KPlotAxis
- *@short Contains all data for drawing an axis including format specification axis labels.
- *@author Andreas Nicolai
- *@version 1.0
- */
-class KDE_EXPORT KPlotAxis {
-public:
-
- /**@short Default constructor, creates a default axis. */
- KPlotAxis();
-
- /**@short Constructor, constructs a labeled axis. */
- KPlotAxis(const TQString& label);
-
- /**@short Destructor. */
- virtual ~KPlotAxis() {}
-
- /**@short Returns whether the axis is visible or not. */
- virtual bool isVisible() const { return m_visible; }
-
- /**@short Sets the "visible" property of the axis. */
- virtual void setVisible(bool visible) { m_visible = visible; }
-
- /**@short Shows the axis (axis will be shown at next update of plot widget). */
- virtual void show() { m_visible = true; }
-
- /**@short Hides the axis (axis will be hidden at next update of plot widget). */
- virtual void hide() { m_visible = false; }
-
- /**@short Sets the axis label.
- *@param label A short string describing the data plotted on the axis.
- *Set the label to an empty string to omit the axis label.
- */
- virtual void setLabel( const TQString& label ) { m_label = label; }
-
- /**@short Returns the axis label. */
- virtual TQString label() const { return m_label; }
-
- /**@short Set the number format for the tick labels, see TQString::arg() for
- description of arguments.
- */
- virtual void setLabelFormat(int fieldWidth, char fmt = 'g', int prec=-1) {
- m_labelFieldWidth = fieldWidth; m_labelFmt = fmt; m_labelPrec = prec; }
-
- /**@short Returns the field width of the tick labels. */
- virtual int labelFieldWidth() const { return m_labelFieldWidth; }
-
- /**@short Returns the number format of the tick labels. */
- virtual char labelFmt() const { return m_labelFmt; }
-
- /**@short Returns the number precision of the tick labels. */
- virtual int labelPrec() const { return m_labelPrec; }
-
-private:
- bool m_visible; ///< Property "visible" defines if Axis is drawn or not.
- TQString m_label; ///< The label of the axis.
- int m_labelFieldWidth; ///< Field width for number labels, see TQString::arg().
- char m_labelFmt; ///< Number format for number labels, see TQString::arg().
- int m_labelPrec; ///< Number precision for number labels, see TQString::arg().
-};
-
-#endif // KPLOTAXIS_H
diff --git a/libkdeedu/kdeeduplot/kplotobject.cpp b/libkdeedu/kdeeduplot/kplotobject.cpp
deleted file mode 100644
index b5aaf8d8..00000000
--- a/libkdeedu/kdeeduplot/kplotobject.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/***************************************************************************
- kplotobject.cpp - A list of points to be plotted
- -------------------
- begin : Sun 18 May 2003
- copyright : (C) 2003 by Jason Harris
- email : kstars@30doradus.org
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * 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 <tqpainter.h>
-#include <kdebug.h>
-#include "kplotobject.h"
-
-KPlotObject::KPlotObject() {
- KPlotObject( "", "white", POINTS );
-}
-
-KPlotObject::KPlotObject( const TQString &n, const TQString &c, PTYPE t, unsigned int s, unsigned int p ) {
- //We use the set functions because they may include data validation
- setName( n );
- setColor( c );
- setType( t );
- setSize( s );
- setParam( p );
-
- pList.setAutoDelete( true );
-}
-
-KPlotObject::~KPlotObject()
-{
-}
-
-void KPlotObject::removePoint( unsigned int index ) {
- if ( index > pList.count() - 1 ) {
- kdWarning() << "Ignoring attempt to remove non-existent plot object" << endl;
- return;
- }
-
- pList.remove( index );
-}
-
diff --git a/libkdeedu/kdeeduplot/kplotobject.h b/libkdeedu/kdeeduplot/kplotobject.h
deleted file mode 100644
index f1074cb6..00000000
--- a/libkdeedu/kdeeduplot/kplotobject.h
+++ /dev/null
@@ -1,205 +0,0 @@
-/***************************************************************************
- kplotobject.h - A list of points to be plotted
- -------------------
- begin : Sun 18 May 2003
- copyright : (C) 2003 by Jason Harris
- email : kstars@30doradus.org
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * 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 KPLOTOBJECT_H
-#define KPLOTOBJECT_H
-
-
-class TQString;
-class TQPainter;
-
-#include <kdemacros.h>
-
-/**class DRect
- *@short equivalent of TQRect with double x,y coordinates
- *@author Jason Harris
- *@version 1.0
- */
-class KDE_EXPORT DRect {
-public:
- DRect() { DRect( 0.0, 0.0, 1.0, 1.0 ); }
- DRect( double x, double y, double w, double h ) { X = x; Y = y; W = w; H = h; }
- ~DRect() {}
-
- double x() const { return X; }
- double y() const { return Y; }
- double x2() const { return X + W; }
- double y2() const { return Y + H; }
- double width() const { return W; }
- double height() const { return H; }
-
- void setX( double x ) { X = x; }
- void setY( double y ) { Y = y; }
- void setWidth( double w ) { W = w; }
- void setHeight( double h ) { H = h; }
-
-private:
- double X,Y,W,H;
-};
-
-/**class DPoint
- *@short equivalent of TQPoint with double x,y coordinates
- *@author Jason Harris
- *@version 1.0
- */
-class KDE_EXPORT DPoint {
-public:
- DPoint() { DPoint( 0.0, 0.0 ); }
- DPoint( double x, double y ) { setX( x ); setY( y ); }
- ~DPoint() {}
-
- double x() const { return X; }
- double y() const { return Y; }
-
- TQPoint qpoint( TQRect pb, DRect db ) {
- int px = pb.left() + int( pb.width()*( x() - db.x() )/db.width() );
- int py = pb.top() + int( pb.height()*( db.y2() - y() )/db.height() );
- return TQPoint( px, py );
- }
-
- void setX( double x ) { X = x; }
- void setY( double y ) { Y = y; }
-
-private:
- double X, Y;
-};
-
-/**@class KPlotObject
- *@short Encapsulates an object to be plotted in a KPlotWidget.
- *@author Jason Harris
- *@version 1.0
- *Each KPlotObject consists of a list of TQPoints, an object type, a color, a size,
- *and a TQString name. An additional integer (param) specifies something further
- *about the object's appearance, depending on its type. There is a draw function
- *for plotting the object on a KPlotWidget's TQPainter.
- */
-class KDE_EXPORT KPlotObject{
-public:
-/**@enum PTYPE
- *The Type classification of the KPlotObject
- */
- enum PTYPE { POINTS=0, CURVE=1, LABEL=2, POLYGON=3, UNKNOWN_TYPE };
-
-/**@enum PPARAM
- *Parameter specifying the kind of points
- */
- enum PPARAM { DOT=0, CIRCLE=1, SQUARE=2, LETTER=3, UNKNOWN_POINT };
-
-/**@enum CPARAM
- *Parameter specifying the kind of line. These are numerically equal to
- *the TQt::PenStyle enum values.
- */
- enum CPARAM { NO_LINE=0, SOLID=1, DASHED=2, DOTTED=3, DASHDOTTED=4, DASHDOTDOTTED=5, UNKNOWN_CURVE };
-
-/**Default constructor. Create a POINTS-type object with an empty list of points.
- */
- KPlotObject();
-
-/**Constructor. Create a KPlotObject according to the arguments.
- */
- KPlotObject( const TQString &name, const TQString &color, PTYPE otype, unsigned int size=2, unsigned int param=0 );
-
-/**Destructor (empty)
- */
- ~KPlotObject();
-
-/**@return the KPlotObject's Name
- */
- TQString name() const { return Name; }
-
-/**@short set the KPlotObject's Name
- *@param n the new name
- */
- void setName( const TQString &n ) { Name = n; }
-
-/**@return the KPlotObject's Color
- */
- TQString color() const { return Color; }
-
-/**@short set the KPlotObject's Color
- *@param c the new color
- */
- void setColor( const TQString &c ) { Color = c; }
-
-/**@return the KPlotObject's Type
- */
- PTYPE type() const { return Type; }
-
-/**@short set the KPlotObject's Type
- *@param t the new type
- */
- void setType( PTYPE t ) { Type = t; }
-
-/**@return the KPlotObject's Size
- */
- unsigned int size() const { return Size; }
-
-/**@short set the KPlotObject's Size
- *@param s the new size
- */
- void setSize( unsigned int s ) { Size = s; }
-
-/**@return the KPlotObject's type-specific Parameter
- *Parameter is an unsigned int because it can either be a PPARAM or a CPARAM enum.
- */
- unsigned int param() const { return Parameter; }
-
-/**@short set the KPlotObject's type-specific Parameter
- *@param p the new parameter
- *Parameter is an unsigned int because it can either be a PPARAM or a CPARAM enum.
- */
- void setParam( unsigned int p ) { Parameter = p; }
-
-/**@return a pointer to the DPoint at position i
- *@param i the index of the desired point.
- */
- DPoint* point( unsigned int i ) { return pList.at(i); }
-
- TQPtrList<DPoint>* points() { return &pList; }
-
-/**@short Add a point to the object's list.
- *@param p the DPoint to add.
- */
- void addPoint( const DPoint &p ) { pList.append( new DPoint( p.x(), p.y() ) ); }
-
-/**@short Add a point to the object's list. This is an overloaded function,
- *provided for convenience. It behaves essentially like the above function.
- *@param p pointer to the DPoint to add.
- */
- void addPoint( DPoint *p ) { pList.append( p ); }
-
-/**@short remove the TQPoint at position index from the list of points
- *@param index the index of the point to be removed.
- */
- void removePoint( unsigned int index );
-
-/**@return the number of TQPoints currently in the list
- */
- unsigned int count() const { return pList.count(); }
-
-/**@short clear the Object's points list
- */
- void clearPoints() { pList.clear(); }
-
-private:
- TQPtrList<DPoint> pList;
- PTYPE Type;
- unsigned int Size, Parameter;
- TQString Color, Name;
-};
-
-#endif
diff --git a/libkdeedu/kdeeduplot/kplotwidget.cpp b/libkdeedu/kdeeduplot/kplotwidget.cpp
deleted file mode 100644
index 5f13de6e..00000000
--- a/libkdeedu/kdeeduplot/kplotwidget.cpp
+++ /dev/null
@@ -1,405 +0,0 @@
-/***************************************************************************
- kplotwidget.cpp - A widget for plotting in KStars
- -------------------
- begin : Sun 18 May 2003
- copyright : (C) 2003 by Jason Harris
- email : kstars@30doradus.org
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * 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 <math.h> //for log10(), pow(), modf()
-#include <kdebug.h>
-#include <tqpainter.h>
-#include <tqpixmap.h>
-
-#include "kplotwidget.h"
-#include "kplotwidget.moc"
-
-KPlotWidget::KPlotWidget( double x1, double x2, double y1, double y2, TQWidget *parent, const char* name )
- : TQWidget( parent, name, WNoAutoErase ),
- dXtick(0.0), dYtick(0.0),
- nmajX(0), nminX(0), nmajY(0), nminY(0),
- ShowTickMarks( true ), ShowTickLabels( true ), ShowGrid( false )
- {
- setBackgroundMode( TQWidget::NoBackground );
-
- //set DataRect
- setLimits( x1, x2, y1, y2 );
- setDefaultPadding();
-
- //Set PixRect (starts at (0,0) because we will translate by leftPadding(), topPadding() )
- PixRect = TQRect( 0, 0, width() - leftPadding() - rightPadding(),
- height() - topPadding() - bottomPadding() );
-
- buffer = new TQPixmap();
-
- //default colors:
- setBGColor( TQColor( "black" ) );
- setFGColor( TQColor( "white" ) );
- setGridColor( TQColor( "grey" ) );
-
- ObjectList.setAutoDelete( true );
-}
-
-KPlotWidget::~KPlotWidget()
-{
- delete (buffer);
-}
-
-void KPlotWidget::setLimits( double x1, double x2, double y1, double y2 ) {
- double XA1, XA2, YA1, YA2;
- if (x2<x1) { XA1=x2; XA2=x1; }
- else { XA1=x1; XA2=x2; }
- if ( y2<y1) { YA1=y2; YA2=y1; }
- else { YA1=y1; YA2=y2; }
-
- DataRect = DRect( XA1, YA1, XA2-XA1, YA2-YA1 );
- updateTickmarks();
-}
-
-void KPlotWidget::updateTickmarks() {
- // Determine the number and spacing of tickmarks for the current plot limits.
- if ( dataWidth() == 0.0 ) {
- kdWarning() << "X range invalid! " << x() << " to " << x2() << endl;
- DataRect.setWidth( 1.0 );
- return;
- }
- if ( dataHeight() == 0.0 ) {
- kdWarning() << "Y range invalid! " << y() << " to " << y2() << endl;
- DataRect.setHeight( 1.0 );
- return;
- }
-
- int nmajor(0), nminor(0);
- double z(0.0), z2(0.0);
- double Range(0.0), s(0.0), t(0.0), pwr(0.0), dTick(0.0);
-
- //loop over X and Y axes...the z variables substitute for either X or Y
- for ( unsigned int iaxis=0; iaxis<2; ++iaxis ) {
- if ( iaxis == 1 ) {
- z = x(); z2 = x2();
- } else {
- z = y(); z2 = y2();
- }
-
- //determine size of region to be drawn, in draw units
- Range = z2 - z;
-
- //s is the power-of-ten factor of Range:
- //Range = t * s; s = 10^(pwr). e.g., Range=350.0 then t=3.5, s = 100.0; pwr = 2.0
- modf( log10(Range), &pwr );
- s = pow( 10.0, pwr );
- t = Range/s;
-
- //adjust s and t such that t is between 3 and 5:
- if ( t < 3.0 ) { t *= 10.0; s /= 10.0; } //t now btwn 3 and 30
- if ( t < 6.0 ) { //accept current values
- dTick = s;
- nmajor = int(t);
- nminor = 5;
- } else if ( t < 10.0 ) { //factor of 2
- dTick = s*2.0;
- nmajor = int(t/2.0);
- nminor = 4;
- } else if ( t < 20.0 ) { //factor of 4
- dTick = s*4.0;
- nmajor = int(t/4.0);
- nminor = 4;
- } else { //factor of 5
- dTick = s*5.0;
- nmajor = int(t/5.0);
- nminor = 5;
- }
-
- if ( iaxis==1 ) { //X axis
- nmajX = nmajor;
- nminX = nminor;
- dXtick = dTick;
- } else { //Y axis
- nmajY = nmajor;
- nminY = nminor;
- dYtick = dTick;
- }
- } //end for iaxis
-}
-
-void KPlotWidget::resizeEvent( TQResizeEvent* /* e */ ) {
- int newWidth = width() - leftPadding() - rightPadding();
- int newHeight = height() - topPadding() - bottomPadding();
- PixRect = TQRect( 0, 0, newWidth, newHeight );
-
- buffer->resize( width(), height() );
-}
-
-void KPlotWidget::paintEvent( TQPaintEvent* /* e */ ) {
- TQPainter p;
-
- p.begin( buffer );
- p.fillRect( 0, 0, width(), height(), bgColor() );
- p.translate( leftPadding(), topPadding() );
-
- drawObjects( &p );
- drawBox( &p );
-
- p.end();
- bitBlt( this, 0, 0, buffer );
-}
-
-void KPlotWidget::drawObjects( TQPainter *p ) {
- for ( KPlotObject *po = ObjectList.first(); po; po = ObjectList.next() ) {
-
- if ( po->points()->count() ) {
- //draw the plot object
- p->setPen( TQColor( po->color() ) );
-
- switch ( po->type() ) {
- case KPlotObject::POINTS :
- {
- p->setBrush( TQColor( po->color() ) );
-
- for ( DPoint *dp = po->points()->first(); dp; dp = po->points()->next() ) {
- TQPoint q = dp->qpoint( PixRect, DataRect );
- int x1 = q.x() - po->size()/2;
- int y1 = q.y() - po->size()/2;
-
- switch( po->param() ) {
- case KPlotObject::CIRCLE : p->drawEllipse( x1, y1, po->size(), po->size() ); break;
- case KPlotObject::SQUARE : p->drawRect( x1, y1, po->size(), po->size() ); break;
- case KPlotObject::LETTER : p->drawText( q, po->name().left(1) ); break;
- default: p->drawPoint( q );
- }
- }
-
- p->setBrush( TQt::NoBrush );
- break;
- }
-
- case KPlotObject::CURVE :
- {
- p->setPen( TQPen( TQColor( po->color() ), po->size(), (TQPen::PenStyle)po->param() ) );
- DPoint *dp = po->points()->first();
- p->moveTo( dp->qpoint( PixRect, DataRect ) );
- for ( dp = po->points()->next(); dp; dp = po->points()->next() )
- p->lineTo( dp->qpoint( PixRect, DataRect ) );
- break;
- }
-
- case KPlotObject::LABEL : //draw label centered at point in x, and slightly below point in y.
- {
- TQPoint q = po->points()->first()->qpoint( PixRect, DataRect );
- p->drawText( q.x()-20, q.y()+6, 40, 10, TQt::AlignCenter | TQt::DontClip, po->name() );
- break;
- }
-
- case KPlotObject::POLYGON :
- {
- p->setPen( TQPen( TQColor( po->color() ), po->size(), (TQPen::PenStyle)po->param() ) );
- p->setBrush( TQColor( po->color() ) );
-
- TQPointArray a( po->count() );
-
- unsigned int i=0;
- for ( DPoint *dp = po->points()->first(); dp; dp = po->points()->next() )
- a.setPoint( i++, dp->qpoint( PixRect, DataRect ) );
-
- p->drawPolygon( a );
- break;
- }
-
- case KPlotObject::UNKNOWN_TYPE : break;
- }
- }
- }
-}
-
-double KPlotWidget::dmod( double a, double b ) { return ( b * ( ( a / b ) - int( a / b ) ) ); }
-
-void KPlotWidget::drawBox( TQPainter *p ) {
- //First, fill in padding region with bgColor() to mask out-of-bounds plot data
- p->setPen( bgColor() );
- p->setBrush( bgColor() );
-
- //left padding ( don't forget: we have translated by XPADDING, YPADDING )
- p->drawRect( -leftPadding(), -topPadding(), leftPadding(), height() );
-
- //right padding
- p->drawRect( PixRect.width(), -topPadding(), rightPadding(), height() );
-
- //top padding
- p->drawRect( 0, -topPadding(), PixRect.width(), topPadding() );
-
- //bottom padding
- p->drawRect( 0, PixRect.height(), PixRect.width(), bottomPadding() );
-
- if ( ShowGrid ) {
- //Grid lines are placed at locations of primary axes' major tickmarks
- p->setPen( gridColor() );
-
- //vertical grid lines
- double x0 = x() - dmod( x(), dXtick ); //zeropoint; x(i) is this plus i*dXtick1
- for ( int ix = 0; ix <= nmajX+1; ix++ ) {
- int px = int( PixRect.width() * ( (x0 + ix*dXtick - x())/dataWidth() ) );
- p->drawLine( px, 0, px, PixRect.height() );
- }
-
- //horizontal grid lines
- double y0 = y() - dmod( y(), dYtick ); //zeropoint; y(i) is this plus i*mX
- for ( int iy = 0; iy <= nmajY+1; iy++ ) {
- int py = PixRect.height() - int( PixRect.height() * ( (y0 + iy*dYtick - y())/dataHeight() ) );
- p->drawLine( 0, py, PixRect.width(), py );
- }
- }
-
- p->setPen( fgColor() );
- p->setBrush( TQt::NoBrush );
-
- if (BottomAxis.isVisible() || LeftAxis.isVisible()) p->drawRect( PixRect ); //box outline
-
- if ( ShowTickMarks ) {
- //spacing between minor tickmarks (in data units)
- double dminX = dXtick/nminX;
- double dminY = dYtick/nminY;
-
- //set small font for tick labels
- TQFont f = p->font();
- int s = f.pointSize();
- f.setPointSize( s - 2 );
- p->setFont( f );
-
- //--- Draw bottom X Axis ---//
- if (BottomAxis.isVisible()) {
- // Draw X tickmarks
- double x0 = x() - dmod( x(), dXtick ); //zeropoint; tickmark i is this plus i*dXtick (in data units)
- if ( x() < 0.0 ) x0 -= dXtick;
-
- for ( int ix = 0; ix <= nmajX+1; ix++ ) {
- //position of tickmark i (in screen units)
- int px = int( PixRect.width() * ( (x0 + ix*dXtick - x() )/dataWidth() ) );
-
- if ( px > 0 && px < PixRect.width() ) {
- p->drawLine( px, PixRect.height() - 2, px, PixRect.height() - BIGTICKSIZE - 2 );
- p->drawLine( px, 0, px, BIGTICKSIZE );
- }
-
- //tick label
- if ( ShowTickLabels ) {
- double lab = x0 + ix*dXtick;
- if ( fabs(lab)/dXtick < 0.00001 ) lab = 0.0; //fix occassional roundoff error with "0.0" label
-
- TQString str = TQString( "%1" ).tqarg( lab, BottomAxis.labelFieldWidth(), BottomAxis.labelFmt(), BottomAxis.labelPrec() );
- if ( px > 0 && px < PixRect.width() ) {
- TQRect r( px - BIGTICKSIZE, PixRect.height()+BIGTICKSIZE, 2*BIGTICKSIZE, BIGTICKSIZE );
- p->drawText( r, TQt::AlignCenter | TQt::DontClip, str );
- }
- }
-
- //draw minor ticks
- for ( int j=0; j < nminX; j++ ) {
- //position of minor tickmark j (in screen units)
- int pmin = int( px + PixRect.width()*j*dminX/dataWidth() );
-
- if ( pmin > 0 && pmin < PixRect.width() ) {
- p->drawLine( pmin, PixRect.height() - 2, pmin, PixRect.height() - SMALLTICKSIZE - 2 );
- p->drawLine( pmin, 0, pmin, SMALLTICKSIZE );
- }
- }
- } // end draw X tickmarks
-
- // Draw X Axis Label
- if ( ! BottomAxis.label().isEmpty() ) {
- TQRect r( 0, PixRect.height() + 2*YPADDING, PixRect.width(), YPADDING );
- p->drawText( r, TQt::AlignCenter, BottomAxis.label() );
- }
-
- }
-
- //--- Draw left Y Axis ---//
- if (LeftAxis.isVisible()) {
- // Draw Y tickmarks
- double y0 = y() - dmod( y(), dYtick ); //zeropoint; tickmark i is this plus i*dYtick1 (in data units)
- if ( y() < 0.0 ) y0 -= dYtick;
-
- for ( int iy = 0; iy <= nmajY+1; iy++ ) {
- //position of tickmark i (in screen units)
- int py = PixRect.height() - int( PixRect.height() * ( (y0 + iy*dYtick - y())/dataHeight() ) );
- if ( py > 0 && py < PixRect.height() ) {
- p->drawLine( 0, py, BIGTICKSIZE, py );
- p->drawLine( PixRect.width()-2, py, PixRect.width()-BIGTICKSIZE-2, py );
- }
-
- //tick label
- if ( ShowTickLabels ) {
- double lab = y0 + iy*dYtick;
- if ( fabs(lab)/dYtick < 0.00001 ) lab = 0.0; //fix occassional roundoff error with "0.0" label
-
- TQString str = TQString( "%1" ).tqarg( lab, LeftAxis.labelFieldWidth(), LeftAxis.labelFmt(), LeftAxis.labelPrec() );
- if ( py > 0 && py < PixRect.height() ) {
- TQRect r( -2*BIGTICKSIZE, py-SMALLTICKSIZE, 2*BIGTICKSIZE, 2*SMALLTICKSIZE );
- p->drawText( r, TQt::AlignCenter | TQt::DontClip, str );
- }
- }
-
- //minor ticks
- for ( int j=0; j < nminY; j++ ) {
- //position of minor tickmark j (in screen units)
- int pmin = int( py - PixRect.height()*j*dminY/dataHeight() );
- if ( pmin > 0 && pmin < PixRect.height() ) {
- p->drawLine( 0, pmin, SMALLTICKSIZE, pmin );
- p->drawLine( PixRect.width()-2, pmin, PixRect.width()-SMALLTICKSIZE-2, pmin );
- }
- }
- } // end draw Y tickmarks
-
- //Draw Y Axis Label. We need to draw the text sideways.
- if ( ! LeftAxis.label().isEmpty() ) {
- //store current painter translation/rotation state
- p->save();
-
- //translate coord sys to left corner of axis label rectangle, then rotate 90 degrees.
- p->translate( -3*XPADDING, PixRect.height() );
- p->rotate( -90.0 );
-
- TQRect r( 0, 0, PixRect.height(), XPADDING );
- p->drawText( r, TQt::AlignCenter, LeftAxis.label() ); //draw the label, now that we are sideways
-
- p->restore(); //restore translation/rotation state
- }
- }
-
- } //end if ( ShowTickMarks )
-
-
-}
-
-int KPlotWidget::leftPadding() const {
- if ( LeftPadding >= 0 ) return LeftPadding;
- if ( ! LeftAxis.label().isEmpty() && ShowTickLabels ) return 3*XPADDING;
- if ( ! LeftAxis.label().isEmpty() || ShowTickLabels ) return 2*XPADDING;
- return XPADDING;
-}
-
-int KPlotWidget::rightPadding() const {
- if ( RightPadding >= 0 ) return RightPadding;
- return XPADDING;
-}
-
-int KPlotWidget::topPadding() const {
- if ( TopPadding >= 0 ) return TopPadding;
- return YPADDING;
-}
-
-int KPlotWidget::bottomPadding() const {
- if ( BottomPadding >= 0 ) return BottomPadding;
- if ( ! BottomAxis.label().isEmpty() && ShowTickLabels ) return 3*YPADDING;
- if ( ! BottomAxis.label().isEmpty() || ShowTickLabels ) return 2*YPADDING;
- return YPADDING;
-}
-
diff --git a/libkdeedu/kdeeduplot/kplotwidget.h b/libkdeedu/kdeeduplot/kplotwidget.h
deleted file mode 100644
index c886bbaf..00000000
--- a/libkdeedu/kdeeduplot/kplotwidget.h
+++ /dev/null
@@ -1,264 +0,0 @@
-/***************************************************************************
- kplotwidget.h - A generic data-plotting widget
- -------------------
- begin : Sun 18 May 2003
- copyright : (C) 2003 by Jason Harris
- email : kstars@30doradus.org
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * 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 _KPLOTWIDGET_H_
-#define _KPLOTWIDGET_H_
-
-#include <tqwidget.h>
-#include "kplotobject.h"
-#include "kplotaxis.h"
-
-#define BIGTICKSIZE 10
-#define SMALLTICKSIZE 4
-#define XPADDING 20
-#define YPADDING 20
-
-class TQColor;
-class TQPixmap;
-
-/**@class KPlotWidget
- *@short Genric data plotting widget.
- *@author Jason Harris
- *@version 1.1
- *Widget for drawing plots. Includes adjustable axes (KPlotAxis) with
- *tickmarks and labels and a list of KPlotObjects to be drawn.
- */
-
-class KDE_EXPORT KPlotWidget : public TQWidget {
- Q_OBJECT
- TQ_OBJECT
-public:
- /**@short Constructor. Sets the primary x and y limits in data units.
- *@param x1 the minimum X value in data units
- *@param x2 the maximum X value in data units
- *@param y1 the minimum Y value in data units
- *@param y2 the maximum Y value in data units
- *@param parent the parent widget
- *@param name name label for the KPlotWidget
- */
- KPlotWidget( double x1=0.0, double x2=1.0, double y1=0.0, double y2=1.0, TQWidget *parent=0, const char* name=0 );
-
- /**Destructor (empty)
- */
- virtual ~KPlotWidget();
-
- /**@short Determine the placement of major and minor tickmarks,
- *based on the current Limit settings
- */
- virtual void updateTickmarks();
-
- /**@short Reset the data limits.
- *@param x1 the minimum X value in data units
- *@param x2 the maximum X value in data units
- *@param y1 the minimum Y value in data units
- *@param y2 the maximum Y value in data units
- */
- virtual void setLimits( double x1, double x2, double y1, double y2 );
-
- /**@return the minimum X value in data units*/
- virtual double x() const { return DataRect.x(); }
-
- /**@return the maximum X value in data units*/
- virtual double x2() const { return DataRect.x2(); }
-
- /**@return the minimum Y value in data units*/
- virtual double y() const { return DataRect.y(); }
-
- /**@return the maximum Y value in data units*/
- virtual double y2() const { return DataRect.y2(); }
-
- /**@return the width in data units*/
- virtual double dataWidth() const { return DataRect.width(); }
-
- /**@return the height in data units*/
- virtual double dataHeight() const { return DataRect.height(); }
-
- /**@short Add an item to the list of KPlotObjects to be plotted.
- *@param o pointer to the KPlotObject to be added
- */
- virtual void addObject( KPlotObject *o ) { ObjectList.append( o ); }
-
- /**@short Remove all items from the list of KPlotObjects
- */
- virtual void clearObjectList() { ObjectList.clear(); update(); }
-
- /**@short replace an item in the KPlotObject list.
- *@param i the index of th item to be replaced
- *@param o pointer to the replacement KPlotObject
- */
- virtual void replaceObject( int i, KPlotObject *o ) { ObjectList.replace( i, o ); }
-
- /**@return the number of KPlotObjects in the list
- */
- virtual int objectCount() const { return ObjectList.count(); }
-
- /**@return a pointer to a specific KPlotObject in the list
- *@param i the index of the desired KPlotObject
- */
- virtual KPlotObject *object( int i ) { return ObjectList.at(i); }
-
- /**@return the background color */
- virtual TQColor bgColor() const { return cBackground; }
-
- /**@return the foreground color */
- virtual TQColor fgColor() const { return cForeground; }
-
- /**@return the grid color */
- virtual TQColor gridColor() const { return cGrid; }
-
- /**@short set the background color
- *@param bg the new background color
- */
- virtual void setBGColor( const TQColor &bg ) { cBackground = bg; setBackgroundColor( bg ); }
-
- /**@short set the foreground color
- *@param fg the new foreground color
- */
- virtual void setFGColor( const TQColor &fg ) { cForeground = fg; }
-
- /**@short set the grid color
- *@param gc the new grid color
- */
- virtual void setGridColor( const TQColor &gc ) { cGrid = gc; }
-
- /**@short toggle whether plot axes are drawn.
- *@param show if true, axes will be drawn.
- *The axes are just a box outline around the plot.
- */
- virtual void setShowAxes( bool show ) { BottomAxis.setVisible(show); LeftAxis.setVisible(show); }
- /**@short toggle whether tick marks are drawn along the axes.
- *@param show if true, tick marks will be drawn.
- */
- virtual void setShowTickMarks( bool show ) { ShowTickMarks = show; }
- /**@short toggle whether tick labels are drawn at major tickmarks.
- *@param show if true, tick labels will be drawn.
- */
- virtual void setShowTickLabels( bool show ) { ShowTickLabels = show; }
- /**@short toggle whether grid lines are drawn at major tickmarks.
- *@param show if true, grid lines will be drawn.
- */
- virtual void setShowGrid( bool show ) { ShowGrid = show; }
-
- /**@short (Deprecated) Sets the X-axis label
- *@param xlabel a short string describing the data plotted on the x-axis.
- *Set the label to an empty string to omit the axis label.
- *This function is deprecated, set the label property in the BottomAxis directly.
- */
- virtual void setXAxisLabel( TQString xlabel ) { BottomAxis.setLabel(xlabel); }
- /**@short (Deprecated) Sets the Y-axis label
- *@param ylabel a short string describing the data plotted on the y-axis.
- *Set the label to an empty string to omit the axis label.
- *This function is deprecated, set the label property in the LeftAxis directly.
- */
- virtual void setYAxisLabel( TQString ylabel ) { LeftAxis.setLabel(ylabel); }
-
- /**@returns the number of pixels to the left of the plot area. Padding values
- *are set to -1 by default; if unchanged, this function will try to guess
- *a good value, based on whether ticklabels and/or axis labels are to be drawn.
- */
- virtual int leftPadding() const;
- /**@returns the number of pixels to the right of the plot area.
- *Padding values are set to -1 by default; if unchanged, this function will try to guess
- *a good value, based on whether ticklabels and/or axis labels are to be drawn.
- */
- virtual int rightPadding() const;
- /**@returns the number of pixels above the plot area.
- *Padding values are set to -1 by default; if unchanged, this function will try to guess
- *a good value, based on whether ticklabels and/or axis labels are to be drawn.
- */
- virtual int topPadding() const;
- /**@returns the number of pixels below the plot area.
- *Padding values are set to -1 by default; if unchanged, this function will try to guess
- *a good value, based on whether ticklabels and/or axis labels are to be drawn.
- */
- virtual int bottomPadding() const;
-
- /**@short set the number of pixels to the left of the plot area.
- *Set this to -1 to revert to automatic determination of padding values.
- */
- virtual void setLeftPadding( int pad ) { LeftPadding = pad; }
- /**@short set the number of pixels to the right of the plot area.
- *Set this to -1 to revert to automatic determination of padding values.
- */
- virtual void setRightPadding( int pad ) { RightPadding = pad; }
- /**@short set the number of pixels above the plot area.
- *Set this to -1 to revert to automatic determination of padding values.
- */
- virtual void setTopPadding( int pad ) { TopPadding = pad; }
- /**@short set the number of pixels below the plot area.
- *Set this to -1 to revert to automatic determination of padding values.
- */
- virtual void setBottomPadding( int pad ) { BottomPadding = pad; }
-
- /**@short revert all four padding values to be automatically determined. */
- virtual void setDefaultPadding() { LeftPadding = -1; RightPadding = -1; TopPadding = -1; BottomPadding = -1; }
-
- /**@short The bottom X axis. */
- KPlotAxis BottomAxis;
- /**@short The left Y axis. */
- KPlotAxis LeftAxis;
-
-protected:
- /**@short the paint event handler, executed when update() or tqrepaint() is called.
- */
- virtual void paintEvent( TQPaintEvent* /* e */ );
-
- /**@short the resize event handler, called when the widget is resized.
- */
- virtual void resizeEvent( TQResizeEvent* /* e */ );
-
- /**@short draws all of the objects onto the widget. Internal use only; one should simply call update()
- *to draw the widget with axes and all objects.
- *@param p pointer to the painter on which we are drawing
- */
- virtual void drawObjects( TQPainter *p );
-
- /**@short draws the plot axes and axis labels. Internal use only; one should simply call update()
- *to draw the widget with axes and all objects.
- *@param p pointer to the painter on which we are drawing
- */
- virtual void drawBox( TQPainter *p );
-
- /**@short modulus function for double variables.
- *For example, dmod( 17.0, 7.0 ) returns 3.0
- *@return the remainder after dividing b into a.
- */
- double dmod( double a, double b );
-
- //The distance between major tickmarks in data units
- double dXtick, dYtick;
- //The number of major and minor tickmarks to be plotted in X and Y
- int nmajX, nminX, nmajY, nminY;
-
- //Limits of the plot area in pixel units
- TQRect PixRect;
- //Limits of the plot area in data units
- DRect DataRect;
- //List of KPlotObjects
- TQPtrList<KPlotObject> ObjectList;
-
- //Colors
- TQColor cBackground, cForeground, cGrid;
- //draw options
- bool ShowTickMarks, ShowTickLabels, ShowGrid;
- //padding
- int LeftPadding, RightPadding, TopPadding, BottomPadding;
-
- TQPixmap *buffer;
-};
-
-#endif