[MacRuby-devel] windowControllerDidLoadNib strangeness

Tom Jordan viresh53 at gmail.com
Sun Nov 28 00:03:40 PST 2010


Hi Laurent,

   I ended up just learning how to draw in a view using NSBezierPath, much
easier than I thought :))
I can post a ticket in a few days once I can figure out where it breaking..

It's not a concern for me anymore, but if it's worth opening a ticket for,
I'll be happy to oblige..
Do you think that this could be an issue for others, either now or
eventually?
or would it add to the clutter and minutiae of non-important tasks? or is
everything important? :))
I'm new to open source / community sharing.. not sure how it all works yet..

Thanks !

Tom




On Fri, Nov 26, 2010 at 8:07 PM, Laurent Sansonetti
<lsansonetti at apple.com>wrote:

> Hi Tom,
>
> Could you try to reduce the problem into a new Xcode project? (adding
> MRGraphics to it if necessary.)
>
> Once you have a reduction, please attach it to a new ticket:
> http://www.macruby.org/trac/newticket
>
> Thanks :)
>
> Laurent
>
> On Nov 26, 2010, at 2:30 PM, Tom Jordan wrote:
>
>
> The problem is in my code that uses the MRGraphics library..
>> I removed that, but kept in all of the MRGraphics files, and required it,
>> and windowControllerDidLoadNib is still working.
>> So the MPGraphics files are compiling alright, but the code that uses it
>> is somehow triggering an error.
>>
>    I'm just providing it here in case someone has used it before.
>    I'm thinking that the problem is still with the graphics library,
>    since I just copied one of their examples and changed it to use my
> variables and objects to draw.
>
>> Probably by calling into the library it somehow breaks
>> windowControllerDidLoadNib
>> although I did a search for windowControllerDidLoadNib in the MRgraphics
>> folder and it's not there..
>>
>
>>
>>   def drawRect(rect)
>> @theSteps ? @theSteps : @theSteps = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
>> 12, 13, 14, 15, 16] # initial setup / default view values
>> @theStartstep ? @theStartstep : @theStartstep = 1
>> @theNumsteps ? @theNumsteps : @theNumsteps = 16
>>
>>
>>     dimensions = [CGRectGetWidth(rect), CGRectGetHeight(rect)]  #
>> MRGraphics setup code
>>     Canvas.for_current_context(:size => dimensions) do |c|
>>
>>
>> stepboxes = Path.new         # declare objects to be drawn
>>   highlightedRange = Path.new
>>   cursor = Path.new
>>
>>
>>   start = (@theStartstep-1)%16  # calculate highlighted range
>>   length = @theNumsteps
>>       if (start+length > 16)
>>         highlightedRange.rect( start*29, 0, ((16-start)*29)+4, 162 )
>>         highlightedRange.rect( 0, 0, (start+length-16)*29, 162 )
>>       else
>>         highlightedRange.rect( start*29, 0, length*29, 162 )
>>       end
>>
>>
>>   cursor.rect( (start*29)-1, 0, 1, 162)  # calculate location of the
>> vertical cursor
>>
>>
>>       @theSteps.each_with_index do |k, i|   # calculate locations of the
>> 16 step-boxes
>>         stepboxes.rect( i*29, k*9, 29, 9 )
>>       end
>>
>>
>>   c.background(Color.gray)     # paint background
>>
>>
>>   c.fill(Color.blue)         # paint highlighted range
>>   c.draw(highlightedRange)
>>
>>
>>   c.fill(Color.yellow)  # draw step-boxes
>>           c.stroke(0)
>>           c.stroke_width(1)
>>   c.draw(stepboxes)
>>
>>
>>   c.fill(Color.black)  # draw cursor
>>   c.stroke_width(0)
>>   c.draw(cursor)
>>
>>
>>     end
>>   end
>>
>>
>>
>>
>>
>>
>>
>> On Fri, Nov 26, 2010 at 5:14 PM, Tom Jordan <viresh53 at gmail.com> wrote:
>>
>>> I'm having some trouble bringing in the old nib to the newly working
>>> project,
>>> so I went back to the old project and removed the MRGraphics code..
>>> windowControllerDidLoadNib is now working right in the original
>>> project..
>>> I hope there is a way to still use the MRGraphics library..
>>> I'm going to submit an issue at its Github site..
>>>
>>>
>>>
>>>
>>> On Fri, Nov 26, 2010 at 4:46 PM, Tom Jordan <viresh53 at gmail.com> wrote:
>>>
>>>> Thanks Guys !  I just created a new project and it worked..  Now I'm
>>>> going to bring in my files from the other project and see if I can find
>>>> where it breaks..
>>>> I'm also using the MRGraphics library at:
>>>> https://github.com/mattetti/macruby_graphics
>>>>
>>>> It works great to quickly get a custom graphics view going, although I
>>>> have noticed some strangeness with IB..
>>>> in that whenever I add new widgets to the top level (and only) nib,
>>>> I need to delete the custom view that has the MRgraphics, and repaste it
>>>> back in, and reconnect it,
>>>> or else the newly added widgets won't show up in the build (until you
>>>> mouse over to where they're supposed to be and click..
>>>> in which case they will appear (sometimes partially if it's a matrix,
>>>> for example), and even then they won't function right).
>>>>
>>>> It drove me crazy until I found out that deleting the custom view and
>>>> repasting it worked..  although I don't know what I'm going to do
>>>> once I need to have more than one custom view and keep adding widgets,
>>>> etc.. I just wanted to mention this in case
>>>> anyone has seen this before.
>>>>
>>>> I'm running 10.6 on a Mac Pro.. which I believe it's 64-bit..
>>>> I need to get a Github account or something so that I can post a full
>>>> project if need be..
>>>>
>>>> This is a great resource, I appreciate the help.. thanks !
>>>>
>>>> Regards,
>>>>
>>>> Tom Jordan
>>>>
>>>>
>>>>
>>>>
>>>> On Fri, Nov 26, 2010 at 3:42 PM, Laurent Sansonetti <
>>>> lsansonetti at apple.com> wrote:
>>>>
>>>>> Hi Tom,
>>>>>
>>>>> I just created a sample NSDocument-based project, and added
>>>>> a windowControllerDidLoadNib: method to the NSDocument class, calling super
>>>>> as you do, and everything worked as expected.
>>>>>
>>>>> Could you try that and see if you still see the problem? Also, do you
>>>>> run a 32-bit machine?
>>>>>
>>>>> Laurent
>>>>>
>>>>>
>>>>> On Nov 25, 2010, at 10:07 PM, Tom Jordan wrote:
>>>>>
>>>>> Hello,
>>>>>
>>>>> I'm encountering some weird behavior when trying to update a view using
>>>>>
>>>>> When I provide windowControllerDidLoadNib a single argument, as shown
>>>>> below (and required by the NSDocument class definition and in every example
>>>>> I've seen),
>>>>> Xcode says: `windowControllerDidLoadNib:': wrong number of arguments (1
>>>>> for 0) (ArgumentError)
>>>>> If I don't provide any argument, it says: undefined method
>>>>> `windowControllerDidLoadNib' for #<MyDocument:0x200646660> (NoMethodError)
>>>>> I've tried every combination of one or no args for both the method
>>>>> signature and "super" call on the next line, and I can't seem to get any
>>>>> different results.
>>>>> This is my first time trying to get persistence going, but I've read a
>>>>> lot about it, and everything else is working well.. it saves and loads, but
>>>>> I can't seem to get this hook
>>>>> working to update the GUI upon loading.
>>>>>
>>>>>
>>>>> class MyDocument < NSDocument
>>>>>
>>>>> attr_accessor :loadedmodel, :root #outlet to model field of controller
>>>>>
>>>>>  # Name of nib containing document window
>>>>> def windowNibName
>>>>> 'MyDocument'
>>>>> end
>>>>>
>>>>> # Document data representation for saving (return NSData)
>>>>> def dataOfType(type, error:outError)
>>>>>  outError.assign(NSError.errorWithDomain(NSOSStatusErrorDomain,
>>>>> code:-4, userInfo:nil))
>>>>> NSKeyedArchiver.archivedDataWithRootObject(@root.model)
>>>>>  end
>>>>>
>>>>> # Read document from data (return non-nil on success)
>>>>> def readFromData(data, ofType:type, error:outError)
>>>>>  outError.assign(NSError.errorWithDomain(NSOSStatusErrorDomain,
>>>>> code:-4, userInfo:nil))
>>>>> @loadedmodel = NSKeyedUnarchiver.unarchiveObjectWithData(data)
>>>>>  end
>>>>>
>>>>> # Return lowercase 'untitled', to comply with HIG
>>>>> def displayName
>>>>>  fileURL ? super : super.sub(/^[[:upper:]]/) {|s| s.downcase}
>>>>>  end
>>>>>
>>>>> def windowControllerDidLoadNib(aController)
>>>>> super(aController)
>>>>> @root.model = @loadedmodel
>>>>>  NSLog("model loaded")
>>>>> end
>>>>>
>>>>> end
>>>>>
>>>>> Regards,
>>>>>
>>>>>     Tom Jordan
>>>>>
>>>>> _______________________________________________
>>>>> 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
>
>
>
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-devel/attachments/20101128/da3fcf74/attachment-0001.html>


More information about the MacRuby-devel mailing list