Files
Fishing2/FGUIProject/plugins/nbc-puerts-plugins/LanguageCustomInspector.js
2025-07-03 14:16:18 +08:00

194 lines
8.3 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.runLanguageCustom = runLanguageCustom;
exports.languageDestroy = languageDestroy;
var FairyGUI = CS.FairyGUI;
var FairyEditor = CS.FairyEditor;
var UnityEngine = CS.UnityEngine;
const App = FairyEditor.App;
const LanguageSettings_1 = require("./LanguageSettings");
class MembersLanguageCustomInspector extends FairyEditor.View.PluginInspector {
setUseKey;
btnRefresh;
languageKey;
constructor() {
super();
this.panel = FairyGUI.UIPackage.CreateObject("WhootCustomInspector", "LanguageComponent").asCom;
this.setUseKey = this.panel.GetChild("SetUseKey").asButton;
this.btnRefresh = this.panel.GetChild("btnRefresh").asButton;
this.languageKey = this.panel.GetChild("languageKey");
this.btnRefresh.onClick.Add(() => {
let sels = App.activeDoc.inspectingTargets;
let obj = sels.get_Item(0);
LanguageSettings_1.default.updateItemTitle(obj, this.languageKey.title);
});
this.setUseKey.onChanged.Add(() => {
this.updateData();
});
this.languageKey.onFocusOut.Add(() => {
this.updateData();
});
this.updateAction = () => { return this.updateUI(); };
}
updateData() {
// let activeDoc = App.activeDoc
// let obj = activeDoc.inspectingTarget
// genSetting.changeMemberSetting(activeDoc.packageItem.GetURL(), obj.id, this.setScriptType.selected, obj.name, this.scriptAnnotation.title)
let sels = App.activeDoc.inspectingTargets;
let obj = sels.get_Item(0);
let activeDoc = App.activeDoc;
let packageName = activeDoc.packageItem.owner.name;
let docUrl = activeDoc.docURL;
let objId = obj.id;
let useable = this.setUseKey.selected;
let change = LanguageSettings_1.default.update(packageName, docUrl, objId, this.languageKey.title, useable);
if (change) {
//如果key变化了。
LanguageSettings_1.default.updateItemTitle(obj, this.languageKey.title);
}
}
updateUI() {
let sels = App.activeDoc.inspectingTargets;
let obj = sels.get_Item(0);
let activeDoc = App.activeDoc;
let packageName = activeDoc.packageItem.owner.name;
let docUrl = activeDoc.docURL;
let objId = obj.id;
let data = LanguageSettings_1.default.get(packageName, docUrl, objId);
if (data != null) {
this.setUseKey.selected = data.useable == 1;
this.languageKey.title = data.key;
}
else {
this.setUseKey.selected = false;
this.languageKey.title = '';
}
return true; //if everything is ok, return false to hide the inspector
}
}
class LanguageCustomInspector extends FairyEditor.View.PluginInspector {
btnRefresh;
constructor() {
super();
this.panel = FairyGUI.UIPackage.CreateObject("WhootCustomInspector", "LanguageComponentRoot").asCom;
this.btnRefresh = this.panel.GetChild("btnRefresh").asButton;
this.btnRefresh.onClick.Add(() => {
this.updateAll();
});
this.updateAction = () => { return this.updateUI(); };
}
updateAll() {
console.log("");
let activeDoc = App.activeDoc;
// activeDoc.content
let packageName = activeDoc.packageItem.owner.name;
let docUrl = activeDoc.docURL;
let count = activeDoc.content.numChildren;
for (let index = 0; index < count; index++) {
const obj = activeDoc.content.GetChildAt(index);
if (obj == null)
continue;
let data = LanguageSettings_1.default.get(packageName, docUrl, obj.id);
if (data != null && data.useable == 1) {
LanguageSettings_1.default.updateItemTitle(obj, data.key);
}
}
}
updateUI() {
return true; //if everything is ok, return false to hide the inspector
}
}
class LanguageImageCustomInspector extends FairyEditor.View.PluginInspector {
setUseKey;
ImageKey;
constructor() {
super();
this.panel = FairyGUI.UIPackage.CreateObject("WhootCustomInspector", "LanguageImageComponent").asCom;
this.setUseKey = this.panel.GetChild("SetUseKey").asButton;
this.ImageKey = this.panel.GetChild("ImageKey");
this.setUseKey.onChanged.Add(() => {
this.updateData();
});
this.ImageKey.onFocusOut.Add(() => {
this.updateData();
});
this.updateAction = () => { return this.updateUI(); };
}
updateData() {
let sels = App.activeDoc.inspectingTargets;
let obj = sels.get_Item(0);
let activeDoc = App.activeDoc;
let packageName = activeDoc.packageItem.owner.name;
let docUrl = activeDoc.docURL;
let objId = obj.id;
let useable = this.setUseKey.selected;
let change = LanguageSettings_1.default.update(packageName, docUrl, objId, this.ImageKey.title, useable);
if (change && useable) {
obj.clearOnPublish = true;
App.inspectorView.GetInspector("loader").UpdateUI();
}
}
updateUI() {
let sels = App.activeDoc.inspectingTargets;
let obj = sels.get_Item(0);
let activeDoc = App.activeDoc;
let packageName = activeDoc.packageItem.owner.name;
let docUrl = activeDoc.docURL;
let objId = obj.id;
let data = LanguageSettings_1.default.get(packageName, docUrl, objId);
if (data != null) {
this.setUseKey.selected = data.useable == 1;
this.ImageKey.title = data.key;
if (data.useable == 1 && obj instanceof FairyEditor.FLoader) {
if (!obj.clearOnPublish) {
obj.clearOnPublish = true;
App.activeDoc.SetModified(true);
App.inspectorView.GetInspector("loader").UpdateUI();
App.Alert("多语言图片装载器必须勾选发布后清除,避免将图片打进包。");
}
}
}
else {
this.setUseKey.selected = false;
this.ImageKey.title = '';
}
return true; //if everything is ok, return false to hide the inspector
}
}
function runLanguageCustom() {
//Register a inspector
App.inspectorView.AddInspector(() => new MembersLanguageCustomInspector(), "MembersLanguageCustomInspectorJS", "多语言设置");
//Condition to show it
App.docFactory.ConnectInspector("MembersLanguageCustomInspectorJS", "Button", false, false);
App.docFactory.ConnectInspector("MembersLanguageCustomInspectorJS", "Label", false, false);
App.docFactory.ConnectInspector("MembersLanguageCustomInspectorJS", "text", false, false);
App.docFactory.ConnectInspector("MembersLanguageCustomInspectorJS", "richtext", false, false);
App.docFactory.ConnectInspector("MembersLanguageCustomInspectorJS", "inputtext", false, false);
// App.libView.tooltips.
console.log("多语言设置===");
// //Register a inspector
App.inspectorView.AddInspector(() => new LanguageCustomInspector(), "LanguageCustomInspectorJS", "多语言设置");
//Condition to show it
App.docFactory.ConnectInspector("LanguageCustomInspectorJS", "component", true, false);
//Register a inspector
App.inspectorView.AddInspector(() => new LanguageImageCustomInspector(), "LanguageImageCustomInspectorJS", "多语言图片设置");
//Condition to show it
App.docFactory.ConnectInspector("LanguageImageCustomInspectorJS", "loader", false, false);
// App.workspaceSettings.
let helpMenu = App.menu.GetSubMenu("help");
helpMenu.AddItem("Whoot框架帮助", "WhootHelp", () => {
console.log("点击菜单===");
UnityEngine.Application.OpenURL("http://172.16.0.149/");
});
// let keys = App.preferences.hotkeys.Keys
// let nmsl = App.preferences.hotkeys.get_Item("languagePath")
// console.log("nmslnmsl=", nmsl)
// "none", "graph", "image", "text", "richtext", "inputtext",
// "movieclip", "swf", "loader", "group", "list", "loader3D",
// "component", "Button", "Label", "Slider", "ProgressBar", "ScrollBar", "ComboBox", "mixed"
}
function languageDestroy() {
let helpMenu = App.menu.GetSubMenu("help");
helpMenu.RemoveItem("WhootHelp");
}