• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: LineForm's Filters Table
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: LineForm's Filters Table


  • Subject: Re: LineForm's Filters Table
  • From: "douglas a. welton" <email@hidden>
  • Date: Sun, 21 Jan 2007 16:15:42 -0500

Hi Will,

I didn't mean to imply that your implementation wasn't "nice" :^)

Note: I have no inside knowledge about the Soundtrack effects panel implementation, so much of what follows is pure speculation on my part.

From my point-of-view, the Soundtrack effects panel does a couple of things that quite naturally fit the data model (filters) to the user control (NSOutlineView). The panel appears to use an NSOutlineView to display the filter list and associated attributes. I am assuming that the OutlineView's datasource is a simpe 2-level tree storing the filters description - filters names on level 1 and filter attributes on level 2 - and a place to store values assoicated with each attribute.

This type of implementation is great for 2 reasons:

1) No additional code is needed to manage the visibility of a filter or it's attributes. If you don't want to see the attributes of a filter, just click the filter's disclosure triangle and all the attributes gets hidden - voila! Or, if you need to remove a filter, then all that's needed is to remove the filter description from the OutlineView's datasource and reload the NSOutlineView.

2) Instead of having to dynamically create a view to represent each filter, I suspect that the NSOutlineView subclass uses a cadre of NSCell subclasses to display the various control elements. When the NSOutlineView is displayed, the appropriate NSCell is selected for display using the delegate method - outlineView:willDisplayCell:forTableColumn:item:

If you use bindings and have an unnaturally keen understanding of NSTreeController, I think that the hundreds of lines of code in Core Image Fun House could probably be reduced to a few dozen.

later,

douglas

On Jan 18, 2007, at 9:12 AM, Will Thimbleby wrote:

Lineform works very similarly to the way Core Image Fun House works. Although I did not use any of the code from there, it is fairly complex. Lineform uses three main classes dealing with the interface, FilterView FilterListView and CIController. The individual FilterViews generate their UI similarly to CIFH based on the parameters of the filter. FilterListView contains multiple FilterViews and draws any of the dragging detail. The CIController handles creating new filters and keeping them arranged. I use bindings to link the interface components to the filter attributes.

In the end it does a similar job in a similar way to CIFH with the filters contained in a custom view but I spent a lot of time refining it.

Unfortunately there are no real shortcuts here, just a lot of coding. Glad you like it. Though Douglas, I'm not sure why you think the effects panel in Soundtrack is nicer.

Any other questions let me know.

best
--will
(Author etc. of Lineform http://freeverse.com/lineform/ )

Date: Wed, 3 Jan 2007 16:52:23 +0100 (MET)
From: Thomas Engelmeier <email@hidden>
Subject: Re: LineForm's Filters Table
To: Cocoa Web Mailing List <email@hidden>
Message-ID: <email@hidden>
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed


On 29.12.2006, at 02:14, douglas a. welton wrote:

I've looked at the code for ParameterView and FilterView and I
think both objects could be made "nicer" with very little coding.
I would also suggest that the best way to present this info is
illustrated by the effects panel in Soundtrack...

It really pays off here to clean up / rewrite FilterView using a flipped coordinate system..

Regards,
	Tom_E

_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:
40earthlink.net


This email sent to email@hidden

_______________________________________________

Cocoa-dev mailing list (email@hidden)

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


  • Follow-Ups:
    • Re: LineForm's Filters Table
      • From: Will Thimbleby <email@hidden>
References: 
 >Re: LineForm's Filters Table (From: Will Thimbleby <email@hidden>)

  • Prev by Date: Re: credits.rtf problem
  • Next by Date: New source list sample code
  • Previous by thread: Re: LineForm's Filters Table
  • Next by thread: Re: LineForm's Filters Table
  • Index(es):
    • Date
    • Thread