GammaWare  Head Version for release 0.9
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
BaseLSPlayer.h
Go to the documentation of this file.
1 
2 
3 
4 #ifndef Gw_BaseLSPlayer
5 #define Gw_BaseLSPlayer
6 
7 #include "GwLogMessage.h"
8 
9 
10 #ifndef ROOT_TGaxis
11 #include "TGaxis.h"
12 #endif
13 
14 #ifndef ROOT_TNamed
15 #include "TNamed.h"
16 #endif
17 
18 #ifndef Gw_LevelScheme
19 #include "LevelScheme.h"
20 #endif
21 
22 class TCanvas;
23 class TGaxis;
24 class TGToolTip;
25 class TBox;
26 class TContextMenu;
27 
28 namespace Gw {
29 
34  class LSaxis : public TGaxis
35  {
36  public:
37  LSaxis();
38  virtual ~LSaxis() {;}
39 
41  void ExecuteEvent(Int_t eventType, Int_t eventX, Int_t eventY);
42 
44  void UnZoom(); //*MENU
45 
47  void SetRange(Int_t ymin, Int_t ymax, Int_t xmin, Int_t xmax); //*MENU* *ARGS={ymin=>fLastY1Zoom,ymax=>fLastY2Zoom,xmin=>fLastX1Zoom,xmax=>fLastX2Zoom}*
48 
50  void SetY1(Double_t y1);
51 
53  void SetY2(Double_t y2);
54 
56  Int_t GetLastY1Zoom() const { return fLastY1Zoom; }
57 
59  Int_t GetLastY2Zoom() const { return fLastY2Zoom; }
60 
62  Int_t GetLastX1Zoom() const { return fLastX1Zoom; }
63 
65  Int_t GetLastX2Zoom() const { return fLastX2Zoom; }
66 
67  private:
68  Int_t fLastX; // last x mouse position
69  Int_t fLastY1; // last y1 position
70  Int_t fLastY2; // last y2 position
71 
72  Bool_t fFirst1Zoom; // flag for first zoom in Y1
73  Bool_t fFirst2Zoom; // flag for first zoom in Y2
74  Int_t fLastY1Zoom; // last zoom position in Y1
75  Int_t fLastY2Zoom; // last zoom position in Y2
76  Int_t fLastX1Zoom; // last zoom position in X1
77  Int_t fLastX2Zoom; // last zoom position in X2
78 
79  ClassDef(LSaxis,0)
80  };
81 
82  //-------------------------------------------------------------------------
83 
84  class Level;
85  class Link;
86  class Cascade;
87 
106  class BaseLSPlayer : public TNamed
107  {
108  protected:
110  BaseLSPlayer(LevelScheme* levelScheme);
111 
112  public:
113  virtual ~BaseLSPlayer();
114 
116 
118  static void SetDefaultSize(Float_t xmin, Float_t xmax, Float_t ymin, Float_t ymax) {
119  fgDefaultSize[0] = xmin; fgDefaultSize[1] = xmax;
120  fgDefaultSize[2] = ymin; fgDefaultSize[3] = ymax;
121  }
122 
124  virtual const char *GetPathtoSaveLS() const
125  {
126  return "./";
127  }
129  virtual TString SetPathtoSaveLS(const char * /*newurl*/ )
130  {
131  TString current = "./";
132  return current;
133  }
134 
136  static Float_t* GetDefaultSize() {return fgDefaultSize;}
137 
139  static void SetDefaultWidth(Float_t width) { fgDefaultWidth = width;}
140 
142  static Float_t GetDefaultWidth() {return fgDefaultWidth;}
143 
145  static void SetDefaultToggleColor(Int_t color) { fgDefaultToggleColor = color;}
146 
149 
150 
152  static Float_t GetXMin(Float_t xRmin, Float_t xRmax) { return (xRmin*1.1 + 0.2*xRmax)/1.3; }
153  static Float_t GetXMax(Float_t xRmin, Float_t xRmax) { return (xRmin*0.1 + 1.2*xRmax)/1.3; }
154 
155  static Float_t GetYMin(Float_t yRmin, Float_t yRmax) { return (yRmin*1.1 + 0.1*yRmax)/1.2; }
156  static Float_t GetYMax(Float_t yRmin, Float_t yRmax) { return (yRmin*0.1 + 1.1*yRmax)/1.2; }
157 
159  static Float_t GetXRmin(Float_t xmin, Float_t xmax) { return xmin-0.2*(xmax-xmin); }
160  static Float_t GetXRmax(Float_t xmin, Float_t xmax) { return xmax+0.1*(xmax-xmin); }
161 
162  static Float_t GetYRmin(Float_t ymin, Float_t ymax) { return ymin-0.1*(ymax-ymin); }
163  static Float_t GetYRmax(Float_t ymin, Float_t ymax) { return ymax+0.1*(ymax-ymin); }
164 
166  static Float_t GetYLabels(Float_t ymin, Float_t ymax) { return GetYRmin(ymin, ymax)*0.4; }
167 
169  static Float_t GetXAxis(Float_t xmin, Float_t xmax) { return xmin-(xmax-xmin)*0.1; }
170 
172  Bool_t Connect(TCanvas *c = 0x0);
173 
175  Bool_t Disconnect(TCanvas *c = 0x0);
176 
178  void HandleMovement(Int_t eventType, Int_t eventX, Int_t eventY, TObject* select);
179 
181  virtual void PopupDoProject() {return;}
182 
184  virtual void PopupAddLink() {return;}
185 
187  virtual void PopupAddLevel() {return;}
188 
190  virtual void PopupAddFirstLevel() {return;}
191 
193  virtual void PopupAddGroundLevel() {return;}
194 
196  virtual void PopupWriteLS() {return;}
197 
199  virtual void Select() {return;}
200 
202  virtual void DeSelect() {return;}
203 
205  virtual void Delete(Option_t* /*opt*/) {return;}
206 
208  virtual void ShowGate(Option_t* /*opt*/ = "gate") { return; }
209 
211  virtual void DrawProjTot(Option_t* /*opt*/ = "") { return; }
212 
214  virtual Cascade* GetSelectedLinks() { return fSelectedLinks; }
215 
217  virtual LevelScheme* GetLevelScheme() { return fLevelScheme; }
218 
220  virtual Int_t CollectLinks(Option_t* o = "");
221 
223  virtual Int_t CollectLevels(Option_t* o = "");
224 
226  virtual Int_t CollectCascades(Option_t* o = "");
227 
229  virtual void Draw(Option_t *opt = "");
230 
232  virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
233 
235  virtual Bool_t IsDrawStyle(EDrawStyle style) { return fDrawStyle == style; }
236 
238  virtual void SetDrawStyle(EDrawStyle style) { fDrawStyle = style; }
239 
241  virtual void DoStyle(EDrawStyle style);
242 
244  virtual Int_t ReadAGS(const Char_t *filename, Option_t *opt = "152Dy");
245 
247  virtual Int_t ReadENSDF(const Char_t *, Option_t *);
248 
250  virtual Int_t ImportLevelScheme(const Char_t *, Option_t *);
251 
252  protected:
253 
255  virtual Int_t GetLastX() {return fLastX;}
256  virtual Int_t GetLastY() {return fLastY;}
257  virtual void SetLastXY(Int_t lastX, Int_t lastY) {fLastX = lastX; fLastY = lastY;}
259  virtual void Print(Option_t* /*opt*/) const {return;} // for the moment
260 
262  virtual void SetTipText(TObject* select);
263 
264  TList& GetLevelList() { return fLevelScheme->GetLevelList(); }
265  TList& GetLinkList() { return fLevelScheme->GetLinkList(); }
267  TLatex& GetNameLatex() { return fLevelScheme->GetNameLatex(); }
268 
272 
273  static Float_t fgDefaultSize[];
274  static Float_t fgDefaultWidth;
275  static Int_t fgDefaultToggleColor;
276 
277  private:
278 
279  Int_t fLastX;
280  Int_t fLastY;
281 
282  TBox* fBox; // just a box for tool tip
283 
284  protected:
287 
289 
290  TList* fNucleiList; // list of nuclei
292 
293  EDrawStyle fDrawStyle; // drawing style
294 
295  LSaxis* fAxis; // menu
296  TGToolTip* fInfoTip; // info tool tip
297  Bool_t fIsOnAxis; // flag to have selection only on axis or whole pad
298  Bool_t fIsTipsOn; // flag to activated info tips on objects
299  Bool_t fIsLSSelected; // flag for selection of LS
300 
301  TContextMenu* fContextMenu; // context menu in canvas
302  Color_t fCColorSelectedLink; // current color for selected link
303 
304  Float_t fPositionLabels; // position in Y for labels
305 
306  mutable LogMessage fLog;
307 
308  //TString fURLtoSaveLS;
309 
310  ClassDef(BaseLSPlayer, 0); // Base class for facilities to play with level scheme
311  };
312 
313 } // end namespace
314 
315 #endif
A level Scheme.
Definition: LevelScheme.h:82
virtual Int_t CollectLevels(Option_t *o="")
Collect selected leveks.
TLatex & GetNameLatex()
to get Name latex object
Definition: LevelScheme.h:140
TContextMenu * fContextMenu
Definition: BaseLSPlayer.h:301
ClassDef(BaseLSPlayer, 0)
log message
void SetY2(Double_t y2)
Set Y2.
static Float_t GetYMin(Float_t yRmin, Float_t yRmax)
Definition: BaseLSPlayer.h:155
TGToolTip * fInfoTip
Definition: BaseLSPlayer.h:296
virtual void PopupAddFirstLevel()
Popup AddFirstLevel menu.
Definition: BaseLSPlayer.h:190
virtual Bool_t IsDrawStyle(EDrawStyle style)
get style
Definition: BaseLSPlayer.h:235
virtual void SetTipText(TObject *select)
set text for tool tip info
A cascade is a list of links.
Definition: Cascade.h:51
virtual void Select()
Select all objects.
Definition: BaseLSPlayer.h:199
virtual ~LSaxis()
Definition: BaseLSPlayer.h:38
virtual ~BaseLSPlayer()
virtual Int_t GetLastY()
Definition: BaseLSPlayer.h:256
static Float_t GetYMax(Float_t yRmin, Float_t yRmax)
Definition: BaseLSPlayer.h:156
TList & GetLevelList()
Definition: BaseLSPlayer.h:264
Int_t GetLastY2Zoom() const
Get last zoom Y2.
Definition: BaseLSPlayer.h:59
Cascade * fSelectedLinks
Definition: BaseLSPlayer.h:285
virtual void DoStyle(EDrawStyle style)
do style
Cascade * fSelectedLevels
pointer to the selected links
Definition: BaseLSPlayer.h:286
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Compute distance to object.
Level * GetCurrentLevel()
Definition: BaseLSPlayer.h:270
Base class for a Log message.
Definition: GwLogMessage.h:94
EDrawStyle fDrawStyle
pointer on level scheme
Definition: BaseLSPlayer.h:293
static void SetDefaultWidth(Float_t width)
set default widths
Definition: BaseLSPlayer.h:139
virtual void DeSelect()
Deselect all objects.
Definition: BaseLSPlayer.h:202
virtual Int_t ReadAGS(const Char_t *filename, Option_t *opt="152Dy")
for backward compatibility
Cascade * GetCurrentCascade()
get current cascade
Definition: LevelScheme.h:138
static Float_t GetXMin(Float_t xRmin, Float_t xRmax)
Get size from range.
Definition: BaseLSPlayer.h:152
virtual Int_t ImportLevelScheme(const Char_t *, Option_t *)
to init this level scheme from an existing formatted file (ENSDF, Radware ..)
Color_t fCColorSelectedLink
Definition: BaseLSPlayer.h:302
virtual void PopupWriteLS()
Popup write LS menu.
Definition: BaseLSPlayer.h:196
virtual void PopupDoProject()
Popup DoProject menu.
Definition: BaseLSPlayer.h:181
header file for GwLogMessage.cpp
virtual void ShowGate(Option_t *="gate")
Collect gates.
Definition: BaseLSPlayer.h:208
void HandleMovement(Int_t eventType, Int_t eventX, Int_t eventY, TObject *select)
Handle Movement.
static Float_t * GetDefaultSize()
Get default size.
Definition: BaseLSPlayer.h:136
TList * fNucleiList
pointer to the selected levels
Definition: BaseLSPlayer.h:290
TLatex & GetNameLatex()
Definition: BaseLSPlayer.h:267
Cascade * GetCurrentCascade()
Definition: BaseLSPlayer.h:271
static Float_t GetYRmin(Float_t ymin, Float_t ymax)
Definition: BaseLSPlayer.h:162
TList & GetCascadeList()
Definition: BaseLSPlayer.h:266
virtual void PopupAddLevel()
Popup AddLevel menu.
Definition: BaseLSPlayer.h:187
virtual void Delete(Option_t *)
Intercept Delete.
Definition: BaseLSPlayer.h:205
static void SetDefaultSize(Float_t xmin, Float_t xmax, Float_t ymin, Float_t ymax)
set default size for level scheme
Definition: BaseLSPlayer.h:118
static Int_t GetDefaultToggleColor()
get default color for axis toggle
Definition: BaseLSPlayer.h:148
Level * GetCurrentLevel()
get current level
Definition: LevelScheme.h:136
static Float_t GetYRmax(Float_t ymin, Float_t ymax)
Definition: BaseLSPlayer.h:163
Bool_t Disconnect(TCanvas *c=0x0)
Connect the Canvas to this to collect events.
virtual LevelScheme * GetLevelScheme()
Get current liks.
Definition: BaseLSPlayer.h:217
static Float_t GetXRmax(Float_t xmin, Float_t xmax)
Definition: BaseLSPlayer.h:160
virtual void SetDrawStyle(EDrawStyle style)
set style
Definition: BaseLSPlayer.h:238
virtual Int_t CollectCascades(Option_t *o="")
Collect selected cascades.
void UnZoom()
Unzoom.
static Float_t GetXAxis(Float_t xmin, Float_t xmax)
Get position of axis in X.
Definition: BaseLSPlayer.h:169
Bool_t Connect(TCanvas *c=0x0)
Connect the Canvas to this to collect events.
header file for a LevelScheme
static Float_t GetYLabels(Float_t ymin, Float_t ymax)
Get position of labels in Y.
Definition: BaseLSPlayer.h:166
Int_t GetLastX2Zoom() const
Get last zoom X2.
Definition: BaseLSPlayer.h:65
BaseLSPlayer(LevelScheme *levelScheme)
default constructor
LogMessage fLog
Definition: BaseLSPlayer.h:306
void SetRange(Int_t ymin, Int_t ymax, Int_t xmin, Int_t xmax)
Set range axis.
virtual void SetLastXY(Int_t lastX, Int_t lastY)
Definition: BaseLSPlayer.h:257
void SetY1(Double_t y1)
Set Y1.
Int_t GetLastY1Zoom() const
Get last zoom Y1.
Definition: BaseLSPlayer.h:56
static Float_t GetXRmin(Float_t xmin, Float_t xmax)
Get range from size.
Definition: BaseLSPlayer.h:159
TList & GetLevelList()
to get the list of levels
Definition: LevelScheme.h:126
virtual void PopupAddLink()
Popup AddLink menu.
Definition: BaseLSPlayer.h:184
virtual void DrawProjTot(Option_t *="")
Draw projection total.
Definition: BaseLSPlayer.h:211
Link * GetCurrentLink()
get current link
Definition: LevelScheme.h:134
static void SetDefaultToggleColor(Int_t color)
set default color for axis toggle
Definition: BaseLSPlayer.h:145
virtual void Print(Option_t *) const
Print out.
Definition: BaseLSPlayer.h:259
virtual TString SetPathtoSaveLS(const char *)
change url. It returns the previous one
Definition: BaseLSPlayer.h:129
TList & GetCascadeList()
to get the list of cascades
Definition: LevelScheme.h:130
LevelScheme * fLevelScheme
Definition: BaseLSPlayer.h:291
virtual void PopupAddGroundLevel()
Popup AddGroundLevel.
Definition: BaseLSPlayer.h:193
static Float_t fgDefaultSize[]
size of the level scheme per default
Definition: BaseLSPlayer.h:273
LSaxis extented class of TGaxis, allows zooming.
Definition: BaseLSPlayer.h:34
Int_t GetLastX1Zoom() const
Get last zoom X1.
Definition: BaseLSPlayer.h:62
TList * fSelectedCascades
pointer to the selected levels
Definition: BaseLSPlayer.h:288
void ExecuteEvent(Int_t eventType, Int_t eventX, Int_t eventY)
Handle Movement.
Float_t fPositionLabels
Definition: BaseLSPlayer.h:304
virtual Int_t CollectLinks(Option_t *o="")
Collect selected links.
TList & GetLinkList()
Definition: BaseLSPlayer.h:265
static Float_t GetXMax(Float_t xRmin, Float_t xRmax)
Definition: BaseLSPlayer.h:153
virtual Int_t ReadENSDF(const Char_t *, Option_t *)
for backward compatibility
virtual const char * GetPathtoSaveLS() const
to get the path where to save the data
Definition: BaseLSPlayer.h:124
Link * GetCurrentLink()
Definition: BaseLSPlayer.h:269
static Int_t fgDefaultToggleColor
default color of axis when toggle is on
Definition: BaseLSPlayer.h:275
static Float_t fgDefaultWidth
default width for level, box etc...
Definition: BaseLSPlayer.h:274
virtual void Draw(Option_t *opt="")
to draw this level scheme
BaseLSPlayer to work on level scheme.
Definition: BaseLSPlayer.h:106
static Float_t GetDefaultWidth()
Get default width.
Definition: BaseLSPlayer.h:142
virtual Cascade * GetSelectedLinks()
Get current links.
Definition: BaseLSPlayer.h:214
TList & GetLinkList()
to get the list of links
Definition: LevelScheme.h:128
virtual Int_t GetLastX()
set/get fLastX/fLastY
Definition: BaseLSPlayer.h:255
Base class describing a general level.
Definition: Level.h:53