00001
00002
00003
00004
00005
00006 #include "TEveWindow.h"
00007 #include "TEveViewer.h"
00008 #include "TEveManager.h"
00009 #include "TEveBrowser.h"
00010 #include "TEveGedEditor.h"
00011 #include "TGLEmbeddedViewer.h"
00012 #include "TCanvas.h"
00013 #include "TGTab.h"
00014
00015 void window_manager()
00016 {
00017 TEveManager::Create();
00018
00019 TEveUtil::Macro("pointset.C");
00020
00021 PackTest();
00022 DetailTest();
00023 TabsTest();
00024
00025 gEve->GetBrowser()->GetTabRight()->SetTab(1);
00026 gDebug = 1;
00027 }
00028
00029 void PackTest()
00030 {
00031 TEveWindowSlot *slot = 0;
00032 TEveWindowFrame *frame = 0;
00033 TEveViewer *v = 0;
00034
00035 slot = TEveWindow::CreateWindowInTab(gEve->GetBrowser()->GetTabRight());
00036 TEveWindowPack* pack1 = slot->MakePack();
00037 pack1->SetShowTitleBar(kFALSE);
00038 pack1->SetHorizontal();
00039
00040
00041 slot = pack1->NewSlot();
00042 v = new TEveViewer("BarViewer");
00043 v->SpawnGLEmbeddedViewer(gEve->GetEditor());
00044 slot->ReplaceWindow(v);
00045 v->SetElementName("Bar Embedded Viewer");
00046
00047 gEve->GetViewers()->AddElement(v);
00048 v->AddScene(gEve->GetEventScene());
00049
00050 slot = pack1->NewSlot();
00051 TEveWindowPack* pack2 = slot->MakePack();
00052 pack2->SetShowTitleBar(kFALSE);
00053
00054 slot = pack2->NewSlot();
00055 slot->StartEmbedding();
00056 TCanvas* can = new TCanvas("Root Canvas");
00057 can->ToggleEditor();
00058 slot->StopEmbedding();
00059
00060
00061 slot = pack2->NewSlot();
00062 v = new TEveViewer("FooViewer");
00063 v->SpawnGLViewer(gEve->GetEditor());
00064 slot->ReplaceWindow(v);
00065 gEve->GetViewers()->AddElement(v);
00066 v->AddScene(gEve->GetEventScene());
00067 }
00068
00069
00070 void DetailTest()
00071 {
00072 TEveWindowSlot* slot =
00073 TEveWindow::CreateWindowInTab(gEve->GetBrowser()->GetTabRight());
00074 pack1 = slot->MakePack();
00075 pack1->SetShowTitleBar(kFALSE);
00076 pack1->SetElementName("Detail");
00077 pack1->SetHorizontal();
00078
00079
00080 slot = pack1->NewSlot();
00081 frame = slot->MakeFrame();
00082 frame->SetElementName("Latex Frame");
00083 frame->SetShowTitleBar(kFALSE);
00084 TGCompositeFrame* cf = frame->GetGUICompositeFrame();
00085 TGCompositeFrame* hf = new TGVerticalFrame(cf);
00086 hf->SetCleanup(kLocalCleanup);
00087 cf->AddFrame(hf, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY));
00088 {
00089 TGVerticalFrame* guiFrame = new TGVerticalFrame(hf);
00090 hf->AddFrame(guiFrame, new TGLayoutHints(kLHintsExpandX));
00091 guiFrame->SetCleanup(kDeepCleanup);
00092
00093 guiFrame->AddFrame(new TGLabel(guiFrame, "Press Button:"),
00094 new TGLayoutHints(kLHintsLeft, 2, 2, 0, 0));
00095 TGTextButton *b = new TGTextButton(guiFrame, "TestButton");
00096 guiFrame->AddFrame(b, new TGLayoutHints(kLHintsExpandX));
00097 TRootEmbeddedCanvas* ec =
00098 new TRootEmbeddedCanvas("Embeddedcanvas", hf, 220);
00099 hf->AddFrame(ec, new TGLayoutHints(kLHintsExpandY|kLHintsExpandX));
00100 double fontsize = 0.07;
00101 double x = 0.02;
00102 double y = 1 -1*fontsize;
00103 TLatex* latex = new TLatex(x, y, "Legend:");
00104 latex->SetTextSize(fontsize);
00105 latex->Draw();
00106 y -= 2*fontsize;
00107
00108 latex->DrawLatex(x, y, "greek letter #Delta#eta_{out}");
00109 y -= fontsize;
00110 latex->DrawLatex(x, y, "#color[5]{+} marker");
00111 y -= fontsize;
00112 latex->DrawLatex(x, y, "#color[5]{+} marker");
00113 y -= fontsize;
00114 latex->DrawLatex(x, y, "#color[4]{+} marker");
00115 y -= fontsize;
00116 latex->DrawLatex(x, y, "#color[5]{#bullet} marker");
00117 y -= fontsize;
00118 latex->DrawLatex(x, y, "#color[4]{#bullet} marker some text");
00119 y -= fontsize;
00120 latex->DrawLatex(x, y, "#color[2]{#Box} square");
00121 y -= fontsize;
00122 latex->DrawLatex(x, y, "#color[5]{#Box} color");
00123 }
00124
00125 cf->MapSubwindows();
00126 cf->Layout();
00127 cf->MapWindow();
00128
00129
00130 TEveWindowSlot* slot2 = pack1->NewSlotWithWeight(3);
00131 TEveViewer* viewer = new TEveViewer("DetailView", "DetailView");
00132 TGLEmbeddedViewer* embeddedViewer = viewer->SpawnGLEmbeddedViewer();
00133 slot2->ReplaceWindow(viewer);
00134 gEve->GetViewers()->AddElement(viewer);
00135 viewer->AddScene(gEve->GetEventScene());
00136 }
00137
00138 void TabsTest()
00139 {
00140 TRandom r(0);
00141 TEveWindowSlot *slot = 0;
00142 TEveWindowFrame *frame = 0;
00143 TEveViewer *v = 0;
00144
00145 slot = TEveWindow::CreateWindowInTab(gEve->GetBrowser()->GetTabRight());
00146 TEveWindowTab* tab1 = slot->MakeTab();
00147 tab1->SetElementName("Tabs");
00148 tab1->SetShowTitleBar(kFALSE);
00149
00150
00151 slot = tab1->NewSlot();
00152 TEveWindowPack* pack1 = slot->MakePack();
00153 for(int i = 0; i<4;++i)
00154 {
00155 Int_t weight = r.Uniform(3, 7);
00156 slot = pack1->NewSlotWithWeight(weight);
00157 frame = slot->MakeFrame();
00158 frame->SetElementName(Form("FrameInPack %d", i));
00159 TGCompositeFrame* cf = frame->GetGUICompositeFrame();
00160 TGTextView* text_view = new TGTextView(cf, 200, 400);
00161 cf->AddFrame(text_view, new TGLayoutHints(kLHintsLeft |
00162 kLHintsExpandX |
00163 kLHintsExpandY));
00164
00165 for(Int_t l =0; l<weight; l++)
00166 {
00167 text_view->AddLine(Form("slot[%d] add line %d here ", i, l));
00168 }
00169 text_view->Update();
00170 text_view->SetWidth(text_view->ReturnLongestLineWidth()+20);
00171 text_view->Layout();
00172
00173 cf->MapSubwindows();
00174 cf->Layout();
00175 cf->MapWindow();
00176 }
00177
00178
00179 slot = tab1->NewSlot();
00180 frame = slot->MakeFrame(new TRootEmbeddedCanvas());
00181 frame->SetElementName("Embedded Canvas");
00182
00183
00184 slot = tab1->NewSlot();
00185 slot->SetShowTitleBar(kFALSE);
00186 TEveWindowTab* tab2 = slot->MakeTab();
00187 tab2->SetElementName("Nested");
00188 tab2->SetShowTitleBar(kFALSE);
00189 slot = tab2->NewSlot();
00190 slot->SetShowTitleBar(kFALSE);
00191 slot = tab2->NewSlot();
00192 slot->SetShowTitleBar(kFALSE);
00193 }