![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2007 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: thumbnailView.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DTTHUMBNAILVIEW_H_ 00013 #define DTTHUMBNAILVIEW_H_ 00014 00015 #include <QtGui/QScrollArea> 00016 00017 class QPainter; 00018 00019 #include "entityEditorImpl/entityEditorImplDefines.h" 00020 00021 class DT_DLL_entityeditorimpl DtThumbnail : public QWidget 00022 { 00023 public: 00024 DtThumbnail(QWidget* parent); 00025 00026 void setTitle(const QString&); 00027 const QString& title() const; 00028 00029 virtual void setIcon(const QPixmap&); 00030 const QPixmap& icon() const; 00031 00032 void setIconSize(const QSize&); 00033 const QSize& iconSize() const; 00034 00035 virtual QSize minimumSizeHint() const; 00036 00037 virtual void draw(QPainter&) const; 00038 00039 void setSelected(bool); 00040 bool selected() const; 00041 00042 protected: 00043 QPixmap myIcon; 00044 QString myTitle; 00045 QSize myIconSize; 00046 bool mySelected; 00047 }; 00048 00049 class DT_DLL_entityeditorimpl DtThumbnailView : public QScrollArea 00050 { 00051 00052 Q_OBJECT 00053 00054 public: 00055 00057 DtThumbnailView(QWidget* parent = NULL); 00058 00060 virtual ~DtThumbnailView(); 00061 00062 void setIconSize(const QSize&); 00063 const QSize& iconSize() const; 00064 00065 virtual DtThumbnail* addIcon(const QPixmap&, const QString&); 00066 00067 virtual void clear(); 00068 00069 DtThumbnail* selected(); 00070 virtual void setSelected(DtThumbnail*); 00071 00072 int thumbnailCount() const; 00073 DtThumbnail* thumbnail(int); 00074 00075 int selectedIndex() const; 00076 virtual void setSelectedIndex(int); 00077 00078 protected: 00079 virtual void setViewportSize(); 00080 virtual void fontChange(const QFont& f); 00081 virtual QSize canvasSize() const; 00082 virtual void paintEvent(QPaintEvent*); 00083 virtual QSize minimumSizeHint() const; 00084 virtual QSize sizeHint() const; 00085 virtual void mousePressEvent(QMouseEvent* e); 00086 virtual void mouseDoubleClickEvent(QMouseEvent* e); 00087 virtual DtThumbnail* createThumbnail(QWidget* parent); 00088 00089 signals: 00090 void thumbnailSelected(DtThumbnail*); 00091 void thumbnailDoubleClicked(DtThumbnail*); 00092 00093 protected: 00094 QSize myIconSize; 00095 QList<DtThumbnail*> myThumbnails; 00096 DtThumbnail* mySelected; 00097 }; 00098 00099 inline DtThumbnail* DtThumbnailView::selected() 00100 { 00101 return mySelected; 00102 } 00103 00104 inline void DtThumbnailView::setIconSize(const QSize& s) 00105 { 00106 myIconSize = s; 00107 00108 QList<DtThumbnail*>::const_iterator iter = myThumbnails.begin(); 00109 00110 while (iter != myThumbnails.end()) 00111 { 00112 (*iter)->setIconSize(s); 00113 ++iter; 00114 } 00115 00116 setViewportSize(); 00117 } 00118 00119 inline int DtThumbnailView::thumbnailCount() const 00120 { 00121 return myThumbnails.count(); 00122 } 00123 00124 inline int DtThumbnailView::selectedIndex() const 00125 { 00126 if (mySelected) 00127 { 00128 return myThumbnails.indexOf(mySelected); 00129 } 00130 else 00131 { 00132 return -1; 00133 } 00134 } 00135 00136 inline DtThumbnail* DtThumbnailView::thumbnail(int i) 00137 { 00138 return myThumbnails.at(i); 00139 } 00140 00141 inline const QSize& DtThumbnailView::iconSize() const 00142 { 00143 return myIconSize; 00144 } 00145 00146 inline const QSize& DtThumbnail::iconSize() const 00147 { 00148 return myIconSize; 00149 } 00150 00151 inline void DtThumbnail::setTitle(const QString& t) 00152 { 00153 myTitle = t; 00154 } 00155 00156 inline const QString& DtThumbnail::title() const 00157 { 00158 return myTitle; 00159 } 00160 00161 inline const QPixmap& DtThumbnail::icon() const 00162 { 00163 return myIcon; 00164 } 00165 00166 inline void DtThumbnail::setSelected(bool b) 00167 { 00168 mySelected = b; 00169 } 00170 00171 inline bool DtThumbnail::selected() const 00172 { 00173 return mySelected; 00174 } 00175 00176 #endif 00177