Version: 9.16.0
SUIT_ViewManager.h
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, OPEN CASCADE
2//
3// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5//
6// This library is free software; you can redistribute it and/or
7// modify it under the terms of the GNU Lesser General Public
8// License as published by the Free Software Foundation; either
9// version 2.1 of the License, or (at your option) any later version.
10//
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14// Lesser General Public License for more details.
15//
16// You should have received a copy of the GNU Lesser General Public
17// License along with this library; if not, write to the Free Software
18// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19//
20// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21//
22
23#ifndef SUIT_VIEWMANAGER_H
24#define SUIT_VIEWMANAGER_H
25
26#include "SUIT.h"
27
28#include "SUIT_PopupClient.h"
29
30#include <QObject>
31#include <QPixmap>
32#include <QVector>
33#include <QPointer>
34
35class QMenu;
36class QMouseEvent;
37class QWheelEvent;
38class QKeyEvent;
39
40class SUIT_Study;
41class SUIT_Desktop;
42class SUIT_ViewModel;
43class SUIT_ViewWindow;
44
45#ifdef WIN32
46#pragma warning( disable:4251 )
47#endif
48
50{
51 Q_OBJECT
52public:
55 SUIT_ViewModel* = 0 );
56 virtual ~SUIT_ViewManager();
57
58 virtual QString popupClientType() const { return getType(); }
59 virtual void contextMenuPopup( QMenu* );
60
61 void setViewModel(SUIT_ViewModel* theViewModel);
62 SUIT_ViewModel* getViewModel() { return myViewModel; }
63
64 SUIT_Study* study() const;
65
66 QString getType() const;
67 SUIT_ViewWindow* getActiveView() { return myActiveView; }
68
69 int getViewsCount() { return myViews.count(); }
70 QVector<SUIT_ViewWindow*> getViews() const;
71
72 QString getTitle() const { return myTitle; }
73 virtual void setTitle( const QString& );
74
75 QPixmap getIcon() const { return myIcon; }
76 virtual void setIcon( const QPixmap& );
77
78 SUIT_ViewWindow* createViewWindow();
79
80 bool isVisible() const;
81 virtual void setShown( const bool );
82 virtual void setDestructiveClose( const bool );
83
84 int getId() const;
85
86 int getGlobalId() const;
87 void setDetached(bool detached);
88 bool getDetached() const;
89
90public slots:
91 void createView();
92 void closeAllViews();
93
94signals:
99 void mousePress(SUIT_ViewWindow*, QMouseEvent*);
100 void mouseRelease(SUIT_ViewWindow*, QMouseEvent*);
101 void mouseDoubleClick(SUIT_ViewWindow*, QMouseEvent*);
102 void mouseMove(SUIT_ViewWindow*, QMouseEvent*);
103 void wheel(SUIT_ViewWindow*, QWheelEvent*);
104 void keyPress(SUIT_ViewWindow*, QKeyEvent*);
105 void keyRelease(SUIT_ViewWindow*, QKeyEvent*);
107
108protected slots:
109 void onWindowActivated(SUIT_ViewWindow*);
110 void onClosingView( SUIT_ViewWindow* );
111 void onMousePressed(SUIT_ViewWindow*, QMouseEvent* );
112 void onDeleteStudy();
113
114private slots:
115 void onContextMenuRequested( QContextMenuEvent* e );
116
117protected:
121 virtual bool insertView(SUIT_ViewWindow* theView);
122
124 virtual void removeView(SUIT_ViewWindow* theView);
125
127 virtual void closeView(SUIT_ViewWindow* theView);
128
130 virtual void setViewName(SUIT_ViewWindow* theView );
131 QString prepareTitle( const QString&, const int, const int );
132
133 static int useNewId( const QString& );
134
135protected:
136 typedef QPointer<SUIT_ViewWindow> ViewWindow;
137
138protected:
141 QVector<ViewWindow> myViews;
143
144 int myId;
145 QPixmap myIcon;
146 QString myTitle;
149
150 static QMap<QString, int> _ViewMgrId;
151};
152
153#ifdef WIN32
154#pragma warning( default:4251 )
155#endif
156
157#endif
#define SUIT_EXPORT
Definition: SUIT.h:36
For more information see QT documentation.
Definition: SUIT_Desktop.h:47
Definition: SUIT_PopupClient.h:37
virtual void contextMenuPopup(QMenu *)
Definition: SUIT_PopupClient.h:49
Definition: SUIT_Study.h:41
Definition: SUIT_ViewManager.h:50
void mouseMove(SUIT_ViewWindow *, QMouseEvent *)
SUIT_Desktop * myDesktop
Definition: SUIT_ViewManager.h:139
void mousePress(SUIT_ViewWindow *, QMouseEvent *)
void activated(SUIT_ViewManager *)
QPixmap getIcon() const
Definition: SUIT_ViewManager.h:75
SUIT_Study * myStudy
Definition: SUIT_ViewManager.h:147
QString getTitle() const
Definition: SUIT_ViewManager.h:72
SUIT_ViewModel * myViewModel
Definition: SUIT_ViewManager.h:140
void mouseRelease(SUIT_ViewWindow *, QMouseEvent *)
void mouseDoubleClick(SUIT_ViewWindow *, QMouseEvent *)
bool myIsDetached
Definition: SUIT_ViewManager.h:148
void keyPress(SUIT_ViewWindow *, QKeyEvent *)
SUIT_ViewWindow * getActiveView()
Definition: SUIT_ViewManager.h:67
int getViewsCount()
Definition: SUIT_ViewManager.h:69
QString myTitle
Definition: SUIT_ViewManager.h:146
SUIT_ViewWindow * myActiveView
Definition: SUIT_ViewManager.h:142
static QMap< QString, int > _ViewMgrId
Definition: SUIT_ViewManager.h:150
int myId
Definition: SUIT_ViewManager.h:144
QVector< ViewWindow > myViews
Definition: SUIT_ViewManager.h:141
void viewCreated(SUIT_ViewWindow *)
QPixmap myIcon
Definition: SUIT_ViewManager.h:145
void deleteView(SUIT_ViewWindow *)
QPointer< SUIT_ViewWindow > ViewWindow
Definition: SUIT_ViewManager.h:136
void lastViewClosed(SUIT_ViewManager *)
void wheel(SUIT_ViewWindow *, QWheelEvent *)
virtual QString popupClientType() const
Definition: SUIT_ViewManager.h:58
SUIT_ViewModel * getViewModel()
Definition: SUIT_ViewManager.h:62
void tryCloseView(SUIT_ViewWindow *)
void keyRelease(SUIT_ViewWindow *, QKeyEvent *)
Definition: SUIT_ViewModel.h:47
Definition: SUIT_ViewWindow.h:42