ID:158428
 
I'm having trouble wrapping my mind around this right now. Can someone show me how to retrieve a list of all the macros that exist in a macro set?
This grabs all of the macros and their associated commands:
winget(client, "panel_macro_set.*", "command")


Where "panel_macro_set" is the name of the macro set.

I couldn't find a way to get only a list of macro names, though.
In response to DarkCampainger
Does this actually work for you?
Even though it was presumably fixed in version 453.1035, it silently crashes for me still.
In response to Schnitzelnagler
Yep, worked fine for me. It output a large param string of macros when I used it on Foomer's Panel library. Are you sure you got the macro set's name right? winget(client,null,"macros") should give you a list of the sets.
In response to DarkCampainger
Yes, I could even reference the subset (e.g. src << "Result: [winget(src, "macro.Ctrl+E", "is-disabled")]"), yet not with the wild-card (src << "Result: [winget(src, "macro.*", "is-disabled")]").

Which version of BYOND are you running and what OS are you using?
In response to Schnitzelnagler
I'm running BYOND 454.1036 on Windows XP Home SP3.

Doing some further testing, it looks like only macros created at runtime can be accessed in this fashion. I submitted a bug report for it; hopefully it's fixable and not a limitation of compiled-in interface macros.

Update: Only macros with IDs can be accessed at runtime.