That was it - the assign statement. Thanks very much!

I just assumed I was getting the object and not a copy ..

(and sorry I should have checked the samples first)

Cheers and thanks,
J


On Dec 3, 2008, at 23:00 , Laurent Sansonetti wrote:

Hi John,

On Dec 3, 2008, at 8:45 AM, John Shea wrote:

Hello all,

has anyone done any printing in MacRuby?

Some examples that ship with MacRuby (such as PathDemo or PagePacker) implement a printing facility. I don't really remember how it's implemented but maybe this can help you.

I can get it to print ok - if I select the page range, otherwise the print routine wants to print thousands (or more - i got scared and stopped it) pages.

The rectForPage and the drawRect get called those thousands of times - even though the range should be 1 page.

I suspect that the issue is in the knowsRangePage - it is passed a pointer.

I de reference the pointer with range = range_pointer[0]  (which does give me a range) and then set values with range.location = etc, etc
(rather than range_pointer->location  =  1 , in Objective C)

range_pointer[0] will return you a completely new NSRange object. If you alter the object it's not going to alter the range_pointer object.

Do you re-assign the object back to the pointer?

r = range_pointer[0]
r.location += 1
range_pointer.assign(r)

My suspicion is that although i set the range length and location that in fact it is not changing the original pointer appropriately, but perhaps inappropriately ;-) with a very large number (a memory address perhaps?).

Anyone else had this issue?

Otherwise, could you share with us a sample project that reproduces the problem? Maybe it's a bug in MacRuby.

Laurent
_______________________________________________
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel