20,741
edits
m (→Canvas Emulation: https://sourceforge.net/p/flightgear/mailman/message/37805176/) |
m (→Status: https://sourceforge.net/p/flightgear/mailman/message/37805736/) |
||
Line 94: | Line 94: | ||
One of the major things slowing down James' work on the popup-menu and combo box is time to restart the simulator for each change, he is looking for some solution to re-load the widget Nasal code independently. <ref><https://sourceforge.net/p/flightgear/mailman/message/37756183/</ref> | One of the major things slowing down James' work on the popup-menu and combo box is time to restart the simulator for each change, he is looking for some solution to re-load the widget Nasal code independently. <ref><https://sourceforge.net/p/flightgear/mailman/message/37756183/</ref> | ||
=== Todo === | |||
Nothing in particular : help debugging the grid layout (which is in simgear) would be good. For now you could create a grid layout manually using some Nasal. | |||
For the menubar, we need to expose the C++ data to Nasal : we need a FGCompatMenuBar (alongisde FGPUIMenuBar) implementing FGMenubar which calls _createMenuObject in MenuBar.nas, using the same way I lookup and call _createDialogPeer in XMLDialog.nas | |||
(Make sure you don’t break the macOS native menubar in the process!) | |||
You can probably pass a wrapped SGpropertyNode into this, and then fill in the stubs in that file to use the Menu widgets Frederic has written. | |||
Global menu keybindings won’t worry but don’t touch that, I have a separate plan for it.<ref>https://sourceforge.net/p/flightgear/mailman/message/37805736/</ref> | |||
James has done about 75% (hah!) of the C++ work to enable live reloading of modules this way, but unfortunately there are some code paths that would become crashy if you use the feature for the Canvas: because it would reference the ‘old’ (pre-reload) Nasal code, and not the new one, and therefore you’d get a weird mix of old and new, and then just crash the sim. To fix it properly I need to track down those places that store a reference to Canvas and give them a re-init method, so we don’t keep the stale references. | James has done about 75% (hah!) of the C++ work to enable live reloading of modules this way, but unfortunately there are some code paths that would become crashy if you use the feature for the Canvas: because it would reference the ‘old’ (pre-reload) Nasal code, and not the new one, and therefore you’d get a weird mix of old and new, and then just crash the sim. To fix it properly I need to track down those places that store a reference to Canvas and give them a re-init method, so we don’t keep the stale references. |