tperry2x wrote: ↑Wed May 15, 2024 10:09 am
OpenXTalkPaul wrote: ↑Wed May 15, 2024 2:26 am
[Toolset/libraries/revideextensionlibrary.livecodescript]
...here's handlers there to do other things that could be useful (like hide a widget from the widgets section of the Tools palette for example.).
Also, you may already be aware. I discovered the "revTools.livecodescript" script only stack also contains handlers such as:
Code: Select all
isolateTool [tool] -- for disabling all tools except the one specified.
enableTools, disableTools
groupDisable [widget/classic/graphic/graphictools/paint], [true/false]
toolEnable [button/widget]
toolDisable [button/widget]
Glad to help! Looking forward to trying out your new inspector!
I learned a few things too, the undocumented fact Widgets can include their own custom property editors too (I don't know that any of them do, but I know I'm going to experiment with it).
This thread has me thinking a lot about the Extension packaging format in general. I'm becoming convinced we could modify the same system to implement stack/script 'widgets' in some way. Some way that would have to be fleshed-out of course. I know LC has done something similar, but I have no knowledge of what their system does now days, and I'm not too worried about staying compatible going forward. I don't think there's any reason a stack's script or behavior couldn't have the same sort of metadata, the system already allows for widgets to include a '_defaultsScript" that serves the same purpose as the 'classic controls' equivalent (in IDE /Tools/Toolset/resources/supporting_files/default_scripts), the system has a folder defined for demo stacks, plus package manifest (.xml), and API.lcdoc for adding docs to the dictionary.
I've been thinking any of those could individually be delivered via the .lce package (again its just a zip file) system sans any Xtension Builder module. So maybe the .lce only contains a 'samples' folder that could contain a whole collection of Demo stacks and any peripheral media that might go along with them in a 'Resource' folder, along with a description, or docs/guide/ serving as a brief "read-me". These 'virtual-Extensions' packages could populate the 'Sample Stacks' browser, which is something I want to detach from relying on outside sources.
I've probably looked at the tools pal scripts more than hundred times by now, I guess my news tools palette should support those handlers, I'm not sure where in the IDE they're actually used if at all, I think you'd only want to isolate / disable controls on the tools palette in edge-cases like with the Tutorial system maybe (to highlight a particular control).
At one point early on I started trying to collect a list of 'public' IDE related functions available in the IDE that could be useful. That's when I noticed that some of them had the same sort of in-line documentation that's used with Extension Builder, and then used 'Extension Builder' stack to parse those out.
Here's a few from Home stack that could be useful:
put revEnvironmentExtensionsPath() -- IDE Extensions
put revEnvironmentExtPath() -- IDE Externals
put revEnvironmentToolsetPath()
I'm going to try to add the in-line docs for Extensions Properties stuff from this thread, then add it to Dictionary for us to use (or anybody else who may interested in working on IDE things).