NAME
CSS::SpriteMaker::Layout - Layout interface for items placed on a 2D grid.
Allows to access coordinates of items laid out on a 2D grid.
Shouldn't be instantiated directly, but subclasses should be instantiated instead.
VERSION
Version 0.01
_layout_items
Lays out the items given their properties. These properties can be global or about individual items, and have the form of the following hashref:
{
'<item_id>' : {
width => <integer>,
height => <integer>,
first_pixel_x => <integer>,
first_pixel_y => <integer>,
... other arbitrary properties, if any
},
...
}
This method should never be called on this class, but on a subclass. It contains the implementation of the specific layout after all.
get_item_coord
Gets the coordinates of a specific item within the layout.
my ($x, $y) = $Layout->get_item_coord("item129");
Returns a list containing the x and the y coordinates of the specified element respectively.
set_item_coord
Sets the coordinates of a layout item.
# sets coordinates of item129 to x: 100 y: 200
$Layout->set_item_coord("item129", 100, 200);
Sets coordinates of the given element internally and returns undef.
get_item_ids
Returns the id of each item into an array.
my @ids = $Layout->get_item_ids();
width
Returns the width of the overall layout in pixels.
my $width = $Layout->width();
height
Returns the height of the overall layout in pixels.
my $width = $Layout->height();
finalize
Sets this layout as instantiated. To only be called by a subclass of this base class once class is instantiated.
$Layout->finalize();
Once called, some checks are performed on the layout and warnings are issued emitted if something is wrong.
Always returns undef.