OpendTect  6.3
uigraphicsscene.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: Nanne Hemstra
8  Date: January 2008
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uibasemod.h"
14 #include "uigraphicsitem.h"
15 #include "task.h"
16 #include "bufstringset.h"
17 #include "color.h"
18 #include "keyboardevent.h"
19 #include "mouseevent.h"
20 #include "namedobj.h"
21 
22 
23 mFDQtclass(QGraphicsScene)
24 mFDQtclass(QGraphicsLinearLayout)
25 mFDQtclass(QGraphicsWidget)
26 mFDQtclass(ODGraphicsScene)
27 
28 namespace OD { class ArrowStyle; class Alignment; class MarkerStyle2D; }
29 
30 class uiPolygonItem;
31 class uiPolyLineItem;
32 class uiRectItem;
33 class uiObjectItem;
34 
36 {
37 public:
38  uiGraphicsScene(const char*);
39  ~uiGraphicsScene();
40 
41  double maxX() const;
42  double maxY() const;
43  int nrPixX() const;
44  int nrPixY() const;
45 
46  inline void setEmpty() { removeAllItems(); }
47  void removeAllItems();
48  uiGraphicsItem* removeItem(uiGraphicsItem*);
50  uiGraphicsItemSet* removeItems(uiGraphicsItemSet*);
53  template <class T> T* addItem(T*);
57  int nrItems() const;
58  uiGraphicsItem* getItem(int id);
59  const uiGraphicsItem* getItem(int id) const;
60  uiGraphicsItem* itemAt(const Geom::Point2D<float>&);
61  const uiGraphicsItem* itemAt(const Geom::Point2D<float>&) const;
62 
63  uiRectItem* addRect(float x,float y,float w,float h);
64 
65  uiPolygonItem* addPolygon(const TypeSet<uiPoint>&,bool fill);
66  uiPolyLineItem* addPolyLine(const TypeSet<uiPoint>&);
67 
68  void useBackgroundPattern(bool);
69  void setBackGroundColor(const Color&);
70  const Color backGroundColor() const;
71 
72  int getSelItemSize() const;
73  uiRect getSelectedArea() const;
74  void setSelectionArea(const uiRect&);
75 
77  { return mousehandler_; }
78 
81 
82  void saveAsImage(const char*,int,int,int);
83  void saveAsPDF(const char*,int w,int h,int r);
84  void saveAsPS(const char*,int w,int h,int r);
85  void saveAsPDF_PS(const char*,bool pdf_or_ps,int w,
86  int h,int r);
87  void setSceneRect(float x,float y,float w,float h);
88  uiRect sceneRect();
89 
90  bool isMouseEventActive() const
91  { return ismouseeventactive_; }
92  void setMouseEventActive( bool yn )
93  { ismouseeventactive_ = yn; }
94  mQtclass(QGraphicsScene*) qGraphicsScene()
95  {return (mQtclass(QGraphicsScene*))odgraphicsscene_;}
96  void copyToClipBoard();
97 
98 
99  void addUpdateToQueue(Task*);
100  bool executePendingUpdates();
101 
102  void setPixelDensity(float);
103  float getPixelDensity() const {return pixeldensity_;}
104  static float getDefaultPixelDensity();
105 
108 
109  void translateText();
110 
111 protected:
112 
114  ODGraphicsScene* odgraphicsscene_;
115 
116  void CtrlCPressedCB(CallBacker*);
119  friend class uiGraphicsItem;
120  uiGraphicsItem* doAddItem(uiGraphicsItem*);
121  int indexOf(int id) const;
122 
123  int queueid_;
125 
126 public:
127 
128  mDeprecated double width() const { return maxX(); }
129  mDeprecated double height() const { return maxY(); }
130 
131 };
132 
133 
134 template <class T>
135 inline T* uiGraphicsScene::addItem( T* itm )
136 {
137  return (T*)doAddItem( itm );
138 }
139 
140 
142 {
143 public:
144  uiGraphicsObjectScene(const char*);
145 
146  void addObjectItem(uiObjectItem*);
147  void insertObjectItem(int,uiObjectItem*);
148  void removeObjectItem(uiObjectItem*);
149  void setItemStretch(uiObjectItem*,int stretch);
150  int stretchFactor(uiObjectItem*) const;
151 
152  void setLayoutPos(const uiPoint&);
153  const uiPoint layoutPos() const;
154  const uiSize layoutSize() const;
155 
156 protected:
157 
158  void resizeLayoutToContent();
159 
160  mQtclass(QGraphicsLinearLayout*) layout_;
161  mQtclass(QGraphicsWidget*) layoutitem_;
162 };
163 
164 
166 {
167 public:
170 
171  bool execute();
172 
173 protected:
177  bool remove_;
178 };
#define mExpClass(module)
Definition: commondefs.h:157
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
bool remove_
Definition: uigraphicsscene.h:177
Definition: uigeom.h:40
#define mQtclass(cls)
Definition: commondefs.h:232
mQtclass(QGraphicsScene *) qGraphicsScene()
Definition: uigraphicsscene.h:94
int queueid_
Definition: uigraphicsscene.h:123
Definition: uigraphicsscene.h:141
ObjectSet< uiGraphicsItem > items_
Definition: uigraphicsscene.h:113
void setEmpty()
Definition: uigraphicsscene.h:46
Definition: uigraphicsitemimpl.h:197
Notifier< uiGraphicsScene > ctrlPPressed
Definition: uigraphicsscene.h:79
ODGraphicsScene * odgraphicsscene_
Definition: uigraphicsscene.h:114
Definition: uigraphicsscene.h:165
ObjectSet< T >::size_type indexOf(const ObjectSet< T > &os, const S &val)
Locate object in set.
Definition: objectset.h:173
mDeprecated double width() const
Definition: uigraphicsscene.h:128
Definition: uigeom.h:23
#define mDeclInstanceCreatedNotifierAccess(clss)
Definition: notify.h:235
uiGraphicsItemGroup * group_
Definition: uigraphicsscene.h:175
MouseEventHandler mousehandler_
Definition: uigraphicsscene.h:117
Definition: uigraphicsitemimpl.h:51
Set of (small) copyable elements.
Definition: commontypes.h:26
T * addItem(T *)
Item becomes mine.
Definition: uigraphicsscene.h:135
Definition: uigraphicsitem.h:154
bool ismouseeventactive_
Definition: uigraphicsscene.h:118
Definition: uigraphicsitemimpl.h:259
Definition: mouseevent.h:166
MouseEventHandler & getMouseEventHandler()
Definition: uigraphicsscene.h:76
Definition: uigraphicsitemimpl.h:219
#define mDeprecated
Definition: plfdefs.h:213
bool isMouseEventActive() const
Definition: uigraphicsscene.h:90
float getPixelDensity() const
Definition: uigraphicsscene.h:103
Definition: uigraphicsitem.h:141
OpendTect.
Definition: commontypes.h:25
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer, similar to Qt.
Definition: color.h:24
uiGraphicsItem & itm_
Definition: uigraphicsscene.h:176
mDeprecated double height() const
Definition: uigraphicsscene.h:129
#define mClass(module)
Definition: commondefs.h:161
uiGraphicsItem * doAddItem(uiGraphicsItem *)
float pixeldensity_
Definition: uigraphicsscene.h:124
Notifier< uiGraphicsScene > ctrlCPressed
Definition: uigraphicsscene.h:80
Generalization of something (e.g. a computation) that needs to be done in multiple steps...
Definition: task.h:26
Notifier< uiGraphicsScene > pixelDensityChange
Definition: uigraphicsscene.h:106
friend class uiGraphicsItem
Definition: uigraphicsscene.h:119
CallBacker object with a name. Use if you want your object to be able to send and receive CallBack&#39;s...
Definition: namedobj.h:50
mFDQtclass(QGraphicsScene) mFDQtclass(QGraphicsLinearLayout) mFDQtclass(QGraphicsWidget) mFDQtclass(ODGraphicsScene) namespace OD
Definition: uigraphicsscene.h:23
uiGraphicsScene * scene_
Definition: uigraphicsscene.h:174
void setMouseEventActive(bool yn)
Definition: uigraphicsscene.h:92
Definition: uigraphicsscene.h:35

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B. V. 2017