Program Listing for File InstructionListNopOutItem.hpp¶
↰ Return to documentation for file (include/dish2/web/InstructionListNopOutItem.hpp)
#pragma once
#ifndef DISH2_WEB_INSTRUCTIONLISTNOPOUTITEM_HPP_INCLUDE
#define DISH2_WEB_INSTRUCTIONLISTNOPOUTITEM_HPP_INCLUDE
#include <functional>
#include "../../../third-party/Empirical/include/emp/tools/hash_namify.hpp"
#include "../../../third-party/Empirical/include/emp/tools/string_utils.hpp"
#include "../../../third-party/Empirical/include/emp/web/commands.hpp"
#include "../../../third-party/Empirical/include/emp/web/Div.hpp"
#include "../../../third-party/Empirical/include/emp/web/init.hpp"
namespace dish2 {
class InstructionListNopOutItem {
emp::web::Div list_group_item;
public:
InstructionListNopOutItem( std::function<void()> callback ) {
#ifdef __EMSCRIPTEN_PTHREADS__
list_group_item.SetAttr(
"class",
"list-group-item list-group-item-action list-group-item-danger"
).SetCSS(
"cursor", "pointer"
).OnClick(
[ callback ](){ callback(); }
) << "Do Nop Out";
#else
list_group_item.SetAttr(
"class",
"list-group-item list-group-item-action list-group-item-danger disabled"
) << "Phenotype-neutral Nop Out is not available in your browser.";
#endif
}
operator emp::web::Div&() { return list_group_item; }
};
} // namespace dish2
#endif // #ifndef DISH2_WEB_INSTRUCTIONLISTNOPOUTITEM_HPP_INCLUDE