ROOT logo
#ifndef __TGMrbProgressBar_h__
#define __TGMrbProgressBar_h__

//_________________________________________________[C++ CLASS DEFINITION FILE]
//////////////////////////////////////////////////////////////////////////////
// Name:           gutils/inc/TGMrbProgressBar.h
// Purpose:        Define utilities to be used with the MARaBOU GUI
// Classes:        TGMrbProgressBar       -- a transient frame
//                                             showing a progress bar
// Description:    Graphic utilities for the MARaBOU GUI.
// Author:         R. Lutter
// Revision:       $Id: TGMrbProgressBar.h,v 1.7 2009-08-19 12:52:49 Rudolf.Lutter Exp $
// Date:
// Keywords:
//////////////////////////////////////////////////////////////////////////////

#include "Rtypes.h"
#include "TSystem.h"
#include "TGWindow.h"
#include "TGFrame.h"
#include "TGLabel.h"
#include "TGProgressBar.h"

#include "TGTextView.h"
#include "TMrbLogger.h"
#include "TMrbLofNamedX.h"
#include "TGMrbTextButton.h"

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TGMrbProgressBar
// Purpose:        Display messages in a scrollable listbox
// Description:    Extracts messages from MARaBOU's message loggin system
//                 and shows them in a scrollable listbox widget
// Keywords:
//////////////////////////////////////////////////////////////////////////////

class TGMrbProgressBar: public TGTransientFrame {

	public:
		enum {	kBarWidth = 400, kBarHeight = 50	};

	public:
		TGMrbProgressBar(const TGWindow * Parent, const TGWindow * Main,
												const Char_t * Title,
												UInt_t Width = kBarWidth,
												const Char_t * BarColor = "blue",
												const Char_t * BarText = NULL,
												Bool_t WithDetail = kFALSE);

		~TGMrbProgressBar() { fHeap.Delete(); };				// default dtor

//		TGMrbProgressBar(const TGMrbProgressBar & f) : TGTransientFrame(f) {};	// default copy ctor

		inline void SetRange(Float_t Min, Float_t Max) { fBar->SetRange(Min, Max); };
		inline void Increment(Float_t Incr, const Char_t * Detail = NULL, Int_t Sleep = 50) {
			fBar->Increment(Incr);
			if (Detail && fDetail)  fDetail->SetText(Detail);
			gSystem->Sleep(Sleep);
		};
		inline void SetBarColor(const Char_t * Color) { fBar->SetBarColor(Color); };
		inline void SetPosition(Int_t Position) { fBar->SetPosition(Position); };
		inline void Reset() { fBar->Reset(); };

		inline TGHProgressBar * Bar() { return fBar; };

		inline void DeleteWindow() { TGTransientFrame::DeleteWindow(); };

		inline void Help() { gSystem->Exec(Form("mrbHelp %s", this->ClassName())); };

	protected:
		TList fHeap;

		TGHProgressBar * fBar;			//! progress bar
		TGLabel * fDetail;				//! label to show details
		TGMrbTextButtonList * fAction;	//! action buttons

		TMrbLofNamedX fLofActions;

	ClassDef(TGMrbProgressBar, 1)		// [GraphUtils] MARaBOU's message viewer
};

#endif
 TGMrbProgressBar.h:1
 TGMrbProgressBar.h:2
 TGMrbProgressBar.h:3
 TGMrbProgressBar.h:4
 TGMrbProgressBar.h:5
 TGMrbProgressBar.h:6
 TGMrbProgressBar.h:7
 TGMrbProgressBar.h:8
 TGMrbProgressBar.h:9
 TGMrbProgressBar.h:10
 TGMrbProgressBar.h:11
 TGMrbProgressBar.h:12
 TGMrbProgressBar.h:13
 TGMrbProgressBar.h:14
 TGMrbProgressBar.h:15
 TGMrbProgressBar.h:16
 TGMrbProgressBar.h:17
 TGMrbProgressBar.h:18
 TGMrbProgressBar.h:19
 TGMrbProgressBar.h:20
 TGMrbProgressBar.h:21
 TGMrbProgressBar.h:22
 TGMrbProgressBar.h:23
 TGMrbProgressBar.h:24
 TGMrbProgressBar.h:25
 TGMrbProgressBar.h:26
 TGMrbProgressBar.h:27
 TGMrbProgressBar.h:28
 TGMrbProgressBar.h:29
 TGMrbProgressBar.h:30
 TGMrbProgressBar.h:31
 TGMrbProgressBar.h:32
 TGMrbProgressBar.h:33
 TGMrbProgressBar.h:34
 TGMrbProgressBar.h:35
 TGMrbProgressBar.h:36
 TGMrbProgressBar.h:37
 TGMrbProgressBar.h:38
 TGMrbProgressBar.h:39
 TGMrbProgressBar.h:40
 TGMrbProgressBar.h:41
 TGMrbProgressBar.h:42
 TGMrbProgressBar.h:43
 TGMrbProgressBar.h:44
 TGMrbProgressBar.h:45
 TGMrbProgressBar.h:46
 TGMrbProgressBar.h:47
 TGMrbProgressBar.h:48
 TGMrbProgressBar.h:49
 TGMrbProgressBar.h:50
 TGMrbProgressBar.h:51
 TGMrbProgressBar.h:52
 TGMrbProgressBar.h:53
 TGMrbProgressBar.h:54
 TGMrbProgressBar.h:55
 TGMrbProgressBar.h:56
 TGMrbProgressBar.h:57
 TGMrbProgressBar.h:58
 TGMrbProgressBar.h:59
 TGMrbProgressBar.h:60
 TGMrbProgressBar.h:61
 TGMrbProgressBar.h:62
 TGMrbProgressBar.h:63
 TGMrbProgressBar.h:64
 TGMrbProgressBar.h:65
 TGMrbProgressBar.h:66
 TGMrbProgressBar.h:67
 TGMrbProgressBar.h:68
 TGMrbProgressBar.h:69
 TGMrbProgressBar.h:70
 TGMrbProgressBar.h:71
 TGMrbProgressBar.h:72
 TGMrbProgressBar.h:73
 TGMrbProgressBar.h:74
 TGMrbProgressBar.h:75
 TGMrbProgressBar.h:76
 TGMrbProgressBar.h:77
 TGMrbProgressBar.h:78
 TGMrbProgressBar.h:79
 TGMrbProgressBar.h:80
 TGMrbProgressBar.h:81
 TGMrbProgressBar.h:82
 TGMrbProgressBar.h:83