X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSUIT%2FSUIT_ViewWindow.h;h=7d6047e37c01e7e9de8c8324e79d100a863ac394;hb=efe3cdefadc31ad9cdaa9fd7fc368e2931cebdf1;hp=ff6defde24506adfa5fd4308c278dfbe40a151cb;hpb=232b55569765049c7d1cceb5096a45f8584c9369;p=modules%2Fgui.git diff --git a/src/SUIT/SUIT_ViewWindow.h b/src/SUIT/SUIT_ViewWindow.h index ff6defde2..7d6047e37 100755 --- a/src/SUIT/SUIT_ViewWindow.h +++ b/src/SUIT/SUIT_ViewWindow.h @@ -1,77 +1,122 @@ -// Copyright (C) 2005 OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D -// +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // + // SUIT_ViewWindow.h: interface for the SUIT_ViewWindow class. // -////////////////////////////////////////////////////////////////////// - -#if !defined(AFX_SUIT_VIEWWINDOW_H__82C3D51A_6F10_45B0_BCFE_3CB3EF596A4D__INCLUDED_) -#define AFX_SUIT_VIEWWINDOW_H__82C3D51A_6F10_45B0_BCFE_3CB3EF596A4D__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 +#ifndef SUIT_VIEWWINDOW_H +#define SUIT_VIEWWINDOW_H #include "SUIT.h" +#include "SUIT_CameraProperties.h" -#include -#include +#include +#include +#include class SUIT_Desktop; class SUIT_ViewManager; +class QtxActionToolMgr; +class QtxMultiAction; +class QImage; class SUIT_EXPORT SUIT_ViewWindow: public QMainWindow { Q_OBJECT + public: - SUIT_ViewWindow(SUIT_Desktop* theDesktop); + + SUIT_ViewWindow( SUIT_Desktop* ); virtual ~SUIT_ViewWindow(); - void setViewManager(SUIT_ViewManager* theManager) { myManager = theManager;} - SUIT_ViewManager* getViewManager() const { return myManager; } + virtual void setViewManager( SUIT_ViewManager* ); + SUIT_ViewManager* getViewManager() const; bool event(QEvent*); - virtual QImage dumpView() { return QImage(); } - void onAccelAction( int ); + virtual QImage dumpView(); + bool dumpViewToFormat( const QString& fileName, const QString& format ); + + bool onAccelAction( int ); + + bool closable() const; + bool setClosable( const bool ); + + virtual QString getVisualParameters(); + virtual void setVisualParameters( const QString& parameters ); + + void setDestructiveClose( const bool ); + + int getId() const; + + QtxActionToolMgr* toolMgr() const; + + virtual void setDropDownButtons( bool ); + bool dropDownButtons() const; + + virtual SUIT_CameraProperties cameraProperties(); public slots: virtual void onDumpView(); + void setVisible( bool ); signals: - void closing(SUIT_ViewWindow*); - void mousePressed(SUIT_ViewWindow*, QMouseEvent*); - void mouseReleased(SUIT_ViewWindow*, QMouseEvent*); - void mouseDoubleClicked(SUIT_ViewWindow*, QMouseEvent*); - void mouseMoving(SUIT_ViewWindow*, QMouseEvent*); - void wheeling(SUIT_ViewWindow*, QWheelEvent*); - void keyPressed(SUIT_ViewWindow*, QKeyEvent*); - void keyReleased(SUIT_ViewWindow*, QKeyEvent*); + void tryClosing( SUIT_ViewWindow* ); + void closing( SUIT_ViewWindow* ); + void mousePressed( SUIT_ViewWindow*, QMouseEvent* ); + void mouseReleased( SUIT_ViewWindow*, QMouseEvent* ); + void mouseDoubleClicked( SUIT_ViewWindow*, QMouseEvent* ); + void mouseMoving( SUIT_ViewWindow*, QMouseEvent* ); + void wheeling( SUIT_ViewWindow*, QWheelEvent* ); + void keyPressed( SUIT_ViewWindow*, QKeyEvent* ); + void keyReleased( SUIT_ViewWindow*, QKeyEvent* ); void contextMenuRequested( QContextMenuEvent *e ); - + void viewModified( SUIT_ViewWindow* ); + protected: - void closeEvent(QCloseEvent* theEvent); - virtual void contextMenuEvent( QContextMenuEvent * e ); - - virtual void action( const int ); + void closeEvent( QCloseEvent* ); + virtual void contextMenuEvent( QContextMenuEvent* ); + virtual QString filter() const; + virtual bool action( const int ); + virtual bool dumpViewToFormat( const QImage&, const QString& fileName, const QString& format ); + virtual QAction* synchronizeAction(); + static void synchronizeView( SUIT_ViewWindow* viewWindow, int id ); + SUIT_Desktop* myDesktop; SUIT_ViewManager* myManager; + +protected slots: + void updateSyncViews(); + void onSynchronizeView(bool); + virtual void synchronize( SUIT_ViewWindow* ); + void emitViewModified(); + +private: + typedef QMap< int, QList > ActionsMap; + + QtxActionToolMgr* myToolMgr; + bool myIsDropDown; + ActionsMap myMultiActions; + QAction* mySyncAction; }; -#endif // !defined(AFX_SUIT_VIEWWINDOW_H__82C3D51A_6F10_45B0_BCFE_3CB3EF596A4D__INCLUDED_) +#endif // SUIT_VIEWWINDOW_H