I am making some good progress on my application glue thing, but I am hurting my brain trying to think of the best interface. Here is what I am thinking: use Mac::App::Finder; my $f = new Mac::App::Finder; $f->open('file1', 'R*ch'); # each parameter a scalar $f->open(['file1', 'file2']); # arrayref for parameter lists $f->clean_up({window=>'my project'}); # hashref for objects Then there are object properties. I am thinking maybe: $f->set({show_size=>['false', {window=>'my project'}]}); The first list item is the data ('false'), followed by a hashref to a completely new object. And with Progress Bar, for example, it could be: # set minimum value of first progress bar of first window to 0 $p->set({minimum_value=>[0, {progress_bar=>[1, {window=>1}]}]}); # same thing $p->set({minimum_value=>[0, {progress_bar=>[1, {window=>1}] }] }); So if an object's value in the hashref is an array, the first value is the value, the second is the container. If it is a simple scalar, then it has no container, and that is the value. Any thoughts? I am open to suggestions. It is pretty clear that this framework will create files with some assembly required. For instance, there is no easy way in Progress Bar for my program to know that the parameters in the "make" event correspond to the properties of the window class. And in the Finder, there is no way for the program to know the computer event (gestalt) is supposed to get constants from the 'gsen' enumeration. So I hope to make it easy hook things up where this program leaves things unplugged. Still pondering, -- Chris Nandor mailto:pudge@pobox.com http://pudge.net/ %PGPKey = ('B76E72AD', [1024, '0824090B CE73CA10 1FF77F13 8180B6B6']) ***** Want to unsubscribe from this list? ***** Send mail with body "unsubscribe" to mac-perl-request@iis.ee.ethz.ch