// @(#)root/eve:$Id$
// Author: Matevz Tadel 2007

/*************************************************************************
 * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TEveWindowManager
#define ROOT_TEveWindowManager

#include "TEveElement.h"
#include "TQObject.h"

class TEveWindow;
class TEveWindowSlot;

class TEveWindowManager : public TEveElementList,
                          public TQObject
{
private:
   TEveWindowManager(const TEveWindowManager&);            // Not implemented
   TEveWindowManager& operator=(const TEveWindowManager&); // Not implemented

protected:
   TEveWindow   *fCurrentWindow;
   TEveWindow   *fDefaultContainer;

   void DestroyWindowRecursively(TEveWindow* window);

public:
   TEveWindowManager(const char* n="TEveWindowManager", const char* t="");
   virtual ~TEveWindowManager();

   void SelectWindow(TEveWindow* w);
   void DeleteWindow(TEveWindow* w);

   void WindowDocked(TEveWindow* window); // *SIGNAL*
   void WindowUndocked (TEveWindow* window); // *SIGNAL*
   void WindowSelected(TEveWindow* window); // *SIGNAL*
   void WindowDeleted (TEveWindow* window); // *SIGNAL*

   TEveWindow*     GetCurrentWindow() const { return fCurrentWindow; }
   Bool_t          IsCurrentWindow(const TEveWindow* w) const { return w == fCurrentWindow; }
   TEveWindowSlot* GetCurrentWindowAsSlot() const;

   TEveWindow*     GetDefaultContainer() const { return fDefaultContainer; }
   Bool_t          HasDefaultContainer() const { return fDefaultContainer != 0; }
   void            SetDefaultContainer(TEveWindow* w);

   void            DestroyWindows();

   // Global frame decoration control.

   void HideAllEveDecorations();
   void ShowNormalEveDecorations();
   void SetShowTitleBars(Bool_t state);

   ClassDef(TEveWindowManager, 0); // Manager for EVE windows.
};

#endif
 TEveWindowManager.h:1
 TEveWindowManager.h:2
 TEveWindowManager.h:3
 TEveWindowManager.h:4
 TEveWindowManager.h:5
 TEveWindowManager.h:6
 TEveWindowManager.h:7
 TEveWindowManager.h:8
 TEveWindowManager.h:9
 TEveWindowManager.h:10
 TEveWindowManager.h:11
 TEveWindowManager.h:12
 TEveWindowManager.h:13
 TEveWindowManager.h:14
 TEveWindowManager.h:15
 TEveWindowManager.h:16
 TEveWindowManager.h:17
 TEveWindowManager.h:18
 TEveWindowManager.h:19
 TEveWindowManager.h:20
 TEveWindowManager.h:21
 TEveWindowManager.h:22
 TEveWindowManager.h:23
 TEveWindowManager.h:24
 TEveWindowManager.h:25
 TEveWindowManager.h:26
 TEveWindowManager.h:27
 TEveWindowManager.h:28
 TEveWindowManager.h:29
 TEveWindowManager.h:30
 TEveWindowManager.h:31
 TEveWindowManager.h:32
 TEveWindowManager.h:33
 TEveWindowManager.h:34
 TEveWindowManager.h:35
 TEveWindowManager.h:36
 TEveWindowManager.h:37
 TEveWindowManager.h:38
 TEveWindowManager.h:39
 TEveWindowManager.h:40
 TEveWindowManager.h:41
 TEveWindowManager.h:42
 TEveWindowManager.h:43
 TEveWindowManager.h:44
 TEveWindowManager.h:45
 TEveWindowManager.h:46
 TEveWindowManager.h:47
 TEveWindowManager.h:48
 TEveWindowManager.h:49
 TEveWindowManager.h:50
 TEveWindowManager.h:51
 TEveWindowManager.h:52
 TEveWindowManager.h:53
 TEveWindowManager.h:54
 TEveWindowManager.h:55
 TEveWindowManager.h:56
 TEveWindowManager.h:57
 TEveWindowManager.h:58
 TEveWindowManager.h:59
 TEveWindowManager.h:60
 TEveWindowManager.h:61
 TEveWindowManager.h:62
 TEveWindowManager.h:63
 TEveWindowManager.h:64
 TEveWindowManager.h:65