[MacRuby-devel] Quartz 2D Graphics problem
Jim Getzen
jim at getzen.name
Sun Oct 21 11:40:50 PDT 2012
You don't need to make a framework or bundle to add Obj-C code to your project. I've been able to just add a .h/.m files directly to the project and call the Obj-C classes contained therein from my MacRuby code, just as if those classes were part of a framework.
What you can't do, of course, is call straight C functions or constants without a bridgesupport file.
Jim
On Oct 21, 2012, at 12:59 PM, Mark Rada <mrada at marketcircle.com> wrote:
Adding some Objective-C code could be done with a framework as suggested, or by creating a bundle. The bundle process is essentially the same as creating a C extension for Ruby. Any MacRuby project with a C extension could be used as an example:
https://github.com/pieter/macruby-bundle-example
https://github.com/Marketcircle/AXElements/tree/master/ext/accessibility/key_coder
https://github.com/alloy/ObjectiveBacon/tree/master/LanguageBindings/MacRuby/ext
You can then simply "require 'bundle'" the bundle file that is compiled.
On 2012-10-21, at 12:44 PM, Colin Thomas-Arnold <colinta at gmail.com> wrote:
> You can certainly compile a group of stuff as a framework, and add that framework to your project, but I've never tried to just toss in .h/.m files and access them from macruby.
>
> Can anyone touch on that? I'm interested to hear what can be done there...
>
>
> AFA translating your code into Obj-C...
>
>
> Here's the short version:
>
> self.context = [[NSGraphics currentContext] graphicsPort];
>
>
>
> And here's the long version!
>
>
> // the header file, YourClass.h
>
> @interface YourClass : ParentClass
>
> @property (assign, nonatomic) CGContextRef context;
> // or void* instead of CGContextRef, but graphicsPort returns a CGContextRef
>
> @end
>
>
>
> // the implementation file, YourClass.m
>
> #import "YourClass.h"
>
> @implementation YourClass
>
> @synthesize context;
>
> - drawRect:(CGRect)rect
> {
> self.context = [[NSGraphics currentContext] graphicsPort];
> }
>
> @end
>
>
>
>
> @colinta
> colinta.com
> github.com/colinta
>
>
>
>
> On Oct 21, 2012, at 10:19 AM, Robert Carl Rice wrote:
>
>> Hi Mark,
>>
>> Unfortunately, I am not very familiar with objective C syntax. Is it easy to mix objective C statements with MacRuby?
>> For example, How would code the @context = NSGraphicsContext.currentContext.graphicsPort in objective C?
>>
>> Thanks,
>> Bob Rice
>
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo/macruby-devel
_______________________________________________
MacRuby-devel mailing list
MacRuby-devel at lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo/macruby-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-devel/attachments/20121021/0279f89e/attachment-0001.html>
More information about the MacRuby-devel
mailing list