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.61    Jun 2, 2011
  - Fix broken merge (thanks Ansgar Burchardt)

0.60    May 5, 2011
  - If minimum_width or minimum_height is set, don't allow height or width to
    be set to anything smaller!

0.53    Feb 18, 2011
  - Add callback to Component

0.52    Aug 21, 2010
  - POD updates

0.51    March 22, 2010
  - Convert all remaining uses of AttributeHelpers with native traits
    (Florian Ragwitz).

0.50    March 9, 2010
  - Convert Path to use Moose's native traits rather than AttributeHelpers

0.49    January 10th, 2010
  - Remove typing for Path's primitives accessor

0.48    December 24th, 2009
  - Add _draw_arc to Driver's require

0.47    December 24th, 2009
  - Use BUILD and triggers to handle Border's color & width in constructor
    and via setting width/color.

0.46    November 10th, 2009
  - Add JSON::Any dependency (Thanks NPW via RT)

0.45    October 2nd, 2009
  - Add antialias_mode, hint_style, hint_metrics and subpixel_order attributes
    to Font.

0.44
  - Fix typo in Canvas' hints attribute

0.43
  - README update

0.42
  - Reverting 0.41 (ha!)
  - Add width to insets, sets all insets in one call

0.41
  - Don't re-layout already laid out textboxes (might get reverted)

0.40
  - Fix some deprecated Moose stuff

0.39
  - POD fixes
  - Don't short-circuit TextBox prepare if there are lines or a layout.
  - If there's no layout, don't try and create one.  This breaks things.

0.38
  - Fix error in Component->outside_width

0.37
  - More POD fixes

0.36
  - POD fixes

0.35
  - Gradient: Break out into separate Line and Radial classes

0.34
  - Move pod tests to t/author

0.33
  - Driver: Don't mark things prepared, that's Layout::Manager's job
  - TextBox: simplify logic and return from prepare immediately after super if
    there is no text
  - TextBox: make some 'enumed' attributes plain Strings, since different
    drivers will have different values
  - Remove Text::Flow requirement

0.32
  - Fix POD typo (thanks Brian Cassidy)
  - TextBox: Don't resize during prepare unless it's new minimums are bigger
  - Fix TextLayout's POD (thanks Brian Cassidy)
  - Driver: add _draw_bezier to requires (thanks Budrica Petre Cosmin)

0.31
  - Fix POD typo (thanks Brian Cassidy)
  - Driver: Add _draw_circle and _draw_ellipse
  - Bump Deps
  - Revamp text handling, see Driver::TextLayout

0.30
  - Bump Forest dependency to 0.4 to ease Win32 problems

0.29
  - MooseX::Storage support
  - Rename pack to finalize

0.28
  - Require _draw_polygon method for Driver role

0.27
  - Fill: Make paint a required attribute
  - Operations: Make Fill and Stroke clone properly

0.26
  - Add Image component (experimental)
  - POD fixes
  - Component: make parent a weakref

0.25
  - TextBox: Normalize multi-line rendering on line height

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.