]> SALOME platform Git repositories - modules/gui.git/blob - src/Qtx/QtxWorkspaceAction.h
Salome HOME
3df49c79860949f2271512e3a465f8febdc34c77
[modules/gui.git] / src / Qtx / QtxWorkspaceAction.h
1 // Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
2 // 
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either 
6 // version 2.1 of the License.
7 // 
8 // This library is distributed in the hope that it will be useful 
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of 
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public  
14 // License along with this library; if not, write to the Free Software 
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 // See http://www.salome-platform.org/
18 //
19 // File:      QtxWorkspaceAction.h
20 // Author:    Sergey TELKOV
21
22 #ifndef QTXWORKSPACEACTION_H
23 #define QTXWORKSPACEACTION_H
24
25 #include "QtxAction.h"
26
27 class QWorkspace;
28
29 #ifdef WIN32
30 #pragma warning( disable:4251 )
31 #endif
32
33 class QTX_EXPORT QtxWorkspaceAction : public QtxAction
34 {
35   Q_OBJECT
36
37 public:
38   enum { Cascade    = 0x0001,
39          Tile       = 0x0002,
40          VTile      = 0x0004,
41          HTile      = 0x0008,
42          Windows    = 0x0010,
43          Standard   = Cascade | Tile | Windows,
44          Operations = Cascade | Tile | VTile | HTile,
45          All        = Standard | HTile | VTile };
46
47 public:
48   QtxWorkspaceAction( QWorkspace*, QObject* = 0, const char* = 0 );
49   virtual ~QtxWorkspaceAction();
50
51   QWorkspace*  workspace() const;
52
53   int          items() const;
54   void         setItems( const int );
55   bool         hasItems( const int ) const;
56
57   int          accel( const int ) const;
58   QIconSet     iconSet( const int ) const;
59   QString      menuText( const int ) const;
60   QString      statusTip( const int ) const;
61
62   void         setAccel( const int, const int );
63   void         setIconSet( const int, const QIconSet& );
64   void         setMenuText( const int, const QString& );
65   void         setStatusTip( const int, const QString& );
66
67   virtual bool addTo( QWidget* );
68   virtual bool addTo( QWidget*, const int );
69   virtual bool removeFrom( QWidget* );
70
71   void         perform( const int );
72
73 public slots:
74   void         tile();
75   void         cascade();
76   void         tileVertical();
77   void         tileHorizontal();
78
79 private slots:
80   void         onAboutToShow();
81   void         onItemActivated( int );
82   void         onPopupDestroyed( QObject* );
83
84 private:
85   void         checkPopup( QPopupMenu* );
86   void         updatePopup( QPopupMenu* );
87
88   int          clearPopup( QPopupMenu* );
89   void         fillPopup( QPopupMenu*, const int );
90
91 private:
92   typedef QMap<QPopupMenu*, QIntList> MenuMap;
93   typedef QMap<int, QtxAction*>       ItemMap;
94
95 private:
96   MenuMap      myMenu;
97   ItemMap      myItem;
98   int          myFlags;
99   QWorkspace*  myWorkspace;
100 };
101
102 #ifdef WIN32
103 #pragma warning( default:4251 )
104 #endif
105
106 #endif