OpendTect  6.6
uigraphicsitem.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 2007
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "uibasemod.h"
15 #include "callback.h"
16 #include "keyenum.h"
17 #include "uigeom.h"
18 #include "manobjectset.h"
19 #include "uistring.h"
20 
21 class FillPattern;
22 class MouseCursor;
23 class MouseEvent;
24 class uiGraphicsItemSet;
25 class uiGraphicsScene;
26 namespace OD { class LineStyle; }
27 
28 mFDQtclass(QGraphicsItem)
29 mFDQtclass(QGraphicsItemGroup)
30 
31 mExpClass(uiBase) uiGraphicsItem : public CallBacker
32 {
33 public:
34  uiGraphicsItem();
35  ~uiGraphicsItem();
36 
37  mQtclass(QGraphicsItem*) qGraphicsItem() { return qgraphicsitem_; }
38  const mQtclass(QGraphicsItem*) qGraphicsItem()
39  const { return qgraphicsitem_; }
40 
41  void show();
42  void hide();
43 
44  virtual void setAcceptHoverEvents(bool);
45  virtual void setAcceptedMouseButtons(OD::ButtonState);
46  virtual void setFiltersChildEvents(bool);
47  virtual void setMovable(bool);
48  virtual void setSelectable(bool);
49  virtual void setSelected(bool);
50  virtual void setVisible(bool);
51 
52  virtual OD::ButtonState acceptedMouseButtonsEnabled() const;
53  virtual bool isFiltersChildEventsEnabled() const;
54  virtual bool isHoverEventsAccepted() const;
55  virtual bool isMovable() const;
56  virtual bool isSelectable() const;
57  virtual bool isSelected() const { return selected_; }
58  virtual bool isVisible() const;
59 
60  Geom::Point2D<float> getPos() const;
61  void setPos( const uiWorldPoint&);
62  void setPos( const uiPoint& p );
63  void setPos( const Geom::Point2D<float>& );
64  void setPos( float x, float y );
65  void moveBy(float x,float y);
66  float getRotation();
67  void getScale(float& sx,float& sy);
68  void setRotation(float angle);
69  void setScale(float sx,float sy);
70  void setZValue(int); //<! z value decides the stacking order
71 
72 
73  uiGraphicsItem* getChild(int);
74  bool isPresent(const uiGraphicsItem&) const;
75  int nrChildren() const;
76  void removeChild(uiGraphicsItem*,bool withdelete);
77  void removeAll(bool withdelete);
78  void addChild(uiGraphicsItem*);
79  void addChildSet(uiGraphicsItemSet&);
80  void removeChildSet(uiGraphicsItemSet&);
81 
82  uiPoint transformToScenePos(const uiPoint& itmpos) const;
83  void setItemIgnoresTransformations(bool);
84  bool isItemIgnoresTransformationsEnabled() const;
85  virtual uiRect boundingRect() const;
86 
87  virtual void setPenStyle(const OD::LineStyle&,bool usetransp=false);
88  virtual void setPenColor(const Color&,bool usetransp=false);
89  virtual void setFillColor(const Color&,bool usetransp=false);
90  virtual void setGradientFill(int x1,int y1,int x2, int y2,
91  const TypeSet<float>& stops,
92  const TypeSet<Color>& colors);
96  virtual void setFillPattern(const FillPattern&);
97  virtual void setTransparency(float);
103  float getTransparency() const;
104 
105  void setCursor(const MouseCursor&);
106  void setToolTip(const uiString&);
107 
108  virtual void setScene(uiGraphicsScene*);
109  virtual uiGraphicsItem* findItem(QGraphicsItem*);
110 
111  int id() const { return id_; }
112  int getZValue() const;
113 
114  //Old, will be remove once all dep code is changed
115  void rotate(float angle) { setRotation(angle); }
116  void scale(float sx,float sy) { setScale( sx, sy ); }
117 
118  virtual void translateText();
119 
122 protected:
123 
124  uiGraphicsItem(QGraphicsItem*);
125 
126  mQtclass(QGraphicsItem*) qgraphicsitem_;
127 
128  virtual mQtclass(QGraphicsItem*) mkQtObj() { return 0; }
129  bool selected_; // Remove when things in Qt works
130  mQtclass(uiGraphicsScene*) scene_;
131  ObjectSet<uiGraphicsItem> children_;
132  uiGraphicsItem* parent_;
133 
134  virtual void stPos(float,float);
135 
136 private:
137 
138  void updateTransform();
139 
140  static int getNewID();
141  const int id_;
142 
143  uiString tooltip_;
144 
145  uiWorldPoint translation_;
146  uiWorldPoint scale_;
147  double angle_;
148 };
149 
150 
152 {
153 public:
155 
156  void add( uiGraphicsItem* itm ) { (*this) += itm; }
157 
158  void setZValue(int); //<! z value decides the stacking order
159  void setVisible(bool yn);
160 };
161 
162 
163 
164 mExpClass(uiBase) uiGraphicsItemGroup : public uiGraphicsItem
165 {
166 public:
167  uiGraphicsItemGroup(bool owner=false);
171 
173 
174  void setIsOwner( bool own ) { owner_ = own; }
175  bool isOwner() const { return owner_; }
176 
177  void add(uiGraphicsItem*);
178  void remove(uiGraphicsItem*,bool withdelete);
179  void removeAll(bool withdelete);
180  bool isEmpty() const { return items_.isEmpty(); }
181  int size() const { return items_.size(); }
182  uiGraphicsItem* getUiItem( int idx ) { return gtItm(idx); }
183  const uiGraphicsItem* getUiItem( int idx ) const { return gtItm(idx); }
184  bool isPresent(const uiGraphicsItem&) const;
185  virtual uiGraphicsItem* findItem(QGraphicsItem*);
186 
187  virtual bool isVisible() const;
188  virtual void setVisible(bool);
189  virtual uiRect boundingRect() const;
190  mQtclass(QGraphicsItemGroup*) qGraphicsItemGroup()
191  { return qgraphicsitemgrp_; }
192 
193 protected:
194 
196 
197  mQtclass(QGraphicsItem*) mkQtObj();
198 
199  bool owner_;
201  mQtclass(QGraphicsItemGroup*) qgraphicsitemgrp_;
204 
205  uiGraphicsItem* gtItm( int idx ) const
206  { return !items_.validIdx(idx) ? 0
207  : const_cast<uiGraphicsItemGroup*>(this)->items_[idx]; }
208 };
209 
210 
OD::LineStyle
Definition: draw.h:118
uiGraphicsItemGroup::uiGraphicsItemGroup
uiGraphicsItemGroup(bool owner=false)
uistring.h
ObjectSet< uiGraphicsItem >
uiRect
Definition: uigeom.h:42
OD
OpendTect.
Definition: commontypes.h:28
mFDQtclass
#define mFDQtclass(cls)
Definition: commondefs.h:233
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
uiGraphicsItemSet::uiGraphicsItemSet
uiGraphicsItemSet()
Definition: uigraphicsitem.h:154
ObjectSet::validIdx
virtual bool validIdx(int64_t) const
Definition: objectset.h:389
uiGraphicsItemGroup::isPresent
bool isPresent(const uiGraphicsItem &) const
callback.h
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
uiGraphicsItemGroup::setScene
void setScene(uiGraphicsScene *)
OD::ButtonState
ButtonState
Definition: keyenum.h:20
keyenum.h
File::hide
void hide(const char *, bool yn)
only Windows
uiGraphicsItemSet::setZValue
void setZValue(int)
uiGraphicsItemGroup::findItem
virtual uiGraphicsItem * findItem(QGraphicsItem *)
uiGraphicsItemGroup::add
void add(uiGraphicsItem *)
ManagedObjectSet< uiGraphicsItem >
uiGraphicsItemSet
Definition: uigraphicsitem.h:152
uiGraphicsItemGroup::isEmpty
bool isEmpty() const
Definition: uigraphicsitem.h:180
uiGraphicsItemGroup::size
int size() const
Definition: uigraphicsitem.h:181
uiGraphicsItemGroup::mQtclass
mQtclass(QGraphicsItemGroup *) qGraphicsItemGroup()
Definition: uigraphicsitem.h:190
uiGraphicsItemGroup::uiGraphicsItemGroup
uiGraphicsItemGroup(const ObjectSet< uiGraphicsItem > &)
uiGraphicsItemGroup::remove
void remove(uiGraphicsItem *, bool withdelete)
uiGraphicsItemGroup::translateText
void translateText()
FillPattern
Definition: draw.h:146
MPE::removeAll
void removeAll()
uiGraphicsItemGroup::getUiItem
const uiGraphicsItem * getUiItem(int idx) const
Definition: uigraphicsitem.h:183
mQtclass
#define mQtclass(cls)
Definition: commondefs.h:234
Geom::Point2D< float >
uiGraphicsItemGroup::items_
ObjectSet< uiGraphicsItem > items_
Definition: uigraphicsitem.h:202
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
uiGraphicsItemGroup::isOwner
bool isOwner() const
Definition: uigraphicsitem.h:175
uiGraphicsItemSet::setVisible
void setVisible(bool yn)
uiGraphicsItemGroup::setVisible
virtual void setVisible(bool)
uiGraphicsItemGroup::gtItm
uiGraphicsItem * gtItm(int idx) const
Definition: uigraphicsitem.h:205
MouseCursor
Definition of a mouse cursor, can be either a predefined shape (from the enum, or a file....
Definition: mousecursor.h:26
manobjectset.h
uiGraphicsScene
Definition: uigraphicsscene.h:39
uiGraphicsItemGroup::~uiGraphicsItemGroup
~uiGraphicsItemGroup()
If owner, it deletes all items.
uiGraphicsItemGroup::setIsOwner
void setIsOwner(bool own)
Definition: uigraphicsitem.h:174
uiGraphicsItemGroup::isvisible_
bool isvisible_
Definition: uigraphicsitem.h:200
uiGraphicsItemGroup::items2bdel_
ObjectSet< uiGraphicsItem > items2bdel_
Definition: uigraphicsitem.h:203
uiGraphicsItemSet::add
void add(uiGraphicsItem *itm)
Definition: uigraphicsitem.h:156
uiGraphicsItemGroup::getUiItem
uiGraphicsItem * getUiItem(int idx)
Definition: uigraphicsitem.h:182
sKey::LineStyle
FixedString LineStyle()
Definition: keystrs.h:89
uigeom.h
uiGraphicsItemGroup::mQtclass
mQtclass(QGraphicsItem *) mkQtObj()
uiGraphicsItemGroup
Definition: uigraphicsitem.h:165
MouseEvent
Definition: mouseevent.h:73
uiGraphicsItemGroup::owner_
bool owner_
Definition: uigraphicsitem.h:199
Color
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer,...
Definition: color.h:26
uiGraphicsItemGroup::removeAll
void removeAll(bool withdelete)
CNotifier
Notifier with automatic capsule creation.
Definition: notify.h:171
uiGraphicsItemGroup::mQtclass
mQtclass(QGraphicsItemGroup *) qgraphicsitemgrp_
uiGraphicsItemGroup::isVisible
virtual bool isVisible() const
uiGraphicsItemGroup::boundingRect
virtual uiRect boundingRect() const
TypeSet< float >

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