![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2009 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: DtVrfHierarchyPage.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00013 00014 #pragma once 00015 00016 #include <vrvUtil/signalslib.h> 00017 #include <vrfGuiCoreQt/vrfGuiCoreQt.h> 00018 #include <vrfGuiCoreQt/DtVrfObjectListPanelPageCreator.h> 00019 #include <vrfGuiCoreQt/DtVrfObjectListViewItem.h> 00020 #include <vrvCoreQt/DtPage.h> 00021 #include <QtGui/QPushButton> 00022 #include <QtGui/QPixmap> 00023 00024 #include <boost/signal.hpp> 00025 00026 class QVBoxLayout; 00027 class DtTreeWidget; 00028 class QCheckBox; 00029 00030 namespace makVrf 00031 { 00032 class DtVrfHierarchyPageLogic; 00033 class DtVrfTreeWidget; 00034 00035 class DT_DLL_VRFGUICOREQT DtScrollButtonArea : public QWidget 00036 { 00037 public: 00038 DtScrollButtonArea(QWidget* parent); 00039 00040 virtual void scrollContentsBy(int x); 00041 00042 QWidget* widget() { return myCanvas; }; 00043 00044 boost::signal<void (const QStringList&)> signal_deparent; 00045 00046 protected: 00047 virtual void paintEvent(QPaintEvent* e); 00048 virtual void resizeEvent(QResizeEvent* e); 00049 virtual void dragEnterEvent(QDragEnterEvent *event); 00050 virtual void dropEvent(QDropEvent *e); 00051 00052 protected: 00053 QWidget* myCanvas; 00054 }; 00055 00056 00059 class DT_DLL_VRFGUICOREQT DtExpandCollapseButton : public QPushButton 00060 { 00061 Q_OBJECT 00062 00063 public: 00064 00065 DtExpandCollapseButton(QWidget *parent = NULL); 00066 virtual ~DtExpandCollapseButton(); 00067 00068 virtual void setExpandPixmap(QPixmap pix); 00069 virtual void setCollapsePixmap(QPixmap pix); 00070 virtual void setLevel(int level); 00071 virtual int level() const; 00072 virtual void setIsExpand(bool value); 00073 virtual bool isExpand() const; 00074 00075 signals: 00076 00077 void expandLevelClicked(unsigned int); 00078 void collapseLevelClicked(unsigned int); 00079 00080 protected slots: 00081 00082 virtual void buttonClicked(); 00083 00084 protected: 00085 00086 virtual void paintEvent(QPaintEvent*); 00087 00088 protected: 00089 QPixmap myExpandPixmap; 00090 QPixmap myCollapsePixmap; 00091 bool myIsExpand; 00092 int myLevel; 00093 }; 00094 00095 class DT_DLL_VRFGUICOREQT DtVrfHierarchyPage : public makVrv::DtPage 00096 { 00097 Q_OBJECT 00098 00099 public: 00100 00102 virtual ~DtVrfHierarchyPage(); 00103 00104 DtVrfTreeWidget* echelon(); 00105 00108 virtual void selectObjects(const std::vector<DtVrfObjectListViewItem::DtVrfObjectState>); 00109 00111 virtual std::vector<DtVrfObjectListViewItem::DtVrfObjectState> selectedObjects() const; 00112 00113 virtual DtExpandCollapseButton* createExpandCollapseButton(unsigned int, int numButtons); 00114 00115 protected slots: 00116 00118 virtual void onRightClickOnItem(QTreeWidgetItem*, QMouseEvent*, int col); 00119 00121 virtual void onItemSelected(); 00122 00123 virtual void onScrollRangeChanged(int); 00124 00125 virtual void onViewItemExpanded(QTreeWidgetItem*); 00126 00127 virtual void onViewItemCollapsed(QTreeWidgetItem*); 00128 00129 virtual void onExpandToLevel(unsigned int); 00130 00131 virtual void onCollapseToLevel(unsigned int); 00132 00133 virtual DtVrfTreeWidget* createHierarchyList() = 0; 00134 00135 protected: 00136 00138 DtVrfHierarchyPage( makVrv::DtDe& de, QWidget* parent = 0, Qt::WindowFlags flags = 0); 00139 00140 virtual void createAndInitializeLogic(); 00141 virtual DtVrfHierarchyPageLogic* createLogic() = 0; 00142 00143 virtual void setupUi(QWidget* p); 00144 virtual DtScrollButtonArea* createCollapseButtonConainer(QWidget* parent); 00145 00146 virtual void slot_onDeParent(const QStringList&); 00147 virtual void slot_onReParent(const QStringList& children, makVrv::DtUniqueID parentId); 00148 00149 protected: 00150 DtVrfHierarchyPageLogic* myLogic; 00151 00152 public: 00153 QVBoxLayout* myMasterLayout; 00154 DtVrfTreeWidget* myEchelon; 00155 DtScrollButtonArea* myCollapseButtonWidget; 00156 QPixmap myPlusPixmap; 00157 QPixmap myMinusPixmap; 00158 QCheckBox* myShowEchelonId; 00159 }; 00160 }