xtd 0.2.0
tutorial_communicate.cpp

First we create the very basic xtd::forms program.

Windows
tutorial_communicate_w.png

tutorial_communicate_wd.png
macOS
tutorial_communicate_m.png

tutorial_communicate_md.png
Gnome
tutorial_communicate_g.png

tutorial_communicate_gd.png
#include <xtd/xtd>
namespace tutorial {
class panel_right : public xtd::forms::panel {
public:
panel_right() {
controls().push_back(label_);
size({150, 100});
label_.auto_size(true);
label_.location({65, 45});
label_.text("0");
}
};
class panel_left : public xtd::forms::panel {
public:
panel_left() {
controls().push_back_range({button_plus_, button_minus_});
size({150, 100});
button_plus_.auto_repeat(true);
button_plus_.location({30, 10});
button_plus_.text("+");
button_plus_.click += [&] {
count++;
control& form = parent().value().get();
xtd::as<panel_right&>(form.controls()[0].get()).label_.text(xtd::ustring::format("{}", count));
};
button_minus_.auto_repeat(true);
button_minus_.location({30, 60});
button_minus_.text("-");
button_minus_.click += [&] {
count--;
control& form = parent().value().get();
xtd::as<panel_right&>(form.controls()[0].get()).label_.text(xtd::ustring::format("{}", count));
};
}
xtd::forms::button button_plus_;
xtd::forms::button button_minus_;
int count = 0;
};
class communicate : public xtd::forms::form {
public:
communicate() {
client_size({300, 100});
controls().push_back_range({panel_right_, panel_left_});
text("communicate");
}
static auto main() {
}
panel_left panel_left_;
panel_right panel_right_;
};
}
startup_(tutorial::communicate::main);