* v1.16, Wednesday, November 19, 2003
There's a bug in perl 5.8.0-5.8.2 whereby -- depending on how your perl
is compiled -- the value of $^E (see the Mac::Glue docs for details)
is modified when accessed. This patch helps minimize the effect, so
at least the value is reliable right after a Mac::Glue event call.
This change makes the value of $^E more reliable even without the bug
in perl.
The problem still exists in using Mac::Errors and probably other code.
It will be fixed in perl 5.8.3 and later. Here's a patch to your perl
if you want to fix it locally:
http://nntp.x.perl.org/group/perl.perl5.porters/85393
* v1.15, Tuesday, November 18, 2003
Make "set" event look at direct object's type instead of defaulting
to guessing between plain numeric/text (should be less need for
param_type() now).
Make guesses for numeric/text also check for floats.
Where there are multiple types for something, get the first one we
know how to deal with.
Add more numeric types.
Fix typeUnicodeText to automatically encode text to UTF-16 as
expexted (if Encode module is available).
* v1.14, Friday, October 31, 2003
Added support for remote Apple events under Mac OS X. Example:
my $glue = Mac::Glue->new('Finder',
eppc => 'Finder', 'mac.example.com'
);
Fixed proper preparation of the data with the right data type when using
param_type().
* v1.13, September 2, 2003
Removed Memoize. The speed gains were exceptionally modest, and some
bugs popped up resulting from adding it. It could be added back at
some point, but it would need to be done more carefully, and right
now the benefits don't justify the cost in time to get it done properly.
Cleanup/bug fixes for Mac::AETE::App in finding/opening applications
and fetching the application names.
Added a VERSION key to the glues (the version of the application),
and a version() method.
Added -c flag to gluemac to check to see if application version matches
the versions stored in the installed glues ($glue->version eq
$glue->{VERSION}).
Added -r flag to gluemac to re-create installed application glues
(with -c, only re-creates those with differing versions). It's
recommended that users run gluemac -r to update glues with new
VERSION key and fixed APPNAME key.
* v1.12, August 27, 2003
Added Memoize to speed up some methods and functions.
Changed $ENV{MACGLUEDIR} to $MACGLUEDIR. $ENV{MACGLUEDIR} will still
initialize $MACGLUEDIR, but in some cases, %ENV gets wiped, so we don't
want to rely on it. (Lloyd Butler)
Even if you get a reply back in Mac::AETE::App, that doesn't mean the
data is good, so do a check on it and give a better error message.
(Ian Cabell)
Cleaned up ex/address_book.
Added ex/itunes.
* v1.11, May 22, 2003
Added super-cool feature for calling event methods on object
specifier record objects (like $track->play). See
"Shortcuts for object specifier records" in the docs for
more information.
Updated some of the examples to use this new feature.
Read-only flag in PODs was reversed. It is recommended to re-create
all your glues, or just realize that "read-only" means it is writable,
and no note means it is read-only, in your old docs. Or change them
all by hand.
Fixed minor paths bug in call to Mac::Path::Util. Require
more recent version of said module.
Added t/pod.t.
* v1.10, May 13, 2003
Major update for Mac OS X support.
Added various path handling/coercion for Mac OS X.
Added support for making glues on Mac OS X, with bundles and apps
without creator IDs.
Added support for targetting apps without creator IDs (they are
launched, then targetted by PSN).
Use $MacError instead of $^E ($^E still works in MacPerl scripts).
Added APPNAME key to glue objects, with name of the application.
Added fun debugging junk with "_print_aes" object hash key.
Refactored some code for scripts, moved out to Mac::Glue::Common.
Command-line-ized the "droplets" in scripts/.
Renamed and reorganized example scripts in ex/.
* v1.02, May 7, 2002
Skip directories when opening dialect/OSAX glues.
* v1.01, January 15, 2002
Clean up a bit for 5.6.
Add ADDRESS method.
Add checking for enumerators and classes.
Make error handler work as hashref parameter list.
Change license to be that of Perl.
* v1.00, September 12, 2000
Added error handling via ERRORS parameter / method.
General cleanup, additional examples.
* v0.58, November 16, 1999
Change all of the classes to have Mac:: at the beginning of them
(except for ones that originate elsewhere, like AEDesc, et al).
Added Mac::AEParamType and param_type.
If a parameter expects an AE object specifier record, and is not passed
one, then it guesses the type and sets it to either typeChar or
typeInteger.
Made the conversion of keys into English names recursive with lists,
in addition to records (i.e., lists can contain multiple records).
* v0.57, November 2, 1999
Added conversion of keys in returned records back into the "English"
names.
Records containing "class" parameter are coerced into descriptors
of that class (i.e., { name => 'foo', class => 'disk' }).
Added support for events over TCP/IP (Mac OS 9 required).
Note: if Keychain Access is used in Mac OS 9, the login() method may
no longer be required for accessing of remote machines.
Fixed bug in can() method; also changed how can() calls AUTOLOAD().
Added code for experimental callback stuff, undocumented,
subject to change, and probably does not even work.
Changed _get_name to _get_id, created new _get_name.
Updated dialect creation code for Mac OS 9 (aeut is now stored in
the AppleScript extension instead of a dialect file, but for
Mac::Glue is still stored in the dialects folder. Instead
of being called English, it will likely be called AppleScript.
You should delete (or archive) old dialect glues manually.
* v0.56, September 10, 1999
If plural class is used (i.e., files for file), and the following
value is not an AE* object, then it will become "every 'class'".
(Jeff Lowrey)
Added more documentation about using AEObjDesc objects. (Jeff Lowrey)
* v0.55, September 2, 1999
Added extra arguments to new() to accept alternate targets. PPC ports,
PSNs, and paths are explicitly accepted now. (Paths are first launched,
then the PSN is found ... aliases won't work properly as paths.)
Added login() class method to tell MacPerl to try logging in
with specified username and password. Requires "Login As"
OSAX from the GTQ Scripting Library.
* v0.51, September 1, 1999
Changed ordering of search in _find_event.
Fixed doc problems in Mac::AETE::Format::Glue: inheritance
classes are named, and optional parameters are properly
denoted.
* v0.50, July 12, 1999
Added g* constants in addition to glue* constants. Use whichever
you like, but I will use g* for everything. If you don't want the
g* constants, because they conflict with something, use the
":long" and ":longall" import tags instead of ":glue" and ":all".
Gone to beta! Woo!
* v0.31, June 22, 1999
Fixed bug that only found class names instead of class and property
names in creation of object specifier records.
Fixed bug which changed directories on initialization, and didn't change
it back.
Allow case-insensitive parameter names.
* v0.30, June 16, 1999
Changed function names: glueInsertion() is now location(),
glueRange() is now range().
Added whose() function.
Added can() method which correctly finds available events.
Made special parameters, formerly with leading underscore and lowercase,
to all uppercase with no underscore (i.e., _retobj is now RETOBJ).
Added "of" and "in" as synonyms for "property" in obj() method calls.
Put AEObjDesc back in! Will use in the future, maybe, to use objects
as targets for events.
Return all descriptors from obj() and prop(), and all objects
returned from events, as AEObjDesc objects.
Added glueTrue and glueFalse constants.
Tried again to suppress warnings during initial scripting additions and
dialect creation.
Tons of internal cleaning up.
* v0.26, June 7, 1999
Made choice of serializer for glue more intelligent: FreezeThaw
automatically picked for CFM68K, Storable for PPC.
Updated Mac::AppleEvents and Mac::Memory, fixed more bugs and
added constants. Fixed bug in AutoSplit.
Added glueInsertion(), glueRange(), and glueNull().
Completely removed AEObjDesc package, which existed to support
destruction of descriptors. Use global hash now to keep track
of descriptors to destroy (Mac::AppleEvents::Simple). So
all descriptors returned from obj() and prop() and others are
AEDesc objects.
Changed ordering of items in creating object specifiers in
_do_obj to match AppleScript, so comparing to Capture AE
output would be easier.
Put %AE_PUT back in Mac::Glue and left %AE_GET in
Mac::AppleEvents::Simple.
Switched DOBJ => { PARAM1 => DATA1 } to DOBJ => PARAM1 => DATA1
in event calls.
Always default to wait for reply and no timeout if unspecified by user.
Return useful errors in $^E.
Accept and return nested arrays/lists and hashes/records.
Call events and pass classes / properties case-insensitively.
Other miscellaneous changes. Some cleaning up.
* v0.25, May 30, 1999
Add serializer option.
Updates to Mac::Memory and Mac::AppleEvents and Mac::AppleEvents::Simple.
Added constants for absolute and relative positions.
Added enum().
Put o() and p() back as obj() and prop().
Other miscellaneous changes. Lots of cleaning up.
* v0.20, May 22, 1999
Complete rewrite. Too many changes to bother mentioning, because
I am lazy.
* v0.09, October 13, 1998
Added ability to use properties. These are called with the p() method:
$obj->get( $obj->p('label_index', item => 'HD') );
which is equivalent to:
$obj->get( $obj->o(property => 'label_index', item => 'HD') );
* v0.08, October 10, 1998
Unreleased.
Significant cleanup of module, in large part unfinished changes from
last version.
No longer doing error checking for whether lists are allowed or objects
are allowed, because these are sometimes wrong or undetectable. Also,
will not raise exception on a missing required parameter, but will warn
if -w is on.
obj_form is exported from the glue modules, and all of the functions
and constant from Mac::AppleEvents can be imported from a glue module
with the ":all" tag:
use Mac::Glue::SomeApp qw(:all);
* v0.07, September 30, 1998
More documentation and bugfixes. Having serious problems with
AEObjDesc::DESTROY.
* v0.06, September 29, 1998
Whole bunches of changes. Note that glues made under 0.05 no longer work.