Salome HOME
Initial version
[modules/gui.git] / src / SUIT / SUIT_MessageBox.cxx
1 /********************************************************************
2 **  Class:   SUIT_MessageBox
3 **  Descr:   Message dialog box for SUIT-based application
4 **  Module:  SUIT
5 **  Created: UI team, 02.10.00
6 *********************************************************************/
7
8 #include "SUIT_MessageBox.h"
9 #include "SUIT_OverrideCursor.h"
10
11 #include <qmessagebox.h>
12 #include <qapplication.h>
13
14 /*!
15     Shows info message box with one button [ static ]
16 */
17 int SUIT_MessageBox::info1( QWidget* parent, const QString& caption, const QString& text,
18                                                    const QString& textButton0 )
19 {
20         SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::arrowCursor );
21     int ret = QMessageBox::information( parent, caption, text, textButton0,
22                                         QString::null, QString::null, 0, 0 );
23     qApp->processEvents();
24     return ret;
25 }
26
27 /*!
28     Shows warning message box with one button [ static ]
29 */
30 int SUIT_MessageBox::warn1( QWidget* parent, const QString& caption, const QString& text,
31                                                    const QString& textButton0 )
32 {
33         SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::arrowCursor );
34     int ret = QMessageBox::warning( parent, caption, text, textButton0,
35                                     QString::null, QString::null, 0, 0 );
36     qApp->processEvents();
37     return ret;
38 }
39
40 /*!
41     Shows error message box with one button [ static ]
42 */
43 int SUIT_MessageBox::error1( QWidget* parent, const QString& caption,
44                                                         const QString& text, const QString& textButton0 )
45 {
46         SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::arrowCursor );
47     int ret = QMessageBox::critical( parent, caption, text, textButton0,
48                                      QString::null, QString::null, 0, 0 );
49     qApp->processEvents();
50     return ret;
51 }
52
53 /*!
54     Shows info message box with two buttons.
55     Returns id of the pressed button or -1 if escaped [ static ]
56 */
57 int SUIT_MessageBox::info2( QWidget* parent, const QString& caption,
58                                                    const QString& text, const QString& textButton0,
59                                                    const QString& textButton1, int idButton0, int idButton1, int idDefault )
60 {
61         SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::arrowCursor );
62     if ( idDefault == idButton0 )
63         idDefault = 0;
64     else if ( idDefault == idButton1 )
65         idDefault = 1;
66     else
67         idDefault = 0;
68
69     int ret = QMessageBox::information( parent, caption, text, textButton0,
70                                         textButton1, QString::null, idDefault );
71     qApp->processEvents();
72     return ( ret == 0 ? idButton0 : idButton1 );
73 }
74
75 /*!
76     Shows warning message box with two buttons.
77     Returns id of the pressed button or -1 if escaped [ static ]
78 */
79 int SUIT_MessageBox::warn2( QWidget* parent, const QString& caption, const QString& text,
80                            const QString& textButton0, const QString& textButton1,
81                            int idButton0, int idButton1, int idDefault )
82 {
83         SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::arrowCursor );
84
85     if ( idDefault == idButton0 )
86         idDefault = 0;
87     else if ( idDefault == idButton1 )
88         idDefault = 1;
89     else
90         idDefault = 0;
91
92     int ret = QMessageBox::warning( parent, caption, text, textButton0,
93                                     textButton1, QString::null, idDefault );
94     qApp->processEvents();
95     return ( ret == 0 ? idButton0 : idButton1 );
96 }
97
98 /*!
99     Shows error message box with two buttons
100     Returns id of the pressed button or -1 if escaped [ static ]
101 */
102 int SUIT_MessageBox::error2( QWidget* parent, const QString& caption, const QString& text,
103                             const QString& textButton0, const QString& textButton1,
104                             int idButton0, int idButton1, int idDefault )
105 {
106         SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::arrowCursor );
107
108     if ( idDefault == idButton0 )
109         idDefault = 0;
110     else if ( idDefault == idButton1 )
111         idDefault = 1;
112     else
113         idDefault = 0;
114
115     int ret = QMessageBox::critical( parent, caption, text, textButton0,
116                                      textButton1, QString::null, idDefault );
117     qApp->processEvents();
118     return ( ret == 0 ? idButton0 : idButton1 );
119 }
120
121 /*!
122     Shows info message box with three buttons.
123     Returns id of the pressed button or -1 if escaped [ static ]
124 */
125 int SUIT_MessageBox::info3( QWidget* parent, const QString& caption, const QString& text,
126                            const QString& textButton0, const QString& textButton1,
127                            const QString& textButton2, int idButton0, int idButton1,
128                            int idButton2, int idDefault )
129 {
130         SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::arrowCursor );
131
132     if ( idDefault == idButton0 )
133         idDefault = 0;
134     else if ( idDefault == idButton1 )
135         idDefault = 1;
136     else if ( idDefault == idButton2 )
137         idDefault = 2;
138     else
139         idDefault = 0;
140
141     int ret = QMessageBox::information( parent, caption, text, textButton0,
142                                         textButton1, textButton2, idDefault );
143     qApp->processEvents();
144     switch ( ret )
145     {
146         case 0:
147             return idButton0;
148         case 1:
149             return idButton1;
150         case 2:
151             return idButton2;
152     }
153     return -1;
154 }
155
156 /*!
157     Shows warning message box with three buttons.
158     Returns id of the pressed button or -1 if escaped [ static ]
159 */
160 int SUIT_MessageBox::warn3( QWidget* parent, const QString& caption, const QString& text,
161                            const QString& textButton0, const QString& textButton1,
162                            const QString& textButton2, int idButton0, int idButton1,
163                            int idButton2, int idDefault )
164 {
165         SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::arrowCursor );
166
167     if ( idDefault == idButton0 )
168         idDefault = 0;
169     else if ( idDefault == idButton1 )
170         idDefault = 1;
171     else if ( idDefault == idButton2 )
172         idDefault = 2;
173     else
174         idDefault = 0;
175
176     int ret = QMessageBox::warning( parent, caption, text, textButton0,
177                                     textButton1, textButton2, idDefault );
178     qApp->processEvents();
179     switch ( ret )
180     {
181         case 0:
182             return idButton0;
183         case 1:
184             return idButton1;
185         case 2:
186             return idButton2;
187     }
188     return -1;
189 }
190
191 /*!
192     Shows error message box with three buttons.
193     Returns id of the pressed button or -1 if escaped [ static ]
194 */
195 int SUIT_MessageBox::error3( QWidget* parent, const QString& caption, const QString& text,
196                             const QString& textButton0, const QString& textButton1,
197                             const QString& textButton2, int idButton0, int idButton1,
198                             int idButton2, int idDefault )
199 {
200         SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::arrowCursor );
201
202     if ( idDefault == idButton0 )
203         idDefault = 0;
204     else if ( idDefault == idButton1 )
205         idDefault = 1;
206     else if ( idDefault == idButton2 )
207         idDefault = 2;
208     else
209         idDefault = 0;
210
211     int ret = QMessageBox::critical( parent, caption, text, textButton0,
212                                      textButton1, textButton2, idDefault );
213     qApp->processEvents();
214     switch ( ret )
215     {
216         case 0:
217             return idButton0;
218         case 1:
219             return idButton1;
220         case 2:
221             return idButton2;
222     }
223     return -1;
224 }