protected:
public:
TGShapedMain(
const TGWindow *p,
int w,
int h);
virtual ~TGShapedMain();
TGSpeedo *GetSpeedo()
const {
return fSpeedo; }
Int_t GetActInfo()
const {
return fActInfo; }
void ToggleInfos();
};
TGShapedMain *gMainWindow;
TGShapedMain::TGShapedMain(
const TGWindow *p,
int w,
int h) :
{
fActInfo = 1;
fSpeedo =
new TGSpeedo(
this, 0.0, 100.0,
"CPU",
"[%]");
fSpeedo->Connect("OdoClicked()", "TGShapedMain", this, "ToggleInfos()");
fSpeedo->Connect("LedClicked()", "TGShapedMain", this, "CloseWindow()");
Connect("CloseWindow()", "TGShapedMain", this, "CloseWindow()");
fSpeedo->SetDisplayText("Used RAM", "[MB]");
fTimer->SetCommand("Update()");
fBgnd = fSpeedo->GetPicture();
gVirtualX->ShapeCombineMask(GetId(), 0, 0, fBgnd->GetMask());
SetBackgroundPixmap(fBgnd->GetPicture());
SetWMSizeHints(fBgnd->GetWidth(), fBgnd->GetHeight(), fBgnd->GetWidth(),
fBgnd->GetHeight(), 1, 1);
MapSubwindows();
MapWindow();
DontCallClose();
Resize(GetDefaultSize());
SetWMSizeHints(GetDefaultWidth(), GetDefaultHeight(), GetDefaultWidth(),
GetDefaultHeight(), 1, 1);
SetWindowName("ROOT CPU Load Meter");
fTimer->TurnOn();
}
void TGShapedMain::ToggleInfos()
{
if (fActInfo < 2)
fActInfo++;
else
fActInfo = 0;
if (fActInfo == 0)
fSpeedo->SetDisplayText("Total RAM", "[MB]");
else if (fActInfo == 1)
fSpeedo->SetDisplayText("Used RAM", "[MB]");
else if (fActInfo == 2)
fSpeedo->SetDisplayText("Free RAM", "[MB]");
}
TGShapedMain::~TGShapedMain()
{
delete fTimer;
delete fSpeedo;
}
void TGShapedMain::CloseWindow()
{
if (fTimer)
fTimer->TurnOff();
DestroyWindow();
}
void Update()
{
prev_load = act_load;
old_memUsage = memUsage;
if (gMainWindow->GetActInfo() == 0)
else if (gMainWindow->GetActInfo() == 1)
else if (gMainWindow->GetActInfo() == 2)
if (
fabs(act_load-prev_load) > 0.9) {
prev_load = act_load;
}
if (memUsage != old_memUsage) {
old_memUsage = memUsage;
}
}
void CPUMeter()
{
gMainWindow =
new TGShapedMain(
gClient->GetRoot(), 500, 200);
gSpeedo = gMainWindow->GetSpeedo();
}
#define ClassDef(name, id)
R__EXTERN TSystem * gSystem
virtual void CloseWindow()
Close and delete main frame.
void SetOdoValue(Int_t val)
Set actual value of odo meter.
void SetThresholds(Float_t th1=0.0, Float_t th2=0.0, Float_t th3=0.0)
void SetThresholdColors(EGlowColor col1, EGlowColor col2, EGlowColor col3)
void SetScaleValue(Float_t val)
Set actual scale (needle position) value.
virtual int GetMemInfo(MemInfo_t *info) const
Returns ram and swap memory usage info into the MemInfo_t structure.
virtual int GetCpuInfo(CpuInfo_t *info, Int_t sampleTime=1000) const
Returns cpu load average and load info into the CpuInfo_t structure.
Handles synchronous and a-synchronous timer events.
VecExpr< UnaryOp< Fabs< T >, VecExpr< A, T, D >, T >, T, D > fabs(const VecExpr< A, T, D > &rhs)