Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template<typename W>
- void bind_status_label(twindow& window, const std::string& id, std::function<std::string(W&)>* value_getter = nullptr)
- {
- W& source = find_widget<W>(&window, id, false);
- tcontrol& label = find_widget<tlabel>(&window, id + "_label", false);
- const auto update_label = [&]() {
- //const std::string value = value_getter ? value_getter(source) : source.get_value();
- std::string value;
- if(value_getter) {
- value = value_getter(source);
- } else {
- value = std::to_string(source.get_value());
- }
- label.set_label(value);
- };
- source.connect_signal<event::NOTIFY_MODIFIED>(std::bind(update_label));
- update_label();
- }
- gui2::bind_status_label<tslider>(window, "players");
- gui2::bind_status_label<tslider>(window, "width");
- gui2::bind_status_label<tslider>(window, "height");
- gui2::bind_status_label<tslider>(window, "villages", [](tslider& s) { return formatter() << s.get_value << _("/1000 tiles"); });
- gui2::bind_status_label<tslider>(window, "castle_size");
- gui2::bind_status_label<tslider>(window, "landform", [](tslider& s) { return landform_label(s); });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement