cmtkQtScrollRenderView.h

Go to the documentation of this file.
00001 /*
00002 //
00003 //  Copyright 1997-2009 Torsten Rohlfing
00004 //  Copyright 2004-2009 SRI International
00005 //
00006 //  This file is part of the Computational Morphometry Toolkit.
00007 //
00008 //  http://www.nitrc.org/projects/cmtk/
00009 //
00010 //  The Computational Morphometry Toolkit is free software: you can
00011 //  redistribute it and/or modify it under the terms of the GNU General Public
00012 //  License as published by the Free Software Foundation, either version 3 of
00013 //  the License, or (at your option) any later version.
00014 //
00015 //  The Computational Morphometry Toolkit is distributed in the hope that it
00016 //  will be useful, but WITHOUT ANY WARRANTY; without even the implied
00017 //  warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018 //  GNU General Public License for more details.
00019 //
00020 //  You should have received a copy of the GNU General Public License along
00021 //  with the Computational Morphometry Toolkit.  If not, see
00022 //  <http://www.gnu.org/licenses/>.
00023 //
00024 //  $Revision: 2398 $
00025 //
00026 //  $LastChangedDate: 2010-10-05 14:54:37 -0700 (Tue, 05 Oct 2010) $
00027 //
00028 //  $LastChangedBy: torstenrohlfing $
00029 //
00030 */
00031 
00032 #ifndef __cmtkQtScrollRenderView_h_included_
00033 #define __cmtkQtScrollRenderView_h_included_
00034 
00035 #include <cmtkconfig.h>
00036 
00037 #include <qobject.h>
00038 #include <qscrollarea.h>
00039 #include <qslider.h>
00040 #include <qlabel.h>
00041 
00042 #include <QGroupBox>
00043 
00044 #include <Qt/cmtkQtRenderImageRGB.h>
00045 #include <Pipeline/cmtkImageRGB.h>
00046 
00047 namespace
00048 cmtk
00049 {
00050 
00053 
00055 class QtScrollRenderView :
00057   public QGroupBox
00058 {
00059   Q_OBJECT
00060 
00061 public:
00065   QtScrollRenderView( QWidget *parentWidget, const QString &title = QString::null );
00066 
00068   virtual ~QtScrollRenderView();
00069 
00071   void ShowSlider() { this->m_SliderGroupBox->show(); }
00072 
00074   void HideSlider() { this->m_SliderGroupBox->hide(); }
00075 
00077   void SetSliderLabelL( const QString& left )
00078   {
00079     if ( this->m_LabelL )
00080       {
00081       if ( left.isNull() )
00082         {
00083         this->m_LabelL->hide();
00084         }
00085       else
00086         {
00087         this->m_LabelL->setText( left );
00088         this->m_LabelL->show();
00089         }
00090       }
00091   }
00092 
00094   void SetSliderLabelR( const QString& right )
00095   {
00096     if ( this->m_LabelR )
00097       {
00098       if ( right.isNull() )
00099         {
00100         this->m_LabelR->hide();
00101         }
00102       else
00103         {
00104         this->m_LabelR->setText( right );
00105         this->m_LabelR->show();
00106         }
00107       }
00108   }
00109 
00111   QtRenderImageRGB* GetRenderImage() { return RenderImage; }
00112 
00114   const QtRenderImageRGB* GetRenderImage() const { return RenderImage; }
00115 
00116 signals:
00118   void indexChanged( int );
00119 
00121   void signalMousePressed( Qt::MouseButton button, int x, int y );
00122 
00124   void signalMouse3D( Qt::MouseButton button, const Vector3D& v );
00125 
00126 public slots:
00128   void slotConnectImage( ImageRGB *const image );
00129 
00131   void slotRender();
00132   
00134   void slotSetNumberOfSlices( unsigned int nSlices );
00135 
00137   void slotSetSlice( unsigned int slice );
00138 
00139 public:
00141   unsigned int GetSlice() const { return ImageIndexSlider->value(); }
00142 
00143 private:
00145   QScrollArea* ScrollView;
00146 
00148   QtRenderImageRGB* RenderImage;
00149 
00151   QSlider* ImageIndexSlider;
00152 
00154   QLabel* m_LabelL;
00155 
00157   QLabel* m_LabelR;
00158 
00160   QGroupBox* m_SliderGroupBox;
00161 };
00162 
00164 
00165 } // namespace cmtk
00166 
00167 #endif // #ifndef __cmtkQtScrollRenderView_h_included_
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines