ScatterCtrl: Removed THISBACK

git-svn-id: svn://ultimatepp.org/upp/trunk@15250 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
koldo 2020-10-14 19:10:39 +00:00
parent 548b307e12
commit efad6da1d6
9 changed files with 156 additions and 181 deletions

View file

@ -50,7 +50,7 @@ void DataDlg::Init(ScatterCtrl& scatter)
}
}
tab <<= THISBACK(OnTab);
tab.WhenAction = [=]{OnTab();};
butOK.WhenAction = [=] {Close();};
}
@ -125,7 +125,7 @@ void DataDlg::OnTab()
}
}
}
data.WhenBar = THISBACK(OnArrayBar);
data.WhenBar = [=](Bar &bar) {OnArrayBar(bar);};
}
void DataDlg::ArrayCopy() {
@ -178,7 +178,7 @@ void DataDlg::OnArrayBar(Bar &menu)
if (index < 0)
return;
menu.Add(t_("Select all"), Null, THISBACK(ArraySelect)).Key(K_CTRL_A)
menu.Add(t_("Select all"), Null, [=] {ArraySelect();}).Key(K_CTRL_A)
.Help(t_("Select all rows"));
ArrayCtrl &data = series[index].data;
@ -187,9 +187,9 @@ void DataDlg::OnArrayBar(Bar &menu)
menu.Add(t_("No row selected"), Null, Null).Enable(false).Bold(true);
else {
menu.Add(Format(t_("Selected %d rows"), count), Null, Null).Enable(false).Bold(true);
menu.Add(t_("Copy"), ScatterImgP::Copy(), THISBACK(ArrayCopy)).Key(K_CTRL_C)
menu.Add(t_("Copy"), ScatterImgP::Copy(), [=] {ArrayCopy();}).Key(K_CTRL_C)
.Help(t_("Copy selected rows to clipboard"));
menu.Add(t_("Save to file"), ScatterImgP::Save(), THISBACK1(ArraySaveToFile, Null)).Key(K_CTRL_S)
menu.Add(t_("Save to file"), ScatterImgP::Save(), [=] {ArraySaveToFile(Null);}).Key(K_CTRL_S)
.Help(t_("Save to .csv file"));
}
}

View file

@ -54,14 +54,14 @@ void PieCtrl::Paint(Draw& w)
}
void PieCtrl::RightDown(Point, dword) {
MenuBar::Execute(THISBACK(ContextMenu));
MenuBar::Execute([=](Bar& bar){ContextMenu(bar);});
}
void PieCtrl::ContextMenu(Bar& bar)
{
bar.Add(t_("Copy"), PieImg::Copy(), THISBACK1(SaveToClipboard, false)).Key(K_CTRL_C)
bar.Add(t_("Copy"), PieImg::Copy(), [=] {SaveToClipboard(false);}).Key(K_CTRL_C)
.Help(t_("Copy image to clipboard"));
bar.Add(t_("Save to file"), PieImg::Save(), THISBACK1(SaveToFile, Null)).Key(K_CTRL_S)
bar.Add(t_("Save to file"), PieImg::Save(), [=] {SaveToFile(Null);}).Key(K_CTRL_S)
.Help(t_("Save image to file"));
}
@ -85,7 +85,7 @@ void PieCtrl::SaveToFile(String fileName)
fileToSave.ClearTypes();
fileToSave.Type(Format(t_("%s file"), "JPEG"), "*.jpg");
fileToSave.Type(Format(t_("%s file"), "PNG"), "*.png");
fileToSave.type.WhenAction = THISBACK(OnFileToSave);
fileToSave.type.WhenAction = [=] {OnFileToSave();};
if(!fileToSave.ExecuteSaveAs(t_("Saving plot to PNG or JPEG file"))) {
Exclamation(t_("Plot has not been saved"));
return;

View file

@ -10,7 +10,6 @@ namespace Upp {
class PieCtrl: public StaticRect, public PieDraw {
public:
typedef PieCtrl CLASSNAME;
PieCtrl();
void Paint(Draw& w);

View file

@ -23,7 +23,7 @@ void PropertiesDlg::Init(ScatterCtrl& scatter)
tab.Add(general, t_("General"));
OnTab();
tab <<= THISBACK(OnTab);
tab.WhenAction = [=]{OnTab();};
butOK.WhenAction = [=] {Close();};
}
@ -76,7 +76,7 @@ void ProcessingDlg::Init(ScatterCtrl& scatter)
}
if (list.list.GetCount() > 0)
list.list.SetCursor(0);
list.list.WhenSel = THISBACK(UpdateFields);
list.list.WhenSel = [=] {UpdateFields();};
UpdateFields();
right.butOK.WhenAction = [=] {Close();};
@ -126,45 +126,45 @@ ProcessingTab::ProcessingTab()
tab.Add(splitterTabOp.SizePos(), t_("Operations"));
tab.Add(splitterTabBestFit.SizePos(), t_("Best fit"));
tab.Add(splitterTabHist.SizePos(), t_("Histogram"));
tab.WhenSet = THISBACK(OnSet);
tab.WhenSet = [=] {OnSet();};
tabFreqRight.butFFT.WhenAction = THISBACK(OnFFT);
tabFreqRight.butFFT.WhenAction = [=] {OnFFT();};
tabFreqRight.opXAxis = 0;
tabFreqRight.opXAxis.WhenAction = THISBACK(OnFFT);
tabFreqRight.type.WhenAction = THISBACK(OnFFT);
tabFreqRight.opXAxis.WhenAction = [=] {OnFFT();};
tabFreqRight.type.WhenAction = [=] {OnFFT();};
tabFreqRight.type = 0;
for (int i = 0; i < DataSource::GetFFTWindowCount(); ++i)
tabFreqRight.window.Add(InitCaps(DataSource::GetFFTWindowStr(i)));
tabFreqRight.window.SetIndex(1);
tabFreqRight.window.WhenAction = THISBACK(OnFFT);
tabFreqRight.window.WhenAction = [=] {OnFFT();};
tabFreqRight.num <<= 1;
tabFreqRight.overlapping <<= 0.1;
tabFitRight.opSeries = true;
tabFitRight.opSeries.WhenAction = THISBACK(OnOp);
tabFitRight.opAverage.WhenAction = THISBACK(OnOp);
tabFitRight.opLinear.WhenAction = THISBACK(OnOp);
tabFitRight.opCuadratic.WhenAction = THISBACK(OnOp);
tabFitRight.opCubic.WhenAction = THISBACK(OnOp);
tabFitRight.opSinus.WhenAction = THISBACK(OnOp);
tabFitRight.opSinusTend.WhenAction = THISBACK(OnOp);
tabFitRight.opSpline.WhenAction = THISBACK(OnOp);
tabFitRight.opDerivative.WhenAction = THISBACK(OnOp);
tabFitRight.derOrder.WhenAction = THISBACK(OnOp);
tabFitRight.derAccuracy.WhenAction = THISBACK(OnOp);
tabFitRight.opSG.WhenAction = THISBACK(OnOp);
tabFitRight.sgOrder.WhenAction = THISBACK(OnOp);
tabFitRight.sgSize.WhenAction = THISBACK(OnOp);
tabFitRight.sgDeg.WhenAction = THISBACK(OnOp);
tabFitRight.opMax.WhenAction = THISBACK(OnOp);
tabFitRight.opMin.WhenAction = THISBACK(OnOp);
tabFitRight.opMovAvg.WhenAction = THISBACK(OnOp);
tabFitRight.opSecAvg.WhenAction = THISBACK(OnOp);
tabFitRight.opCumAvg.WhenAction = THISBACK(OnOp);
tabFitRight.butAutoSensSector.WhenAction = THISBACK(OnAutoSensSector);
tabFitRight.width.WhenLostFocus = THISBACK(OnUpdateSensitivity);
tabFitRight.width.WhenAction = THISBACK(OnUpdateSensitivity);
tabFitRight.opSeries.WhenAction = [=] {OnOp();};
tabFitRight.opAverage.WhenAction = [=] {OnOp();};
tabFitRight.opLinear.WhenAction = [=] {OnOp();};
tabFitRight.opCuadratic.WhenAction = [=] {OnOp();};
tabFitRight.opCubic.WhenAction = [=] {OnOp();};
tabFitRight.opSinus.WhenAction = [=] {OnOp();};
tabFitRight.opSinusTend.WhenAction = [=] {OnOp();};
tabFitRight.opSpline.WhenAction = [=] {OnOp();};
tabFitRight.opDerivative.WhenAction = [=] {OnOp();};
tabFitRight.derOrder.WhenAction = [=] {OnOp();};
tabFitRight.derAccuracy.WhenAction = [=] {OnOp();};
tabFitRight.opSG.WhenAction = [=] {OnOp();};
tabFitRight.sgOrder.WhenAction = [=] {OnOp();};
tabFitRight.sgSize.WhenAction = [=] {OnOp();};
tabFitRight.sgDeg.WhenAction = [=] {OnOp();};
tabFitRight.opMax.WhenAction = [=] {OnOp();};
tabFitRight.opMin.WhenAction = [=] {OnOp();};
tabFitRight.opMovAvg.WhenAction = [=] {OnOp();};
tabFitRight.opSecAvg.WhenAction = [=] {OnOp();};
tabFitRight.opCumAvg.WhenAction = [=] {OnOp();};
tabFitRight.butAutoSensSector.WhenAction = [=] {OnAutoSensSector();};
tabFitRight.width.WhenLostFocus = [=] {OnUpdateSensitivity();};
tabFitRight.width.WhenAction = [=] {OnUpdateSensitivity();};
tabFitRight.opDerivative.Tip(t_("Numerical derivative including derivative order and accuracy (related to window size)"));
tabFitRight.derOrder <<= 1;
@ -181,11 +181,11 @@ ProcessingTab::ProcessingTab()
tabFitRight.sgDeg <<= 3;
tabFitRight.sgDeg.Tip(t_("Polynomial degree"));
tabFitRight.numDecimals <<= 3;
tabFitRight.numDecimals.WhenAction = THISBACK(UpdateEquations);
tabFitRight.showEquation.WhenAction = THISBACK(OnShowEquation);
tabFitRight.numDecimals.WhenAction = [=] {UpdateEquations();};
tabFitRight.showEquation.WhenAction = [=] {OnShowEquation();};
tabOpRight.xLow.WhenLostFocus = THISBACK(OnOperation);
tabOpRight.xHigh.WhenLostFocus = THISBACK(OnOperation);
tabOpRight.xLow.WhenLostFocus = [=] {OnOperation();};
tabOpRight.xHigh.WhenLostFocus = [=] {OnOperation();};
tabBestFitRight.coefficients = 0;
tabBestFitRight.coefficients.Tip(t_("To show real equation coefficients with different precisions or just in text"));
@ -197,7 +197,7 @@ ProcessingTab::ProcessingTab()
tabBestFitRight.gridTrend.AddColumn(t_("Equation"), 30);
tabBestFitRight.gridTrend.AddColumn(t_("R2"), 5);
tabBestFitRight.gridTrend.SetLineCy(EditField::GetStdHeight()).MultiSelect();
tabBestFitRight.gridTrend.WhenBar = THISBACK(OnArrayBar);
tabBestFitRight.gridTrend.WhenBar = [=](Bar &menu) {OnArrayBar(menu);};
tabBestFitRight.gridTrend.Sort(r2Compare);
for (int i = 0; i < ExplicitEquation::GetEquationCount(); ++i)
equationTypes.Add(ExplicitEquation::Create(i));
@ -205,13 +205,13 @@ ProcessingTab::ProcessingTab()
equationTypes.Add(userEquation);
tabBestFitRight.butFit.Tip(t_("It tries to fit the series with the supported equations"));
tabBestFitRight.butFit.WhenPush = THISBACK(OnFit);
tabBestFitRight.butFit.WhenPush = [=] {OnFit();};
tabHistRight.axis.Add(t_("X"));
tabHistRight.axis.Add(t_("Y"));
tabHistRight.axis.SetIndex(1);
tabHistRight.axis.WhenAction = THISBACK(OnSet);
tabHistRight.butHist <<= THISBACK(OnHist);
tabHistRight.axis.WhenAction = [=] {OnSet();};
tabHistRight.butHist.WhenAction = [=] {OnHist();};
tabHistRight.numVals <<= 30;
tabHistRight.valNormalize <<= 100;
tabHistRight.opStaggered <<= true;
@ -239,8 +239,8 @@ void ProcessingTab::ArraySelect() {
}
void ProcessingTab::OnArrayBar(Bar &menu) {
menu.Add(t_("Select all"), Null, THISBACK(ArraySelect)).Key(K_CTRL_A).Help(t_("Select all rows"));
menu.Add(t_("Copy"), ScatterImgP::Copy(), THISBACK(ArrayCopy)).Key(K_CTRL_C).Help(t_("Copy selected rows"));
menu.Add(t_("Select all"), Null, [=] {ArraySelect();}).Key(K_CTRL_A).Help(t_("Select all rows"));
menu.Add(t_("Copy"), ScatterImgP::Copy(), [=] {ArrayCopy();}).Key(K_CTRL_C).Help(t_("Copy selected rows"));
}
void ProcessingTab::OnFit() {

View file

@ -63,30 +63,30 @@ void MeasuresTab::Init(ScatterCtrl& scatter)
}
dashStyle <<= DashStyle::TypeName(id);
xMin.WhenEnter = THISBACK(Change);
xMax.WhenEnter = THISBACK(Change);
yMin.WhenEnter = THISBACK(Change);
yMax.WhenEnter = THISBACK(Change);
yMin2.WhenEnter = THISBACK(Change);
yMax2.WhenEnter = THISBACK(Change);
xMinUnit.WhenEnter = THISBACK(Change);
yMinUnit.WhenEnter = THISBACK(Change);
xMajorUnit.WhenEnter = THISBACK(Change);
yMajorUnit.WhenEnter = THISBACK(Change);
xMin.WhenEnter = [=]{Change();};
xMax.WhenEnter = [=]{Change();};
yMin.WhenEnter = [=]{Change();};
yMax.WhenEnter = [=]{Change();};
yMin2.WhenEnter = [=]{Change();};
yMax2.WhenEnter = [=]{Change();};
xMinUnit.WhenEnter = [=]{Change();};
yMinUnit.WhenEnter = [=]{Change();};
xMajorUnit.WhenEnter = [=]{Change();};
yMajorUnit.WhenEnter = [=]{Change();};
opAttachX.WhenAction = THISBACK(Change);
opAttachY.WhenAction = THISBACK(Change);
opReticleX.WhenAction = THISBACK(Change);
opReticleY.WhenAction = THISBACK(Change);
opReticleY2.WhenAction = THISBACK(Change);
opReticleXNumbers.WhenAction = THISBACK(Change);
opReticleYNumbers.WhenAction = THISBACK(Change);
opReticleY2Numbers.WhenAction = THISBACK(Change);
reticlethickness <<= THISBACK(Change);
opAttachX.WhenAction = [=]{Change();};
opAttachY.WhenAction = [=]{Change();};
opReticleX.WhenAction = [=]{Change();};
opReticleY.WhenAction = [=]{Change();};
opReticleY2.WhenAction = [=]{Change();};
opReticleXNumbers.WhenAction = [=]{Change();};
opReticleYNumbers.WhenAction = [=]{Change();};
opReticleY2Numbers.WhenAction = [=]{Change();};
reticlethickness.WhenAction = [=]{Change();};
linecolor <<= THISBACK(Change);
linethickness <<= THISBACK(Change);
dashStyle.WhenAction = THISBACK(Change);
linecolor.WhenAction = [=]{Change();};
linethickness.WhenAction = [=]{Change();};
dashStyle.WhenAction = [=]{Change();};
Change();
}
@ -140,31 +140,31 @@ void TextsTab::Init(ScatterCtrl& scatter)
pscatter = &scatter;
title <<= scatter.GetTitle();
title <<= THISBACK(Change);
title.WhenAction = [=]{Change();};
xLabel <<= scatter.GetLabelX();
xLabel <<= THISBACK(Change);
xLabel.WhenAction = [=]{Change();};
yLabel <<= scatter.GetLabelY();
yLabel <<= THISBACK(Change);
yLabel.WhenAction = [=]{Change();};
yLabel2 <<= scatter.GetLabelY2();
yLabel2 <<= THISBACK(Change);
yLabel2.WhenAction = [=]{Change();};
backcolor <<= scatter.GetPlotAreaColor();
backcolor <<= THISBACK(Change);
backcolor.WhenAction = [=]{Change();};
leftMargin <<= scatter.GetPlotAreaLeftMargin();
leftMargin <<= THISBACK(Change);
leftMargin.WhenAction = [=]{Change();};
rightMargin <<= scatter.GetPlotAreaRightMargin();
rightMargin <<= THISBACK(Change);
rightMargin.WhenAction = [=]{Change();};
topMargin <<= scatter.GetPlotAreaTopMargin();
topMargin <<= THISBACK(Change);
topMargin.WhenAction = [=]{Change();};
bottomMargin <<= scatter.GetPlotAreaBottomMargin();
bottomMargin <<= THISBACK(Change);
bottomMargin.WhenAction = [=]{Change();};
butFontTitle.SetImage(ScatterImgP::ColorA);
butFontTitle <<= THISBACK(OnFontTitle);
butFontTitle.WhenAction = [=]{Change();};
colorTitle <<= scatter.GetTitleColor();
colorTitle <<= THISBACK(Change);
colorTitle.WhenAction = [=]{Change();};
butFontLabel.SetImage(ScatterImgP::ColorA);
butFontLabel <<= THISBACK(OnFontLabel);
butFontLabel.WhenAction = [=]{OnFontLabel();};
colorLabel <<= scatter.GetLabelsColor();
colorLabel <<= THISBACK(Change);
colorLabel.WhenAction = [=]{Change();};
Change();
}
@ -173,7 +173,7 @@ void TextsTab::OnFontTitle() {
FontSelect fontSelect;
fontSelect.Set(pscatter->GetTitleFont());
fontSelect.WhenAction = THISBACK(OnChangeFontTitle);
fontSelect.WhenAction = [=](Font f) {OnChangeFontTitle(f);};
fontSelect.Execute(butFontTitle);
}
@ -186,7 +186,7 @@ void TextsTab::OnFontLabel() {
FontSelect fontSelect;
fontSelect.Set(pscatter->GetLabelsFont());
fontSelect.WhenAction = THISBACK(OnChangeFontLabel);
fontSelect.WhenAction = [=](Font f) {OnChangeFontLabel(f);};
fontSelect.Execute(butFontLabel);
}
@ -217,35 +217,35 @@ void LegendTab::Init(ScatterCtrl& scatter)
pscatter = &scatter;
showLegend <<= scatter.GetShowLegend();
showLegend <<= THISBACK(Change);
showLegend.WhenAction = [=] {Change();};
legendPosition <<= (scatter.GetLegendAnchor() == ScatterDraw::TOP ? 0 : 1);
legendPosition <<= THISBACK(Change);
legendPosition.WhenAction = [=] {Change();};
switch(scatter.GetLegendAnchor()) {
case ScatterDraw::LEFT_TOP: legendAnchorLT = true; break;
case ScatterDraw::RIGHT_TOP: legendAnchorRT = true; break;
case ScatterDraw::LEFT_BOTTOM: legendAnchorLB = true; break;
case ScatterDraw::RIGHT_BOTTOM: legendAnchorRB = true; break;
}
legendAnchorLT <<= THISBACK1(ChangeAnchor, &legendAnchorLT);
legendAnchorRT <<= THISBACK1(ChangeAnchor, &legendAnchorRT);
legendAnchorLB <<= THISBACK1(ChangeAnchor, &legendAnchorLB);
legendAnchorRB <<= THISBACK1(ChangeAnchor, &legendAnchorRB);
legendAnchorLT.WhenAction = [&] {ChangeAnchor(&legendAnchorLT);};
legendAnchorRT.WhenAction = [&] {ChangeAnchor(&legendAnchorRT);};
legendAnchorLB.WhenAction = [&] {ChangeAnchor(&legendAnchorLB);};
legendAnchorRB.WhenAction = [&] {ChangeAnchor(&legendAnchorRB);};
fillColor <<= scatter.GetLegendFillColor();
fillColor <<= THISBACK(Change);
fillColor.WhenAction = [=] {Change();};
borderColor <<= scatter.GetLegendBorderColor();
borderColor <<= THISBACK(Change);
borderColor.WhenAction = [=] {Change();};
Point p = scatter.GetLegendPos();
tableHoriz <<= p.x;
tableHoriz <<= THISBACK(Change);
tableHoriz.WhenAction = [=] {Change();};
tableVert <<= p.y;
tableVert <<= THISBACK(Change);
tableVert.WhenAction = [=] {Change();};
numCols <<= scatter.GetLegendNumCols();
numCols <<= THISBACK(Change);
numCols.WhenAction = [=] {Change();};
rowSpacing <<= scatter.GetLegendRowSpacing();
rowSpacing <<= THISBACK(Change);
rowSpacing.WhenAction = [=] {Change();};
Change();
}
@ -317,26 +317,26 @@ void GeneralTab::Init(ScatterCtrl& scatter)
dropResolution.Add(ScatterDraw::MD_ANTIALIASED, t_("Painter Antialiased"));
dropResolution.Add(ScatterDraw::MD_SUBPIXEL, t_("Painter Subpixel"));
dropResolution = scatter.GetMode();
dropResolution <<= THISBACK(Change);
dropResolution.WhenAction = [=] {Change();};
dropRotate.Clear();
dropRotate.Add(ScatterCtrl::Angle_0, t_(""));
dropRotate.Add(ScatterCtrl::Angle_90, t_("90º"));
dropRotate.Add(ScatterCtrl::Angle_180, t_("180º"));
dropRotate.Add(ScatterCtrl::Angle_270, t_("270º"));
dropRotate = scatter.GetRotate();
dropRotate <<= THISBACK(Change);
dropRotate.WhenAction = [=] {Change();};
editWidth <<= scatter.GetSaveSize().cx;
editHeight <<= scatter.GetSaveSize().cy;
opResponsive <<= scatter.ScatterDraw::IsResponsive();
editSensitivity <<= scatter.ScatterDraw::GetResponsivenessFactor();
editJpgQ <<= scatter.GetJPGQuality();
editWidth <<= THISBACK(Change);
editHeight <<= THISBACK(Change);
opResponsive <<= THISBACK(Change);
editSensitivity <<= THISBACK(Change);
editJpgQ <<= THISBACK(Change);
editWidth.WhenAction = [=] {Change();};
editHeight.WhenAction = [=] {Change();};
opResponsive.WhenAction = [=] {Change();};
editSensitivity.WhenAction = [=] {Change();};
editJpgQ.WhenAction = [=] {Change();};
butApplyToAll <<= THISBACK(ChangeAll);
butApplyToAll.WhenAction = [=] {ChangeAll();};
Change();
}
@ -398,12 +398,12 @@ void SeriesTab::Init0()
for(int i = 0; i < scatter.GetCount(); i++)
left.list.Add(scatter.GetLegend(i));
left.list.SetCursor(0);
left.list.WhenSel = THISBACK(UpdateFields);
left.butMoveUp <<= THISBACK(OnMoveUp);
left.list.WhenSel = [=] {UpdateFields();};
left.butMoveUp.WhenAction = [=] {OnMoveUp();};
left.butMoveUp.SetImage(ScatterImgP::UpArrow);
left.butMoveDown <<= THISBACK(OnMoveDown);
left.butMoveDown.WhenAction = [=] {OnMoveDown();};
left.butMoveDown.SetImage(ScatterImgP::DownArrow);
left.butDelete <<= THISBACK(OnDelete);
left.butDelete.WhenAction = [=] {OnDelete();};
right.marktype.Clear();
@ -418,24 +418,24 @@ void SeriesTab::Init0()
UpdateFields();
right.linecolor <<= THISBACK(Change);
right.fillcolor <<= THISBACK(Change);
right.visible <<= THISBACK(Change);
right.dashStyle.WhenAction = THISBACK(Change);
right.linethickness <<= THISBACK(Change);
right.linecolor.WhenAction = [=] {Change();};
right.fillcolor.WhenAction = [=] {Change();};
right.visible.WhenAction = [=] {Change();};
right.dashStyle.WhenAction = [=] {Change();};
right.linethickness.WhenAction = [=] {Change();};
right.markstyle.WhenAction = THISBACK(Change);
right.markcolor <<= THISBACK(Change);
right.markwidth <<= THISBACK(Change);
right.marktype.WhenAction = THISBACK(Change);
right.markstyle.WhenAction = [=] {Change();};
right.markcolor.WhenAction = [=] {Change();};
right.markwidth.WhenAction = [=] {Change();};
right.marktype.WhenAction = [=] {Change();};
right.showLegend <<= THISBACK(Change);
right.showLegend.WhenAction = [=] {Change();};
right.unitsY <<= THISBACK(Change);
right.unitsX <<= THISBACK(Change);
right.unitsY.WhenAction = [=] {Change();};
right.unitsX.WhenAction = [=] {Change();};
right.name <<= THISBACK(Change);
right.primary <<= THISBACK(Change);
right.name.WhenAction = [=] {Change();};
right.primary.WhenAction = [=] {Change();};
right.name.SetFocus();
}

View file

@ -12,7 +12,6 @@ namespace Upp {
class FontSelect : public WithFontSelector<TopWindow> {
typedef FontSelect CLASSNAME;
public:
Event<Font> WhenAction;
@ -20,11 +19,11 @@ public:
CtrlLayoutExit(*this, t_("Font"));
FrameLess(true);
face.WhenAction = THISBACK(Select);
height.WhenAction = THISBACK(Select);
bold.WhenAction = THISBACK(Select);
italic.WhenAction = THISBACK(Select);
naa.WhenAction = THISBACK(Select);
face.WhenAction = [=]{Select();};
height.WhenAction = [=]{Select();};
bold.WhenAction = [=]{Select();};
italic.WhenAction = [=]{Select();};
naa.WhenAction = [=]{Select();};
face.Clear();
Upp::Index<String> fni;
for(int i = 0; i < Font::GetFaceCount(); i++) {
@ -91,8 +90,6 @@ private:
class MeasuresTab : public WithMeasures<StaticRect> {
public:
typedef MeasuresTab CLASSNAME;
void Init(ScatterCtrl &scatter);
void Change();
@ -102,8 +99,6 @@ private:
class TextsTab : public WithTexts<StaticRect> {
public:
typedef TextsTab CLASSNAME;
void Init(ScatterCtrl &scatter);
void DoShowText();
@ -119,8 +114,6 @@ private:
class LegendTab : public WithLegend<StaticRect> {
public:
typedef LegendTab CLASSNAME;
void Init(ScatterCtrl &scatter);
private:
@ -132,8 +125,6 @@ private:
class SeriesTab : public Splitter {
public:
typedef SeriesTab CLASSNAME;
SeriesTab() : dashCount(DashStyle::GetCount()) {}
virtual ~SeriesTab() noexcept {DashStyle::UnregisterFrom(dashCount);}
void Init(ScatterCtrl& scatter);
@ -157,8 +148,6 @@ private:
class GeneralTab : public WithGeneral<StaticRect> {
public:
typedef GeneralTab CLASSNAME;
void Init(ScatterCtrl &scatter);
private:
@ -170,8 +159,6 @@ private:
class DataDlg : public WithData<TopWindow> {
public:
typedef DataDlg CLASSNAME;
void Init(ScatterCtrl& scatter);
virtual ~DataDlg() noexcept {};
@ -204,8 +191,6 @@ private:
class PropertiesDlg : public WithProperties<TopWindow> {
public:
typedef PropertiesDlg CLASSNAME;
void Init(ScatterCtrl& scatter);
virtual ~PropertiesDlg() noexcept {};
@ -229,8 +214,6 @@ private:
class ProcessingTab : public WithProcessingTab<StaticRect> {
public:
typedef ProcessingTab CLASSNAME;
ProcessingTab();
virtual ~ProcessingTab() noexcept {};
@ -301,8 +284,6 @@ private:
class ProcessingDlg : public TopWindow {
public:
typedef ProcessingDlg CLASSNAME;
void Init(ScatterCtrl& scatter);
virtual ~ProcessingDlg() noexcept {};

View file

@ -92,7 +92,7 @@ String FixPathName(const String &path) {
CtrlScroll::CtrlScroll() {
AddFrame(scroll);
scroll.AutoHide();
scroll.WhenScroll = THISBACK(OnScroll);
scroll.WhenScroll = [=]{OnScroll();};
hsizepos = vsizepos = false;
}
@ -177,7 +177,7 @@ void ScatterCtrl::LoadControl() {
fs.ActiveType(idt);
fs.ActiveDir(GetFileFolder(defaultDataFile));
fs.type.WhenAction = THISBACK1(OnTypeDataFile, &fs);
fs.type.WhenAction = [&] {OnTypeDataFile(&fs);};
if(!fs.ExecuteOpen(t_("Loading plot data from file"))) {
Exclamation(t_("Plot has not been loaded"));
return;
@ -240,7 +240,7 @@ void ScatterCtrl::SaveControl() {
fs.ActiveType(idt);
fs.ActiveDir(GetFileFolder(defaultDataFile));
fs.type.WhenAction = THISBACK1(OnTypeDataFile, &fs);
fs.type.WhenAction = [&] {OnTypeDataFile(&fs);};
if(!fs.ExecuteSaveAs(t_("Saving plot data to file"))) {
Exclamation(t_("Plot has not been saved"));
return;
@ -267,7 +267,7 @@ void ScatterCtrl::Paint0(Draw& w, const Size &sz) {
}
if (!IsNull(highlight_0) && !highlighting) {
highlighting = true;
SetTimeCallback(-200, THISBACK(TimerCallback));
SetTimeCallback(-200, [=] {TimerCallback();});
}
TimeStop t;
lastRefresh0_ms = GetTickCount();
@ -552,7 +552,7 @@ void ScatterCtrl::DoMouseAction(bool down, Point pt, ScatterAction action, int w
case ZOOM_WINDOW: ZoomWindow(down, pt);
break;
case CONTEXT_MENU: if(showContextMenu && !down)
MenuBar::Execute(THISBACK(ContextMenu));
MenuBar::Execute([=](Bar& bar) {ContextMenu(bar);});
break;
case NO_ACTION:
case SCROLL_LEFT:
@ -969,25 +969,25 @@ void ScatterCtrl::ContextMenu(Bar& bar)
if (mouseHandlingX || mouseHandlingY) {
bar.Add(t_("Fit to data"), ScatterImg::ShapeHandles(), [=]{ZoomToFit(mouseHandlingX, mouseHandlingY, 0.);}).Key(K_CTRL_F)
.Help(t_("Zoom to fit visible all data"));
bar.Add(t_("Zoom +"), ScatterImg::ZoomPlus(), THISBACK3(Zoom, 1/1.2, true, mouseHandlingY)).Key(K_CTRL|K_ADD)
bar.Add(t_("Zoom +"), ScatterImg::ZoomPlus(), [=] {Zoom(1/1.2, true, mouseHandlingY);}).Key(K_CTRL|K_ADD)
.Help(t_("Zoom in (closer)"));
bar.Add(t_("Zoom -"), ScatterImg::ZoomMinus(), THISBACK3(Zoom, 1.2, true, mouseHandlingY)).Key(K_CTRL|K_SUBTRACT)
bar.Add(t_("Zoom -"), ScatterImg::ZoomMinus(), [=] {Zoom(1.2, true, mouseHandlingY);}).Key(K_CTRL|K_SUBTRACT)
.Help(t_("Zoom out (away)"));
}
bar.Add(t_("Attach X axis"), Null, THISBACK(ChangeMouseHandlingX)).Check(!mouseHandlingX)
bar.Add(t_("Attach X axis"), Null, [=] {ChangeMouseHandlingX();}).Check(!mouseHandlingX)
.Help(t_("Fix X axis so no zoom or scroll is possible"));
if (mouseHandlingX) {
bar.Add(t_("Scroll Left"), ScatterImg::LeftArrow(), THISBACK2(ScatterDraw::Scroll, 0.2, 0)).Key(K_CTRL_LEFT)
bar.Add(t_("Scroll Left"), ScatterImg::LeftArrow(), [=] {ScatterDraw::Scroll(0.2, 0);}).Key(K_CTRL_LEFT)
.Help(t_("Scrolls plot to the left"));
bar.Add(t_("Scroll Right"),ScatterImg::RightArrow(), THISBACK2(ScatterDraw::Scroll, -0.2, 0)).Key(K_CTRL_RIGHT)
bar.Add(t_("Scroll Right"),ScatterImg::RightArrow(), [=] {ScatterDraw::Scroll(-0.2, 0);}).Key(K_CTRL_RIGHT)
.Help(t_("Scrolls plot to the right"));
}
bar.Add(t_("Attach Y axis"), Null, THISBACK(ChangeMouseHandlingY)).Check(!mouseHandlingY)
bar.Add(t_("Attach Y axis"), Null, [=] {ChangeMouseHandlingY();}).Check(!mouseHandlingY)
.Help(t_("Fix Y axis so no zoom or scroll is possible"));
if (mouseHandlingY) {
bar.Add(t_("Scroll Up"), ScatterImg::UpArrow(), THISBACK2(ScatterDraw::Scroll, 0, -0.2)).Key(K_CTRL_UP)
bar.Add(t_("Scroll Up"), ScatterImg::UpArrow(), [=] {ScatterDraw::Scroll(0, -0.2);}).Key(K_CTRL_UP)
.Help(t_("Scrolls plot up"));
bar.Add(t_("Scroll Down"), ScatterImg::DownArrow(), THISBACK2(ScatterDraw::Scroll, 0, 0.2)).Key(K_CTRL_DOWN)
bar.Add(t_("Scroll Down"), ScatterImg::DownArrow(), [=] {ScatterDraw::Scroll(0, 0.2);}).Key(K_CTRL_DOWN)
.Help(t_("Scrolls plot down"));
}
if (mouseHandlingX || mouseHandlingY)
@ -996,16 +996,16 @@ void ScatterCtrl::ContextMenu(Bar& bar)
if (showPropDlg)
#endif
{
bar.Add(t_("Properties"), ScatterImg::Gear(), THISBACK1(DoShowEditDlg, 0)).Key(K_CTRL_P)
bar.Add(t_("Properties"), ScatterImg::Gear(), [=] {DoShowEditDlg(0);}).Key(K_CTRL_P)
.Help(t_("Plot properties dialog"));
bar.Add(t_("View Data"), ScatterImg::Database(), THISBACK(DoShowData)).Key(K_CTRL_D)
bar.Add(t_("View Data"), ScatterImg::Database(), [=] {DoShowData();}).Key(K_CTRL_D)
.Help(t_("Raw data table"));
}
#ifndef _DEBUG
if (showProcessDlg)
#endif
{
bar.Add(t_("Data Analysis"), ScatterImg::chart_curve_edit(), THISBACK(DoProcessing)).Key(K_SHIFT_P)
bar.Add(t_("Data Analysis"), ScatterImg::chart_curve_edit(), [=] {DoProcessing();}).Key(K_SHIFT_P)
.Help(t_("Data processing dialog"));
}
#ifndef _DEBUG
@ -1014,9 +1014,9 @@ void ScatterCtrl::ContextMenu(Bar& bar)
{
bar.Separator();
}
bar.Add(t_("Copy image"), ScatterImg::Copy(), THISBACK1(SaveToClipboard, false)).Key(K_CTRL_C)
bar.Add(t_("Copy image"), ScatterImg::Copy(), [=] {SaveToClipboard(false);}).Key(K_CTRL_C)
.Help(t_("Copy image to clipboard"));
bar.Add(t_("Save image"), ScatterImg::Save(), THISBACK1(SaveToFile, Null)).Key(K_CTRL_S)
bar.Add(t_("Save image"), ScatterImg::Save(), [=] {SaveToFile(Null);}).Key(K_CTRL_S)
.Help(t_("Save image to file"));
#ifndef _DEBUG
if (showLoadData || showSaveData)
@ -1024,8 +1024,8 @@ void ScatterCtrl::ContextMenu(Bar& bar)
{
bar.Separator();
}
bar.Add(t_("Load plot"), THISBACK(LoadControl)).Help(t_("Load plot from file"));
bar.Add(t_("Save plot"), THISBACK(SaveControl)).Help(t_("Save plot to file"));
bar.Add(t_("Load plot"), [=] {LoadControl();}).Help(t_("Load plot from file"));
bar.Add(t_("Save plot"), [=] {SaveControl();}).Help(t_("Save plot to file"));
}
void ScatterCtrl::OnTypeImage(FileSel *_fs)
@ -1070,7 +1070,7 @@ void ScatterCtrl::SaveToFile(String fileName)
fs.ActiveType(idt);
fs.ActiveDir(GetFileFolder(defaultFileNamePlot));
fs.type.WhenAction = THISBACK1(OnTypeImage, &fs);
fs.type.WhenAction = [&] {OnTypeImage(&fs);};
if(!fs.ExecuteSaveAs(t_("Saving plot image to file"))) {
Exclamation(t_("Plot has not been saved"));
return;
@ -1183,7 +1183,7 @@ ScatterCtrl::ScatterCtrl() {
Add(processButton.RightPosZ(posx, buttonWidthProcess).TopPosZ(0, buttonHeight));
processButton.Show(false);
processButton.SetImage(ScatterImg::chart_curve_edit()).SetLabel(t_("Data Analysis"));
processButton.WhenAction = THISBACK(DoProcessing);
processButton.WhenAction = [=] {DoProcessing();};
processButton.Tip(t_("Data processing dialog"));
posx += buttonWidthProcess;
@ -1191,7 +1191,7 @@ ScatterCtrl::ScatterCtrl() {
Add(dataButton.RightPosZ(posx, buttonWidthData).TopPosZ(0, buttonHeight));
dataButton.Show(false);
dataButton.SetImage(ScatterImg::Database()).SetLabel(t_("View Data"));
dataButton.WhenAction = THISBACK(DoShowData);
dataButton.WhenAction = [=] {DoShowData();};
dataButton.Tip(t_("Show raw data table"));
posx += buttonWidthData;
@ -1199,7 +1199,7 @@ ScatterCtrl::ScatterCtrl() {
Add(propertiesButton.RightPosZ(posx, buttonWidthProperties).TopPosZ(0, buttonHeight));
propertiesButton.Show(false);
propertiesButton.SetImage(ScatterImg::Gear()).SetLabel(t_("Properties"));
propertiesButton.WhenAction = THISBACK1(DoShowEditDlg, 0);
propertiesButton.WhenAction = [=] {DoShowEditDlg(0);};
propertiesButton.Tip(t_("Plot properties dialog"));
AddMouseBehavior(false, false, false, true , false, 0, false, ScatterCtrl::SHOW_COORDINATES);

View file

@ -14,7 +14,7 @@ namespace Upp {
class EditDoubleLostFocus : public EditDouble {
public:
Callback WhenLostFocus;
Event<> WhenLostFocus;
virtual void LostFocus() {
WhenLostFocus();
@ -26,7 +26,6 @@ typedef WithSpin<double, EditDoubleLostFocus> EditDoubleLostFocusSpin;
class CtrlScroll : public StaticRect {
public:
typedef CtrlScroll CLASSNAME;
CtrlScroll();
CtrlScroll &AddPane(Ctrl& c, bool scrollH = true, bool scrollV = true);
@ -164,8 +163,6 @@ public:
class ScatterCtrl : public Ctrl, public ScatterDraw {
public:
typedef ScatterCtrl CLASSNAME;
ScatterCtrl();
virtual ~ScatterCtrl() noexcept {RemoveInstance(this);};
@ -192,7 +189,7 @@ public:
enum MouseAction {NONE, LEFT_DOWN, LEFT_UP, LEFT_DOUBLE, LEFT_MOVE, MIDDLE_DOWN, MIDDLE_UP, MIDDLE_MOVE,
RIGHT_DOWN, RIGHT_UP, RIGHT_MOVE};
Callback3<Point, dword, MouseAction> WhenMouseClick;
Function<void(Point, dword, MouseAction)> WhenMouseClick;
struct KeyBehavior {
KeyBehavior(bool _ctrl, bool _alt, bool _shift, int _key, bool _isVirtualKey, ScatterAction _action) :
@ -496,8 +493,6 @@ void ScatterCtrl::SetDrawing(T& w, const Size &sz, bool ctrl) {
class ScatterWindow : public TopWindow {
public:
typedef ScatterWindow CLASSNAME;
ScatterWindow() {
Sizeable().Zoomable();
Add(scatter.SizePos());

View file

@ -11,8 +11,8 @@ file
ScatterCtrl.cpp,
ScatterCtrl.h,
ScatterCtrlX.cpp,
Properties.cpp,
Processing.cpp,
Properties.cpp,
Properties.h,
Data.cpp,
PopUpText.cpp,