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.67    2015-01-21
  - Allow default font to be overridden with $GRAPHICS_PRIMITIVE_DEFAULT_FONT
    and default MSWin32 to 'Arial' (TobyLL)

0.66    2014-01-04
  - Add a missing requires on Data::Visitor::Callback (tests failed without it)
  - Convert "Changes" to the CPAN::Changes spec.

0.65    2014-03-31
  - Make a TextLayout's component a weak_ref to prevent circular references.

0.64    2014-02-17
  - POD encoding fixes (thanks Gregor Herrmann)

0.63    2014-02-17
  - Doc speclling fixes (thanks Gregor Herrmann!)

0.61    2011-06-02
  - Fix broken merge (thanks Ansgar Burchardt)

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

0.53    2011-02-18
  - Add callback to Component

0.52    2010-08-21
  - POD updates

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

0.50    2010-03-09
  - Convert Path to use Moose's native traits rather than AttributeHelpers

0.49    2010-01-10
  - Remove typing for Path's primitives accessor

0.48    2009-12-24
  - Add _draw_arc to Driver's require

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

0.46    2009-11-10
  - Add JSON::Any dependency (Thanks NPW via RT)

0.45    2009-10-02
  - Add antialias_mode, hint_style, hint_metrics and subpixel_order attributes
    to Font.

0.44    Unknown
  - Fix typo in Canvas' hints attribute

0.43    Unknown
  - README update

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

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

0.40    Unknown
  - Fix some deprecated Moose stuff

0.39    Unknown
  - 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    Unknown
  - Fix error in Component->outside_width

0.37    Unknown
  - More POD fixes

0.36    Unknown
  - POD fixes

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

0.34    Unknown
  - Move pod tests to t/author

0.33    Unknown
  - 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    Unknown
  - 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    Unknown
  - Fix POD typo (thanks Brian Cassidy)
  - Driver: Add _draw_circle and _draw_ellipse
  - Bump Deps
  - Revamp text handling, see Driver::TextLayout

0.30    Unknown
  - Bump Forest dependency to 0.4 to ease Win32 problems

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

0.28    Unknown
  - Require _draw_polygon method for Driver role

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

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

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

0.24    Unknown
  - TextBox: Fix broken multi-line rendering

0.23    Unknown
  - 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    Unknown
  - Properly append component lists in find.

0.21    Unknown
  - Remove duplicate code in Driver's prepare method

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

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

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

0.17    Unknown
  - 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    Unknown
  - Opps, I forgot. :(

0.15    Unknown
  - 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    Unknown
  - 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    Unknown
  - 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    Unknown
  - Path: Add curve_to and rel_curve_to

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

0.10    Unknown
  - 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    Unknown
  - 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    Unknown
  - 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    Unknown
  - 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    Unknown
  - 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    Unknown
  - Don't prepare or draw invisible components in Containers

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

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

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

0.01    Unknown
        First version, released on an unsuspecting world.