31 ClassImp(TEveWindowManager);
36 TEveWindowManager::TEveWindowManager(
const char* n,
const char* t) :
37 TEveElementList(n, t),
47 TEveWindowManager::~TEveWindowManager()
63 void TEveWindowManager::SelectWindow(TEveWindow* window)
65 if (window == fCurrentWindow)
69 fCurrentWindow->SetCurrent(kFALSE);
71 fCurrentWindow = window;
74 fCurrentWindow->SetCurrent(kTRUE);
76 WindowSelected(fCurrentWindow);
82 void TEveWindowManager::DeleteWindow(TEveWindow* window)
84 if (window == fCurrentWindow)
87 WindowSelected(fCurrentWindow);
89 WindowDeleted(window);
95 void TEveWindowManager::WindowDocked(TEveWindow* window)
97 Emit(
"WindowDocked(TEveWindow*)", (Long_t)window);
103 void TEveWindowManager::WindowUndocked(TEveWindow* window)
105 Emit(
"WindowUndocked(TEveWindow*)", (Long_t)window);
111 void TEveWindowManager::WindowSelected(TEveWindow* window)
113 Emit(
"WindowSelected(TEveWindow*)", (Long_t)window);
119 void TEveWindowManager::WindowDeleted(TEveWindow* window)
121 Emit(
"WindowDeleted(TEveWindow*)", (Long_t)window);
127 TEveWindowSlot* TEveWindowManager::GetCurrentWindowAsSlot()
const
129 return dynamic_cast<TEveWindowSlot*
>(fCurrentWindow);
132 void TEveWindowManager::SetDefaultContainer(TEveWindow* w)
138 static const TEveException kEH(
"TEveWindowManager::SetDefaultContainer ");
140 if ( ! w->CanMakeNewSlots())
141 throw kEH +
"Given window can not make new slots.";
143 fDefaultContainer = w;
150 void TEveWindowManager::DestroyWindowRecursively(TEveWindow* window)
152 while (window->HasChildren())
154 TEveWindow* w =
dynamic_cast<TEveWindow*
>(window->FirstChild());
156 DestroyWindowRecursively(w);
158 window->RemoveElement(window->FirstChild());
160 window->DestroyWindowAndSlot();
166 void TEveWindowManager::DestroyWindows()
168 while (HasChildren())
170 TEveWindow* w =
dynamic_cast<TEveWindow*
>(FirstChild());
172 DestroyWindowRecursively(w);
174 RemoveElement(FirstChild());
182 void TEveWindowManager::HideAllEveDecorations()
184 TEveCompositeFrame *ecf = 0;
185 TIter wins(TEveCompositeFrame::fgFrameList);
186 while ((ecf = (TEveCompositeFrame*) wins()))
188 ecf->HideAllDecorations();
197 void TEveWindowManager::ShowNormalEveDecorations()
199 TEveCompositeFrame *ecf = 0;
200 TIter wins(TEveCompositeFrame::fgFrameList);
201 while ((ecf = (TEveCompositeFrame*) wins()))
203 ecf->ShowNormalDecorations();
213 void TEveWindowManager::SetShowTitleBars(Bool_t state)
215 TEveCompositeFrame *ecf = 0;
216 TIter wins(TEveCompositeFrame::fgFrameList);
217 while ((ecf = (TEveCompositeFrame*) wins()))
219 ecf->SetShowTitleBar(state);