[Date Prev][Date Next][Thread Prev][Thread Next] [Search] [Date Index] [Thread Index]

[MacPerl] hurting my brain



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