BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
geometricControl.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 
5 #ifndef BALL_VIEW_WIDGETS_GEOMETRICCONTROL_H
6 #define BALL_VIEW_WIDGETS_GEOMETRICCONTROL_H
7 
8 #ifndef BALL_COMMON_H
9 # include <BALL/common.h>
10 #endif
11 
12 #ifndef BALL_VIEW_WIDGETS_GENERICCONTROL_H
14 #endif
15 
16 #ifndef BALL_VIEW_KERNEL_COMMON_H
17 # include <BALL/VIEW/KERNEL/common.h>
18 #endif
19 
20 
21 #include <QtCore/QPoint>
22 #include <QtGui/QMenu>
23 
24 namespace BALL
25 {
26  namespace VIEW
27  {
28  class Representation;
29  class ModifyRepresentationDialog;
30  class ClippingPlane;
31  class TransformationMessage;
32 
43  : public GenericControl
44  {
45  Q_OBJECT
46 
47  public:
48 
50 
51 
54 
70  GeometricControl(QWidget* parent = 0, const char* name = 0);
71 
73  virtual ~GeometricControl();
74 
78  virtual void clear(){};
79 
81  virtual void initializeWidget(MainControl& main_control);
82 
84 
85 
88  virtual void addRepresentation(Representation& rep);
89 
92  virtual void removeRepresentation(Representation& rep);
93 
96  virtual void updateRepresentation(Representation& rep);
97 
103  std::list<Representation*> getHighlightedRepresentations() const;
104 
108  virtual void onNotify(Message *message);
109 
116  virtual void buildContextMenu();
117 
119  virtual void checkMenu(MainControl& main_control);
120 
122  void moveItems(const TransformationMessage& msg);
123 
124  void updateClippingPlanes();
125 
126  public slots:
127 
129 
132 
134  virtual void renameRepresentation();
135 
137  virtual void selectAtoms();
138 
140  virtual void selectedRepresentation(Representation& representation, bool state);
141 
143  virtual void updateSelection();
144 
146  virtual void focus();
147 
149  virtual void enterMoveMode();
150 
152  virtual void flipClippingCapping();
153 
155  virtual void flipClippingPlane();
156 
158  virtual void setClippingPosition();
159 
161  virtual void setClippingPlaneX();
162 
164  virtual void setClippingPlaneY();
165 
167  virtual void setClippingPlaneZ();
168 
170  void hideShowClippingPlane();
171 
173  virtual void selectClipRepresentations();
174 
176  void createNewClippingPlane();
177 
179  void duplicate();
180 
182  void saveSurface();
183 
185  void loadSurface();
186 
188  ModifyRepresentationDialog* getModifySurfaceDialog();
189 
190  protected slots:
191 
193 
194 
195 
197  virtual void modifyRepresentation_();
198 
201  virtual void generateListViewItem_(Representation& rep);
202 
204  virtual void deleteCurrentItems();
205 
207 
208  protected slots:
209 
210  virtual void onItemClicked(QTreeWidgetItem* item, int col);
211  void showGuestContextMenu(const QPoint& pos);
212 
213  protected:
214 
215  void addItem_(const String& text, const char* member, QWidget* widget = 0);
216 
217  // only for Python Interface
218  GeometricControl(const GeometricControl& control);
219 
220  enum ColumnID
221  {
222  COLUMN_ID__TYPE = 0,
223  COLUMN_ID__Properties
224  };
225 
226  void setClippingPlane_(const Vector3& n);
227 
228  // the context menu
231 
234 
239 
241 
244 
245  QAction* menu_clipping_plane_, *menu_load_surface_, *modify_surface_;
246  vector<QAction*> context_menu_actions_;
247  };
248 
249 } } // namespaces
250 
251 #endif // BALL_VIEW_WIDGETS_GEOMETRICCONTROL_H