]> SALOME platform Git repositories - modules/gui.git/blob - src/LightApp/LightApp_ModuleDlg.cxx
Salome HOME
add SVTK resources
[modules/gui.git] / src / LightApp / LightApp_ModuleDlg.cxx
1 //  File   : LightApp_ModuleDlg.cxx\r
2 //  Author : Michael Zorin (mzn)\r
3 //  Module : LightApp\r
4 \r
5 #include <LightApp_ModuleDlg.h>\r
6 \r
7 #include <qframe.h>\r
8 #include <qlabel.h>\r
9 #include <qpushbutton.h>\r
10 #include <qlayout.h>\r
11 #include <qpixmap.h>\r
12 \r
13 #ifndef WIN32\r
14 using namespace std;\r
15 #endif\r
16 \r
17 /*!Default icon*/\r
18 static const char* const default_icon[] = { \r
19 "48 48 17 1",\r
20 ". c None",\r
21 "# c #161e4c",\r
22 "b c #1d3638",\r
23 "e c #2f585b",\r
24 "i c #345b5e",\r
25 "c c #386266",\r
26 "g c #3f7477",\r
27 "d c #4d8589",\r
28 "m c #519099",\r
29 "o c #6abbc1",\r
30 "a c #70c9d3",\r
31 "f c #79ddea",\r
32 "n c #7adff2",\r
33 "k c #7ce2f4",\r
34 "j c #993550",\r
35 "h c #d84b71",\r
36 "l c #ef537d",\r
37 "................................................",\r
38 "................................................",\r
39 "................................................",\r
40 "................................................",\r
41 "................................................",\r
42 "................########.########.########......",\r
43 "...............#aaaaaa###aaaaaa###aaaaaa##......",\r
44 "..............#aaaaaa#b#aaaaaa#b#aaaaaa#c#......",\r
45 ".............########b########b########cc#......",\r
46 ".............#dddddd#b#dddddd#b#dddddd#cc#......",\r
47 "...........########d########d########d#cc#......",\r
48 "..........#aaaaaa###aaaaaa###aaaaaa##d#cc#......",\r
49 ".........#aaaaaa#b#aaaaaa#b#aaaaaa#c#d#cc#......",\r
50 "........########b########e########cc#d#c#.......",\r
51 "........#dddddd#b#dddddd#e#ffffff#cc#d####......",\r
52 "......########d########d########f#cc###g##......",\r
53 ".....#aaaaaa###aaaaaa###hhhhhh##f#cc#gg#c#......",\r
54 "....#aaaaaa#b#aaaaaa#i#hhhhhh#j#f#cc###cc#......",\r
55 "...########b########i########jj#f#c#gg#cc#......",\r
56 "...#kkkkkk#b#kkkkkk#i#llllll#jj#f####g#cc#......",\r
57 "...#kkkkkk#b#kkkkkk#i#llllll#jj###m##g#cc#......",\r
58 "...#knnkkk#b#kkkkkk#i#llllll#jj#mm#c#g#cc#......",\r
59 "...#knnkkk#b#kkkkkk#i#llllll#jj###cc#g#c#.......",\r
60 "...#kkkkkk#b#kkkkkk#i#llllll#j#dd#cc#g####......",\r
61 "...#kkkkkk###kkkkkk###llllll####d#cc###g##......",\r
62 "...########g########g########o##d#cc#gg#c#......",\r
63 "....#gggggg#b#gggggg#b#oooooo#c#d#cc###cc#......",\r
64 "...########b########b########cc#d#c#gg#cc#......",\r
65 "...#kkkkkk#b#kkkkkk#b#kkkkkk#cc#d####g#cc#......",\r
66 "...#kkkkkk#b#kkkkkk#b#kkkkkk#cc###g##g#cc#......",\r
67 "...#kkkkkk#b#kkkkkk#b#kkkkkk#cc#gg#c#g#cc#......",\r
68 "...#kkkkkk#b#kkkkkk#b#kkkkkk#cc###cc#g#c#.......",\r
69 "...#kkkkkk#b#kkkkkk#b#kkkkkk#c#gg#cc#g##........",\r
70 "...#kkkkkk###kkkkkk###kkkkkk####g#cc###.........",\r
71 "...########g########g########g##g#cc#...........",\r
72 "....#gggggg#b#gggggg#b#gggggg#c#g#cc#...........",\r
73 "...########b########b########cc#g#c#............",\r
74 "...#kkkkkk#b#kkkkkk#b#kkkkkk#cc#g##.............",\r
75 "...#kkkkkk#b#kkkkkk#b#kkkkkk#cc###..............",\r
76 "...#kkkkkk#b#kkkkkk#b#kkkkkk#cc#................",\r
77 "...#kkkkkk#b#kkkkkk#b#kkkkkk#cc#................",\r
78 "...#kkkkkk#b#kkkkkk#b#kkkkkk#c#.................",\r
79 "...#kkkkkk###kkkkkk###kkkkkk##..................",\r
80 "...########.########.########...................",\r
81 "................................................",\r
82 "................................................",\r
83 "................................................",\r
84 "................................................"};\r
85 \r
86 //==============================================================================================================================\r
87 /*!\r
88  *  LightApp_ModuleDlg::LightApp_ModuleDlg \n\r
89  *\r
90  *  Constructor.\r
91  */\r
92 //==============================================================================================================================\r
93 LightApp_ModuleDlg::LightApp_ModuleDlg ( QWidget * parent, const QString& component, const QPixmap icon )\r
94      : QDialog ( parent, "ActivateModuleDlg", true,  WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu )\r
95 {\r
96   QPixmap defaultIcon( ( const char** ) default_icon );\r
97   setCaption( tr( "CAPTION" ) );\r
98   setSizeGripEnabled( TRUE );\r
99   \r
100   QGridLayout* ActivateModuleDlgLayout = new QGridLayout( this ); \r
101   ActivateModuleDlgLayout->setMargin( 11 ); ActivateModuleDlgLayout->setSpacing( 6 );\r
102 \r
103   // Module's name and icon\r
104   myComponentFrame = new QFrame( this, "myComponentFrame" );\r
105   myComponentFrame->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Expanding ) );\r
106   myComponentFrame->setMinimumHeight( 100 );\r
107   myComponentFrame->setFrameStyle( QFrame::Box | QFrame::Sunken );\r
108   \r
109   QGridLayout* myComponentFrameLayout = new QGridLayout( myComponentFrame ); \r
110   myComponentFrameLayout->setMargin( 11 ); myComponentFrameLayout->setSpacing( 6 );\r
111 \r
112   // --> icon\r
113   myComponentIcon = new QLabel( myComponentFrame, "myComponentIcon" );\r
114   myComponentIcon->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) );\r
115   myComponentIcon->setPixmap( !icon.isNull() ? icon : defaultIcon );\r
116   myComponentIcon->setScaledContents( false );\r
117   myComponentIcon->setAlignment( AlignCenter );\r
118   // --> name\r
119   myComponentLab = new QLabel( component, myComponentFrame, "myComponentLab" );\r
120   QFont fnt = myComponentLab->font(); fnt.setBold( TRUE ); myComponentLab->setFont( fnt ); \r
121   myComponentLab->setAlignment( AlignCenter );\r
122 \r
123   myComponentFrameLayout->addWidget( myComponentIcon, 0, 0 );\r
124   myComponentFrameLayout->addWidget( myComponentLab,  0, 1 );\r
125 \r
126   // Info\r
127   QVBoxLayout* infoLayout = new QVBoxLayout();\r
128   infoLayout->setMargin( 0 ); infoLayout->setSpacing( 6 );\r
129   \r
130   // --> top line\r
131   QFrame* myLine1 = new QFrame( this, "myLine1" );\r
132   myLine1->setFrameStyle( QFrame::HLine | QFrame::Plain );\r
133   // --> info label  \r
134   myInfoLabel = new QLabel( tr ("ActivateComponent_DESCRIPTION"), this, "myInfoLabel" );\r
135   myInfoLabel->setAlignment( AlignCenter );\r
136   // --> bottom line\r
137   QFrame*  myLine2 = new QFrame( this, "myLine2" );\r
138   myLine2->setFrameStyle( QFrame::HLine | QFrame::Plain );\r
139   \r
140   infoLayout->addStretch();\r
141   infoLayout->addWidget( myLine1 );\r
142   infoLayout->addWidget( myInfoLabel );\r
143   infoLayout->addWidget( myLine2 );\r
144   infoLayout->addStretch();\r
145   \r
146   // Buttons\r
147   QHBoxLayout* btnLayout = new QHBoxLayout(); \r
148   btnLayout->setMargin( 0 ); btnLayout->setSpacing( 6 );\r
149   \r
150   // --> New\r
151   myNewBtn = new QPushButton( tr( "NEW" ), this, "myNewBtn" );\r
152   myNewBtn->setDefault( true ); myNewBtn->setAutoDefault( true );\r
153   // --> Open\r
154   myOpenBtn = new QPushButton( tr( "OPEN" ), this, "myOpenBtn" );\r
155   myOpenBtn->setAutoDefault( true );\r
156   // --> Load\r
157   myLoadBtn = new QPushButton( tr( "LOAD" ), this, "myLoadBtn" );\r
158   myLoadBtn->setAutoDefault( true );\r
159   // --> Cancel\r
160   myCancelBtn = new QPushButton( tr( "CANCEL" ), this, "myCancelBtn" );\r
161   myCancelBtn->setAutoDefault( true );\r
162   \r
163   btnLayout->addWidget( myNewBtn );\r
164   btnLayout->addWidget( myOpenBtn );\r
165   btnLayout->addWidget( myLoadBtn );\r
166   btnLayout->addStretch();\r
167   btnLayout->addSpacing( 70 );\r
168   btnLayout->addStretch();\r
169   btnLayout->addWidget( myCancelBtn );\r
170 \r
171   ActivateModuleDlgLayout->addWidget(          myComponentFrame, 0,    0    );\r
172   ActivateModuleDlgLayout->addLayout(          infoLayout,       0,    1    );\r
173   ActivateModuleDlgLayout->addMultiCellLayout( btnLayout,        1, 1, 0, 1 );\r
174 \r
175   // signals and slots connections\r
176   connect( myNewBtn,    SIGNAL( clicked() ), this, SLOT( onButtonClicked() ) );\r
177   connect( myOpenBtn,   SIGNAL( clicked() ), this, SLOT( onButtonClicked() ) );\r
178   connect( myLoadBtn,   SIGNAL( clicked() ), this, SLOT( onButtonClicked() ) );\r
179   connect( myCancelBtn, SIGNAL( clicked() ), this, SLOT( reject() ) );\r
180 }\r
181 \r
182 //==============================================================================================================================\r
183 /*!\r
184  *  LightApp_ModuleDlg::onButtonClicked\r
185  *\r
186  *  Buttons slot\r
187  */\r
188 //==============================================================================================================================\r
189 void LightApp_ModuleDlg::onButtonClicked()\r
190 {\r
191   QPushButton* btn = ( QPushButton* )sender();\r
192   if ( btn == myNewBtn )\r
193     done( 1 );\r
194   if ( btn == myOpenBtn )\r
195     done( 2 );\r
196   if ( btn == myLoadBtn )\r
197     done( 3 );\r
198 }\r