Terence Heaford wrote:

> So with regard to Mac OS if we/I want native controls for:
>
> Buttons,
> Fields,
> Tabs,
> DataGrid (NSTable)
> etc.
>
> I will have to roll my own in LCB (when available for this) or wait
> for LiveCode to require to do it via a stretch goal?


If you're looking for an implementation of a control on just one of the 6 GUI platforms LC supports, it would seem reasonable to roll your own.

The LC team has to support multiple OSes, which of course multiplies the cost of an implementation.

But for the most part that shouldn't be needed.

Buttons are already quite good on macOS, as are fields, tabs, progress bars, and most others. The transition to Cocoa really moved those forward nicely, and the recent theme refinements have made them quite satisfying. There should be no need to rewrite those from scratch in any language at all. And they look very good on Windows and Linux as well.


To rewrite the DataGrid for macOS using NSTable would be non-trivial. Indeed, I've never seen any control on any platform implemented in C (or C++ or Objective C etc.) as flexible for the end-user as what the DG provides.

I was talking about these sorts of issues recently with my friend Mark Lucas, the lead developer of SuperCard. He reminded me that the Cocoa framework provides many great features that save significant time for Objective C developers, but they assume your app's appearance and behavior are defined before compile-time. With xTalks like SuperCard and LiveCode, the engine developers need to accommodate a much more dynamic world in which, for the scripters using these tools, development and runtime are virtually indistinguishable. This requires the stewards of an xTalk engine to, as he likes to put it, "reach in between the fan blades", to work around the constraints of the OS APIs that made NextStep/Cocoa so great for ObjC devs but unusually challenging for xTalk devs.

When we see apps making good use of APIs like NSTable, we usually see a user-facing implementation that reflects a relatively small subset of all of the capabilities of that class.

If there is any other high-level scripting language that uses NSTable to provide access to as many properties and features as LC's DataGrid, I've not come across it yet.

That said, I've never programmed in Objective C and am not familiar with the NSTable class. If it's affordable to implement, perhaps you could point the way.

The LiveCode team, however, faces a very different challenge: in addition to a macOS version they'd also need do that work all over again with a different set of APIs for Windows, Linux, and Android.

I'm sure they'd love to have the time for that. But to get them that time we'd need to let them know which other things we've been asking them to do are less important so they could set those aside. And given the scope of the task, I'd imagine the list of set-asides would be rather long.

--
 Richard Gaskin
 Fourth World Systems
 Software Design and Development for the Desktop, Mobile, and the Web
 ____________________________________________________________________
 ambassa...@fourthworld.com                http://www.FourthWorld.com


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to