Xojo and macOS10.14 findings

Did some testing with macOS10.14 beta 1 and below are some things I noticed:

FWW I know it is the first beta, still it may be good to look into some things right now instead of waiting.

  • Listbox has a lot of problems :
    The header is funky. Sometimes it turns full black, sometimes it overwrites text, sometimes the text is shifted to the left. Definitely something is wrong here.
    The paint event has problems with .drawpicture (it draws .PNG images with a black background).
    Fast scrolling is troublesome (read: cannot keep up updating). Drawing glitches are clearly visible.

  • Labels:
    The text color is not adapted when turning the Dark Mode on. (yes, I turned on Darkmode with the declares Sam provided).

  • Many controls do not display the ‘dark’ type version. It just displays the ‘default’ (yes, I turned on Darkmode with the declares Sam provided).

  • Scrollbars have the wrong color (and still aren’t transparent - read native).

  • The Xojo UI has all sort of glitches (probably because they are custom and not native.

Now, I think Xojo Inc can fix the controls easily.
The non-native listbox is another story. With the Darkmode, it is now completely non-macOS-a-like. I mean, when you use the Listbox, your app will not look like a macOS at all. This was already the case with the previous macOS versions, but now it is really becoming a huge problem if you want to make a decent macOS app.
I do realise the non-native listbox control will be hard to make it look good (Read: how macOS users expect it to look), but maybe Xojo Inc can take a serious look at adding a native listbox (NSTableView?).

BTW Appwrapper 3 still works. So 32bit apps seems to be allowed. At least for this beta. :slight_smile:

Just FYI, the scrollbars are native, but they won’t get the modern feel because they can’t. Xojo needs a scroll view in order to make modern scrolling a reality.

[quote=390924:@Christoph De Vocht]he non-native listbox is another story. With the Darkmode, it is now completely non-macOS-a-like. I mean, when you use the Listbox, your app will not look like a macOS at all. This was already the case with the previous macOS versions, but now it is really becoming a huge problem if you want to make a decent macOS app.
I do realise the non-native listbox control will be hard to make it look good (Read: how macOS users expect it to look), but maybe Xojo Inc can take a serious look at adding a native listbox (NSTableView?).[/quote]
I’ve now started using 2 listboxes to make one. Neither has a header, and the first IS the header for the main listbox. The result looks like this:

That allows me to use the CellBackgroundPaint and CellTextPaint events to create a look that is more in tune with my overall app.

[quote=390937:@Tim Jones]I’ve now started using 2 listboxes to make one. Neither has a header, and the first IS the header for the main listbox. The result looks like this:

That allows me to use the CellBackgroundPaint and CellTextPaint events to create a look that is more in tune with my overall app.[/quote]
Not saying your approach is wrong, but why didn’t you use a canvas for the header?

Because the resulting gradient is different on the three platforms when I used a canvas.

Ha yes, again we need to use tricks to make it (kinda) work. But honestly, I dislike non-native looks. Especially for macOS. macOS users don’t like non-native stuff (and they are right not to).

It have a lot of problems already… and Xojo do not had time to remove them !

That’s… odd.

I posted code for a self-synchronizing listbox header that is canvas based… it would take some modification to be “dark-mode” but a quick search should find the link to the source code I posted… (not where I can find it at the moment)

This? https://forum.xojo.com/43864-custom-listbox-header/

I’ve already written code to fix this.[quote=390924:@Christoph De Vocht]- Many controls do not display the ‘dark’ type version. It just displays the ‘default’ (yes, I turned on Darkmode with the declares Sam provided).[/quote]
Which ones?

I think I can fix that too.[quote=390924:@Christoph De Vocht]BTW Appwrapper 3 still works. So 32bit apps seems to be allowed. At least for this beta. :)[/quote]
They said it would last year, just that 10.13 was the last OS to support 32-Bit apps unhindered. Then they went and pulled that stunt by freighting casual users who opened 32-Bit apps.

btw, I have an alpha version of App Wrapper 64-Bit, I’ve been using it, but I would like it to have a bit more testing before it goes public, due to the colossal amount of declares in there.

I had a look through Apple’s guide for making an app Dark Mode ready and it says to add NSRequiresAquaSystemAppearance NO to the info Plist file to properly support dark mode on apps built with ‘older’ SDKs.

So by simply adding a build script with the following to my Mac build it enabled dark mode which works for most things.
It even supports the new appearance settings allowing the default colour to be changed from blue to others (I have it set to orange).

Dim App As String = CurrentBuildLocation + "/""" + CurrentBuildAppName + ".app"""
Call DoShellCommand("/usr/bin/defaults write " + App + "/Contents/Info 'NSRequiresAquaSystemAppearance' 'NO'")

The UI in the Xojo editor

And when running

The only things I can see that don’t adapt correctly are the TextField, TextArea, Bezel button and Listbox but I don’t know if they’re even supposed to adapt…
But both of those can be fixed via custom drawing on the listbox and just setting the background and font colour on the text field and area. And just don’t use bezel buttons :stuck_out_tongue:

I added the option to the Xojo IDE’s plist and this is what happened :smiley:

Nearly there, interesting to see all the custom controls.

I would hope Xojo focuses on fixing bugs rather than creating a dark mode interface. Dark mode interface for Xojo is literally lowest priority for me with all of the other issues Xojo is facing.

I agree that the Xojo IDE does not need a dark mode and would not want them to focus on it rather than fixing bugs.
However with dark mode being one of the main features of MacOS 10.14 it is nice to know that our apps built with Xojo can support it with relative ease.

If that’s a main feature, Apple are in trouble.

Unfortunately, Gilles is correct with Dark Mode being one of the major features of Mojave. Oh, and the death of non-Retina screens. And the death of non-transparency. I still think that all Apple developers are 20-somethings with perfect eyesight.

+1

It’s definitely fiddling while Rome burns.

What does this mean?

@Tim Streater: I meant the “improvements” in regards to subpixel antialiasing. Try any random QT app. Like Kindle, Calibre, Valentina Studio etc. Totally absolutely unusable on Mojave.