43 lines
1.5 KiB
Plaintext
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;
|
|
}
|
|
}
|
|
}) |