ParaView
pqViewFrame.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: ParaView
4  Module: $RCSfile$
5 
6  Copyright (c) 2005,2006 Sandia Corporation, Kitware Inc.
7  All rights reserved.
8 
9  ParaView is a free software; you can redistribute it and/or modify it
10  under the terms of the ParaView license version 1.2.
11 
12  See License_v1.2.txt for the full ParaView license.
13  A copy of this license can be obtained by contacting
14  Kitware Inc.
15  28 Corporate Drive
16  Clifton Park, NY 12065
17  USA
18 
19 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR
23 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
26 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
27 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 
31 ========================================================================*/
32 #ifndef pqViewFrame_h
33 #define pqViewFrame_h
34 
35 #include "pqComponentsModule.h"
36 #include <QMap>
37 #include <QPointer>
38 #include <QScopedPointer>
39 #include <QUuid>
40 #include <QWidget>
41 
42 class QDragEnterEvent;
43 class QDragMoveEvent;
44 class QDropEvent;
45 class QFrame;
46 class QLabel;
47 class QMenu;
48 class QToolBar;
49 class QToolButton;
51 class pqView;
52 
57 class PQCOMPONENTS_EXPORT pqViewFrame : public QWidget
58 {
59  Q_OBJECT
60  typedef QWidget Superclass;
61 public:
62  pqViewFrame(QWidget* parent=0);
63  virtual ~pqViewFrame();
64 
67  void setTitle(const QString& text);
68  QString title() const;
69 
74  void setCentralWidget(QWidget* widget, pqView* view = 0);
75  QWidget* centralWidget() const;
76 
79  void setBorderColor(const QColor& clr);
80  const QColor& borderColor() const { return this->BorderColor; }
81 
83  bool isBorderVisible() const { return this->BorderVisible; }
84 
86  bool isTitleBarVisible() const { return this->TitleBarVisible; }
87 
89  {
90  NoButton =0x0000,
91  SplitHorizontal =0x0001,
92  SplitVertical =0x0002,
93  Maximize =0x0004,
94  Restore =0x0008,
95  Close =0x0010
96  };
97 
98  Q_DECLARE_FLAGS(StandardButtons, StandardButton);
99 
102  void setStandardButtons(StandardButtons buttons);
103  StandardButtons standardButtons() const { return this->Buttons; }
104 
106  void addTitleBarAction(QAction* action);
107  QAction* addTitleBarAction(const QString& title);
108  QAction* addTitleBarAction(const QIcon& icon, const QString& title);
109 
111  QAction* addTitleBarSeparator();
112 
114  void removeTitleBarActions();
115 
117  QMenu* contextMenu() const;
118 
120  QUuid uniqueID() const
121  { return this->UniqueID; }
122 
123 signals:
125  void buttonPressed(int button);
126 
128  void actionTriggered(QAction* action);
129 
131  void swapPositions(const QString& other);
132 
135  void finishDrag(pqViewFrame* source);
136 
137 public slots:
139  void setBorderVisibility(bool val)
140  {
141  this->BorderVisible = val;
142  this->updateComponentVisibilities();
143  }
144 
146  void setTitleBarVisibility(bool val)
147  {
148  this->TitleBarVisible = val;
149  this->updateComponentVisibilities();
150  }
151 
153  {
154  this->DecorationsVisible = val;
155  this->updateComponentVisibilities();
156  }
157 
158  void onViewNameChanged(pqServerManagerModelItem*);
159 
161  virtual bool eventFilter(QObject*, QEvent*);
162 
163 protected:
166  virtual void updateComponentVisibilities();
167 
169  void drag();
170  void dragEnter(QDragEnterEvent*);
171  void drop(QDropEvent*);
172 
173 protected slots:
174  void buttonClicked();
175  void contextMenuRequested(const QPoint&);
176 
177 protected:
181  QColor BorderColor;
182  StandardButtons Buttons;
183  QPointer<QToolBar> ToolBar;
184  QPointer<QWidget> CentralWidget;
185  QPointer<QMenu> ContextMenu;
186  QUuid UniqueID;
188  typedef QMap<StandardButton, QPointer<QToolButton> > StandardToolButtonsMap;
189  StandardToolButtonsMap StandardToolButtons;
192  QString PlainTitle;
193 
194 private:
195  Q_DISABLE_COPY(pqViewFrame)
196 
197 
198  QToolButton* createButton(QAction* action);
199 
200  class pqInternals;
201  const QScopedPointer<pqInternals> Internals;
202 private slots:
203  void finishedDrag(pqViewFrame* source);
204 };
205 
207 
208 #endif
QPalette PaletteWithoutBorder
Definition: pqViewFrame.h:191
QUuid uniqueID() const
provides access to the unique id assigned to the frame.
Definition: pqViewFrame.h:120
QString PlainTitle
Definition: pqViewFrame.h:192
bool TitleBarVisible
Definition: pqViewFrame.h:179
pqViewFrame is used to represent a frame for any ParaView view shown in the pqMultiViewWidget.
Definition: pqViewFrame.h:57
StandardToolButtonsMap StandardToolButtons
Definition: pqViewFrame.h:189
bool BorderVisible
Definition: pqViewFrame.h:180
void setDecorationsVisibility(bool val)
Definition: pqViewFrame.h:152
pqServerManagerModelItem is a element maintained by pqServerManagerModel.
This is a PQ abstraction of a generic view module.
Definition: pqView.h:55
void setBorderVisibility(bool val)
set whether the border is visible.
Definition: pqViewFrame.h:139
QPointer< QToolBar > ToolBar
Definition: pqViewFrame.h:183
QPointer< QWidget > CentralWidget
Definition: pqViewFrame.h:184
const QColor & borderColor() const
Definition: pqViewFrame.h:80
bool isTitleBarVisible() const
Get whether the title-bar is shown.
Definition: pqViewFrame.h:86
QPalette PaletteWithBorder
Definition: pqViewFrame.h:190
void setTitleBarVisibility(bool val)
set whether the title-bar is visible.
Definition: pqViewFrame.h:146
QPoint DragStartPosition
Definition: pqViewFrame.h:187
QUuid UniqueID
Definition: pqViewFrame.h:186
StandardButtons Buttons
Definition: pqViewFrame.h:182
QColor BorderColor
Definition: pqViewFrame.h:181
bool isBorderVisible() const
Get/Set the border visibility.
Definition: pqViewFrame.h:83
Q_DECLARE_OPERATORS_FOR_FLAGS(pqViewFrame::StandardButtons)
QMap< StandardButton, QPointer< QToolButton > > StandardToolButtonsMap
Definition: pqViewFrame.h:188
StandardButtons standardButtons() const
Definition: pqViewFrame.h:103
QPointer< QMenu > ContextMenu
Definition: pqViewFrame.h:185
bool DecorationsVisible
Definition: pqViewFrame.h:178