1 // Copyright (C) 2005 OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
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.
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.
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
17 // See http://www.salome-platform.org/
19 // File : LightApp_ModuleDlg.cxx
\r
20 // Author : Michael Zorin (mzn)
\r
21 // Module : LightApp
\r
23 #include <LightApp_ModuleDlg.h>
\r
27 #include <qpushbutton.h>
\r
28 #include <qlayout.h>
\r
29 #include <qpixmap.h>
\r
32 using namespace std;
\r
36 static const char* const default_icon[] = {
\r
55 "................................................",
\r
56 "................................................",
\r
57 "................................................",
\r
58 "................................................",
\r
59 "................................................",
\r
60 "................########.########.########......",
\r
61 "...............#aaaaaa###aaaaaa###aaaaaa##......",
\r
62 "..............#aaaaaa#b#aaaaaa#b#aaaaaa#c#......",
\r
63 ".............########b########b########cc#......",
\r
64 ".............#dddddd#b#dddddd#b#dddddd#cc#......",
\r
65 "...........########d########d########d#cc#......",
\r
66 "..........#aaaaaa###aaaaaa###aaaaaa##d#cc#......",
\r
67 ".........#aaaaaa#b#aaaaaa#b#aaaaaa#c#d#cc#......",
\r
68 "........########b########e########cc#d#c#.......",
\r
69 "........#dddddd#b#dddddd#e#ffffff#cc#d####......",
\r
70 "......########d########d########f#cc###g##......",
\r
71 ".....#aaaaaa###aaaaaa###hhhhhh##f#cc#gg#c#......",
\r
72 "....#aaaaaa#b#aaaaaa#i#hhhhhh#j#f#cc###cc#......",
\r
73 "...########b########i########jj#f#c#gg#cc#......",
\r
74 "...#kkkkkk#b#kkkkkk#i#llllll#jj#f####g#cc#......",
\r
75 "...#kkkkkk#b#kkkkkk#i#llllll#jj###m##g#cc#......",
\r
76 "...#knnkkk#b#kkkkkk#i#llllll#jj#mm#c#g#cc#......",
\r
77 "...#knnkkk#b#kkkkkk#i#llllll#jj###cc#g#c#.......",
\r
78 "...#kkkkkk#b#kkkkkk#i#llllll#j#dd#cc#g####......",
\r
79 "...#kkkkkk###kkkkkk###llllll####d#cc###g##......",
\r
80 "...########g########g########o##d#cc#gg#c#......",
\r
81 "....#gggggg#b#gggggg#b#oooooo#c#d#cc###cc#......",
\r
82 "...########b########b########cc#d#c#gg#cc#......",
\r
83 "...#kkkkkk#b#kkkkkk#b#kkkkkk#cc#d####g#cc#......",
\r
84 "...#kkkkkk#b#kkkkkk#b#kkkkkk#cc###g##g#cc#......",
\r
85 "...#kkkkkk#b#kkkkkk#b#kkkkkk#cc#gg#c#g#cc#......",
\r
86 "...#kkkkkk#b#kkkkkk#b#kkkkkk#cc###cc#g#c#.......",
\r
87 "...#kkkkkk#b#kkkkkk#b#kkkkkk#c#gg#cc#g##........",
\r
88 "...#kkkkkk###kkkkkk###kkkkkk####g#cc###.........",
\r
89 "...########g########g########g##g#cc#...........",
\r
90 "....#gggggg#b#gggggg#b#gggggg#c#g#cc#...........",
\r
91 "...########b########b########cc#g#c#............",
\r
92 "...#kkkkkk#b#kkkkkk#b#kkkkkk#cc#g##.............",
\r
93 "...#kkkkkk#b#kkkkkk#b#kkkkkk#cc###..............",
\r
94 "...#kkkkkk#b#kkkkkk#b#kkkkkk#cc#................",
\r
95 "...#kkkkkk#b#kkkkkk#b#kkkkkk#cc#................",
\r
96 "...#kkkkkk#b#kkkkkk#b#kkkkkk#c#.................",
\r
97 "...#kkkkkk###kkkkkk###kkkkkk##..................",
\r
98 "...########.########.########...................",
\r
99 "................................................",
\r
100 "................................................",
\r
101 "................................................",
\r
102 "................................................"};
\r
104 //==============================================================================================================================
\r
106 * LightApp_ModuleDlg::LightApp_ModuleDlg \n
\r
110 //==============================================================================================================================
\r
111 LightApp_ModuleDlg::LightApp_ModuleDlg ( QWidget * parent, const QString& component, const QPixmap icon )
\r
112 : QDialog ( parent, "ActivateModuleDlg", true, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu )
\r
114 QPixmap defaultIcon( ( const char** ) default_icon );
\r
115 setCaption( tr( "CAPTION" ) );
\r
116 setSizeGripEnabled( TRUE );
\r
118 QGridLayout* ActivateModuleDlgLayout = new QGridLayout( this );
\r
119 ActivateModuleDlgLayout->setMargin( 11 ); ActivateModuleDlgLayout->setSpacing( 6 );
\r
121 // Module's name and icon
\r
122 myComponentFrame = new QFrame( this, "myComponentFrame" );
\r
123 myComponentFrame->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Expanding ) );
\r
124 myComponentFrame->setMinimumHeight( 100 );
\r
125 myComponentFrame->setFrameStyle( QFrame::Box | QFrame::Sunken );
\r
127 QGridLayout* myComponentFrameLayout = new QGridLayout( myComponentFrame );
\r
128 myComponentFrameLayout->setMargin( 11 ); myComponentFrameLayout->setSpacing( 6 );
\r
131 myComponentIcon = new QLabel( myComponentFrame, "myComponentIcon" );
\r
132 myComponentIcon->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) );
\r
133 myComponentIcon->setPixmap( !icon.isNull() ? icon : defaultIcon );
\r
134 myComponentIcon->setScaledContents( false );
\r
135 myComponentIcon->setAlignment( AlignCenter );
\r
137 myComponentLab = new QLabel( component, myComponentFrame, "myComponentLab" );
\r
138 QFont fnt = myComponentLab->font(); fnt.setBold( TRUE ); myComponentLab->setFont( fnt );
\r
139 myComponentLab->setAlignment( AlignCenter );
\r
141 myComponentFrameLayout->addWidget( myComponentIcon, 0, 0 );
\r
142 myComponentFrameLayout->addWidget( myComponentLab, 0, 1 );
\r
145 QVBoxLayout* infoLayout = new QVBoxLayout();
\r
146 infoLayout->setMargin( 0 ); infoLayout->setSpacing( 6 );
\r
149 QFrame* myLine1 = new QFrame( this, "myLine1" );
\r
150 myLine1->setFrameStyle( QFrame::HLine | QFrame::Plain );
\r
152 myInfoLabel = new QLabel( tr ("ActivateComponent_DESCRIPTION"), this, "myInfoLabel" );
\r
153 myInfoLabel->setAlignment( AlignCenter );
\r
155 QFrame* myLine2 = new QFrame( this, "myLine2" );
\r
156 myLine2->setFrameStyle( QFrame::HLine | QFrame::Plain );
\r
158 infoLayout->addStretch();
\r
159 infoLayout->addWidget( myLine1 );
\r
160 infoLayout->addWidget( myInfoLabel );
\r
161 infoLayout->addWidget( myLine2 );
\r
162 infoLayout->addStretch();
\r
165 QHBoxLayout* btnLayout = new QHBoxLayout();
\r
166 btnLayout->setMargin( 0 ); btnLayout->setSpacing( 6 );
\r
169 myNewBtn = new QPushButton( tr( "NEW" ), this, "myNewBtn" );
\r
170 myNewBtn->setDefault( true ); myNewBtn->setAutoDefault( true );
\r
172 myOpenBtn = new QPushButton( tr( "OPEN" ), this, "myOpenBtn" );
\r
173 myOpenBtn->setAutoDefault( true );
\r
175 myLoadBtn = new QPushButton( tr( "LOAD" ), this, "myLoadBtn" );
\r
176 myLoadBtn->setAutoDefault( true );
\r
178 myCancelBtn = new QPushButton( tr( "CANCEL" ), this, "myCancelBtn" );
\r
179 myCancelBtn->setAutoDefault( true );
\r
181 btnLayout->addWidget( myNewBtn );
\r
182 btnLayout->addWidget( myOpenBtn );
\r
183 btnLayout->addWidget( myLoadBtn );
\r
184 btnLayout->addStretch();
\r
185 btnLayout->addSpacing( 70 );
\r
186 btnLayout->addStretch();
\r
187 btnLayout->addWidget( myCancelBtn );
\r
189 ActivateModuleDlgLayout->addWidget( myComponentFrame, 0, 0 );
\r
190 ActivateModuleDlgLayout->addLayout( infoLayout, 0, 1 );
\r
191 ActivateModuleDlgLayout->addMultiCellLayout( btnLayout, 1, 1, 0, 1 );
\r
193 // signals and slots connections
\r
194 connect( myNewBtn, SIGNAL( clicked() ), this, SLOT( onButtonClicked() ) );
\r
195 connect( myOpenBtn, SIGNAL( clicked() ), this, SLOT( onButtonClicked() ) );
\r
196 connect( myLoadBtn, SIGNAL( clicked() ), this, SLOT( onButtonClicked() ) );
\r
197 connect( myCancelBtn, SIGNAL( clicked() ), this, SLOT( reject() ) );
\r
200 //==============================================================================================================================
\r
202 * LightApp_ModuleDlg::onButtonClicked
\r
206 //==============================================================================================================================
\r
207 void LightApp_ModuleDlg::onButtonClicked()
\r
209 QPushButton* btn = ( QPushButton* )sender();
\r
210 if ( btn == myNewBtn )
\r
212 if ( btn == myOpenBtn )
\r
214 if ( btn == myLoadBtn )
\r