ROOT logo
#ifndef __TGMrbLayout_h__
#define __TGMrbLayout_h__

//_________________________________________________[C++ CLASS DEFINITION FILE]
//////////////////////////////////////////////////////////////////////////////
// Name:           gutils/inc/TGMrbLayout.h
// Purpose:        Define utilities to be used with the MARaBOU GUI
// Class:          TGMrbLayout                  -- layout & graphic context
// Description:    Graphic utilities for the MARaBOU GUI.
// Author:         R. Lutter
// Revision:       $Id: TGMrbLayout.h,v 1.5 2007-09-26 07:42:42 Rudolf.Lutter Exp $       
// Date:           
// Keywords:
//////////////////////////////////////////////////////////////////////////////

#include "Rtypes.h"
#include "GuiTypes.h"
#include "TGGC.h"
#include "TGFont.h"
#include "TGResourcePool.h"

#include "TGLayout.h"
#include "TSystem.h"

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TGMrbLayout
// Purpose:        A utility to ease use of ROOT's GC mechanisms
// Description:    Handles graphic contexts.
// Keywords:
//////////////////////////////////////////////////////////////////////////////

class TGMrbLayout : public TObject {

	public:
		TGMrbLayout(const Char_t * Font = "Gui.NormalFont",
					const Char_t * Foreground = "black",
					const Char_t * Background = "white",
					TGLayoutHints * Hints = NULL);

		TGMrbLayout(const Char_t * Font, Pixel_t Foreground, Pixel_t Background, TGLayoutHints * Hints = NULL);

		~TGMrbLayout() {};						// dtor

		inline GContext_t GC() const { return(fGC.GetGC()); };

		Bool_t SetFont(const Char_t * Font);
		inline FontStruct_t Font() const { return(fFont->GetFontStruct()); };
		inline FontH_t FontHandle() const { return(fFont->GetFontHandle()); };

		Bool_t SetFG(const Char_t * Foreground);
		inline Pixel_t FG() const { return(fGC.GetForeground()); };

		Bool_t SetBG(const Char_t * Background);
		inline Pixel_t BG() const { return(fGC.GetBackground()); };

		inline void SetLH(TGLayoutHints * Hints) { fLayoutHints = Hints; };
		inline TGLayoutHints * LH() const { return(fLayoutHints); };

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

	protected:
		void CreateGC(TGFont * Font, Pixel_t Foreground, Pixel_t Background, TGLayoutHints * Hints = NULL);

	protected:
		TGGC fGC;
		TGFont * fFont;
		TGLayoutHints * fLayoutHints;

	ClassDef(TGMrbLayout, 0)		// [GraphUtils] Describe a graphical layout (colors, fonts, layout hints)
};

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