DisplayFlagWidget.h

Go to the documentation of this file.
00001 /******************************************************************************
00002  *       SOFA, Simulation Open-Framework Architecture, version 1.0 beta 3      *
00003  *                (c) 2006-2008 MGH, INRIA, USTL, UJF, CNRS                    *
00004  *                                                                             *
00005  * This program is free software; you can redistribute it and/or modify it     *
00006  * under the terms of the GNU General Public License as published by the Free  *
00007  * Software Foundation; either version 2 of the License, or (at your option)   *
00008  * any later version.                                                          *
00009  *                                                                             *
00010  * This program is distributed in the hope that it will be useful, but WITHOUT *
00011  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or       *
00012  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for    *
00013  * more details.                                                               *
00014  *                                                                             *
00015  * You should have received a copy of the GNU General Public License along     *
00016  * with this program; if not, write to the Free Software Foundation, Inc., 51  *
00017  * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.                   *
00018  *******************************************************************************
00019  *                            SOFA :: Applications                             *
00020  *                                                                             *
00021  * Authors: M. Adam, J. Allard, B. Andre, P-J. Bensoussan, S. Cotin, C. Duriez,*
00022  * H. Delingette, F. Falipou, F. Faure, S. Fonteneau, L. Heigeas, C. Mendoza,  *
00023  * M. Nesme, P. Neumann, J-P. de la Plata Alcade, F. Poyer and F. Roy          *
00024  *                                                                             *
00025  * Contact information: contact@sofa-framework.org                             *
00026  ******************************************************************************/
00027 #ifndef DISPLAYFLAGWIDGET_H
00028 #define DISPLAYFLAGWIDGET_H
00029 
00030 #include <iostream>
00031 #include <map>
00032 #include <vector>
00033 
00034 #ifdef SOFA_QT4
00035 #include <Q3ListView>
00036 #include <Q3CheckListItem>
00037 #include <Q3ListViewItem>
00038 #include <Q3Header>
00039 #include <QMouseEvent>
00040 #include <Q3Frame>
00041 #else
00042 #include <qlistview.h>
00043 #include <qheader.h>
00044 typedef QListView Q3ListView;
00045 typedef QCheckListItem Q3CheckListItem;
00046 typedef QListViewItem Q3ListViewItem;
00047 #endif
00048 namespace sofa
00049 {
00050 
00051   namespace gui
00052   {
00053 
00054     namespace qt
00055     {
00056 
00057       class DisplayFlagWidget : public Q3ListView
00058       {
00059     Q_OBJECT
00060       public:       
00061     enum {VISUAL, BEHAVIOR, COLLISION, BOUNDING, MAPPING, MECHANICALMAPPING, FORCEFIELD, INTERACTION, WIREFRAME, NORMALS, ALL};
00062 
00063     DisplayFlagWidget(QWidget* parent, const char* name= 0, Qt::WFlags f= 0 );
00064 
00065     bool getFlag(int idx){return itemShowFlag[idx]->isOn();}
00066     void setFlag(int idx, bool value){itemShowFlag[idx]->setOn(value);}
00067       signals:
00068     void change(int,bool);
00069     void clicked();
00070 
00071       protected:
00072     virtual void contentsMousePressEvent ( QMouseEvent * e );
00073     
00074     void findChildren(Q3CheckListItem *, std::vector<Q3CheckListItem* > &children);
00075 
00076 
00077     Q3CheckListItem* itemShowFlag[10];
00078     std::map<  Q3CheckListItem*, int > mapFlag;
00079       };
00080 
00081     } // namespace qt
00082 
00083   } // namespace gui
00084 
00085 } // namespace sofa
00086 
00087 #endif

Generated on Sun Nov 23 02:28:35 2008 for Sofa by  doxygen 1.5.7.1