CSS::SpriteMaker::Layout(3)

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.