HGCal Test Beam  03a93d6239a951948e06fb3ef8dae4cbdebfad30
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Dialog.cc
Go to the documentation of this file.
1 //-----------------------------------------------------------------------------
2 // Created: Summer-2008 Harrison B. Prosper
3 //-----------------------------------------------------------------------------
4 #include <algorithm>
5 #include "TRootHelpDialog.h"
6 #include "TGFileDialog.h"
7 #include "TGInputDialog.h"
8 #include <TGFont.h>
9 #include <TGListBox.h>
10 #include <TGResourcePool.h>
11 
12 //#include "PhysicsTools/PyGui/interface/Dialog.h"
13 #include "HGCal/TBEventDisplay/interface/Dialog.h"
14 
15 using namespace std;
16 
17 
18 Dialog::Dialog(const TGWindow* window,
19  const TGWindow* main)
20  : window_(window),
21  main_(main)
22 {}
23 
24 string
25 Dialog::SelectFile(EFileDialogMode dlg_type,
26  string IniDir_,
27  string IniFilename_)
28 {
29  TGFileInfo file_info;
30 
31  char* inidir = new char[IniDir_.size()+1];
32  copy(IniDir_.begin(), IniDir_.end(), inidir);
33  inidir[IniDir_.size()]=0;
34  file_info.fIniDir = inidir;
35 
36  if ( IniFilename_ != "" )
37  {
38  char* inifilename = new char[IniFilename_.size()+1];
39  copy(IniFilename_.begin(), IniFilename_.end(), inifilename);
40  inifilename[IniFilename_.size()]=0;
41  file_info.fFilename = inifilename;
42  }
43 
44  vector<string> ftypes;
45  if ( dlg_type == kFDOpen )
46  {
47  ftypes.push_back("Root files");
48  ftypes.push_back("*.root");
49  ftypes.push_back("All files");
50  ftypes.push_back("*");
51  }
52  else
53  {
54  ftypes.push_back("All files");
55  ftypes.push_back("*");
56  ftypes.push_back("Root files");
57  ftypes.push_back("*.root");
58  }
59  const char* filetypes[] = {ftypes[0].c_str(), ftypes[1].c_str(),
60  ftypes[2].c_str(), ftypes[3].c_str(),
61  0, 0};
62 
63  file_info.fFileTypes = filetypes;
64 
65  new TGFileDialog(window_, main_, dlg_type, &file_info);
66  _filename = string(file_info.fFilename);
67  _inidir = string(file_info.fIniDir);
68  return _filename;
69 }
70 
72 
73 string
74 Dialog::IniDir() {return _inidir;}
75 
76 
77 void Dialog::SetText(string title,
78  string text,
79  UInt_t w,
80  UInt_t h)
81 {
82  TRootHelpDialog* d = new TRootHelpDialog(main_,
83  title.c_str(),
84  w, h);
85  d->SetText(text.c_str());
86  d->Popup();
87 }
88 
89 string
90 Dialog::GetInput(string prompt, string defstr)
91 {
92  char retstr[120];
93  new TGInputDialog(window_, main_, prompt.c_str(), defstr.c_str(), retstr);
94  return string(retstr);
95 }
96 
97 
99 
100 FileDialog::FileDialog(const TGWindow* window,
101  const TGWindow* main,
102  EFileDialogMode dlg_type,
103  string IniDir,
104  string IniFilename)
105 {
106  TGFileInfo file_info;
107 
108  char* inidir = new char[IniDir.size()+1];
109  copy(IniDir.begin(), IniDir.end(), inidir);
110  inidir[IniDir.size()]=0;
111  file_info.fIniDir = inidir;
112 
113  if ( IniFilename != "" )
114  {
115  char* inifilename = new char[IniFilename.size()+1];
116  copy(IniFilename.begin(), IniFilename.end(), inifilename);
117  inifilename[IniFilename.size()]=0;
118  file_info.fFilename = inifilename;
119  }
120 
121  vector<string> ftypes;
122  if ( dlg_type == kFDOpen )
123  {
124  ftypes.push_back("Root files");
125  ftypes.push_back("*.root");
126  ftypes.push_back("All files");
127  ftypes.push_back("*");
128  }
129  else
130  {
131  ftypes.push_back("All files");
132  ftypes.push_back("*");
133  ftypes.push_back("Root files");
134  ftypes.push_back("*.root");
135  }
136  const char* filetypes[] = {ftypes[0].c_str(), ftypes[1].c_str(),
137  ftypes[2].c_str(), ftypes[3].c_str(),
138  0, 0};
139 
140  file_info.fFileTypes = filetypes;
141 
142  new TGFileDialog(window, main, dlg_type, &file_info);
143  _filename = string(file_info.fFilename);
144  _inidir = string(file_info.fIniDir);
145  }
146 
148 
149 string
150 FileDialog::Filename() {return _filename;}
151 
152 string
153 FileDialog::IniDir() {return _inidir;}
154 
156 
157 HelpDialog::HelpDialog(const TGWindow* main,
158  string title,
159  string text,
160  UInt_t w,
161  UInt_t h)
162 {
163  TRootHelpDialog* d = new TRootHelpDialog(main,
164  title.c_str(),
165  w, h);
166  d->SetText(text.c_str());
167  d->Popup();
168 }
169 
std::string GetInput(std::string prompt, std::string defstr="")
Definition: Dialog.cc:90
~Dialog()
Definition: Dialog.cc:71
FileDialog()
Definition: Dialog.cc:98
HelpDialog()
Definition: Dialog.cc:155
~FileDialog()
Definition: Dialog.cc:147
~HelpDialog()
Definition: Dialog.cc:170
std::string IniDir()
Definition: Dialog.cc:74
std::string SelectFile(EFileDialogMode dlg_type=kFDOpen, std::string inidir=".", std::string inifilename="")
Definition: Dialog.cc:25
Dialog(const TGWindow *window, const TGWindow *main)
Definition: Dialog.cc:18
std::string Filename()
Definition: Dialog.cc:150
int main(int argc, char *argv[])
std::string IniDir()
Definition: Dialog.cc:153
void SetText(std::string title, std::string text, UInt_t w=600, UInt_t h=300)
Definition: Dialog.cc:77