ROOT logo
#ifndef __TMrbHelpBrowser_h__
#define __TMrbHelpBrowser_h__

#include "TROOT.h"
#include "TString.h"
#include "TList.h"
#include "TFile.h"
#include "TGMenu.h"
#include <iostream>

namespace std {} using namespace std;

class TMrbHelpBrowser : public TNamed {
private:
   TFile * fRootFile;
   TString fHtmlDir;
   TList * fHelpList;
   TList * fCanvasList;
   Int_t fWwX, fWwY;
   Int_t fX0;
   Int_t fY0;
   Int_t fScreen_w, fScreen_h;
   Int_t fTextSize;                  // size in pixels
   Int_t fTextFont;                  // 
   Int_t fMaxLineLength; 
   TString fGifViewer;

public:

   ~TMrbHelpBrowser();

   TMrbHelpBrowser(const char * InputFile = 0);
	void RecursiveRemove(TObject*);
   void SetTextSize(Int_t size);
   
   void SetMaxLineLength(Int_t len);

   void SetTextFont(Int_t font);
   
   void SetGifViewer(const char * viewer);

//________________________________________________________________________________

Int_t AddHtml(const char * InputFile);

Int_t AddHtmlFile(const char * HtmlFile, Bool_t keep_references = kTRUE);

Int_t AddHtmlDir(const char * HtmlDir);
Int_t AddGifToRoot(const char * Input);

void AddGifFile(const char * GifFile);
void AddCanvas(const char * RootFile);
void Clear(Option_t * Option) { TObject::Clear(Option); };
void Clear();

TFile * SetRootFile(const char * RootFile){
   fRootFile = new TFile(RootFile);
   return fRootFile;
}

static void HandleMouseClicks();
//________________________________________________________________________________

Bool_t ToRootFile(const char * Input, const char * RootFile, 
                  const char * option = "UPDATE");

TFile * GetRootFile(){return fRootFile;}

void Print(Option_t * Option) const { TObject::Print(Option); };
void Print(TString * Option = NULL) const;

void DrawText(const char * hname, Int_t xoff = 0, Int_t yoff = 0);
void DrawText(const Int_t  ind, Int_t xoff = 0, Int_t yoff = 0);

Int_t DisplayMenu(TGPopupMenu * menu, const char * pattern = "");

Int_t GetNofItems(){return fHelpList->GetSize();};
//________________________________________________________________________________

private:

Bool_t Squeeze_White_Space(TString & s);

Bool_t Squeeze_EOL(TString & s);

Int_t NextLine(TString & text, TString & line, Bool_t start);

Int_t NextTag(TString & text, TString & tag, Int_t search_from);

Int_t NextAnchor(TString & text, TString & anchor, Int_t search_from);

Int_t NextHeading(TString & text, TString & heading, Int_t search_from);

Int_t AddTagAtEOL(TString & s);


Int_t LineCount(TString & str, Int_t * longest_line, Int_t * nof_heads);

void MoveOrigin();

void PreScan(TString & text, Bool_t keep_references = kTRUE);

void DisplayImage(TString & img_name);

ClassDef(TMrbHelpBrowser, 0)   // [HelpBrowser] Help browser
};

#endif
 TMrbHelpBrowser.h:1
 TMrbHelpBrowser.h:2
 TMrbHelpBrowser.h:3
 TMrbHelpBrowser.h:4
 TMrbHelpBrowser.h:5
 TMrbHelpBrowser.h:6
 TMrbHelpBrowser.h:7
 TMrbHelpBrowser.h:8
 TMrbHelpBrowser.h:9
 TMrbHelpBrowser.h:10
 TMrbHelpBrowser.h:11
 TMrbHelpBrowser.h:12
 TMrbHelpBrowser.h:13
 TMrbHelpBrowser.h:14
 TMrbHelpBrowser.h:15
 TMrbHelpBrowser.h:16
 TMrbHelpBrowser.h:17
 TMrbHelpBrowser.h:18
 TMrbHelpBrowser.h:19
 TMrbHelpBrowser.h:20
 TMrbHelpBrowser.h:21
 TMrbHelpBrowser.h:22
 TMrbHelpBrowser.h:23
 TMrbHelpBrowser.h:24
 TMrbHelpBrowser.h:25
 TMrbHelpBrowser.h:26
 TMrbHelpBrowser.h:27
 TMrbHelpBrowser.h:28
 TMrbHelpBrowser.h:29
 TMrbHelpBrowser.h:30
 TMrbHelpBrowser.h:31
 TMrbHelpBrowser.h:32
 TMrbHelpBrowser.h:33
 TMrbHelpBrowser.h:34
 TMrbHelpBrowser.h:35
 TMrbHelpBrowser.h:36
 TMrbHelpBrowser.h:37
 TMrbHelpBrowser.h:38
 TMrbHelpBrowser.h:39
 TMrbHelpBrowser.h:40
 TMrbHelpBrowser.h:41
 TMrbHelpBrowser.h:42
 TMrbHelpBrowser.h:43
 TMrbHelpBrowser.h:44
 TMrbHelpBrowser.h:45
 TMrbHelpBrowser.h:46
 TMrbHelpBrowser.h:47
 TMrbHelpBrowser.h:48
 TMrbHelpBrowser.h:49
 TMrbHelpBrowser.h:50
 TMrbHelpBrowser.h:51
 TMrbHelpBrowser.h:52
 TMrbHelpBrowser.h:53
 TMrbHelpBrowser.h:54
 TMrbHelpBrowser.h:55
 TMrbHelpBrowser.h:56
 TMrbHelpBrowser.h:57
 TMrbHelpBrowser.h:58
 TMrbHelpBrowser.h:59
 TMrbHelpBrowser.h:60
 TMrbHelpBrowser.h:61
 TMrbHelpBrowser.h:62
 TMrbHelpBrowser.h:63
 TMrbHelpBrowser.h:64
 TMrbHelpBrowser.h:65
 TMrbHelpBrowser.h:66
 TMrbHelpBrowser.h:67
 TMrbHelpBrowser.h:68
 TMrbHelpBrowser.h:69
 TMrbHelpBrowser.h:70
 TMrbHelpBrowser.h:71
 TMrbHelpBrowser.h:72
 TMrbHelpBrowser.h:73
 TMrbHelpBrowser.h:74
 TMrbHelpBrowser.h:75
 TMrbHelpBrowser.h:76
 TMrbHelpBrowser.h:77
 TMrbHelpBrowser.h:78
 TMrbHelpBrowser.h:79
 TMrbHelpBrowser.h:80
 TMrbHelpBrowser.h:81
 TMrbHelpBrowser.h:82
 TMrbHelpBrowser.h:83
 TMrbHelpBrowser.h:84
 TMrbHelpBrowser.h:85
 TMrbHelpBrowser.h:86
 TMrbHelpBrowser.h:87
 TMrbHelpBrowser.h:88
 TMrbHelpBrowser.h:89
 TMrbHelpBrowser.h:90
 TMrbHelpBrowser.h:91
 TMrbHelpBrowser.h:92
 TMrbHelpBrowser.h:93
 TMrbHelpBrowser.h:94
 TMrbHelpBrowser.h:95
 TMrbHelpBrowser.h:96
 TMrbHelpBrowser.h:97
 TMrbHelpBrowser.h:98
 TMrbHelpBrowser.h:99
 TMrbHelpBrowser.h:100
 TMrbHelpBrowser.h:101
 TMrbHelpBrowser.h:102
 TMrbHelpBrowser.h:103
 TMrbHelpBrowser.h:104
 TMrbHelpBrowser.h:105
 TMrbHelpBrowser.h:106
 TMrbHelpBrowser.h:107
 TMrbHelpBrowser.h:108