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-extrusion.qt.hh"
00025 #include "window.qt.hh"
00026 #include "HtmlEntities.hh"
00027
00028 #include <QtGui/QVBoxLayout>
00029 #include <QtGui/QLabel>
00030
00031
00032
00033 OptionsDivers :: OptionsDivers ( Window * parent , QTabWidget * parentTab )
00034 :
00035 QWidget ( parentTab ) ,
00036 FParent ( parent ) ,
00037 FUpdate ( false )
00038 {
00039
00040 QVBoxLayout * glo_hbl = new QVBoxLayout(this) ;
00041
00042 QGroupBox * gb_dep =
00043 new QGroupBox(*HTML::decode("Déplacement de la caméra"));
00044 QVBoxLayout * dep_vbl = new QVBoxLayout(gb_dep);
00045
00046
00047 QWidget * wid_rotation = new QWidget;
00048 QHBoxLayout * rot_hbl = new QHBoxLayout(wid_rotation) ;
00049
00050 saisie_angle = new FloatSpinBox (5,0,360,2,4) ;
00051 saisie_angle -> setWrapping ( true ) ;
00052
00053 rot_hbl -> addWidget (new QLabel ("Angle de rotation : "), 0, Qt::AlignLeft);
00054 rot_hbl -> addWidget (saisie_angle, 1, Qt::AlignLeft);
00055
00056
00057 QWidget * wid_pas = new QWidget;
00058 QHBoxLayout * pas_hbl = new QHBoxLayout(wid_pas) ;
00059
00060 saisie_pas = new FloatSpinBox (1,0,200,2,4) ;
00061
00062 pas_hbl -> addWidget (new QLabel ("Pas d'avancement : "), 0, Qt::AlignLeft);
00063 pas_hbl -> addWidget (saisie_pas, 1, Qt::AlignLeft);
00064
00065
00066 dep_vbl -> addWidget(wid_rotation);
00067 dep_vbl -> addWidget(wid_pas);
00068
00069 glo_hbl -> addWidget(gb_dep);
00070 glo_hbl -> addStretch(2);
00071
00072
00073 connect(saisie_angle, SIGNAL(valueChanged(double)),
00074 this, SLOT(callbackChangeAngle(double)));
00075
00076 connect(saisie_pas, SIGNAL(valueChanged(double)),
00077 this, SLOT(callbackChangePas(double)));
00078 }
00079
00080
00081
00082
00083 OptionsDivers :: ~OptionsDivers ( )
00084 {
00085 }
00086
00087
00088
00089 void OptionsDivers :: update ( )
00090 {
00091 FUpdate = true ;
00092
00093 CParameterEyePosition * eye = FParent -> getParameterEyePosition();
00094 saisie_angle -> setValuef(eye -> getAngleRotation());
00095 saisie_pas -> setValuef(eye -> getPasAvancement());
00096
00097 FUpdate = false ;
00098 }
00099
00100
00101 void OptionsDivers :: callbackChangeAngle(double val)
00102 {
00103 if (!FUpdate)
00104 FParent -> getParameterEyePosition() -> setAngleRotation(val);
00105 }
00106
00107
00108 void OptionsDivers :: callbackChangePas(double val)
00109 {
00110 if (!FUpdate)
00111 FParent -> getParameterEyePosition() -> setPasAvancement(val);
00112 }