00001 // @(#)root/eve:$Id: TEveWindowManager.h 29324 2009-07-03 11:27:35Z matevz $ 00002 // Author: Matevz Tadel 2007 00003 00004 /************************************************************************* 00005 * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. * 00006 * All rights reserved. * 00007 * * 00008 * For the licensing terms see $ROOTSYS/LICENSE. * 00009 * For the list of contributors see $ROOTSYS/README/CREDITS. * 00010 *************************************************************************/ 00011 00012 #ifndef ROOT_TEveWindowManager 00013 #define ROOT_TEveWindowManager 00014 00015 #include "TEveElement.h" 00016 #include "TQObject.h" 00017 00018 class TEveWindow; 00019 class TEveWindowSlot; 00020 00021 class TEveWindowManager : public TEveElementList, 00022 public TQObject 00023 { 00024 private: 00025 TEveWindowManager(const TEveWindowManager&); // Not implemented 00026 TEveWindowManager& operator=(const TEveWindowManager&); // Not implemented 00027 00028 protected: 00029 TEveWindow *fCurrentWindow; 00030 TEveWindow *fDefaultContainer; 00031 00032 void DestroyWindowRecursively(TEveWindow* window); 00033 00034 public: 00035 TEveWindowManager(const char* n="TEveWindowManager", const char* t=""); 00036 virtual ~TEveWindowManager(); 00037 00038 void SelectWindow(TEveWindow* w); 00039 void DeleteWindow(TEveWindow* w); 00040 00041 void WindowDocked(TEveWindow* window); // *SIGNAL* 00042 void WindowUndocked (TEveWindow* window); // *SIGNAL* 00043 void WindowSelected(TEveWindow* window); // *SIGNAL* 00044 void WindowDeleted (TEveWindow* window); // *SIGNAL* 00045 00046 TEveWindow* GetCurrentWindow() const { return fCurrentWindow; } 00047 Bool_t IsCurrentWindow(const TEveWindow* w) const { return w == fCurrentWindow; } 00048 TEveWindowSlot* GetCurrentWindowAsSlot() const; 00049 00050 TEveWindow* GetDefaultContainer() const { return fDefaultContainer; } 00051 Bool_t HasDefaultContainer() const { return fDefaultContainer != 0; } 00052 void SetDefaultContainer(TEveWindow* w); 00053 00054 void DestroyWindows(); 00055 00056 // Global frame decoration control. 00057 00058 void HideAllEveDecorations(); 00059 void ShowNormalEveDecorations(); 00060 void SetShowTitleBars(Bool_t state); 00061 00062 ClassDef(TEveWindowManager, 0); // Manager for EVE windows. 00063 }; 00064 00065 #endif