Files
2024-02-13 19:56:12 -05:00

43 lines
1.5 KiB
Plaintext

import { app } from "../../../scripts/app.js";
import { api } from "../../../scripts/api.js";
import { ComfyWidgets } from "../../../scripts/widgets.js";
function displayMessage(message) {
if (!this.origComputeSize) {
this.origComputeSize = this.computeSize;
this.computeSize = impose_min_width;
}
if (this.widgets) { this.widgets.forEach((w) => { if (w.onRemove) { w.onRemove(); } } ) }
this.widgets = [];
var w = this.widgets?.find((w) => w.name === "display_text_widget");
if (w === undefined) {
w = ComfyWidgets["STRING"](this, "display_text_widget", ["STRING", { multiline: true }], app).widget;
w.inputEl.readOnly = true;
w.inputEl.style.opacity = 0.6;
w.inputEl.style.fontSize = "9pt";
}
w.value = message;
this.onResize?.(this.size);
};
app.registerExtension({
name: "jojr.random-sizes.displaymessage",
async setup() {
function messageHandler(event) {
const id = event.detail.id;
const message = event.detail.message;
const node = app.graph._nodes_by_id[id];
if (node && node.handleMessage) node.handleMessage(displayMessage);
else (console.log(`node ${id} couldn't handle a message`));
}
api.addEventListener("jojr.random-sizes.sendmessage", messageHandler);
console.log("jojr.random-sizes.sendmessage added")
},
async beforeRegisterNodeDef(nodeType, nodeData, app) {
if (nodeType.comfyClass=="RandomSize" ) {
nodeType.prototype.displayMessage = displayMessage;
}
}
})