Re: View Hierarchies for apps like Quartz Composer
Re: View Hierarchies for apps like Quartz Composer
- Subject: Re: View Hierarchies for apps like Quartz Composer
- From: Darren Minifie <email@hidden>
- Date: Thu, 8 Oct 2009 22:58:36 -0700
Cool, thanks for the advice. I was a bit vague in my approach. I did in
fact separate model from view in my implementation. What you guys are
saying about better modeling the connections seems to be the right
approach. On another note, Graham, I looked at your framework and it looks
very interesting. Im looking forward to digging deeper when i get a
moment. I do need some drawing code for my thesis, so I will be keen to see
what kind of license it is under. Thanks again.
On Wed, Oct 7, 2009 at 6:58 PM, Gordon Apple <email@hidden> wrote:
> (Crud -- Forgot to change the title again. Sorry about that. -- GA)
>
>
> IMHO, you are trying to do this the hard way. I did one similar to
> that, using views, many years ago using MacApp. (Presented it at MadaCon in
> Phoenix.) I wouldn't do it that way again. Just draw everything in one
> view. Define a draw-shape object with lists of inputs and outputs (could
> be
> objects). Define the connecting lines however you want, as line-objects.
> If you want connector objects, define them. You can easily establish a
> recursive algorithm that ensures directionality and makes sure you don't
> connect more than one output to any input. You an even do (as I did) cut
> and paste which preserves inter-object connections.
>
> If you are not familiar with drawing code, spend some time with the
> Sketch example. It has a lot of code you can pilfer. However, I would
> suggest putting the code into controllers, not in the view and document
> like
> Sketch does.
>
> > Hi Everyone
> >
> > I've recently tried implementing a tool that functioned similar to Quartz
> > Composer (the tool was for an entirely different purpose, and I did not
> know
> > about Quartz Composer at the time). Basically, the user is presented
> with a
> > canvas. On the canvas, the user can place squares that represent
> components,
> > and these components can be linked together by dragging a line from one
> to
> > another. While, I did get an implementation working, I felt it was quite
> a
> > bit of hackery, and I'm wondering if anybody else has any experience with
> > such a user interface? For me, the hard part was figuring out which view
> > hierarchy the connecting lines belonged to. For example my view
> hierarchy
> > was NSWindow --> Canvas --> Components. A connecting line from one
> > component to another didn't seem to fit as a subview of any one
> component,
> > because its bounds were not within that of any single component - they
> were
> > between components. My solution was to create a clear CALayer for each
> > line, and that layer was owned by the canvas, not any component.
> Whenever a
> > component was moved on the screen, the appropriate lines needed to be
> > updated as well. My solution seemed, to me, to have far to many layers
> and
> > weak references.
> >
> > There are many applications like this: OmniGraffle, Keynote (to some
> > extent), OpenOffice, Reason, etc. Is this type of interface so common
> that
> > there are known "tricks" to solving the problem easier (I'm thinking
> > something analogous to a design pattern). Thanks a lot.
> >
> >
> >
> > --
> > Darren Minifie
> > Computer Science Masters Candidate
> > University of Victoria, BC. Canada
> > My Rants: www.noisyair.com
> > My Band: www.ohsnapmusic.com
> >
>
>
>
>
--
Darren Minifie
Computer Science Masters Candidate
University of Victoria, BC. Canada
My Rants: www.noisyair.com
My Band: www.ohsnapmusic.com
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden