I started work on a macOS version of the Linkage program. It’s going to be years before it’s done but it’s also going to be an interesting project. I opted to use the native tools and languages to make my C.V. so filled with programming languages and operating systems that no one will believe it.

Linkage Window

All I have working is a window with a toolbar and a view that I will use for the mechanism. I colored the mechanism view because I initially added the toolbar as a separate view within the window. But there is a toolbar control that allows controls to be added below the header bar. Interestingly, there is only a single horizontal line of controls that can be in the toolbar but the one control can be a generic view that contains lots of other buttons, boxes, labels, etc. I still want to somehow shrink the buttons if the bar is too narrow and that is going to take many hours of work, especially if I try to make the solution a generic solution. It’s a shame that Apple doesn’t provide a cooler ribbon bar control like Microsoft provides. Even if the Microsoft ribbon bar is buggy (doesn’t handle retina-type displays well), it’s still nice how it shrinks buttons to just an icon if the bar is too narrow to fit them with labels. I did my own fitting code in the Windows Retail Engagement Program app for it’s top tool bar so I know it’s not that hard to do.

I was disappointed by the provided images in Xcode. You can see the three document image used as a button in that picture above. There’s no official documentation on the images available and there’s not a good set of images for the functions that I wold expect to us. But since this is Apple and a Mac, I don’t really expect them to support toolbars with lots of nice looking buttons (just look at most apps like the finder with little bland buttons). I’m not sure what direction to take; should I copy the Windows Linkage program or make this as much Mac-looking as possible.

Next Steps

The next steps are to make one of the toolbar buttons perform a function, such as adding some sort of element to the editor view and to make that element something that the mouse can drag. After that, I need to be able to animate the elements in the mechanism at 30 FPS for the simulation. If those few things can work properly, I’ll then just start copying features and code from the Windows Linkage program to this version because there’s nothing left to chance. Even the toolbar button thing is totally do-able so animations and drag-drop are the only things I have no idea how to do yet.

So that’s it. A toolbar that can contain any controls I want and a view area for the mechanism. And of course, all of the framework code for the project that lets me build and run it with Xcode.