mathstodon.xyz is one of the many independent Mastodon servers you can use to participate in the fediverse.
A Mastodon instance for maths people. We have LaTeX rendering in the web interface!

Server stats:

2.8K
active users

#AppKit

2 posts2 participants0 posts today

There is a Google Summer of Code 2025 proposal to redesign the macOS interface for VLC using AppKit. The proposal would replace legacy Carbon-era UI components with modern layouts, integrate the latest libvlc playback controls into native VLC transport UI controls, rebuild the media library interface, and prioritize system consistency with SF Symbols, vibrant materials, and macOS accessibility standards.

summerofcode.withgoogle.com/pr

#VLC#Apple#AppKit

Implementing this tree view for test series, tests and requests took perhaps a whole month of work.

It was the first time I used NSOutlineView. Made many mistakes at first so had to reimplement this maybe three times.

But it supports renaming, multiple item selection, drag and drop reordering and duplicating items. All with pretty animations and menu actions with keyboard shortcuts.

Quite proud of that little thing 😌

Overrode NSTableHeaderView and NSTableHeaderCell yesterday to get an Aqua appearance by custom drawing them myself in their respective draw functions... but refined it a lot more today!

(I removed most of the UI to call out the table view headers a bit more in this video)

Maaaaaan, AppKit is so fucking fun to use and make shit with.

No... I won't be shipping with #Aqua headers for the NSTableView but at least I now know I can override NSTableHeaderCell and draw whatever the hell I want and not keep the snoozeville boring flat UI headers they ship now. :) Flat UI sucks.

I will probably make some subtle gradient for the column headers that will make them stand out a bit more.

But look, AQUA!!!

sometimes simple code is best. i really like this category method on NSFileManager:

```
- (BOOL)linkOrCopyItemAtURL:(nonnull NSURL *)srcURL toURL:(nonnull NSURL *)dstURL error:(NSError *__autoreleasing _Nullable * _Nullable)error {

BOOL success = [self linkItemAtURL:srcURL toURL:dstURL error:error];

return (success) ?: [self copyItemAtURL:srcURL toURL:dstURL error:error];

}

```

#obj-C #AppKit

DST change reminded me of that time QA discovered that, if you build a date from NSDateComponents, any missing items will not be set to zero, but will be set to the corresponding value from the current date and time.

Which meant that my March 30th, 12:00 would get random one-minute-drift like 12:00:59 because the user entered the date right before a minute change.

Makes sense for the date, but was a bit bewildering for the time, especially seconds.

It’s kind of strange that if you have several NSToolbars in your app and the user customizes the display mode in one of them to, say, “Icon and Text” this state does not sync to all of the app’s toolbars. There also doesn’t seem to be any obvious way to observe changes to these settings. I guess that’s just okay and the user is expected to customize them all separately..?

Or I wait until next WWDC and our Mac windows won’t have toolbars anymore as they have been designed for “the next generation of users”.