The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history for Graphics-Primitive

0.24
  - TextBox: Fix broken multi-line rendering

0.23
  - Component: Add parent attribute
  - Container: Set and unset parent attribute on add/remove/clear
  - Add Aligned role
  - Textbox: Use Aligned role
  - POD updates

0.22
  - Properly append component lists in find.

0.21
  - Remove duplicate code in Driver's prepare method

0.20
  - Fix accidentally marking containers as prepared when they are not

0.19
  - Component: Add class attribute
  - ComponentList: Add each and find

0.18
  - Add ComponentList and use it to keep container components.
  - Container: find_component now returns the component's index, not the
    component.

0.17
  - Useless whitespace changes
  - POD typos fixed
  - Border: switch from a single width to per-side Brushes
  - Brush: add derive, equal_to and not_equal_to
  - Border: now cloneable
  - Border: add homogeneous, equal_to and not_equal_to
  - Insets: ad as_array

0.16
  - Opps, I forgot. :(

0.15
  - Add prepared flag to components.  Attributes that affect rendering have
    been modified to set prepared to 0 via a trigger.  Any new attributes
    added henceforth should do the same.
  - Containers (being Components) also have a prepared flag, but it is set
    to true by the layout manager, not by the container itself.  Also, a
    container is not prepared unless all of it's child components are
    prepared.  See Layout::Manager for more details.
  - TextBox: Fix bug when prepared & packed with text attribute set
  - POD


0.14
  - TextBox: handle text layout with Text::Flow
  - Component: coercion of Insets from ArrayRef and Num 
  - Add pop_component to Container for removing the last component.
  - POD updates
  - Component: explicitly return from outside_width and outside_height
  - Component: if minimum width or height are set already, don't change them
    in prepare
  - Font: add derive

0.13
  - Reorganize prepare/pack/draw API to be handled by the Driver
  - Add _resize and _finish_page to Driver API
  - Component: Add page attribute
  - Driver: Don't check class of incoming component before asking if it has
    components and treating it like a container.

0.12
  - Path: Add curve_to and rel_curve_to

0.11
  - Small optimizations
  - Driver: add reset
  - Textbox: Add angle
  - Use Forest rather than Tree::Simple per stevan's request

0.10
  - Path: add rectangle
  - New feature & hint: Add "preserve" to Operation.  Setting this causes
    the canvas to NOT clear the current path on a do().  This operation can
    then be used as a hint to the driver to not create a new path, but to
    reuse the old one.

0.09
  - Path: add arc, close_path, get_path
  - Path: rename get_primitive_at to get_primitive
  - Path: rename count_primitives to primitive_count
  - Path: clone points rather than using them, they tend to change
  - Path: don't inherit or implement anything out of Geo::Primitive, it's
    not necessary
  - Path: add hints attr with for driver hinting and add contiguous flag for
    use with same
  - Gradient: add line attr for guiding Gradient
  - Canvas: update path proxy methods
  - Make everything cloneable, adding Clone trait to 'deep' clone attrs

0.08
  - Path: default starting point to 0,0
  - Rename Graphics::Primitive::Stroke to Graphics::Primitive::Brush
  - Brush: Add Color
  - Add Canvas calls to Driver
  - Add Operation::Fill and Operation::Stroke
  - Lots of POD
  - Add Paint and children

0.07
  - Remove do_prepare
  - Add disclaimer
  - Add lines to Textbox and chop up input, this is likely temporary
  - Add optional layout manager to container
  - prepare now expects the driver to be passed in
  - Component's prepare sets minimum sizes to the outside ones
  - Return default font size from coderef
  - Use isa to check component classes and put container at the bottom
    so that the parent container is drawn before it's children.
  - Add get_tree method to component for visualizing the entire component
  - Prepare children before parents
  - Don't return inside_height or width < 0
  - Default Component::prepare to setting a minimum height/width based on
    outside values
  - Add Component::to_string
  - Let Container's layout_manager handle do_layout
  - Add 'pack' to the plan...
  - Path: modify line_to and move_to to accept scalars
  - Stroke: add dash_pattern

0.06
  - Add Driver
  - Set default border width to 0
  - Move component management out of LM and into Container
  - Move stuff from LM::Component role into Component
  - Remove LM dependency
  - Add Textbox
  - Change Component's inside_bounding_box origin to be a relative value

0.05
  - Don't prepare or draw invisible components in Containers

0.04
  - POD fixes
  - Add find_component and get_component as proxies in Container

0.03
  - Check for definedness of components in a Container before prepare & draw

0.02
  - Add visible to component
  - Fix Description
  - Add MI version because Yuval yelled at me

0.01    Date/time
        First version, released on an unsuspecting world.