00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include "options-carac.qt.hh"
00025 #include "window.qt.hh"
00026 #include "HtmlEntities.hh"
00027
00028 #include <QtGui/QGridLayout>
00029 #include <QtGui/QHBoxLayout>
00030 #include <QtGui/QLabel>
00031 #include <Qt3Support/Q3Accel>
00032
00033
00034
00035
00036 OptionsCarac :: OptionsCarac(Window * parent)
00037 :
00038 QDialog(parent) ,
00039 FParent(parent) ,
00040 FUpdate(false)
00041 {
00042
00043 setWindowTitle(*HTML::decode("Caractéristiques topologiques")) ;
00044
00045
00046
00047 Q3Accel * Raccourci = new Q3Accel(this) ;
00048 Raccourci -> insertItem(QKeySequence(Qt :: Key_Space) , 9) ;
00049 Raccourci -> connectItem(9 , this , SLOT(close())) ;
00050
00051 QHBoxLayout * placement = new QHBoxLayout(this) ;
00052
00053
00054 FGlobal = new QGroupBox("Globales") ;
00055 QGridLayout * global = new QGridLayout(FGlobal) ;
00056
00057 global->addWidget(new QLabel("brins :") , 1 , 0) ;
00058 global->addWidget(new QLabel("sommets :") , 2 , 0) ;
00059 global->addWidget(new QLabel(*HTML::decode("arêtes :")) , 3 , 0);
00060 global->addWidget(new QLabel("faces :") , 4 , 0) ;
00061 global->addWidget(new QLabel("volumes :") , 5 , 0) ;
00062 global->addWidget(new QLabel("composantes :") , 6 , 0) ;
00063
00064 for (int i = 0 ; i < 6 ; i++)
00065 {
00066 FGlobalCells [i] = new QLabel("") ;
00067 global -> addWidget(FGlobalCells [ i ] , i + 1 , 1) ;
00068 }
00069
00070 global -> addWidget(new QLabel("0-bords :") , 2 , 2) ;
00071 global -> addWidget(new QLabel("1-bords :") , 3 , 2) ;
00072 global -> addWidget(new QLabel("2-bords :") , 4 , 2) ;
00073 global -> addWidget(new QLabel("3-bords :") , 5 , 2) ;
00074
00075 for (int i = 0 ; i < 4 ; i++)
00076 {
00077 FGlobalBorders [i] = new QLabel("") ;
00078 global -> addWidget(FGlobalBorders [ i ] , i + 2 , 3) ;
00079 }
00080
00081
00082 FPointed = new QGroupBox(*HTML::decode("Volume désigné")) ;
00083 QGridLayout * pointed = new QGridLayout(FPointed) ;
00084
00085 pointed->addWidget(new QLabel("brins :") , 1 , 0);
00086 pointed->addWidget(new QLabel("sommets :") , 2 , 0);
00087 pointed->addWidget(new QLabel(*HTML::decode("arêtes :")) , 3 , 0);
00088 pointed->addWidget(new QLabel("faces :") , 4 , 0);
00089
00090 for (int i = 0 ; i < 4 ; i++)
00091 FPointedCells [i] = new QLabel("") ;
00092
00093 for (int i = 0 ; i < 4 ; i++)
00094 pointed -> addWidget(FPointedCells [ i ] , i + 1 , 1) ;
00095
00096
00097 pointed -> addWidget(new QLabel("0-bords :") , 1 , 2) ;
00098 pointed -> addWidget(new QLabel("1-bords :") , 2 , 2) ;
00099 pointed -> addWidget(new QLabel("2-bords :") , 3 , 2) ;
00100
00101 for (int i = 0 ; i < 3 ; i++)
00102 FPointedBorders [i] = new QLabel("") ;
00103
00104 for (int i = 0 ; i < 3 ; i++)
00105 pointed -> addWidget(FPointedBorders [ i ] , i + 1 , 3) ;
00106
00107 QWidget * WPar = new QWidget ;
00108 QGridLayout * par = new QGridLayout(WPar) ;
00109
00110 par->
00111 addWidget(new QLabel(*HTML::decode("Caractéristiques d'Euler :")),
00112 1 , 0) ;
00113 par->
00114 addWidget(new QLabel(*HTML::decode("Coefficient d'orientabilité :")),
00115 2 , 0) ;
00116 par -> addWidget(new QLabel("Genre :") , 3 , 0) ;
00117
00118 FEulerLabel = new QLabel("") ;
00119 par -> addWidget(FEulerLabel , 1 , 1) ;
00120 FOrientLabel = new QLabel("") ;
00121 par -> addWidget(FOrientLabel , 2 , 1) ;
00122 FGenusLabel = new QLabel("") ;
00123 par -> addWidget(FGenusLabel , 3 , 1) ;
00124 FNameLabel = new QLabel("") ;
00125
00126 pointed -> addWidget(WPar);
00127 pointed -> addWidget(FNameLabel);
00128
00129
00130 placement -> addWidget(FGlobal) ;
00131 placement -> addWidget(FPointed) ;
00132 }
00133
00134
00135
00136 OptionsCarac :: ~OptionsCarac()
00137 {}
00138
00139 void OptionsCarac::update()
00140 {
00141
00142 int nb[4], nb2WhenClosed;
00143 int nc[5], nd;
00144 int euler, orient, genus;
00145
00146 char buffer[64];
00147
00148
00149 FParent -> getControler()
00150 -> getMapGlobalCharacteristics(& nd,
00151 & nc [ 0 ] , & nc [ 1 ] , & nc [ 2 ] ,
00152 & nc [ 3 ] , & nc [ 4 ] , & nb [ 0 ] ,
00153 & nb [ 1 ] , & nb [ 2 ] , & nb [ 3 ]) ;
00154
00155 sprintf(buffer, "%d", nd) ;
00156 FGlobalCells [ 0 ] -> setText(buffer) ;
00157
00158 for (int i = 0 ; i < 4 ; ++i)
00159 {
00160 sprintf(buffer , "%d" , nc [ i ]) ;
00161 FGlobalCells [ i+1 ] -> setText(buffer) ;
00162
00163 sprintf(buffer , "%d" , nb [ i ]) ;
00164 FGlobalBorders [ i ] -> setText(buffer) ;
00165 }
00166
00167 sprintf(buffer , "%d" , nc [ 4 ]) ;
00168 FGlobalCells [ 5 ] -> setText(buffer) ;
00169
00170
00171 string name;
00172
00173 bool ok =
00174 FParent -> getControler()
00175 -> getSurfaceCharacteristics(& name , & nd ,
00176 & nc [ 0 ] , & nc [ 1 ] , & nc [ 2 ] ,
00177 & nb [ 0 ] , & nb [ 1 ] , & nb [ 2 ] ,
00178 & nb2WhenClosed ,
00179 & euler , & orient , & genus) ;
00180
00181 if (ok)
00182 {
00183 sprintf(buffer , "%d" , nd) ;
00184 FPointedCells [ 0 ] -> setText(buffer) ;
00185
00186 for (int i = 0 ; i < 3 ; ++i)
00187 {
00188 sprintf(buffer , "%d" , nc [ i ]) ;
00189 FPointedCells [ i+1 ] -> setText(buffer) ;
00190
00191 sprintf(buffer , "%d" , nb [ i ]) ;
00192 FPointedBorders [ i ] -> setText(buffer) ;
00193 }
00194
00195 sprintf(buffer , "%d" , euler) ;
00196 FEulerLabel -> setText(buffer) ;
00197
00198 sprintf(buffer , "%d" , orient) ;
00199 FOrientLabel -> setText(buffer) ;
00200
00201 sprintf(buffer , "%d" , genus) ;
00202 FGenusLabel -> setText(buffer) ;
00203
00204 FNameLabel->setText(QString::fromUtf8(name.c_str()));
00205 }
00206 else
00207 {
00208 FPointedCells [ 0 ] -> setText("") ;
00209
00210 for (int i = 0 ; i < 3 ; ++i)
00211 {
00212 FPointedBorders [ i ] -> setText("") ;
00213 FPointedCells [ i+1 ] -> setText("") ;
00214 }
00215
00216 FEulerLabel -> setText("") ;
00217 FOrientLabel -> setText("") ;
00218 FGenusLabel -> setText("") ;
00219 FNameLabel -> setText("") ;
00220 }
00221
00222 FParent -> repaint() ;
00223 }
00224
00225 void OptionsCarac :: show_impl()
00226 {
00227 show() ;
00228 update() ;
00229 }