FourthWorld wrote: ↑Sat Aug 03, 2024 2:07 am
That is not necessarily the case when using FFI in Extension builder.
True, if inclined one can rewrite chunks of the engine in a scripting language.
You're loosing me here. I'm talking about hybrid controls written in Xtension Builder that can be used as
either approximations of a particular OS look,
or as an actual Native UI widget/control from an OS's UI Kit.
Not sure what "if the engine source is unavailable/unusable" means, it is about having a more useful standard set of UI elements that are native or adaptable and easily extensible, without involving the engine source code in any way.
When did the hilite border stop working? Last time I noticed it it seemed to be working well, and if left to default would reflect the user's OS hilite setting.
Did it stop working? It works but it doesn't match the native OS controls effect. These days macOS users can change several different system-wide control focus / accent colors, text highlights, plus darkMode. And 'backing store' on NSWindow/NSview objects can have special 'glass' like transparency effect.
I'm not certain that the IDE inherits the proper focus color from the OS but I am certain that can be fixed using the xBuilder code I mentioned, which uses FFI/objective c to retrieve the colors.
The IDE, like in 'Tools' palette, the highlight color comes from a handler in the IDE scripts, one that would (previously) check for 'edition' type and then set the colors based on that (such as previous 'neon green' color for 'community edition')
and attempting to emulate OS things like Dark Mode in script without changing anything in the engine will run into limitations.
You don't seem to understand what I'm getting at trying to do here, or how xTensionBuilder 'native'-widgets work.
This would only be an attempting to approximate various OS/versions as a stand-ins to render, when in 'edit mode', or in run mode on another OS, that is ONLY if the real-native controls are not available.
And the rendering will be done as with XB drawing the widget which is better sub-pixel rendering and offered finer graphical control than any of the Engine's 'classic' controls.
That's why the "Appearance Manager" option was added at the turn of the century. Raney got tired of trying to stay on top of all the OS changes happening, esp Mac, by rewriting OS routines in the engine.
'Appearance Manager' is no longer very effective, I think the original 'Appearance Manager' was part of macOS 8 and then 'Carbon', to the Engine now this seems to just mean a (custom subclassing of) default OS control style.
Also, The ask/answer stacks don't match standard appearance on macOS any more.
Thank you, yes, another good example, since those are neither system dialogs nor in the engine, they're just stacks. As such, they won't take on new OS conventions automatically, and have to be maintained.
Yes, exactly. In fact I think that was a motivation of mine for adding a fix for accurate macOS system version reporting in macOS 11+, I had been working a version of Answer/Ask stacks attempting to add script that matches that square / vertical stacked buttons dialog box style in newer macOS.
It's worth noting that OS do often have real native equivalent of these sort of dialogs, at least as far as Answer Alert form of Answer command, such as NSAlert
https://developer.apple.com/documentati ... lert/style
With the Emscripten Engine Answer/Ask actually do use 'web native' (JS) dialogs instead of the stack versions. Likewise 'Answer Color' form uses the macOS system color picker (by default, it can be changed) instead of a stack based color picker, so 'Answer' is already a syntax with hybrid 'Native' and/or in-engine implementations.
The ONLY ways to get that 'glass' transparent window effect, however is to
EITHER use XB FFI OS Native,
OR add some more code to the engine. Personally I'd actually
prefer it to be external from the engine. Which is one of the aspects of FFI I like, everything beyond the core interpreter language set could be external to the engine. Just like some implementations already are, like Externals (but XB is much easier IMO) such as revSpeak, revDB, revBrowser, etc. are. with FFI xtensions we can link to the original library dependencies without needing them to include them to compile our extension because of dynamic library linking and loading.