]> SALOME platform Git repositories - modules/gui.git/blob - src/Qtx/QtxPopupMenu.h
Salome HOME
4774ef0625c1e86886975e08023157c018588bfd
[modules/gui.git] / src / Qtx / QtxPopupMenu.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 #ifndef QTXPOPUPMENU_H
20 #define QTXPOPUPMENU_H
21
22 #include "Qtx.h"
23
24 #include <qstring.h>
25 #include <qiconset.h>
26 #include <qpopupmenu.h>
27
28 class QTX_EXPORT QtxPopupMenu : public QPopupMenu
29 {
30   Q_OBJECT
31
32 protected:
33   class TitleMenuItem;
34
35 public:
36   enum { TitleAuto, TitleOn, TitleOff };
37
38 public:
39   QtxPopupMenu( QWidget* = 0, const char* = 0 );
40   virtual ~QtxPopupMenu();
41
42   QString                titleText() const;
43   QIconSet               titleIcon() const;
44
45   int                    titlePolicy() const;
46   int                    titleAlignment() const;
47
48   virtual void           setTitleText( const QString& );
49   virtual void           setTitleIcon( const QIconSet& );
50
51   virtual void           setTitlePolicy( const int );
52   virtual void           setTitleAlignment( const int );
53
54 public slots:
55   virtual void           show();
56   virtual void           hide();
57
58 protected:
59   virtual TitleMenuItem* createTitleItem( const QString&, const QIconSet&, const int ) const;
60
61 private:
62   void                   updateTitle();
63   void                   insertTitle();
64   void                   removeTitle();
65
66 private:
67   int                    myId;
68   QString                myText;
69   QIconSet               myIcon;
70   int                    myAlign;
71   int                    myPolicy;
72 };
73
74 #endif