ROOT logo
#ifndef __TGMrbMessageViewer_h__
#define __TGMrbMessageViewer_h__

//_________________________________________________[C++ CLASS DEFINITION FILE]
//////////////////////////////////////////////////////////////////////////////
// Name:           gutils/inc/TGMrbMessageViewer.h
// Purpose:        Define utilities to be used with the MARaBOU GUI
// Classes:        TGMrbMessageViewer       -- a transient frame
//                                             displaying messages
// Description:        Graphic utilities for the MARaBOU GUI.
// Author:         R. Lutter
// Revision:       $Id: TGMrbMessageViewer.h,v 1.6 2008-09-23 10:44:11 Rudolf.Lutter Exp $       
// Date:           
// Keywords:
//////////////////////////////////////////////////////////////////////////////

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

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

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TGMrbMessageViewer
// 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 TGMrbMessageViewer: public TGTransientFrame {

	public:
		enum EGMrbViewerId	{
								kGMrbViewerIdReset,
								kGMrbViewerIdAll,
								kGMrbViewerIdErrors,
								kGMrbViewerIdAdjust,
								kGMrbViewerIdClose
							};
										
	public:
		TGMrbMessageViewer(const TGWindow * Parent, const TGWindow * Main,
												const Char_t * Title,
												UInt_t Width, UInt_t Height,
												TMrbLogger * MsgLog = NULL,
												Bool_t Connect = kFALSE,
												const Char_t * File = NULL);

		~TGMrbMessageViewer() {};				// default dtor

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

		Int_t AddEntries(UInt_t Type = TMrbLogMessage::kMrbMsgAny, Int_t Start = 0, Bool_t WithDate = kTRUE);
		virtual Bool_t Notify();

		void ActionButtonPressed(Int_t FrameId, Int_t Button);		// slot method

		inline UInt_t Enable(UInt_t Bits) { fEnabled |= Bits; return(fEnabled); };
		inline UInt_t Disable(UInt_t Bits) { fEnabled &= ~Bits; return(fEnabled); };
		
		inline void SetWithDate(Bool_t WithDate) { fWithDate = WithDate; };
		
		inline void Help() { gSystem->Exec(Form("mrbHelp %s", this->ClassName())); };

	protected:
		TList fHeap;
	
		UInt_t fWidth;
		UInt_t fHeight;
		
		UInt_t fEnabled;				// one bit for each stream
		Bool_t fWithDate;				// kTRUE, if message date is to be shown
		TMrbLogger * fMsgLog;			//! connect to logging system
		TString fLogFile;				// log file

		TGTextView * fTextView; 		//! text viewer widget
		TGMrbTextButtonList * fAction; //! action buttons
								
		TMrbLofNamedX fLofActions;
		
	ClassDef(TGMrbMessageViewer, 1)		// [GraphUtils] MARaBOU's message viewer
};

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