ROOT logo
// @(#)root/memstat:$Name$:$Id: TMemStatViewerGUI.h 30815 2009-10-20 13:49:22Z rdm $
// Author: M.Ivanov -- Anar Manafov (A.Manafov@gsi.de) 28/04/2008

/*************************************************************************
 * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
//  GUI for the AliTPCCalibViewer                                            //
//  used for the calibration monitor                                         //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TMemStatViewerGUI
#define ROOT_TMemStatViewerGUI

// STD
#include <string>
#include <memory>
// ROOT
#ifndef ROOT_TGFrame
#include "TGFrame.h"
#endif

class TMemStat;
class TGTextView;
class TGNumberEntry;
class TGComboBox;

class TMemStatViewerGUI : public TGCompositeFrame
{
protected:
   TMemStat *fViewer;                           // CalibViewer object used for drawing
   TGTextView *fText;                           // text widget
   TGNumberEntry *fNmbStackDeep;                // number entry box for specifying the stack deepness
   TGNumberEntry *fNmbSortDeep;                 // number entry box for specifying the number of stamps
   std::string fCurLib;
   std::string fCurFunc;

protected:
   void MakeContSortStat(TGCompositeFrame *frame);
   void MakeContSortStamp(TGCompositeFrame *frame);
   void MakeContDeep(TGCompositeFrame *frame);
   void MakeStampList(TGCompositeFrame *frame);
   void MakeSelection(TGCompositeFrame *frame);

   void Initialize(Option_t* option);                  // initializes the GUI with default settings and opens tree for drawing
   void MakePrint();                                   // get print

   template< class T >
   void HandleRButtons(Int_t id, Int_t FirstBtnId, T *ViewerSortType);

public:
   TMemStatViewerGUI() {;}
   TMemStatViewerGUI(const TGWindow *p, UInt_t w, UInt_t h, Option_t* option = "read");
   virtual ~TMemStatViewerGUI();

   static void ShowGUI();                               // initialize and show GUI for presentation

   void HandleButtonsSortStat(Int_t id = -1);           // handles mutual radio button for sort stat
   void HandleButtonsSortStamp(Int_t id = -1);          // handles mutual radio button for sort stamp
   void HandleDeep(Long_t id);                          // handles stack deep and nrows
   void HandleStampSelect(const char*);
   void HandleFuncSelect(const char*);
   void HandleLibSelect(const char*);

   ClassDef(TMemStatViewerGUI, 0) // a GUI class of memstat
};

//______________________________________________________________________________
template< class T >
void TMemStatViewerGUI::HandleRButtons(Int_t id, Int_t FirstBtnId, T *ViewerSortType)
{
   // handles mutual radio button exclusions
   *ViewerSortType = static_cast<T>(id - FirstBtnId);
}


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