0ad/source/gui
wraitii 7c04ea0211 Make JS GUI Objects Proxy objects.
The JS-side counterparts of C++ objects are now Proxy objects, in
anticipation of SM60 changes that remove the get/set hooks entirely.
This makes semantic sense too as they are essentially phantom wrappers
around the C++ objects, with no proper JS representation.

By using different proxy handlers for different GUI object types, we can
further fix issues encountered in D2136 by defining the relevant
functions only on objects that should have them.

The main complexity with proxy handlers is that Spidermonkey assumes in
several places that they are static and data-less, so they cannot be
used directly to hold data. This diff works around that issue by storing
per-script-interface data in the CGui directly.

Further API changes in SM60 make this slightly cleaner.

Comments by: Itms
Refs #5859

Differential Revision: https://code.wildfiregames.com/D2768
This was SVN commit r24229.
2020-11-21 17:49:06 +00:00
..
ObjectBases Make JS GUI Objects Proxy objects. 2020-11-21 17:49:06 +00:00
ObjectTypes Make JS GUI Objects Proxy objects. 2020-11-21 17:49:06 +00:00
Scripting Make JS GUI Objects Proxy objects. 2020-11-21 17:49:06 +00:00
SettingTypes Clean up header includes, add new forward declarations. 2020-11-21 11:20:29 +00:00
tests Let players remap hotkeys in-game, fix default hotkeys being qwerty-specific. 2020-11-19 09:27:26 +00:00
CGUI.cpp Make JS GUI Objects Proxy objects. 2020-11-21 17:49:06 +00:00
CGUI.h Make JS GUI Objects Proxy objects. 2020-11-21 17:49:06 +00:00
CGUIScrollBarVertical.cpp Cleanup GUI includes, whitespace, map iterators, nullptr. 2019-09-22 23:28:25 +00:00
CGUIScrollBarVertical.h Delete GUI.h umbrella include following 8d0cb1b954. 2019-09-20 13:11:18 +00:00
CGUISetting.cpp Fix building without precompiled headers. 2020-11-18 11:35:36 +00:00
CGUISetting.h Improve JS Exception handling. 2020-11-15 18:29:17 +00:00
CGUISprite.cpp Use CGUI& instead of CGUI* so that the 50+ users stop wondering whether or not that is null and can't even be mistaken to add redundant null checks preemptively. 2019-08-21 10:12:33 +00:00
CGUISprite.h Clean up header includes, add new forward declarations. 2020-11-21 11:20:29 +00:00
CGUIText.cpp Sort GUI Object types, GUI Object bases and GUI Setting value types into three new folders. 2019-10-02 09:44:00 +00:00
CGUIText.h Sort GUI Object types, GUI Object bases and GUI Setting value types into three new folders. 2019-10-02 09:44:00 +00:00
GUIManager.cpp [SM52 2/2] Update to Spidermonkey 52 APIs. 2020-11-18 14:39:04 +00:00
GUIManager.h [SM52 2/2] Update to Spidermonkey 52 APIs. 2020-11-18 14:39:04 +00:00
GUIMatrix.cpp Move GetDefaultGuiMatrix to a separate file. 2019-08-04 03:52:00 +00:00
GUIMatrix.h Move GetDefaultGuiMatrix to a separate file. 2019-08-04 03:52:00 +00:00
GUIObjectTypes.cpp Make JS GUI Objects Proxy objects. 2020-11-21 17:49:06 +00:00
GUIRenderer.cpp Uses fixed-function pipeline functions only in FFP mode. 2020-02-05 14:00:52 +00:00
GUIRenderer.h Clean up header includes, add new forward declarations. 2020-11-21 11:20:29 +00:00
GUISettingTypes.h Sort GUI Object types, GUI Object bases and GUI Setting value types into three new folders. 2019-10-02 09:44:00 +00:00
GUIStringConversions.cpp Sort GUI Object types, GUI Object bases and GUI Setting value types into three new folders. 2019-10-02 09:44:00 +00:00
GUITooltip.cpp Sort GUI Object types, GUI Object bases and GUI Setting value types into three new folders. 2019-10-02 09:44:00 +00:00
GUITooltip.h Use CGUI& instead of CGUI* so that the 50+ users stop wondering whether or not that is null and can't even be mistaken to add redundant null checks preemptively. 2019-08-21 10:12:33 +00:00
IGUIScrollBar.cpp Sort GUI Object types, GUI Object bases and GUI Setting value types into three new folders. 2019-10-02 09:44:00 +00:00
IGUIScrollBar.h Clean up header includes, add new forward declarations. 2020-11-21 11:20:29 +00:00
SGUIIcon.h Move GUIbase structs and enums to separate files. 2019-10-01 12:46:55 +00:00
SGUIMessage.h Allow right-click on disabled buttons. 2020-11-14 18:16:24 +00:00
SGUIStyle.h Move GUIbase structs and enums to separate files. 2019-10-01 12:46:55 +00:00