CMS 3D CMS Logo

Ig3DStringControl.cc

Go to the documentation of this file.
00001 //<<<<<< INCLUDES                                                       >>>>>>
00002 
00003 #include "Iguana/GLBrowsers/interface/Ig3DStringControl.h"
00004 #include "Iguana/Studio/interface/IgQtLineEdit.h"
00005 #include "Iguana/GLBrowsers/interface/IgControlCategory.h"
00006 #include <classlib/utils/DebugAids.h>
00007 #include <qlineedit.h>
00008 #include <qlabel.h>
00009 
00010 //<<<<<< PRIVATE DEFINES                                                >>>>>>
00011 //<<<<<< PRIVATE CONSTANTS                                              >>>>>>
00012 //<<<<<< PRIVATE TYPES                                                  >>>>>>
00013 //<<<<<< PRIVATE VARIABLE DEFINITIONS                                   >>>>>>
00014 //<<<<<< PUBLIC VARIABLE DEFINITIONS                                    >>>>>>
00015 //<<<<<< CLASS STRUCTURE INITIALIZATION                                 >>>>>>
00016 //<<<<<< PRIVATE FUNCTION DEFINITIONS                                   >>>>>>
00017 //<<<<<< PUBLIC FUNCTION DEFINITIONS                                    >>>>>>
00018 //<<<<<< MEMBER FUNCTION DEFINITIONS                                    >>>>>>
00019 
00020 Ig3DStringControl::Ig3DStringControl (IgControlCategory *pane, QString label)
00021     : Ig3DFieldControl (pane)
00022 {
00023     ASSERT (pane);
00024     ASSERT (pane->bodyArea ());
00025     ASSERT (pane->bodyLayout ());
00026 
00027     QWidget     *area = pane->bodyArea ();
00028     int         row = gridRows ();
00029 
00030     ASSERT (row >= 0);
00031 
00032     // Add a new row to the grid, label on the left and the value on the right
00033     QWidget     *vlab = makeIndentedLabel (label, area);
00034     addGridWidget (vlab, row, 0);
00035 
00036     // Add a new row to the grid, value on the left and the label on the right
00037     m_value = new IgQtLineEdit (area);
00038     addGridWidget (makeSpacedBox (area, m_value), row, 1);
00039 
00040     connect (m_value, SIGNAL (valueChanged (const QString&)),
00041              this,   SLOT (textChanged (const QString&)));
00042     connect (this,    SIGNAL (editable   (bool)), 
00043              m_value, SLOT   (setEnabled (bool)));
00044     connect (this,      SIGNAL (editable    (bool)), 
00045              vlab,      SLOT   (setEnabled  (bool)));
00046 }
00047 
00049 SoSFString *
00050 Ig3DStringControl::field (void) const
00051 { return static_cast<SoSFString *> (Ig3DFieldControl::field ()); }
00052 
00053 void
00054 Ig3DStringControl::setField (SoSFString *field)
00055 { Ig3DFieldControl::setField (field); }
00056 
00057 SbString
00058 Ig3DStringControl::fieldValue (void) const
00059 { ASSERT (field ()); return field ()->getValue (); }
00060 
00061 IgQtLineEdit*
00062 Ig3DStringControl::widget (void) const
00063 { return m_value; }
00064 
00066 SbString
00067 Ig3DStringControl::value (void) const
00068 { return SbString (m_value->text ().latin1 ()); }
00069 
00070 void
00071 Ig3DStringControl::setValue (const SbString& newval)
00072 { m_value->setText (newval.getString ()); setDirty (); }
00073 
00074 void
00075 Ig3DStringControl::textChanged (const QString& /*newval*/)
00076 { setDirty (); }
00077 
00078 void
00079 Ig3DStringControl::updateValue (void)
00080 { setValue (fieldValue ()); }
00081 
00082 void
00083 Ig3DStringControl::applyValue (void)
00084 { field ()->setValue (value ()); }

Generated on Tue Jun 9 17:38:37 2009 for CMSSW by  doxygen 1.5.4