I'm going to. Now, does this mean anything labelled func inside the struct 
needs tacked on as well?

Subject: Re: [swift-users] Need Help with C-to-Swift (finally)
From: ja...@apple.com
Date: Fri, 11 Dec 2015 18:19:55 -0800
CC: har...@harlanhaskins.com; swift-users@swift.org
To: gagemor...@outlook.com

Did you make the class and its methods public?
Jack
On Dec 11, 2015, at 6:16 PM, Gage Morgan <gagemor...@outlook.com> wrote:Here's 
what I'm getting:
/home/mgage/swift-cairo-bindings/test/main.swift:4:15: error: module 'Cairo' 
has no member named 'Surface'let surface = Cairo.Surface(format: 
CAIRO_FORMAT_ARGB32, width: 421, height: 410)              ^~~~~ 
~~~~~~~<unknown>:0: error: build had 1 command failures
So what I'm trying to do is to put all wrappings in a separate module named 
Cairo. Then, I want to use those methods outside of the module named Cairo. I 
renamed the class to Surface and fixed all references, but for some reason it 
keeps saying something about Surface not present. I need to look into whether a 
git repo may be needed.
Subject: Re: [swift-users] Need Help with C-to-Swift (finally)
From: har...@harlanhaskins.com
Date: Fri, 11 Dec 2015 20:31:20 -0500
CC: ja...@apple.com; swift-users@swift.org
To: gagemor...@outlook.com

Nope, but you’ll need a way to specify the class inside the module (the 
fully-qualified type name)
Cairo.Cairo should work fine.
On Dec 11, 2015, at 8:14 PM, Gage Morgan <gagemor...@outlook.com> wrote:The 
module is Cairo. Do I need to change something (I'm assuming by struct you mean 
the name of the class containing wrappings). The class is named Cairo as well. 
Could renaming the module to ModCairo fix this?

Sent from Outlook Mobile
On Fri, Dec 11, 2015 at 5:11 PM -0800, "Harlan Haskins" 
<har...@harlanhaskins.com> wrote:

Is your struct named Cairo or Surface?
If Cairo is the module name, you're trying to instantiate the module.

- Harlan
On Dec 11, 2015, at 7:55 PM, Gage Morgan <gagemor...@outlook.com> wrote:

How would you use things like cairo.moveTo() outside of the wrapping file? I've 
gone as far as writing a module named "Cairo," taking the methods as mentioned 
above out, and moving them to their own directory "tests." I have added "Cairo" 
as a dependency for "tests," but there appears to be something wrong when I try 
to call:let cairo = Cairo(format: CAIRO_FORMAT_ARGB32, width: 421, height: 
410)Why can I not call Cairo()? The error:Compiling Swift Module 'test' (1 
sources)/home/mgage/swift-cairo-bindings/test/main.swift:4:18: error: cannot 
call value of non-function type 'module<Cairo>'let cairo = Cairo(format: 
CAIRO_FORMAT_ARGB32, width: 421, height: 410)            ~~~~~^<unknown>:0: 
error: build had 1 command failuresswift-build: exit(1): 
["/home/mgage/Downloads/swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu15.10/usr/bin/swift-build-tool",
 "-f", "/home/mgage/swift-cairo-bindings/test/.build/debug/test.o/llbuild.yaml"]
I don't know whether or not I want to translate methods into straight-up 
properties yet.Thanks, support here has been great so far. Cheers!--MGage--

Subject: Re: [swift-users] Need Help with C-to-Swift (finally)
From: har...@harlanhaskins.com
Date: Fri, 11 Dec 2015 19:35:46 -0500
CC: gagemor...@outlook.com; swift-users@swift.org
To: ja...@apple.com

I considered that but couldn't find a cairo_get_font_scale function quickly to 
complement the setter 😅
But yes, a full wrapper would transparently handle getting and setting.

- Harlan
On Dec 11, 2015, at 7:28 PM, Jack Lawrence <ja...@apple.com> wrote:

For getter-setter pairs like `setLineWidth`, you might consider turning them 
into properties:
cairo.setLineWidth(0.1) // oldcairo.lineWidth = 0.1 // new
On Dec 11, 2015, at 4:22 PM, Gage Morgan via swift-users 
<swift-users@swift.org> wrote:Harlan,
The answer is yes. I even managed to get a couple you didn't list on my own:
let cairo = Cairo(format: CAIRO_FORMAT_ARGB32, width: 421, height: 
410)cairo.scale(10.0, y: 10.0)cairo.moveTo(29.0, y: 14.7)cairo.lineTo(37.6, y: 
13.0)cairo.moveTo(37.6, y: 13.0)cairo.lineTo(30.4, y: 22.2)cairo.moveTo(30.4, 
y: 22.2)cairo.lineTo(29.0, y: 
14.7)cairo.setLineWidth(0.1)cairo.stroke()cairo.surfaceWriteToPNG("boobs.png")
Swift is both really neat and really frustrating when learning it. 
Subject: Re: [swift-users] Need Help with C-to-Swift (finally)
From: har...@harlanhaskins.com
Date: Fri, 11 Dec 2015 17:21:38 -0500
CC: kwame.br...@gmail.com; swift-users@swift.org
To: gagemor...@outlook.com

Gage,
Sorry, I just got back from class.
I’ll respond in line!
On Dec 11, 2015, at 5:09 PM, Gage Morgan <gagemor...@outlook.com> wrote:Harlan,
I read on cairographics.org about bindings awhile back. I think they want 
cairo, not surface, so we would have something like:
let cairo = Surface(format: CAIRO_FORMAT_ARGB32, width: 240, height: 
80)cairo.setFontFace("serif", weight: 
CAIRO_FONT_WEIGHT_BOLD)cairo.setFontSize(32.0)cairo.setSourceRGB(0.0, g: 0.0, 
b: 1.0)cairo.moveTo(x: 10, y: 50)cairo.showText("Hello, 
World!")cairo.writeToPNG("hello.png")
Would this work the same as before without "surface" but instead "cairo”?

Absolutely! That’s just a variable name — it could be called ‘puppies’, though 
that’s not very readable.

Sent from Outlook Mobile



On Fri, Dec 11, 2015 at 2:00 PM -0800, "Gage Morgan via swift-users" 
<swift-users@swift.org> wrote:

I went and looked at it, and even now it looks like I want to take every 
function I've used in Cairo and translate it to Swift. Swift is such a...simple 
language compared to everything else. That being said, as a result of the 
specs, it is also much more verbose in terms of writing the code. Compared to 
other languages, it is written out instead of shoved onto a few lines. 
Is there a way to import modules into other modules? Because it looks like a 
weekend project that will eventually get posted by myself at 
http://github.com/Christoffen-Corporation. 

Sent from Outlook Mobile
I’d recommend having a look at the Swift package manager example again — 
https://github.com/apple/swift-package-manager/blob/master/Documentation/SystemModules.md
There’s an example of using those modules together.

On Fri, Dec 11, 2015 at 1:52 PM -0800, "Gage Morgan via swift-users" 
<swift-users@swift.org> wrote:

I meant the code posted in the Gist link above. I don't know jack squat about 
qsort. I'm hoping that if I can reverse-engineer code already produced, I can 
apply it to other parts of Cairo. 

Sent from Outlook Mobile
I’ll go ahead and comment it, but I think it’s simplistic enough that it should 
be readable with a grasp of some Swift concepts. Perhaps it’s a good idea to 
look through The Swift Programming Language to figure out some of the 
constructs I used — they’re fairly basic constructs.

On Fri, Dec 11, 2015 at 1:34 PM -0800, "Kwame Bryan"<kwame.br...@gmail.com> 
wrote:

Tutorial on the subject. http://chris.eidhof.nl/posts/swift-c-interop.html 
RegardsKwame<Mail Attachment.txt><Mail Attachment.txt>
 _______________________________________________swift-users mailing 
listswift-users@swift.orghttps://lists.swift.org/mailman/listinfo/swift-users
                                          
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to