Salome HOME
Updated copyright comment
[modules/gui.git] / src / PVViewer / PVViewer_GUIElements.h
index 4360de94a5ebced16b0668180abfa0b01093341c..9a44a3bdc4fe3dd7b7aefb30296ee90604287ea6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2010-2014  CEA/DEN, EDF R&D
+// Copyright (C) 2014-2024  CEA, EDF, OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 //
 // Author: Adrien Bruneton (CEA)
 
-#ifndef PVVIEWERGUIELEMENTS_H_
-#define PVVIEWERGUIELEMENTS_H_
+#ifndef PVVIEWER_GUIELEMENTS_H
+#define PVVIEWER_GUIELEMENTS_H
 
 #include "PVViewer.h"
 
 #include <QObject>
+#include <QList>
 
-class pqPropertiesPanel;
-class pqPipelineBrowserWidget;
-class SUIT_Desktop;
+class QAction;
+class QMainWindow;
 class QMenu;
 class QToolBar;
-class QAction;
 class pqAnimationTimeToolbar;
+class pqPipelineBrowserWidget;
+class pqPipelineModel;
+class pqPropertiesPanel;
 class pqVCRToolbar;
 
 /*!
@@ -43,59 +45,72 @@ class PVVIEWER_EXPORT PVViewer_GUIElements: public QObject
   Q_OBJECT
 
 public:
-  static PVViewer_GUIElements * GetInstance(SUIT_Desktop* desk);
+  static PVViewer_GUIElements* GetInstance(QMainWindow*);
 
-  pqPropertiesPanel * getPropertiesPanel() { return propertiesPanel; }
-  pqPipelineBrowserWidget * getPipelineBrowserWidget() { return pipelineBrowserWidget; }
+  pqPropertiesPanel* getPropertiesPanel();
+  pqPipelineBrowserWidget* getPipelineBrowserWidget();
 
-  QMenu * getFiltersMenu() { return filtersMenu; }
-  QMenu * getSourcesMenu() { return sourcesMenu; }
-  QMenu * getMacrosMenu()  { return macrosMenu; }
+  QMenu* getFiltersMenu();
+  QMenu* getSourcesMenu();
+  QMenu* getMacrosMenu();
+  QMenu* getCatalystMenu();
 
-  pqVCRToolbar * getVCRToolbar() { return vcrToolbar; }
-  pqAnimationTimeToolbar * getTimeToolbar() { return timeToolbar; }
+  pqVCRToolbar* getVCRToolbar();
+  pqAnimationTimeToolbar* getTimeToolbar();
 
-  void myBuildToolbars(SUIT_Desktop* desk);
-  void addToolbars(SUIT_Desktop* desk);
-  void setToolBarVisible(bool show);
+  void setToolBarVisible(bool);
+  void setToolBarEnabled(bool);
+  QList<QToolBar*> getToolbars();
 
-public slots:
-  void onEmulateApply();  // better use the slot from PVViewer_ViewManager if you want to trigger "Apply"
+  void setVCRTimeToolBarVisible(bool);
 
 private:
-  PVViewer_GUIElements(SUIT_Desktop* desk);
+  PVViewer_GUIElements(QMainWindow*);
   virtual ~PVViewer_GUIElements() {}
 
-  static PVViewer_GUIElements * theInstance;
+  static PVViewer_GUIElements* theInstance;
+
+  void buildPVWidgets();
+
+  void publishExistingSources();
 
   // Widgets
-  pqPropertiesPanel * propertiesPanel;
-  pqPipelineBrowserWidget * pipelineBrowserWidget;
+  pqPropertiesPanel* propertiesPanel;
+  pqPipelineBrowserWidget* pipelineBrowserWidget;
+  pqPipelineModel* pipelineModel;
 
   // Dummy QMenus receiving ParaView's reaction for automatic add when new sources are added
-  QMenu * sourcesMenu;
-  QMenu * filtersMenu;
-  QMenu * macrosMenu;
+  QMenu* sourcesMenu;
+  QMenu* filtersMenu;
+  QMenu* macrosMenu;
+  QMenu* catalystMenu;
 
   // Toolbars also need to be instanciated early:
   QToolBar* mainToolBar;
   pqVCRToolbar* vcrToolbar;
-  pqAnimationTimeToolbar * timeToolbar;
+  pqAnimationTimeToolbar* timeToolbar;
   QToolBar* colorToolbar;
   QToolBar* reprToolbar;
   QToolBar* cameraToolbar;
   QToolBar* axesToolbar;
   QToolBar* macrosToolbar;
+  QToolBar* commonToolbar;
+  QToolBar* dataToolbar;
+  
+  QMainWindow* myDesktop;
+  bool myPVWidgetsFlag;
 
 public:
-  QAction * mainAction;
-  QAction *  vcrAction;
-  QAction *  timeAction;
-  QAction *  colorAction;
-  QAction *  reprAction;
-  QAction *  cameraAction;
-  QAction *  axesAction;
-  QAction *  macrosAction;
+  QAction* mainAction;
+  QAction* vcrAction;
+  QAction* timeAction;
+  QAction* colorAction;
+  QAction* reprAction;
+  QAction* cameraAction;
+  QAction* axesAction;
+  QAction* macrosAction;
+  QAction* commonAction;
+  QAction* dataAction;
 };
 
-#endif /* PVVIEWERGUIELEMENTS_H_ */
+#endif // PVVIEWER_GUIELEMENTS_H