enhance UI of LuaJIT/Node
This commit is contained in:
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user