global.ADDON_WIDGET = ds_map_create(); global.ADDON_ID = ds_map_create(); function addonPanel(_addon, pane) : PanelContent() constructor { ID = UUID_generate(); self._addon = _addon; self.pane = pane; drawFn = struct_has(pane, "drawFn")? pane.drawFn : ""; drawUIFn = struct_has(pane, "drawUIFn")? pane.drawUIFn : ""; closeFn = struct_has(pane, "closeFn")? pane.closeFn : ""; title = filename_name_only(_addon.directory); __addon_lua_panel_variable(_addon.thread, self); showHeader = true; w = pane.w; h = pane.h; function drawGUI() { if(drawUIFn == "") return; if(!_addon.ready) return; lua_add_code(_addon.thread, $"panelID = '{ID}'"); var runResult = lua_call(_addon.thread, drawUIFn); } function onResize() { } function drawContent(panel) { if(drawFn == "") return; if(!_addon.ready) return; lua_add_code(_addon.thread, $"panelID = '{ID}'"); __addon_lua_panel_variable(_addon.thread, self); var runResult = lua_call(_addon.thread, drawFn); } static onClose = function() { if(closeFn == "") return; if(!_addon.ready) return; var runResult = lua_call(_addon.thread, closeFn); } }