Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

evdb::DisplayWindow Class Reference

An event display window. More...

#include <DisplayWindow.h>

List of all members.

Public Member Functions

 DisplayWindow (int window=0)
virtual ~DisplayWindow ()
virtual void Draw (const char *opt="")
virtual void CloseWindow ()
void Raise ()

Static Public Member Functions

void Register (const char *name, const char *description, unsigned int h, unsigned int w, CanvasCreator_t creator)
const std::vector< std::string > & Names ()
int OpenWindow (int type=0)

Private Attributes

TGMainFrame * fMain
 Main window.
MenuBarfMenuBar
 Top menu bar.
ButtonBarfButtonBar
 Top button bar.
StatusBarfStatusBar
 Status bar running along the bottom.
CanvasfDisplay
 Display of detector event information.


Detailed Description

An event display window.

Definition at line 28 of file DisplayWindow.h.


Constructor & Destructor Documentation

DisplayWindow::DisplayWindow int  window = 0  ) 
 

Definition at line 91 of file DisplayWindow.cxx.

References evdb::Canvas::Connect(), fButtonBar, fDisplay, fMain, fMenuBar, fStatusBar, gsCanvasCreator, gsHeight, gsName, gsWidth, and gsWindows().

Referenced by OpenWindow().

00092 {
00093   if (gROOT->IsBatch()) assert(0);
00094   assert(gClient);
00095   const TGWindow* tgw = gClient->GetRoot();
00096   assert(tgw);
00097 
00098   // Create the main application window. I need a resize to get the
00099   // window to draw the first time, so create the window slightly
00100   // smaller than the intended size. Bogus, but so it goes...
00101   unsigned int w = gsWidth[id];
00102   unsigned int h = gsHeight[id];
00103   fMain = new TGMainFrame(tgw, w-1, h-1);
00104 
00105   // Add items to the main window
00106   fMenuBar   = new MenuBar(fMain);
00107   fButtonBar = new ButtonBar(fMain);
00108   fDisplay   = (*gsCanvasCreator[id])(fMain);
00109   fStatusBar = new StatusBar(fMain);
00110   
00111   fMain->SetWindowName(gsName[id].c_str());
00112   
00113   // Now that all the subwindows are attached, do the final layout
00114   fMain->MapSubwindows();
00115   fMain->MapWindow();
00116   
00117   // Don't understand this, but I need a resize to get things to draw
00118   // the first time...
00119   fMain->Resize(w,h);
00120 
00121   // Plug the display into its signal/slots
00122   fDisplay->Connect();
00123 
00124   fMain->Connect("CloseWindow()","evdb::DisplayWindow",this,"CloseWindow()");
00125 
00126   // Add to list of windows open
00127   gsWindows[id] = this;
00128 }

DisplayWindow::~DisplayWindow  )  [virtual]
 

Definition at line 140 of file DisplayWindow.cxx.

References fButtonBar, fDisplay, fMain, fMenuBar, fStatusBar, and gsWindows().

00141 {
00142   if (fDisplay)   { delete fDisplay;   fDisplay   = 0; } 
00143   if (fStatusBar) { delete fStatusBar; fStatusBar = 0; }
00144   if (fButtonBar) { delete fButtonBar; fButtonBar = 0; }
00145   if (fMenuBar)   { delete fMenuBar;   fMenuBar   = 0; }
00146   if (fMain)      { delete fMain;      fMain      = 0; }
00147   for (unsigned int i=0; i<gsWindows.size(); ++i) {
00148     if (gsWindows[i] == this) gsWindows[i] = 0;
00149   }
00150 }


Member Function Documentation

void DisplayWindow::CloseWindow  )  [virtual]
 

Definition at line 136 of file DisplayWindow.cxx.

00136 { delete this; }

void DisplayWindow::Draw const char *  opt = ""  )  [virtual]
 

Definition at line 132 of file DisplayWindow.cxx.

References evdb::Canvas::Draw(), and fDisplay.

Referenced by OpenWindow().

00132 { fDisplay->Draw(opt); }

const std::vector< std::string > & DisplayWindow::Names  )  [static]
 

Definition at line 45 of file DisplayWindow.cxx.

Referenced by evdb::WindowMenu::WindowMenu().

00045 { return gsName; }

int DisplayWindow::OpenWindow int  type = 0  )  [static]
 

Create a window given a system-assigned ID number

Definition at line 72 of file DisplayWindow.cxx.

References DisplayWindow(), Draw(), gsName, gsWindows(), and Raise().

Referenced by evdb::WindowMenu::HandleMenu(), and main().

00073 {
00074   unsigned id = 0;
00075   if (type>0) id = type;
00076   if (id>gsName.size()) return 0;
00077 
00078   DisplayWindow* w = gsWindows[id];
00079   if (w==0) {
00080     w = gsWindows[id] = new DisplayWindow(id);
00081   }
00082   if (w==0) return 0;
00083   w->Raise();
00084   w->Draw();
00085   
00086   return 1;
00087 }

void DisplayWindow::Raise  ) 
 

Definition at line 154 of file DisplayWindow.cxx.

References fMain.

Referenced by OpenWindow().

00154 { fMain->RaiseWindow(); }

void DisplayWindow::Register const char *  name,
const char *  description,
unsigned int  h,
unsigned int  w,
CanvasCreator_t  creator
[static]
 

Register a display canvas for use in creating windows

Definition at line 52 of file DisplayWindow.cxx.

References gsCanvasCreator, gsDescription, gsHeight, gsName, gsWidth, and gsWindows().

Referenced by main().

00057 {
00058   gsName.push_back(std::string(name));
00059   gsDescription.push_back(std::string(description));
00060   gsHeight.push_back(h);
00061   gsWidth.push_back(w);
00062   gsCanvasCreator.push_back(creator);
00063   
00064   if (gsName.size()>gsWindows.size()) gsWindows.resize(gsName.size());
00065 }


Member Data Documentation

ButtonBar* evdb::DisplayWindow::fButtonBar [private]
 

Top button bar.

Definition at line 50 of file DisplayWindow.h.

Referenced by DisplayWindow(), and ~DisplayWindow().

Canvas* evdb::DisplayWindow::fDisplay [private]
 

Display of detector event information.

Definition at line 52 of file DisplayWindow.h.

Referenced by DisplayWindow(), Draw(), and ~DisplayWindow().

TGMainFrame* evdb::DisplayWindow::fMain [private]
 

Main window.

Definition at line 48 of file DisplayWindow.h.

Referenced by DisplayWindow(), Raise(), and ~DisplayWindow().

MenuBar* evdb::DisplayWindow::fMenuBar [private]
 

Top menu bar.

Definition at line 49 of file DisplayWindow.h.

Referenced by DisplayWindow(), and ~DisplayWindow().

StatusBar* evdb::DisplayWindow::fStatusBar [private]
 

Status bar running along the bottom.

Definition at line 51 of file DisplayWindow.h.

Referenced by DisplayWindow(), and ~DisplayWindow().


The documentation for this class was generated from the following files:
Generated on Sun Nov 22 04:45:31 2009 for NOvA Offline by  doxygen 1.3.9.1