enhance UI of LuaJIT/Node

This commit is contained in:
2022-11-10 22:52:09 +09:00
parent 49e3d6c9c5
commit 803d93f3ec

View File

@@ -64,7 +64,8 @@ class Node final : public nf7::FileBase,
Node(nf7::Env& env, Data&& data = {}) noexcept :
nf7::FileBase(kType, env),
nf7::GenericConfig(mem_),
nf7::DirItem(nf7::DirItem::kNone),
nf7::DirItem(nf7::DirItem::kMenu |
nf7::DirItem::kTooltip),
nf7::Node(nf7::Node::kCustomNode),
life_(*this),
log_(std::make_shared<nf7::LoggerRef>(*this)),
@@ -97,6 +98,8 @@ class Node final : public nf7::FileBase,
nf7::Future<std::shared_ptr<nf7::luajit::Ref>> Build() noexcept;
void PostUpdate() noexcept override;
void UpdateMenu() noexcept override;
void UpdateTooltip() noexcept override;
void UpdateNode(nf7::Node::Editor&) noexcept override;
File::Interface* interface(const std::type_info& t) noexcept override {
@@ -223,11 +226,29 @@ try {
void Node::PostUpdate() noexcept {
if (last_build_ < importer_->GetLatestMod()) {
cache_ = std::nullopt;
if (cache_ && cache_->done()) {
if (last_build_ < importer_->GetLatestMod()) {
cache_ = std::nullopt;
}
}
}
void Node::UpdateMenu() noexcept {
if (ImGui::MenuItem("build")) {
Build();
}
}
void Node::UpdateTooltip() noexcept {
const char* state = "unused";
if (cache_) {
state =
cache_->done()? "ready":
cache_->yet()? "building": "broken";
}
ImGui::Text("state: %s", state);
}
void Node::UpdateNode(nf7::Node::Editor&) noexcept {
const auto em = ImGui::GetFontSize();