[MacRuby-devel] NSImage issue?

pedro gutierrez pedrogutierrez at mac.com
Thu Nov 13 17:02:27 PST 2008


Hi Brad,
That worked! Many thanks for putting me in the right path and next  
time I will read the documentation twice!
Cheers,
Pedro.

On 13 Nov 2008, at 10:13, Brad Wilson wrote:

> Sorry few typos in there, the only one that really matters is that  
> the method call should be:
>
> icon.drawInRect(rect, fromRect:NSZeroRect,  
> operation:NSCompositeSourceOver, fraction:1.0)
>
> On 13/11/2008, at 9:09 PM, Brad Wilson wrote:
>
>> I think there's a problem with your method call. If you look at the  
>> cocoa doc is has a selector with the signature:
>> drawInRect:fromRect:operation:fraction.
>>
>> To call that from MacRuby you'd want to do something like:
>> icon.drawInRect(rect, fromRect:NSZeroRect,  
>> operationNSCompositeSourceOver, fraction:1.0.
>>
>> See the way the named arguments line up? That'll work for any cocoa  
>> call. There's some discussion on the MacRuby tutorial under  
>> "Sending Messages" at http://www.macruby.org/trac/wiki/MacRubyTutorial
>>
>>
>> Another tip I got from somebody on the list:
>> object.methods(true, true) will give you a list of all methods on  
>> an object, including objective-c methods. That might help in future  
>> if you're not sure what the method call should be.
>>
>> Hope that helps.
>>
>> Brad
>>
>>
>> On 13/11/2008, at 8:11 PM, pedro gutierrez wrote:
>>
>>> Hi everybody,
>>>
>>> This is my first message to the mailing list, I am a newbie in  
>>> Cocoa so please bear with me...
>>>
>>> In my first serious MacRuby project,  I have subclassed  
>>> NSTextFieldCell and I have redefined drawInteriorWithFrame with  
>>> the following code:
>>>
>>> 	def drawInteriorWithFrame( rect, inView:view )
>>> 		
>>> 		icon = NSImage.imageNamed( "example" )
>>> 		
>>> 		puts icon.methods.join( " " )
>>> 		puts "icon is valid: #{icon.isValid} and has size #{icon.size}"
>>> 		
>>> 		icon.drawInRect( rect, NSZeroRect, NSCompositeSourceOver, 1.0 )
>>> 	
>>> 	end
>>>
>>> (i.e: I am just trying to draw an icon)
>>>
>>> Here is what I get from the console:
>>>
>>> [Session started at 2008-11-13 09:01:01 +0000.]
>>> gem __super_objc_send__ enum_for to_enum object_id __id__  
>>> define_singleton_method public_method method display extend  
>>> respond_to? public_send send __send__ instance_exec instance_eval  
>>> __native__? tap is_a? kind_of? instance_of?  
>>> instance_variable_defined? instance_variable_set  
>>> instance_variable_get instance_variables public_methods  
>>> private_methods protected_methods singleton_methods methods  
>>> inspect to_s frozen? freeze untaint tainted? taint dup clone eql? ! 
>>> ~ =~ === nil? != ! equal? == hash
>>> icon is valid: true and has size #<NSSize width=30.0 height=24.0>
>>> /Users/sicozu/Projects/iAmbient/build/Release/iAmbient.app/ 
>>> Contents/Resources/PlaylistCell.rb:26:in  
>>> `drawInteriorWithFrame:inView:': undefined method `drawInRect' for  
>>> #<NSImage:0x10f2480> (NoMethodError)
>>> 	from /Users/sicozu/Projects/iAmbient/build/Release/iAmbient.app/ 
>>> Contents/Resources/PlaylistCell.rb:15:in `drawWithFrame:inView:'
>>> 	from /Users/sicozu/Projects/iAmbient/build/Release/iAmbient.app/ 
>>> Contents/Resources/PlaylistCell.rb:15:in `drawWithFrame:inView:'
>>> 	from /Users/sicozu/Projects/iAmbient/build/Release/iAmbient.app/ 
>>> Contents/Resources/rb_main.rb:22:in `NSApplicationMain'
>>> 	from /Users/sicozu/Projects/iAmbient/build/Release/iAmbient.app/ 
>>> Contents/Resources/rb_main.rb:22:in `<main>'
>>>
>>> Can anybody please give me a hint of what I am doing wrong?  
>>> Shouldn't I expect my instance of NSImage to respond to :drawInRect?
>>>
>>> And by the way,  thanks a lot for this sweet MacRuby project !!
>>> Cheers,
>>> Pedro.
>>>
>>>
>>> _______________________________________________
>>> MacRuby-devel mailing list
>>> MacRuby-devel at lists.macosforge.org
>>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>>
>> _______________________________________________
>> MacRuby-devel mailing list
>> MacRuby-devel at lists.macosforge.org
>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel



More information about the MacRuby-devel mailing list