NAME¶
Graphics::Primitive::ComponentList - List of Components
DESCRIPTION¶
Maintains a list of components and their constraints. This is implemented as a
class to provide functionality above and beyond a simple array.
SYNOPSIS¶
my $c = Graphics::Primitive::ComponentList->new;
$c->add_component($comp, $constraint);
my $cindex = $c->find_component($comp->name);
METHODS¶
Constructor¶
- new
- Creates a new Container.
Instance Methods¶
- add_component ($component,
$constraint)
- Add a component to the list. Returns a true value if the
component was added successfully. A second argument may be required,
please consult the POD for your specific layout manager implementation.
Before the component is added, it is passed to the validate_component
method. If validate_component does not return a true value, then the
component is not added.
- clear
- Reset components and constraints to empty arrayrefs.
- component_count
- Returns the number of components in this list.
- constraint_count
- Returns the number of constraints in this list.
- each
- Calls the supplied CODEREF for each component in this list,
passing the component and it's constraints as arguments.
my $flist = $list->each(
sub{
my ($component, $constraint) = @_; $comp->class('foo)
}
);
- find
- Returns a new ComponentList containing only the components
for which the supplied CODEREF returns true. The coderef is called for
each component and is passed the component and it's constraints. Undefined
components (the ones left around after a remove_component) are
automatically skipped.
my $flist = $list->find(
sub{
my ($component, $constraint) = @_; return $comp->class eq 'foo'
}
);
If no matching components are found then a new list is returned so that
simple calls liked $container->find(...)->each(...) don't
explode.
- find_component
- Returns the index of the first component with the supplied
name. Returns undef if no component with that name is found.
- get_component
- Get the component at the specified index.
- get_constraint
- Get the constraint at the specified index.
- remove_component
- Removes a component and it's constraint. Components must
have names to be removed. Returns an arrayref of Components
that were removed.
AUTHOR¶
Copyright 2008-2009 by Cory G Watson.
BUGS¶
Please report any bugs or feature requests to "bug-geometry-primitive at
rt.cpan.org", or through the web interface at
http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Geometry-Primitive
<
http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Geometry-Primitive>. I
will be notified, and then you'll automatically be notified of progress on
your bug as I make changes.
COPYRIGHT & LICENSE¶
Copyright 2008-2009 by Cory G Watson.
This program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.