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.