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

qwt_grid.cpp

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 #include <qpainter.h> 00011 #include "qwt_painter.h" 00012 #include "qwt_grid.h" 00013 00015 QwtGrid::QwtGrid() 00016 { 00017 d_xMinEnabled = FALSE; 00018 d_yMinEnabled = FALSE; 00019 d_xEnabled = TRUE; 00020 d_yEnabled = TRUE; 00021 } 00022 00024 QwtGrid::~QwtGrid() 00025 { 00026 } 00027 00035 void QwtGrid::enableX(bool tf) 00036 { 00037 if ( d_xEnabled != tf ) 00038 { 00039 d_xEnabled = tf; 00040 gridChanged(); 00041 } 00042 } 00043 00049 void QwtGrid::enableY(bool tf) 00050 { 00051 if ( d_yEnabled != tf ) 00052 { 00053 d_yEnabled = tf; 00054 gridChanged(); 00055 } 00056 } 00057 00063 void QwtGrid::enableXMin(bool tf) 00064 { 00065 if ( d_xMinEnabled != tf ) 00066 { 00067 d_xMinEnabled = tf; 00068 gridChanged(); 00069 } 00070 } 00071 00077 void QwtGrid::enableYMin(bool tf) 00078 { 00079 if ( d_yMinEnabled != tf ) 00080 { 00081 d_yMinEnabled = tf; 00082 gridChanged(); 00083 } 00084 } 00085 00093 void QwtGrid::setXDiv(const QwtScaleDiv &sx) 00094 { 00095 if ( d_sdx != sx ) 00096 { 00097 d_sdx = sx; 00098 gridChanged(); 00099 } 00100 } 00101 00109 void QwtGrid::setYDiv(const QwtScaleDiv &sy) 00110 { 00111 if ( d_sdy != sy ) 00112 { 00113 d_sdy = sy; 00114 gridChanged(); 00115 } 00116 } 00117 00122 void QwtGrid::setPen(const QPen &p) 00123 { 00124 if ( d_majPen != p || d_minPen != p ) 00125 { 00126 d_majPen = p; 00127 d_minPen = p; 00128 gridChanged(); 00129 } 00130 } 00131 00136 void QwtGrid::setMajPen(const QPen &p) 00137 { 00138 if ( d_majPen != p ) 00139 { 00140 d_majPen = p; 00141 gridChanged(); 00142 } 00143 } 00144 00149 void QwtGrid::setMinPen(const QPen &p) 00150 { 00151 if ( d_minPen != p ) 00152 { 00153 d_minPen = p; 00154 gridChanged(); 00155 } 00156 } 00157 00170 void QwtGrid::draw(QPainter *p, const QRect &r, 00171 const QwtDiMap &mx, const QwtDiMap &my) const 00172 { 00173 int x1 = r.left(); 00174 int x2 = r.right(); 00175 int y1 = r.top(); 00176 int y2 = r.bottom(); 00177 00178 // 00179 // draw minor gridlines 00180 // 00181 p->setPen(d_minPen); 00182 00183 if (d_xEnabled && d_xMinEnabled) 00184 { 00185 for (uint i = 0; i < d_sdx.minCnt(); i++) 00186 { 00187 const int x = mx.transform(d_sdx.minMark(i)); 00188 if ((x >= x1) && (x <= x2)) 00189 QwtPainter::drawLine(p, x, y1, x, y2); 00190 } 00191 } 00192 00193 if (d_yEnabled && d_yMinEnabled) 00194 { 00195 for (uint i = 0; i < d_sdy.minCnt(); i++) 00196 { 00197 const int y = my.transform(d_sdy.minMark(i)); 00198 if ((y >= y1) && (y <= y2)) 00199 QwtPainter::drawLine(p, x1, y, x2, y); 00200 } 00201 } 00202 00203 // 00204 // draw major gridlines 00205 // 00206 p->setPen(d_majPen); 00207 00208 if (d_xEnabled) 00209 { 00210 for (uint i = 0; i < d_sdx.majCnt(); i++) 00211 { 00212 const int x = mx.transform(d_sdx.majMark(i)); 00213 if ((x >= x1) && (x <= x2)) 00214 QwtPainter::drawLine(p, x, y1, x, y2); 00215 } 00216 00217 } 00218 00219 if (d_yEnabled) 00220 { 00221 for (uint i = 0; i < d_sdy.majCnt(); i++) 00222 { 00223 const int y = my.transform(d_sdy.majMark(i)); 00224 if ((y >= y1) && (y <= y2)) 00225 QwtPainter::drawLine(p, x1, y, x2, y); 00226 } 00227 } 00228 } 00229 00234 const QPen &QwtGrid::majPen() const 00235 { 00236 return d_majPen; 00237 } 00238 00243 const QPen &QwtGrid::minPen() const 00244 { 00245 return d_minPen; 00246 } 00247 00252 bool QwtGrid::xEnabled() const 00253 { 00254 return d_xEnabled; 00255 } 00256 00261 bool QwtGrid::xMinEnabled() const 00262 { 00263 return d_xMinEnabled; 00264 } 00265 00270 bool QwtGrid::yEnabled() const 00271 { 00272 return d_yEnabled; 00273 } 00274 00279 bool QwtGrid::yMinEnabled() const 00280 { 00281 return d_yMinEnabled; 00282 } 00283 00284 00286 const QwtScaleDiv &QwtGrid::xScaleDiv() const 00287 { 00288 return d_sdx; 00289 } 00290 00292 const QwtScaleDiv &QwtGrid::yScaleDiv() const 00293 { 00294 return d_sdy; 00295 } 00296 00304 void QwtGrid::gridChanged() 00305 { 00306 } 00307

Generated on Tue Nov 16 21:12:20 2004 for Qwt User's Guide by doxygen 1.3.8