Files
vgstation13/code/modules/nano/nanoexternal.dm
ShiftyRail 875eca8b71 516 compatibility PR 2: the revenge of Node.js (#37501)
* Part 1: fix tgui

* Fix overdark layering

* Vector code rework

* misc. tgui things

* final DM side fixes

* TGUI try to fix #1

* Nuclear option. Bring all TGUI files. Will begin UNTGification in later commits.

* Untgify: callback

* untgify : config flags & config datums

* Fixes GLOBAL_VAR_INIT

* Purge HASTRAIT

* .dme cleanup

* file by file: status_alert.dm

* file by file : preference datums + remove unused content

* file by file : tgui_input/text.dm

* file by file : fixes asset_cache_client.dm

* file by file : tgui_panel / external.dm

* file by file : tgui / external.dm

* file by file : tgui / states.dm

* file by file : subsystems/assets.dm [unused return type]

* file by file : subsystems/tgui.dm [tg-macro for process()]

* file by file : asset_cache_item.dm [minor proc call fix]

* file by file : fixes a mistype for datum/asset_cache_item

* file by file : removes bugs and unimplemented features in asset_list.dm

* multifile : some more work on asset manager

* File deleted : spirtesheet tg_assets. Don't need them

* Remove unused TG content, fix asset_list.dm

* Fixes a few issues with wrong type paths.

* remove tgui_panel : this is for tgchat/stat2, which we don't use

* fix thing

* misc changes to tgui.dm. Defining QDELETED macro

* final TGui fix

* TGUI file convert : camera console and religion screen

* Works

* GPS fixed + fontAwesome fixed

* Mecha console control

* Fixes blurry icons

* fixes iconbase64 regression

* Misc bug/runtimes fixes

* Fixes runtime funtime

* Add merch computer TGUI

* Fixes TGUI ticking interfaces + MSGS

* PCMC

* Power Monitor working

* Power monitor

* Bugfixes + robot console

* Fixes mecha messages

* Spess dot TV

* TEG

* Syndicate Uplink

* Bump defines and connection warning

* fix?

* Fucking highscores

* Fixes mistakes

---------

Co-authored-by: west3436 <66280799+west3436@users.noreply.github.com>
2025-05-06 02:41:33 -05:00

49 lines
1.8 KiB
Plaintext

// This file contains all Nano procs/definitions for external classes/objects
/**
* Called when a Nano UI window is closed
* This is how Nano handles closed windows
* It must be a verb so that it can be called using winset
*
* @return nothing
*/
/client/verb/nanoclose(var/uiref as text)
set hidden = 1 // hide this verb from the user's panel
set name = "nanoclose"
var/datum/nanoui/ui = locate(uiref)
if (istype(ui))
ui.close()
if(ui.ref)
var/href = "close=1"
src.Topic(href, params2list(href), ui.ref) // this will direct to the atom's Topic() proc via client.Topic()
else if(ui.src_object)
var/href = "close=1"
src.Topic(href, params2list(href), ui.src_object) // this will direct to the atom's Topic() proc via client.Topic()
else if (ui.on_close_logic)
// no atomref specified (or not found)
// so just reset the user mob's machine var
if(src && src.mob)
src.mob.unset_machine()
/**
* The ui_interact proc is used to open and update Nano UIs
* If ui_interact is not used then the UI will not update correctly
* ui_interact is currently defined for /atom/movable
*
* @param user /mob The mob who is interacting with this ui
* @param ui_key string A string key to use for this ui. Allows for multiple unique uis on one obj/mob (defaut value "main")
* @param ui /datum/nanoui This parameter is passed by the nanoui process() proc when updating an open ui
* @param force_open boolean Force the UI to (re)open, even if it's already open
*
* @return nothing
*/
/datum/proc/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = NANOUI_FOCUS)
return
// Used by the Nano UI Manager (/datum/nanomanager) to track UIs opened by this mob
/client/var/list/nano_open_uis = list()
/mob/var/list/nano_open_uis = list()