0ad/source/gui
trompetin17 0f156e3544
GUIProxy: Support property introspection for debugging
This commit enables proper property enumeration and inspection for GUI
proxy objects in debugging sessions using the SpiderMonkey Debugger API.

Interface (IGUIProxyObject):
- Added a pure virtual method getPropsNames() to expose cached property
  names from the GUI object implementation.

Proxy handler (JSI_GUIProxy):
- Implemented ownPropertyKeys() to enumerate all visible properties of
  the proxy, including: -- Built-in GUI fields: "name", "parent",
  "children". -- Dynamic settings stored in m_Settings. -- Script event
  handlers prefixed with "on" from m_ScriptHandlers. -- Function
  properties returned by getPropsNames().
- Implemented getOwnPropertyDescriptor() to synthesize descriptors for
  debugger queries: -- Returns undefined if the property is not defined.
  -- Returns a read-only enumerable descriptor otherwise.
- Both methods are marked final and override SpiderMonkey's
  BaseProxyHandler.

Why:
- SpiderMonkey’s Debugger API requires ownPropertyKeys and
  getOwnPropertyDescriptor for proxy objects to be introspectable in dev
  tools like VS Code.
- Without these, properties of GUI objects are hidden during debugging.
- This change improves the developer experience by making all meaningful
  GUI object fields visible and explorable at runtime.
2025-07-11 11:06:06 -05:00
..
ObjectBases Fix most headers in gui 2025-07-05 12:42:34 +02:00
ObjectTypes Fix most headers in gui 2025-07-05 12:42:34 +02:00
Scripting GUIProxy: Support property introspection for debugging 2025-07-11 11:06:06 -05:00
SettingTypes Fix most headers in gui 2025-07-05 12:42:34 +02:00
tests Fix most headers in gui 2025-07-05 12:42:34 +02:00
CGUI.cpp Replace ScriptException::Raise in Engine functions 2025-07-08 19:11:49 +02:00
CGUI.h Fix most headers in gui 2025-07-05 12:42:34 +02:00
CGUIScrollBarHorizontal.cpp Fix some headers in gui 2025-07-02 13:20:13 +02:00
CGUIScrollBarHorizontal.h Fix some headers in gui 2025-07-02 13:20:13 +02:00
CGUIScrollBarVertical.cpp Fix some headers in gui 2025-07-02 13:20:13 +02:00
CGUIScrollBarVertical.h Fix some headers in gui 2025-07-02 13:20:13 +02:00
CGUISetting.cpp Fix most headers in gui 2025-07-05 12:42:34 +02:00
CGUISetting.h Restore includes for suppressing warnings on vs2017 2025-07-02 17:40:27 +02:00
CGUISprite.cpp Fix some headers in gui 2025-07-02 13:20:13 +02:00
CGUISprite.h Fix some headers in gui 2025-07-02 13:20:13 +02:00
CGUIText.cpp Fix some headers in gui 2025-07-02 13:20:13 +02:00
CGUIText.h Fix some headers in gui 2025-07-02 13:20:13 +02:00
GUIManager.cpp Fix most headers in gui 2025-07-05 12:42:34 +02:00
GUIManager.h Fix some headers in gui 2025-07-02 13:20:13 +02:00
GUIObjectEventBroadcaster.h Fix some headers in gui 2025-07-02 13:20:13 +02:00
GUIObjectTypes.cpp Fix most headers in gui 2025-07-05 12:42:34 +02:00
GUIRenderer.cpp Fix some includes in source/renderer 2025-07-07 17:45:54 +02:00
GUIRenderer.h Fix some headers in gui 2025-07-02 13:20:13 +02:00
GUIStringConversions.cpp Fix most headers in gui 2025-07-05 12:42:34 +02:00
GUITooltip.cpp Fix most headers in gui 2025-07-05 12:42:34 +02:00
GUITooltip.h Fix some headers in gui 2025-07-02 13:20:13 +02:00
IGUIScrollBar.cpp Fix some headers in gui 2025-07-02 13:20:13 +02:00
IGUIScrollBar.h Fix some headers in gui 2025-07-02 13:20:13 +02:00
SGUIIcon.h Fix some headers in gui 2025-07-02 13:20:13 +02:00
SGUIMessage.h Fix some headers in gui 2025-07-02 13:20:13 +02:00
SGUIStyle.h Fix some headers in gui 2025-07-02 13:20:13 +02:00