qwt_painter_command.cpp
Go to the documentation of this file.
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * Qwt Widget Library
3  * Copyright (C) 1997 Josef Wilgen
4  * Copyright (C) 2002 Uwe Rathmann
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the Qwt License, Version 1.0
8  *****************************************************************************/
9 
10 #include "qwt_painter_command.h"
11 
14  d_type( Invalid )
15 {
16 }
17 
20  d_type( Path )
21 {
22  d_path = new QPainterPath( path );
23 }
24 
35  const QPixmap &pixmap, const QRectF& subRect ):
36  d_type( Pixmap )
37 {
38  d_pixmapData = new PixmapData();
39  d_pixmapData->rect = rect;
40  d_pixmapData->pixmap = pixmap;
41  d_pixmapData->subRect = subRect;
42 }
43 
55  const QImage &image, const QRectF& subRect,
56  Qt::ImageConversionFlags flags ):
57  d_type( Image )
58 {
59  d_imageData = new ImageData();
60  d_imageData->rect = rect;
61  d_imageData->image = image;
62  d_imageData->subRect = subRect;
63  d_imageData->flags = flags;
64 }
65 
70 QwtPainterCommand::QwtPainterCommand( const QPaintEngineState &state ):
71  d_type( State )
72 {
73  d_stateData = new StateData();
74 
75  d_stateData->flags = state.state();
76 
77  if ( d_stateData->flags & QPaintEngine::DirtyPen )
78  d_stateData->pen = state.pen();
79 
80  if ( d_stateData->flags & QPaintEngine::DirtyBrush )
81  d_stateData->brush = state.brush();
82 
83  if ( d_stateData->flags & QPaintEngine::DirtyBrushOrigin )
84  d_stateData->brushOrigin = state.brushOrigin();
85 
86  if ( d_stateData->flags & QPaintEngine::DirtyFont )
87  d_stateData->font = state.font();
88 
89  if ( d_stateData->flags & QPaintEngine::DirtyBackground )
90  {
91  d_stateData->backgroundMode = state.backgroundMode();
92  d_stateData->backgroundBrush = state.backgroundBrush();
93  }
94 
95  if ( d_stateData->flags & QPaintEngine::DirtyTransform )
96  d_stateData->transform = state.transform();
97 
98  if ( d_stateData->flags & QPaintEngine::DirtyClipEnabled )
99  d_stateData->isClipEnabled = state.isClipEnabled();
100 
101  if ( d_stateData->flags & QPaintEngine::DirtyClipRegion )
102  {
103  d_stateData->clipRegion = state.clipRegion();
104  d_stateData->clipOperation = state.clipOperation();
105  }
106 
107  if ( d_stateData->flags & QPaintEngine::DirtyClipPath )
108  {
109  d_stateData->clipPath = state.clipPath();
110  d_stateData->clipOperation = state.clipOperation();
111  }
112 
113  if ( d_stateData->flags & QPaintEngine::DirtyHints )
114  d_stateData->renderHints = state.renderHints();
115 
116  if ( d_stateData->flags & QPaintEngine::DirtyCompositionMode )
117  d_stateData->compositionMode = state.compositionMode();
118 
119  if ( d_stateData->flags & QPaintEngine::DirtyOpacity )
120  d_stateData->opacity = state.opacity();
121 }
122 
129 {
130  copy( other );
131 }
132 
135 {
136  reset();
137 }
138 
146 {
147  reset();
148  copy( other );
149 
150  return *this;
151 }
152 
154 {
155  d_type = other.d_type;
156 
157  switch( other.d_type )
158  {
159  case Path:
160  {
161  d_path = new QPainterPath( *other.d_path );
162  break;
163  }
164  case Pixmap:
165  {
166  d_pixmapData = new PixmapData( *other.d_pixmapData );
167  break;
168  }
169  case Image:
170  {
171  d_imageData = new ImageData( *other.d_imageData );
172  break;
173  }
174  case State:
175  {
176  d_stateData = new StateData( *other.d_stateData );
177  break;
178  }
179  default:
180  break;
181  }
182 }
183 
185 {
186  switch( d_type )
187  {
188  case Path:
189  {
190  delete d_path;
191  break;
192  }
193  case Pixmap:
194  {
195  delete d_pixmapData;
196  break;
197  }
198  case Image:
199  {
200  delete d_imageData;
201  break;
202  }
203  case State:
204  {
205  delete d_stateData;
206  break;
207  }
208  default:
209  break;
210  }
211 
212  d_type = Invalid;
213 }
214 
216 QPainterPath *QwtPainterCommand::path()
217 {
218  return d_path;
219 }
220 
223 {
224  return d_pixmapData;
225 }
226 
229 {
230  return d_imageData;
231 }
232 
235 {
236  return d_stateData;
237 }
static heap_info state
Definition: Heap.c:58
QwtPainterCommand()
Construct an invalid command.
Qt::ImageConversionFlags flags
Attributes how to paint a QPixmap.
~QwtPainterCommand()
Destructor.
QPainter::CompositionMode compositionMode
QPainter::RenderHints renderHints
Draw a QPainterPath.
Attributes of a state change.
QPaintEngine::DirtyFlags flags
Attributes how to paint a QImage.
void copy(const QwtPainterCommand &)
QwtPainterCommand & operator=(const QwtPainterCommand &)
QPainter state change.


plotjuggler
Author(s): Davide Faconti
autogenerated on Sun Dec 6 2020 03:48:10