ROOT logo
#ifndef __TGMrbTableFrame_h__
#define __TGMrbTableFrame_h__

//_________________________________________________[C++ CLASS DEFINITION FILE]
//////////////////////////////////////////////////////////////////////////////
// Name:           gutils/inc/TGMrbTableFrame.h
// Purpose:        Define utilities to be used with the MARaBOU GUI
// Classes:        TGMrbTableFrame       -- a dialog frame containing a N * M matrix
//                 TGMrbTableOfInts      -- ... pure int elements
//                 TGMrbTableOfDoubles   -- ... pure double elements
// Description:    Graphic utilities for the MARaBOU GUI.
// Author:         R. Lutter
// Revision:       $Id: TGMrbTableFrame.h,v 1.8 2006-10-02 13:28:45 Otto.Schaile Exp $       
// Date:           
// Keywords:
//////////////////////////////////////////////////////////////////////////////

#include "Rtypes.h"
#include "TSystem.h"
#include "TOrdCollection.h"
#include "TArrayI.h"
#include "TArrayD.h"
#include "TGWindow.h"
#include "TGFrame.h"
#include "TGButton.h"
#include "TList.h"

#include "TGTextEntry.h"
#include "TGTextBuffer.h"
#include "TGLayout.h"
#include "TGLabel.h"
#include "TGColorSelect.h"

//#include "TMrbString.h"
//#include "TMrbLofNamedX.h"

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TGMrbTableFrame
// Purpose:        Provide matrix of editable entry widgets
// Methods:        ProcessMessage   -- handle X events
// Description:    A transient window showing N * M entries and checkbuttons
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

class TGMrbTableFrame : public TGTransientFrame {

	public:
		enum EGMrbTableFrameCmdId		{	kTableFrameCancel, kTableFrameOk,
                                        	kTableFrameHelp, kTableFrameAct_2,
											kTableFrameAll_1, kTableFrameNone_1,
											kTableFrameAll_2, kTableFrameNone_2
										};
		enum EGMrbTableFrameActions		{	kFlagNoop, kFlagColor,
                                  kFlagFillStyle, kFlagLineStyle
										};

	public:
		TGMrbTableFrame(const TGWindow * MainFrame, Int_t * RetValue, const Char_t * Title,
								Int_t ItemWidth, Int_t Ncols, Int_t Nrows,
								TOrdCollection * Values,
								TOrdCollection * ColumnLabels = NULL,
								TOrdCollection * RowLabels = NULL,
								TArrayI * Flags = NULL,
                        		Int_t Nradio = 0,
                        		const Char_t * HelpText = NULL,
                        		const Char_t * ActionText_1 = NULL,
                        		const Char_t * ActionText_2 = NULL);

		virtual ~TGMrbTableFrame();

		virtual Bool_t ProcessMessage(Long_t MsgId, Long_t Param1, Long_t Param2);
		void StoreValues();
		void CloseWindow();
		inline void Help() { gSystem->Exec(Form("mrbHelp %s", this->ClassName())); };

	private:
		TList *fWidgets;					// list of widgets on heap
		TGCompositeFrame	   *fColFrame;
		TGCompositeFrame	   *fTableRowFrame;
		TGCompositeFrame	   *fRowFrame;
		TGCompositeFrame	   *fTableFrame;
		TGCompositeFrame	   *fFlagFrame1;
		TGCompositeFrame	   *fFlagFrame2;
		TGButton		         *fFlagButton;
		TList				      *fEntries;
		TList				      *fFlags;
		TGTextEntry 		   *fTEItem;
		TGTextBuffer		   *fTBItem;
		TGMatrixLayout  	   *fLMMatrix;
		TGCompositeFrame	   *fActionFrame;
		TGCompositeFrame	   *fColLabFrame;
		TGLabel 			      *fColLabel;
		TGCompositeFrame	   *fRowLabFrame;
		TGLabel 			      *fRowLabel;
		TGTextButton		   *fCancelButton;
		TGTextButton		   *fOkButton;
		TGTextButton		   *fAct_2Button;
		TGTextButton		   *fHelpButton;
		TOrdCollection  	   *fValues;
		TGPictureButton 		*fBtnAll1, *fBtnAll2, *fBtnNone1, *fBtnNone2;
		Int_t fNrows;
		Int_t fNcols;
		Int_t fNent;
		Int_t *fRet;
		TArrayI *fFlagsReturn;
      Int_t fRadio;
      Int_t fCheck;
      Int_t fColorSelect;
      Bool_t fCancelOk;
      const Char_t * fHelpText;

	ClassDef(TGMrbTableFrame, 0)	// [GraphUtils] A rows x cols table
};

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TGMrbTableOfInts
// Purpose:        Provide matrix of integer entries
// Description:    A transient window showing integer entries and checkbuttons
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

class TGMrbTableOfInts {

	public:
		TGMrbTableOfInts(const TGWindow * MainFrame, Int_t * RetValue, const Char_t * Title,
											Int_t ItemWidth, Int_t Ncols, Int_t Nrows,
											TArrayI & Values, Int_t Base = 0,
											TOrdCollection * ColumnLabels = NULL,
											TOrdCollection * RowLabels = NULL,
											TArrayI * Flags = NULL,
                        			Int_t Nradio = 0,
                        			const Char_t * HelpText = NULL,
                                 const Char_t * ActionText_1 = NULL,
                                 const Char_t * ActionText_2 = NULL);

		virtual ~TGMrbTableOfInts() {};

		TGMrbTableOfInts(const TGMrbTableOfInts &) {};				// default copy ctor

		inline void Help() { gSystem->Exec("mrbHelp TGMrbTableOfInts"); };

	ClassDef(TGMrbTableOfInts,0)
};

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TGMrbTableOfDoubles
// Purpose:        Provide matrix of double entries
// Description:    A transient window showing double entries and checkbuttons
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

class TGMrbTableOfDoubles {

	public:
		TGMrbTableOfDoubles(const TGWindow * MainFrame, Int_t * RetValue, const Char_t * Title,
											Int_t ItemWidth, Int_t Ncols, Int_t Nrows,
											TArrayD & Values, Int_t Precision = 0,
											TOrdCollection * ColumnLabels = NULL,
											TOrdCollection * RowLabels = NULL,
											TArrayI * Flags = NULL,
                        			Int_t Nradio = 0,
                        			const Char_t * HelpText = NULL,
                                 const Char_t * ActionText_1 = NULL,
                                 const Char_t * ActionText_2 = NULL);

		virtual ~TGMrbTableOfDoubles() {};

		TGMrbTableOfDoubles(const TGMrbTableOfDoubles &) {};				// default copy ctor

		inline void Help() { gSystem->Exec("mrbHelp TGMrbTableOfDoubles"); };

	ClassDef(TGMrbTableOfDoubles,0)
};

#endif
 TGMrbTableFrame.h:1
 TGMrbTableFrame.h:2
 TGMrbTableFrame.h:3
 TGMrbTableFrame.h:4
 TGMrbTableFrame.h:5
 TGMrbTableFrame.h:6
 TGMrbTableFrame.h:7
 TGMrbTableFrame.h:8
 TGMrbTableFrame.h:9
 TGMrbTableFrame.h:10
 TGMrbTableFrame.h:11
 TGMrbTableFrame.h:12
 TGMrbTableFrame.h:13
 TGMrbTableFrame.h:14
 TGMrbTableFrame.h:15
 TGMrbTableFrame.h:16
 TGMrbTableFrame.h:17
 TGMrbTableFrame.h:18
 TGMrbTableFrame.h:19
 TGMrbTableFrame.h:20
 TGMrbTableFrame.h:21
 TGMrbTableFrame.h:22
 TGMrbTableFrame.h:23
 TGMrbTableFrame.h:24
 TGMrbTableFrame.h:25
 TGMrbTableFrame.h:26
 TGMrbTableFrame.h:27
 TGMrbTableFrame.h:28
 TGMrbTableFrame.h:29
 TGMrbTableFrame.h:30
 TGMrbTableFrame.h:31
 TGMrbTableFrame.h:32
 TGMrbTableFrame.h:33
 TGMrbTableFrame.h:34
 TGMrbTableFrame.h:35
 TGMrbTableFrame.h:36
 TGMrbTableFrame.h:37
 TGMrbTableFrame.h:38
 TGMrbTableFrame.h:39
 TGMrbTableFrame.h:40
 TGMrbTableFrame.h:41
 TGMrbTableFrame.h:42
 TGMrbTableFrame.h:43
 TGMrbTableFrame.h:44
 TGMrbTableFrame.h:45
 TGMrbTableFrame.h:46
 TGMrbTableFrame.h:47
 TGMrbTableFrame.h:48
 TGMrbTableFrame.h:49
 TGMrbTableFrame.h:50
 TGMrbTableFrame.h:51
 TGMrbTableFrame.h:52
 TGMrbTableFrame.h:53
 TGMrbTableFrame.h:54
 TGMrbTableFrame.h:55
 TGMrbTableFrame.h:56
 TGMrbTableFrame.h:57
 TGMrbTableFrame.h:58
 TGMrbTableFrame.h:59
 TGMrbTableFrame.h:60
 TGMrbTableFrame.h:61
 TGMrbTableFrame.h:62
 TGMrbTableFrame.h:63
 TGMrbTableFrame.h:64
 TGMrbTableFrame.h:65
 TGMrbTableFrame.h:66
 TGMrbTableFrame.h:67
 TGMrbTableFrame.h:68
 TGMrbTableFrame.h:69
 TGMrbTableFrame.h:70
 TGMrbTableFrame.h:71
 TGMrbTableFrame.h:72
 TGMrbTableFrame.h:73
 TGMrbTableFrame.h:74
 TGMrbTableFrame.h:75
 TGMrbTableFrame.h:76
 TGMrbTableFrame.h:77
 TGMrbTableFrame.h:78
 TGMrbTableFrame.h:79
 TGMrbTableFrame.h:80
 TGMrbTableFrame.h:81
 TGMrbTableFrame.h:82
 TGMrbTableFrame.h:83
 TGMrbTableFrame.h:84
 TGMrbTableFrame.h:85
 TGMrbTableFrame.h:86
 TGMrbTableFrame.h:87
 TGMrbTableFrame.h:88
 TGMrbTableFrame.h:89
 TGMrbTableFrame.h:90
 TGMrbTableFrame.h:91
 TGMrbTableFrame.h:92
 TGMrbTableFrame.h:93
 TGMrbTableFrame.h:94
 TGMrbTableFrame.h:95
 TGMrbTableFrame.h:96
 TGMrbTableFrame.h:97
 TGMrbTableFrame.h:98
 TGMrbTableFrame.h:99
 TGMrbTableFrame.h:100
 TGMrbTableFrame.h:101
 TGMrbTableFrame.h:102
 TGMrbTableFrame.h:103
 TGMrbTableFrame.h:104
 TGMrbTableFrame.h:105
 TGMrbTableFrame.h:106
 TGMrbTableFrame.h:107
 TGMrbTableFrame.h:108
 TGMrbTableFrame.h:109
 TGMrbTableFrame.h:110
 TGMrbTableFrame.h:111
 TGMrbTableFrame.h:112
 TGMrbTableFrame.h:113
 TGMrbTableFrame.h:114
 TGMrbTableFrame.h:115
 TGMrbTableFrame.h:116
 TGMrbTableFrame.h:117
 TGMrbTableFrame.h:118
 TGMrbTableFrame.h:119
 TGMrbTableFrame.h:120
 TGMrbTableFrame.h:121
 TGMrbTableFrame.h:122
 TGMrbTableFrame.h:123
 TGMrbTableFrame.h:124
 TGMrbTableFrame.h:125
 TGMrbTableFrame.h:126
 TGMrbTableFrame.h:127
 TGMrbTableFrame.h:128
 TGMrbTableFrame.h:129
 TGMrbTableFrame.h:130
 TGMrbTableFrame.h:131
 TGMrbTableFrame.h:132
 TGMrbTableFrame.h:133
 TGMrbTableFrame.h:134
 TGMrbTableFrame.h:135
 TGMrbTableFrame.h:136
 TGMrbTableFrame.h:137
 TGMrbTableFrame.h:138
 TGMrbTableFrame.h:139
 TGMrbTableFrame.h:140
 TGMrbTableFrame.h:141
 TGMrbTableFrame.h:142
 TGMrbTableFrame.h:143
 TGMrbTableFrame.h:144
 TGMrbTableFrame.h:145
 TGMrbTableFrame.h:146
 TGMrbTableFrame.h:147
 TGMrbTableFrame.h:148
 TGMrbTableFrame.h:149
 TGMrbTableFrame.h:150
 TGMrbTableFrame.h:151
 TGMrbTableFrame.h:152
 TGMrbTableFrame.h:153
 TGMrbTableFrame.h:154
 TGMrbTableFrame.h:155
 TGMrbTableFrame.h:156
 TGMrbTableFrame.h:157
 TGMrbTableFrame.h:158
 TGMrbTableFrame.h:159
 TGMrbTableFrame.h:160
 TGMrbTableFrame.h:161
 TGMrbTableFrame.h:162
 TGMrbTableFrame.h:163
 TGMrbTableFrame.h:164
 TGMrbTableFrame.h:165
 TGMrbTableFrame.h:166
 TGMrbTableFrame.h:167
 TGMrbTableFrame.h:168
 TGMrbTableFrame.h:169
 TGMrbTableFrame.h:170
 TGMrbTableFrame.h:171
 TGMrbTableFrame.h:172
 TGMrbTableFrame.h:173
 TGMrbTableFrame.h:174
 TGMrbTableFrame.h:175
 TGMrbTableFrame.h:176
 TGMrbTableFrame.h:177
 TGMrbTableFrame.h:178