ImageDisplayLayout.qt.H

Go to the documentation of this file.
00001 /*!@file Qt4/ImageDisplayLayout.qt.H */
00002 
00003 // //////////////////////////////////////////////////////////////////// //
00004 // The iLab Neuromorphic Vision C++ Toolkit - Copyright (C) 2000-2005   //
00005 // by the University of Southern California (USC) and the iLab at USC.  //
00006 // See http://iLab.usc.edu for information about this project.          //
00007 // //////////////////////////////////////////////////////////////////// //
00008 // Major portions of the iLab Neuromorphic Vision Toolkit are protected //
00009 // under the U.S. patent ``Computation of Intrinsic Perceptual Saliency //
00010 // in Visual Environments, and Applications'' by Christof Koch and      //
00011 // Laurent Itti, California Institute of Technology, 2001 (patent       //
00012 // pending; application number 09/912,225 filed July 23, 2001; see      //
00013 // http://pair.uspto.gov/cgi-bin/final/home.pl for current status).     //
00014 // //////////////////////////////////////////////////////////////////// //
00015 // This file is part of the iLab Neuromorphic Vision C++ Toolkit.       //
00016 //                                                                      //
00017 // The iLab Neuromorphic Vision C++ Toolkit is free software; you can   //
00018 // redistribute it and/or modify it under the terms of the GNU General  //
00019 // Public License as published by the Free Software Foundation; either  //
00020 // version 2 of the License, or (at your option) any later version.     //
00021 //                                                                      //
00022 // The iLab Neuromorphic Vision C++ Toolkit is distributed in the hope  //
00023 // that it will be useful, but WITHOUT ANY WARRANTY; without even the   //
00024 // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      //
00025 // PURPOSE.  See the GNU General Public License for more details.       //
00026 //                                                                      //
00027 // You should have received a copy of the GNU General Public License    //
00028 // along with the iLab Neuromorphic Vision C++ Toolkit; if not, write   //
00029 // to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,   //
00030 // Boston, MA 02111-1307 USA.                                           //
00031 // //////////////////////////////////////////////////////////////////// //
00032 //
00033 // Primary maintainer for this file: Pezhman Firoozfam (pezhman.firoozfam@usc.edu)
00034 // $HeadURL$ svn://isvn.usc.edu/software/invt/trunk/saliency/src/Qt4/ImageDisplayLayout.qt.H $
00035 //
00036 
00037 #ifndef QT4_IMAGEDISPLAYLAYOUT_QT_H_DEFINED
00038 #define QT4_IMAGEDISPLAYLAYOUT_QT_H_DEFINED
00039 
00040 #include <map>
00041 #include <string>
00042 
00043 #include <QtCore/QObject>
00044 #include <QtGui/QWidget>
00045 #include <QtGui/qgridlayout.h>
00046 
00047 #include "Image/Image.H"
00048 #include "Image/PixelsTypes.H"
00049 
00050 class ImageView;
00051 
00052 //! Create image display layout using Qt
00053 /*! Layout sctring specifies how how to layout the ImageView objects on widget.
00054     ImageView objects can be accessed by the name to display images and superimposed
00055     vectors.
00056     e.g. N1           => creates a single ImageView object:  [N1]
00057          N1,N2        => creates a single row containing two ImageView objects: [N1 | N2]
00058          N1;N2        => creates a single column containing two ImageView objects: [N1
00059                                                                                     N2]
00060          N1,N2;N3,N4  => creates 2x2 grid layout with four ImageView objects: [N1 | N2
00061                                                                                N3 | N4]
00062          N1,N2;N3,(X1;X2)
00063                       => creates a 2x2 grid layout with an embedded 2x1 grid as last element:
00064                                                                               [N1 | N2
00065                                                                                N3 | X1
00066                                                                                   | X2]
00067                         (N3 has the same height as (X1;X2) element)
00068 */
00069 class ImageDisplayLayout : public QWidget
00070 {
00071   Q_OBJECT
00072 
00073 public:
00074   ImageDisplayLayout(QWidget *parent = 0, const std::string& layout = "");
00075   virtual ~ImageDisplayLayout();
00076 
00077   ImageView* view(const char* name);
00078   void setImage(const char* name, Image< PixRGB<byte> > img);
00079 
00080 private:
00081   QGridLayout *CreateLayout(std::string::const_iterator begin, std::string::const_iterator end);
00082 
00083 private:
00084   std::map<std::string, ImageView*> itsViews;
00085 };
00086 
00087 // ######################################################################
00088 /* So things look consistent in everyone's emacs... */
00089 /* Local Variables: */
00090 /* mode: c++ */
00091 /* indent-tabs-mode: nil */
00092 /* End: */
00093 
00094 #endif // QT4_IMAGEDISPLAYLAYOUT_QT_H_DEFINED
Generated on Sun May 8 08:05:34 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3