ultimatepp/examples/ScatterCtrl_Demo/tab5_Dynamic.cpp
koldo daaab683d5 ScatterCtrl_Demo: Files renamed
git-svn-id: svn://ultimatepp.org/upp/trunk@8786 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2015-08-02 20:10:37 +00:00

88 lines
No EOL
1.6 KiB
C++

#include "ScatterCtrl_Demo.h"
void Tab5_Dynamic::Init()
{
CtrlLayout(*this);
SizePos();
scatter.SetRange(10, 100);
scatter.AddSeries(s1).Legend("U-t").Units("V", "s").NoMark();
scatter.AddSeries(s2).Legend("I-t").Units("A", "s").NoMark();
bStart <<=(THISBACK(Start));
bStop <<=(THISBACK(Stop));
bReset <<=(THISBACK(Reset));
bPgDown <<=(THISBACK(PgDown));
bPgUp <<=(THISBACK(PgUp));
bPlus <<=(THISBACK(Plus));
bMinus <<=(THISBACK(Minus));
t = 0;
bStop.Disable();
}
void Tab5_Dynamic::Animate()
{
s1 << Pointf(t, 50+20*sin(t));
s2 << Pointf(t, 50+30*cos(t));
scatter.Refresh();
t += 0.1;
if((t-scatter.GetXMin()) >= scatter.GetXRange())
scatter.SetXYMin(scatter.GetXMin() + 0.1, 0);
}
void Tab5_Dynamic::Start()
{
SetTimeCallback(-5, THISBACK(Animate));
bStart.Disable();
bStop.Enable();
}
void Tab5_Dynamic::Stop()
{
KillTimeCallback();
bStart.Enable();
bStop.Disable();
}
void Tab5_Dynamic::Reset()
{
t = 0;
s1.Clear();
s2.Clear();
scatter.SetXYMin(0, 0);
scatter.Refresh();
}
void Tab5_Dynamic::PgDown()
{
scatter.SetXYMin(scatter.GetXMin()-5, 0);
scatter.Refresh();
}
void Tab5_Dynamic::PgUp()
{
scatter.SetXYMin(scatter.GetXMin()+5, 0);
scatter.Refresh();
}
void Tab5_Dynamic::Plus()
{
scatter.SetRange(scatter.GetXRange()/2, 100);
scatter.Refresh();
}
void Tab5_Dynamic::Minus()
{
scatter.SetRange(scatter.GetXRange()*2, 100);
scatter.Refresh();
}
ScatterDemo *Construct5()
{
static Tab5_Dynamic tab;
return &tab;
}
INITBLOCK {
RegisterExample("Dynamic", Construct5, __FILE__);
}