[LCB FFI] Why can't I bind to these or make this Aggregate Type?
Posted: Thu Oct 29, 2020 3:01 am
Anybody know how to make NSRect or CGRect struct in LCB?
Or know the proper way to bind to any of Apple's Foundation functions that return one (such as NSMakeRect, CGRectMake, or NSRectFromString)?
I've tried a bunch of different binding strings such as:
"c:CoreFoundation.framework>CGRectMake","c:CoreGraphics.framework>CGRectMake" etc. no joy.
I see CGRectMake is used in various places in LC's source in conjunction with MCRectangleToCGRect and MCGRectangleFromCGRect
It would be good if I could bind "<builtin>" to MCRectangleToCGRect and MCGRectangleFromCGRect, but I can't bind to those either.
Maybe they functions could be exposed in LCB and added to the LCB objc module? (although technically they're C structs not ObjcObjects).
I've also tried to make the Foreign aggregate type info for the struct "qqqq" (4x NaturalFloat) that fails with no error object (or some similar message like that).
--------------------------------------------------------------------------------------------------------------
As a side note, I found you can use the LCB rectangle type in a non-widget library simply by adding:
without that line you would get the error message in the builder "syntax is not allowed for this module type" if you tried to do something like
in an LCB Library (not a Widget)
-------------------------------------------------------------------------------------------------------------
Lastly, I've been wondering if there's a roadmap for LiveCode Builder? Is there any new syntax or other improvements coming to the language at some point? Or at least a plan to do that in the future? I think you all know that I think LCB is the greatest thing since sliced bread (or at least since CompileIt!), but it's also very frustrating and limiting at times.
Or know the proper way to bind to any of Apple's Foundation functions that return one (such as NSMakeRect, CGRectMake, or NSRectFromString)?
I've tried a bunch of different binding strings such as:
"c:CoreFoundation.framework>CGRectMake","c:CoreGraphics.framework>CGRectMake" etc. no joy.
I see CGRectMake is used in various places in LC's source in conjunction with MCRectangleToCGRect and MCGRectangleFromCGRect
It would be good if I could bind "<builtin>" to MCRectangleToCGRect and MCGRectangleFromCGRect, but I can't bind to those either.
Maybe they functions could be exposed in LCB and added to the LCB objc module? (although technically they're C structs not ObjcObjects).
I've also tried to make the Foreign aggregate type info for the struct "qqqq" (4x NaturalFloat) that fails with no error object (or some similar message like that).
--------------------------------------------------------------------------------------------------------------
As a side note, I found you can use the LCB rectangle type in a non-widget library simply by adding:
Code: Select all
use com.livecode.canvas
Code: Select all
put rectangle [0,0,300,500] into tRect
-------------------------------------------------------------------------------------------------------------
Lastly, I've been wondering if there's a roadmap for LiveCode Builder? Is there any new syntax or other improvements coming to the language at some point? Or at least a plan to do that in the future? I think you all know that I think LCB is the greatest thing since sliced bread (or at least since CompileIt!), but it's also very frustrating and limiting at times.