Revision history for Graphics-Primitive 0.65 Mar 31, 2014 - Make a TextLayout's component a weak_ref to prevent circular references. 0.64 Feb 17, 2014 - POD encoding fixes (thanks Gregor Herrmann) 0.63 Feb 17, 2014 - Doc speclling fixes (thanks Gregor Herrmann!) 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.