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 "creation-polygone.qt.hh"
00025 #include "window.qt.hh"
00026 #include "HtmlEntities.hh"
00027 #include "SpaceWidget.qt.hh"
00028
00029 #include <QtGui/QLabel>
00030
00031
00032
00033
00034
00035
00036
00037
00038 CreationPolygone :: CreationPolygone ( Window * parent ,
00039 GMap3d :: CControlerGMap * controler )
00040 :
00041 CreationObjet ( parent ,
00042 HTML::decode("Création Polygone Régulier" ),
00043 controler ),
00044 FModifie ( true )
00045 {
00046
00047
00048 FAffNom = new QLabel ( *HTML::decode(" Nombre d'arêtes : ") , this ) ;
00049
00050 FSaisieNom = new QSpinBox ( this ) ;
00051 FSaisieNom -> setMinimum ( 3 );
00052 FSaisieNom -> setMaximum ( 999 );
00053 FSaisieNom -> setValue ( 6 ) ;
00054 FSaisieNom -> setAccelerated(true);
00055
00056 FAffLon =
00057 new QLabel ( *HTML::decode("Longueur des arêtes : ") , this ) ;
00058 FSaisieLon = new FloatSpinBox ( 0.2 , 0 , 1000 , 3 , 0.5 ) ;
00059
00060 addWidget(FAffNom);
00061 addWidget(FSaisieNom);
00062 addWidget(new SpaceWidget(SPACE_PIX_SIZE,1));
00063 addWidget(FAffLon);
00064 addWidget(FSaisieLon);
00065 addWidget(new SpaceWidget(SPACE_PIX_SIZE,1));
00066
00067
00068
00069 FChoix = new BoutonsCreation ( this ) ;
00070
00071
00072 FPosit = new BoitePositionnement ( this , parent , OBJECT_POLYGON ) ;
00073
00074 update ( ) ;
00075 repaint ( ) ;
00076
00077 QObject::connect ( FSaisieNom , SIGNAL ( valueChanged ( int ) ) , this,
00078 SLOT ( callbackEdgesNumber() ) ) ;
00079
00080 QObject::connect ( FSaisieLon , SIGNAL ( valueChanged ( double ) ) , this,
00081 SLOT ( callbackEdgesLength() ) ) ;
00082 }
00083
00084
00085
00086
00087 CreationPolygone :: ~CreationPolygone ( ) { }
00088
00089 void CreationPolygone :: update()
00090 {
00091 FModifie = false ;
00092 CreationObjet :: update ( ) ;
00093 FSaisieLon -> setValuef ( FControler -> getPolygonEdgesLength ( ) ) ;
00094 FPosit -> update ( ) ;
00095 FModifie = true ;
00096 }
00097
00098
00099
00100
00101 void CreationPolygone :: callbackEdgesNumber()
00102 {
00103 if ( FModifie )
00104 setEdgesNumber(getEdgesNumber());
00105 }
00106
00107 void CreationPolygone:: callbackEdgesLength()
00108 {
00109 if ( FModifie )
00110 setEdgesLength(getEdgesLength());
00111 }
00112
00113
00114
00115 int CreationPolygone :: getEdgesNumber() const
00116 {
00117 return FSaisieNom -> value ();
00118 }
00119
00120 TCoordinate CreationPolygone :: getEdgesLength() const
00121 {
00122 return FSaisieLon -> valuef ();
00123 }
00124
00125
00126
00127 void CreationPolygone :: setEdgesNumber(int n)
00128 {
00129 FControler -> setPolygonEdgesNumber ( n ) ;
00130 update ( ) ;
00131 repaint ( ) ;
00132 }
00133
00134 void CreationPolygone :: setEdgesLength(TCoordinate l)
00135 {
00136 FControler -> setPolygonEdgesLength ( l ) ;
00137
00138 update ( ) ;
00139 repaint ( ) ;
00140 }