• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

kig

  • sources
  • kde-4.12
  • kdeedu
  • kig
  • misc
kigpainter.h
Go to the documentation of this file.
1 
22 #ifndef KIGPAINTER_H
23 #define KIGPAINTER_H
24 
25 #include "coordinate.h"
26 #include "rect.h"
27 #include "screeninfo.h"
28 
29 #include <qpainter.h>
30 #include <qcolor.h>
31 #include <qfont.h>
32 
33 #include <vector>
34 
35 class KigWidget;
36 class QPaintDevice;
37 class CoordinateSystem;
38 class LineData;
39 class CurveImp;
40 class KigDocument;
41 class ObjectHolder;
42 
51 class KigPainter
52 // : public Qt
53 {
54 protected:
55  // don't blaim me for this mutable hack. It's TT that hasn't got
56  // its consts correctly...
57  mutable QPainter mP;
58 
59  QColor color;
60  Qt::PenStyle style;
61  int pointstyle;
62  int width;
63  Qt::BrushStyle brushStyle;
64  QColor brushColor;
65 
66  const KigDocument& mdoc;
67  ScreenInfo msi;
68 
69  bool mNeedOverlay;
70  int overlayenlarge;
71  bool mSelected;
72 public:
80  KigPainter( const ScreenInfo& r, QPaintDevice* device, const KigDocument& doc,
81  bool needOverlay = true );
82  ~KigPainter();
83 
87  Rect window();
88 
89  QPoint toScreen( const Coordinate& p ) const;
90  QRect toScreen( const Rect& r ) const;
91  QRect toScreenEnlarge( const Rect& r ) const;
92  Coordinate fromScreen( const QPoint& p ) const;
93  Rect fromScreen( const QRect& r ) const;
94 
95  // colors and stuff...
96  void setStyle( Qt::PenStyle c );
97  void setColor( const QColor& c );
102  void setWidth( int c );
103  void setPointStyle( int p );
104  void setPen( const QPen& p );
105  void setBrushStyle( Qt::BrushStyle c );
106  void setBrush( const QBrush& b );
107  void setBrushColor( const QColor& c );
108 
109  void setFont( const QFont& f );
110 
111  void setSelected( bool selected );
112 
113  QColor getColor() const;
114  bool getNightVision( ) const;
115 
116  double pixelWidth();
117 
125  void setWholeWinOverlay();
126 
130  void drawObject( const ObjectHolder* o, bool sel );
131  void drawObjects( const std::vector<ObjectHolder*>& os, bool sel );
132  template<typename iter>
133  void drawObjects( iter begin, iter end, bool sel )
134  {
135  for ( ; begin != end; ++begin )
136  drawObject( *begin, sel );
137  }
138 
142  void drawCurve( const CurveImp* curve );
143 
147  void drawTextStd( const QPoint& p, const QString& s );
148 
152  void drawFilledRect( const QRect& );
153 
157  void drawRect( const Rect& r );
158 
163  void drawRect( const QRect& r );
164 
168  void drawCircle( const Coordinate& center, double radius );
169 
173  void drawSegment ( const Coordinate& from, const Coordinate& to );
174  void drawSegment( const LineData& d );
175 
179  void drawRay( const Coordinate& a, const Coordinate& b );
180  void drawRay( const LineData& d );
181 
185  void drawLine ( const Coordinate& p1, const Coordinate& p2 );
186  void drawLine( const LineData& d );
187 
192  void drawPoint( const Coordinate& p );
193 
199  void drawFatPoint( const Coordinate& p );
200 
204  void drawPolygon( const std::vector<QPoint>& pts, Qt::FillRule fillRule = Qt::OddEvenFill );
205  void drawPolygon( const std::vector<Coordinate>& pts, Qt::FillRule fillRule = Qt::OddEvenFill );
206 
211  void drawArea( const std::vector<Coordinate>& pts, bool border = true );
212 
217  void drawAngle( const Coordinate& point, double startangle, double angle, int radius );
218 
223  void drawRightAngle( const Coordinate& point, double startangle, int diagonal );
224 
230  void drawArc( const Coordinate& center, double radius,
231  double startangle, double angle );
232 
237  void drawVector( const Coordinate& a, const Coordinate& b );
238 
243  void drawText( const Rect& r, const QString& s, int textFlags = 0 );
244  void drawText( const Coordinate& p, const QString& s, int textFlags = 0 );
245 
246  void drawSimpleText( const Coordinate& c, const QString& s );
247  void drawTextFrame( const Rect& frame, const QString& s, bool needframe );
248 
249  const Rect boundingRect( const Rect& r, const QString& s, int f = 0 ) const;
250 
251  const Rect boundingRect( const Coordinate& c, const QString& s, int f = 0 ) const;
252 
253  const Rect simpleBoundingRect( const Coordinate& c, const QString& s );
254 
255  void drawGrid( const CoordinateSystem& c, bool showGrid = true, bool showAxes = true );
256 
257  const std::vector<QRect>& overlay() { return mOverlay; }
258 
259 protected:
265  void circleOverlay( const Coordinate& centre, double radius );
266  // this works recursively...
267  void circleOverlayRecurse( const Coordinate& centre, double radius, const Rect& currentRect );
268 
274  void segmentOverlay( const Coordinate& p1, const Coordinate& p2 );
275 
279  void pointOverlay( const Coordinate& p1 );
280 
285  void textOverlay( const QRect& r, const QString& s, int textFlags );
286 
290  double overlayRectSize();
291 
292  void unsetSelected();
293 
294  std::vector<QRect> mOverlay;
295 };
296 
297 #endif
KigPainter::setPointStyle
void setPointStyle(int p)
Definition: kigpainter.cpp:239
KigPainter::pixelWidth
double pixelWidth()
Definition: kigpainter.cpp:489
CoordinateSystem
a CoordinateSystem is what the user sees: it is kept by KigPart to show the user a grid...
Definition: coordinate_system.h:60
KigPainter::setWholeWinOverlay
void setWholeWinOverlay()
this is called by some drawing functions that modify the 'entire' screen, i.e.
Definition: kigpainter.cpp:494
KigPainter::drawCircle
void drawCircle(const Coordinate &center, double radius)
draw a circle...
Definition: kigpainter.cpp:84
KigPainter::drawText
void drawText(const Rect &r, const QString &s, int textFlags=0)
draw text...
Definition: kigpainter.cpp:192
KigPainter::setBrushColor
void setBrushColor(const QColor &c)
Definition: kigpainter.cpp:265
KigPainter::drawCurve
void drawCurve(const CurveImp *curve)
draw a generic curve...
Definition: kigpainter.cpp:757
LineData
Simple class representing a line.
Definition: misc/common.h:49
KigPainter::brushColor
QColor brushColor
Definition: kigpainter.h:64
Rect
This file is part of Kig, a KDE program for Interactive Geometry...
Definition: rect.h:34
KigPainter::drawFatPoint
void drawFatPoint(const Coordinate &p)
draw a thick point.
Definition: kigpainter.cpp:101
KigPainter::circleOverlayRecurse
void circleOverlayRecurse(const Coordinate &centre, double radius, const Rect &currentRect)
Definition: kigpainter.cpp:354
KigPainter::pointOverlay
void pointOverlay(const Coordinate &p1)
...
Definition: kigpainter.cpp:482
KigPainter::unsetSelected
void unsetSelected()
Definition: kigpainter.cpp:477
KigPainter::boundingRect
const Rect boundingRect(const Rect &r, const QString &s, int f=0) const
Definition: kigpainter.cpp:212
KigPainter::drawVector
void drawVector(const Coordinate &a, const Coordinate &b)
draw a vector ( with an arrow etc.
Definition: kigpainter.cpp:692
KigPainter::setBrush
void setBrush(const QBrush &b)
Definition: kigpainter.cpp:252
KigPainter::drawRect
void drawRect(const Rect &r)
draw a rect.
Definition: kigpainter.cpp:70
KigPainter::drawRay
void drawRay(const Coordinate &a, const Coordinate &b)
draw a ray...
Definition: kigpainter.cpp:594
KigPainter::~KigPainter
~KigPainter()
Definition: kigpainter.cpp:66
KigPainter::drawPolygon
void drawPolygon(const std::vector< QPoint > &pts, Qt::FillRule fillRule=Qt::OddEvenFill)
draw a polygon defined by the points in pts...
Definition: kigpainter.cpp:303
ScreenInfo
ScreenInfo is a simple utility class that maps a region of the document onto a region of the screen...
Definition: screeninfo.h:31
Coordinate
The Coordinate class is the basic class representing a 2D location by its x and y components...
Definition: coordinate.h:33
KigPainter::getNightVision
bool getNightVision() const
Definition: kigpainter.cpp:276
KigPainter::drawLine
void drawLine(const Coordinate &p1, const Coordinate &p2)
draw a line...
Definition: kigpainter.cpp:187
KigPainter::mNeedOverlay
bool mNeedOverlay
Definition: kigpainter.h:69
rect.h
KigPainter::brushStyle
Qt::BrushStyle brushStyle
Definition: kigpainter.h:63
KigPainter::drawFilledRect
void drawFilledRect(const QRect &)
draws a rect filled up with a pattern of cyan lines...
Definition: kigpainter.cpp:523
KigPainter
KigPainter is an extended QPainter.
Definition: kigpainter.h:51
KigPainter::toScreen
QPoint toScreen(const Coordinate &p) const
Definition: kigpainter.cpp:502
KigPainter::setWidth
void setWidth(int c)
setting this to -1 means to use the default width for the object being drawn.
Definition: kigpainter.cpp:232
ObjectHolder
An ObjectHolder represents an object as it is known to the document.
Definition: object_holder.h:40
KigPainter::overlayRectSize
double overlayRectSize()
the size we want the overlay rects to be...
Definition: kigpainter.cpp:472
KigPainter::setSelected
void setSelected(bool selected)
Definition: kigpainter.cpp:286
KigPainter::mP
QPainter mP
Definition: kigpainter.h:57
KigPainter::window
Rect window()
what rect are we drawing on ?
Definition: kigpainter.cpp:349
KigPainter::fromScreen
Coordinate fromScreen(const QPoint &p) const
Definition: kigpainter.cpp:584
KigPainter::drawArc
void drawArc(const Coordinate &center, double radius, double startangle, double angle)
draw the arc ( a part of a circle ), of the circle with center center, radius radius, with size angle, starting at the angle startAngle.
Definition: kigpainter.cpp:957
KigPainter::mOverlay
std::vector< QRect > mOverlay
Definition: kigpainter.h:294
KigPainter::setBrushStyle
void setBrushStyle(Qt::BrushStyle c)
Definition: kigpainter.cpp:259
KigPainter::drawTextFrame
void drawTextFrame(const Rect &frame, const QString &s, bool needframe)
Definition: kigpainter.cpp:933
KigPainter::textOverlay
void textOverlay(const QRect &r, const QString &s, int textFlags)
...
Definition: kigpainter.cpp:203
KigWidget
This class is the real widget showing the document.
Definition: kig_view.h:50
KigPainter::msi
ScreenInfo msi
Definition: kigpainter.h:67
KigPainter::getColor
QColor getColor() const
Definition: kigpainter.cpp:281
KigPainter::drawPoint
void drawPoint(const Coordinate &p)
draw a point...
Definition: kigpainter.cpp:181
KigPainter::drawGrid
void drawGrid(const CoordinateSystem &c, bool showGrid=true, bool showAxes=true)
Definition: kigpainter.cpp:507
KigPainter::pointstyle
int pointstyle
Definition: kigpainter.h:61
KigPainter::overlayenlarge
int overlayenlarge
Definition: kigpainter.h:70
KigPainter::simpleBoundingRect
const Rect simpleBoundingRect(const Coordinate &c, const QString &s)
Definition: kigpainter.cpp:573
KigPainter::drawObject
void drawObject(const ObjectHolder *o, bool sel)
draw an object ( by calling its draw function.
Definition: kigpainter.cpp:513
KigPainter::drawSimpleText
void drawSimpleText(const Coordinate &c, const QString &s)
Definition: kigpainter.cpp:563
KigPainter::setStyle
void setStyle(Qt::PenStyle c)
Definition: kigpainter.cpp:226
KigPainter::color
QColor color
Definition: kigpainter.h:59
KigPainter::width
int width
Definition: kigpainter.h:62
KigPainter::setPen
void setPen(const QPen &p)
Definition: kigpainter.cpp:244
KigPainter::circleOverlay
void circleOverlay(const Coordinate &centre, double radius)
adds a number of rects to mOverlay so that the rects entirely contain the circle...
Definition: kigpainter.cpp:419
KigDocument
KigDocument is the class holding the real data in a Kig document.
Definition: kig_document.h:36
screeninfo.h
KigPainter::segmentOverlay
void segmentOverlay(const Coordinate &p1, const Coordinate &p2)
adds some rects to mOverlay, so that they cover the segment p1p2 completely...
Definition: kigpainter.cpp:429
KigPainter::toScreenEnlarge
QRect toScreenEnlarge(const Rect &r) const
Definition: kigpainter.cpp:550
KigPainter::overlay
const std::vector< QRect > & overlay()
Definition: kigpainter.h:257
KigPainter::setColor
void setColor(const QColor &c)
Definition: kigpainter.cpp:220
KigPainter::mSelected
bool mSelected
Definition: kigpainter.h:71
KigPainter::drawObjects
void drawObjects(iter begin, iter end, bool sel)
Definition: kigpainter.h:133
coordinate.h
KigPainter::drawAngle
void drawAngle(const Coordinate &point, double startangle, double angle, int radius)
draw the angle with center point, with size angle, starting at the angle startAngle.
Definition: kigpainter.cpp:631
KigPainter::drawRightAngle
void drawRightAngle(const Coordinate &point, double startangle, int diagonal)
draw the angle with center point, with size angle, starting at the angle startAngle.
Definition: kigpainter.cpp:664
KigPainter::drawObjects
void drawObjects(const std::vector< ObjectHolder * > &os, bool sel)
Definition: kigpainter.cpp:518
KigPainter::setFont
void setFont(const QFont &f)
Definition: kigpainter.cpp:271
KigPainter::style
Qt::PenStyle style
Definition: kigpainter.h:60
KigPainter::mdoc
const KigDocument & mdoc
Definition: kigpainter.h:66
KigPainter::drawSegment
void drawSegment(const Coordinate &from, const Coordinate &to)
draw a segment...
Definition: kigpainter.cpp:94
KigPainter::KigPainter
KigPainter(const ScreenInfo &r, QPaintDevice *device, const KigDocument &doc, bool needOverlay=true)
construct a new KigPainter: the ScreenInfo is used to map the document coordinates to the widget coor...
Definition: kigpainter.cpp:48
KigPainter::drawArea
void drawArea(const std::vector< Coordinate > &pts, bool border=true)
draw an area defined by the points in pts filled with the set color...
Definition: kigpainter.cpp:327
CurveImp
This class represents a curve: something which is composed of points, like a line, a circle, a locus.
Definition: curve_imp.h:27
KigPainter::drawTextStd
void drawTextStd(const QPoint &p, const QString &s)
draws text in a standard manner, convenience function...
Definition: kigpainter.cpp:531
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:35:39 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kig

Skip menu "kig"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal