Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

qwt_abstract_scale_draw.h

00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
00002  * Qwt Widget Library
00003  * Copyright (C) 1997   Josef Wilgen
00004  * Copyright (C) 2002   Uwe Rathmann
00005  * 
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the Qwt License, Version 1.0
00008  *****************************************************************************/
00009 
00010 #ifndef QWT_ABSTRACT_SCALE_DRAW_H
00011 #define QWT_ABSTRACT_SCALE_DRAW_H
00012 
00013 #include "qwt_global.h"
00014 #include "qwt_scale_div.h"
00015 #include "qwt_text.h"
00016 
00017 
00018 #if QT_VERSION < 0x040000
00019 class QColorGroup;
00020 #else
00021 class QPalette;
00022 #endif
00023 class QPainter;
00024 class QFont;
00025 class QwtScaleTransformation;
00026 class QwtScaleMap;
00027 
00037 class QWT_EXPORT QwtAbstractScaleDraw
00038 {
00039 public:
00040 
00041     enum ScaleComponent
00042     { 
00049         Backbone = 1,
00050         Ticks = 2,
00051         Labels = 4
00052     };
00053  
00054     QwtAbstractScaleDraw();
00055     QwtAbstractScaleDraw( const QwtAbstractScaleDraw & );
00056     virtual ~QwtAbstractScaleDraw();
00057 
00058     QwtAbstractScaleDraw &operator=(const QwtAbstractScaleDraw &);
00059     
00060     void setScaleDiv(const QwtScaleDiv &s);
00061     const QwtScaleDiv& scaleDiv() const;
00062 
00063     void setTransformation(const QwtScaleTransformation&);
00064     const QwtScaleMap &map() const;
00065 
00066     void enableComponent(ScaleComponent, bool enable = true);
00067     bool hasComponent(ScaleComponent) const;
00068 
00069     void setTickLength(QwtScaleDiv::TickType, int length);
00070     int tickLength(QwtScaleDiv::TickType) const;
00071     int majTickLength() const;
00072 
00073     void setSpacing(int margin);
00074     int spacing() const;
00075         
00076 #if QT_VERSION < 0x040000
00077     virtual void draw(QPainter *, const QColorGroup &) const;
00078 #else
00079     virtual void draw(QPainter *, const QPalette &) const;
00080 #endif
00081 
00082     virtual QwtText label(double) const;
00083 
00093     virtual int extent(const QPen &, const QFont &) const = 0;
00094 
00095     void setMinimumExtent(int);
00096     int minimumExtent() const;
00097 
00098 protected:
00108     virtual void drawTick(QPainter *painter, double value, int len) const = 0;
00109 
00116     virtual void drawBackbone(QPainter *painter) const = 0;
00117 
00126     virtual void drawLabel(QPainter *painter, double value) const = 0;
00127 
00128     QwtScaleMap &scaleMap();
00129 
00130     void invalidateCache();
00131     const QwtText &tickLabel(const QFont &, double value) const;
00132 
00133 private:
00134     int operator==(const QwtAbstractScaleDraw &) const;
00135     int operator!=(const QwtAbstractScaleDraw &) const;
00136 
00137     class PrivateData;
00138     PrivateData *d_data;
00139 };
00140 
00141 #endif

Generated on Mon Jan 30 22:16:25 2006 for Qwt User's Guide by  doxygen 1.4.4