![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtDeMainWindow.h,v $ $Revision: 1.15 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 #pragma once 00013 #include <vrvCore/vrvCore.h> 00014 #include <vrvUtil/DtVirtualBaseClass.h> 00015 00016 #include <string> 00017 00018 namespace makVrv 00019 { 00020 class DtDe; 00021 00024 class DT_DLL_VRVCORE DtDeMainWindow 00025 { 00026 00027 protected: 00028 00030 DtDeMainWindow(DtDe& de); 00031 00032 public: 00034 virtual ~DtDeMainWindow(); 00035 00037 virtual void setApplicationTitle(const std::string& appName) = 0; 00038 00040 virtual std::string applicationTitle() const = 0; 00041 00043 virtual void setApplicationIcon(const std::string& iconName) = 0; 00044 00047 virtual void setShowQuitDialogOnClose(bool) = 0; 00048 00050 virtual bool startUpMaximized() const; 00051 00053 virtual void destroyWindow() = 0; 00054 00056 virtual void quit() = 0; 00057 00058 inline DtDe& de() 00059 { 00060 return myDe; 00061 } 00062 00063 protected: 00064 00065 DtDe& myDe; 00066 00067 }; 00068 00071 class DT_DLL_VRVCORE DtDeMainWindowProvider : public DtVirtualBaseClass 00072 { 00073 00074 public: 00075 00077 DtDeMainWindowProvider(DtDe& de); 00078 00080 virtual ~DtDeMainWindowProvider(); 00081 00084 static DtDeMainWindowProvider& instance(DtDe& de); 00085 00087 static void registerInstance(DtDe& de, DtDeMainWindowProvider* instance); 00088 00091 DtDeMainWindow& igMainWindow(); 00092 00093 protected: 00094 00096 virtual DtDeMainWindow* createMainWindow(DtDe& de) = 0; 00097 00098 protected: 00099 00100 DtDe& myDe; 00101 DtDeMainWindow* myMainWindow; 00102 bool myDestroyMainWindowFlag; 00103 00104 }; 00105 }