![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: $ $Revision: $ $State: $ 00007 ******************************************************************************/ 00008 00012 00013 #pragma once 00014 #include <vrvCore/vrvCore.h> 00015 #include <vrvCore/DtPageConfiguration.h> 00016 #include <boost/signal.hpp> 00017 #include <string> 00018 #include <vector> 00019 00020 namespace makVrv 00021 { 00022 class DtDe; 00023 00027 class DT_DLL_VRVCORE DtPageCollection 00028 { 00029 public: 00030 typedef std::vector<std::string> PageClassList; 00031 00034 DtPageCollection(DtDe& de, const std::string& collectionClassName); 00035 00038 virtual ~DtPageCollection(); 00039 00041 const std::string& collectionClassName() const; 00042 00044 const PageClassList& pageClasses() const; 00045 00051 void show(const std::string& page = std::string("")); 00052 00054 void hide(); 00055 00057 bool visible() const; 00058 00061 virtual int tabIndex() const; 00062 00064 virtual bool isTabbed() const; 00065 00067 DtPageConfiguration::PageCollectionLocation location() const; 00068 00070 void setLocation(DtPageConfiguration::PageCollectionLocation location); 00071 00073 DtPageConfiguration::PageColectionGeometry& floatingGeometry(); 00074 00076 void setFloatingGeometry( DtPageConfiguration::PageColectionGeometry geometry ); 00077 00079 void setFloatingGeometry(int px, int py, int width, int height); 00080 00082 virtual DtPageConfiguration::PageColectionGeometry dockedGeometry(); 00083 00085 void setDockedGeometry( DtPageConfiguration::PageColectionGeometry geometry ); 00086 00088 void setDockedGeometry(int px, int py, int width, int height); 00089 00090 boost::signal<void ()> signal_shown; 00091 boost::signal<void ()> signal_hidden; 00092 boost::signal<void (const std::string&)> signal_pageSelected; 00093 00094 protected: 00095 00097 virtual void changeVisibility(bool newVisibility) = 0; 00098 00100 virtual void changeLocation(DtPageConfiguration::PageCollectionLocation) = 0; 00101 00103 virtual void changeFloatingGeometry(int px, int py, int width, int height) = 0; 00104 00106 virtual void changeFloatingGeometry(DtPageConfiguration::PageColectionGeometry geometry) = 0; 00107 00109 virtual void changeDockedGeometry(int px, int py, int width, int height) = 0; 00110 00112 virtual void changeDockedGeometry(DtPageConfiguration::PageColectionGeometry geometry) = 0; 00113 00115 virtual void selectPage(const std::string& pageClassName) = 0; 00116 00118 void addPageClass(const std::string& pageClassName); 00119 00121 void removePageClass(const std::string& pageClassName); 00122 00123 protected: 00124 00125 DtDe& myDe; 00126 std::string myClassName; 00127 bool myVisibility; 00128 PageClassList myPageClasses; 00129 DtPageConfiguration::PageCollectionLocation myLocation; 00130 DtPageConfiguration::PageColectionGeometry myFloatingGeometry; 00131 DtPageConfiguration::PageColectionGeometry myDockedGeometry; 00132 }; 00133 } 00134