Salome HOME
NRI : Merge from V1_2.
[modules/kernel.git] / src / PatchQt / qactionP.h
1 //  SALOME PatchQt : patch for Qt
2 //
3 //  Copyright (C) 2003  CEA/DEN, EDF R&D
4 //
5 //
6 //
7 //  File   : qactionP.h
8 //  Author : Vadim SANDLER
9 //  Module : SALOME
10 //  $Header$
11
12 #ifndef QACTIONP_H
13 #define QACTIONP_H
14
15 #ifndef QT_H
16 #include <qobject.h>
17 #include <qiconset.h>
18 #include <qstring.h>
19 #include <qkeysequence.h>
20 #endif // QT_H
21
22 #ifndef QT_NO_ACTION
23
24 class QActionPPrivate;
25 class QActionPGroupPrivate;
26 class QStatusBar;
27 class QPopupMenu;
28
29 class Q_EXPORT QActionP : public QObject
30 {
31     Q_OBJECT
32     Q_PROPERTY( bool toggleAction READ isToggleAction WRITE setToggleAction)
33     Q_PROPERTY( bool on READ isOn WRITE setOn )
34     Q_PROPERTY( bool enabled READ isEnabled WRITE setEnabled )
35     Q_PROPERTY( QIconSet iconSet READ iconSet WRITE setIconSet )
36     Q_PROPERTY( QString text READ text WRITE setText )
37     Q_PROPERTY( QString menuText READ menuText WRITE setMenuText )
38     Q_PROPERTY( QString toolTip READ toolTip WRITE setToolTip )
39     Q_PROPERTY( QString statusTip READ statusTip WRITE setStatusTip )
40     Q_PROPERTY( QString whatsThis READ whatsThis WRITE setWhatsThis )
41     Q_PROPERTY( QKeySequence accel READ accel WRITE setAccel )
42
43 public:
44     QActionP( QObject* parent, const char* name = 0, bool toggle = FALSE  );
45     QActionP( const QString& text, const QIconSet& icon, const QString& menuText, QKeySequence accel,
46              QObject* parent, const char* name = 0, bool toggle = FALSE );
47     QActionP( const QString& text, const QString& menuText, QKeySequence accel, QObject* parent,
48              const char* name = 0, bool toggle = FALSE );
49     ~QActionP();
50
51     virtual void setIconSet( const QIconSet& );
52     QIconSet iconSet() const;
53     virtual void setText( const QString& );
54     QString text() const;
55     virtual void setMenuText( const QString& );
56     QString menuText() const;
57     virtual void setToolTip( const QString& );
58     QString toolTip() const;
59     virtual void setStatusTip( const QString& );
60     QString statusTip() const;
61     virtual void setWhatsThis( const QString& );
62     QString whatsThis() const;
63     virtual void setAccel( const QKeySequence& key );
64     QKeySequence accel() const;
65     virtual void setToggleAction( bool );
66     bool isToggleAction() const;
67     bool isOn() const;
68     bool isEnabled() const;
69     virtual bool addTo( QWidget* );
70     virtual bool removeFrom( QWidget* );
71
72 protected:
73     virtual void addedTo( QWidget *actionWidget, QWidget *container );
74     virtual void addedTo( int index, QPopupMenu *menu );
75
76 public slots:
77     void toggle();
78     virtual void setOn( bool );
79     virtual void setEnabled( bool );
80
81 signals:
82     void activated();
83     void toggled( bool );
84
85 private slots:
86     void internalActivation();
87     void toolButtonToggled( bool );
88     void objectDestroyed();
89     void menuStatusText( int id );
90     void showStatusText( const QString& );
91     void clearStatusText();
92
93 private:
94     void init();
95
96     QActionPPrivate* d;
97
98 };
99
100 class Q_EXPORT QActionPGroup : public QActionP
101 {
102     Q_OBJECT
103     Q_PROPERTY( bool exclusive READ isExclusive WRITE setExclusive )
104     Q_PROPERTY( bool usesDropDown READ usesDropDown WRITE setUsesDropDown )
105
106 public:
107     QActionPGroup( QObject* parent, const char* name = 0, bool exclusive = TRUE );
108     ~QActionPGroup();
109     void setExclusive( bool );
110     bool isExclusive() const;
111     void add( QActionP* a);
112     void addSeparator();
113     bool addTo( QWidget* );
114     bool removeFrom( QWidget* );
115     void setEnabled( bool );
116
117     void setUsesDropDown( bool enable );
118     bool usesDropDown() const;
119
120     void setIconSet( const QIconSet& );
121     void setText( const QString& );
122     void setMenuText( const QString& );
123     void setToolTip( const QString& );
124     void setWhatsThis( const QString& );
125
126 protected:
127     void childEvent( QChildEvent* );
128     virtual void addedTo( QWidget *actionWidget, QWidget *container, QActionP *a );
129     virtual void addedTo( int index, QPopupMenu *menu, QActionP *a );
130     virtual void addedTo( QWidget *actionWidget, QWidget *container );
131     virtual void addedTo( int index, QPopupMenu *menu );
132
133 signals:
134     void selected( QActionP* );
135
136 private slots:
137     void childToggled( bool );
138     void childDestroyed();
139     void internalComboBoxActivated( int );
140     void internalToggle( QActionP* );
141     void objectDestroyed();
142
143 private:
144     QActionPGroupPrivate* d;
145
146 #ifndef QT_NO_COMPAT
147 public:
148     void insert( QActionP* a ) { add( a ); }
149 #endif
150
151 };
152
153 #endif
154
155 #endif