Difference between revisions of "Diagrams/Dev/Migrate0.6"
Line 35: | Line 35: | ||
The types of <code>withNameAll</code> and <code>withNames</code> changed similarly. |
The types of <code>withNameAll</code> and <code>withNames</code> changed similarly. |
||
+ | For more information on subdiagrams and their API, see [http://projects.haskell.org/diagrams/manual/diagrams-manual.html#named-subdiagrams the user manual]. The API for working with subdiagrams is not quite as convenient as the old API for LocatedEnvelopes, but that is being worked on. If you had some code using LocatedEnvelopes, please feel free to write to the [http://groups.google.com/group/diagrams-discuss mailing list] for help porting it. |
||
− | TODO: write more here |
||
== Other diagrams-core API changes == |
== Other diagrams-core API changes == |
Latest revision as of 18:50, 11 December 2012
This page describes breaking API changes between diagrams 0.5 and 0.6, along with explanations of how to migrate to the new 0.6 API.
Reorganizations to diagrams-core
- The modules in diagrams-core have all been renamed to be more consistent with the module naming scheme in the rest of the diagrams universe. For most users this should make no different, unless you are affected by diagrams-core#17 and have explicitly imported
Graphics.Rendering.Diagrams.Points
. In particular:Graphics.Rendering.Diagrams --> Diagrams.Core
Grahpics.Rendering.Diagrams.Core --> Diagrams.Core.Types
Graphics.Rendering.Diagrams.* --> Diagrams.Core.*
Subdiagrams
Previous versions of diagrams-core had a mechanism for associating names with a LocatedEnvelope
. Now, names are associated with Subdiagram
s. For example, the type of withName
changed from
withName :: (IsName n, AdditiveGroup (Scalar v), Floating (Scalar v), InnerSpace v, HasLinearMap v) => n -> (LocatedEnvelope v -> QDiagram b v m -> QDiagram b v m) -> QDiagram b v m -> QDiagram b v m
to
withName :: IsName n => n -> (Subdiagram b v m -> QDiagram b v m -> QDiagram b v m) -> QDiagram b v m -> QDiagram b v m
(As you can see, some type class constraints also disappeared, due to the refactoring of the underlying data structure.)
The types of withNameAll
and withNames
changed similarly.
For more information on subdiagrams and their API, see the user manual. The API for working with subdiagrams is not quite as convenient as the old API for LocatedEnvelopes, but that is being worked on. If you had some code using LocatedEnvelopes, please feel free to write to the mailing list for help porting it.
Other diagrams-core API changes
Graphics.Rendering.Diagrams.UDTree
has been split out into a separatedual-tree
package (which has also been substantially rewritten). If you were making direct use ofUDTree
before, tough luck!
Graphics.Rendering.Diagrams.{Monoids,MList}
have been split out into a separatemonoid-extras
package.
- The
names
function now returns a list of names and their associated locations, instead of the associated subdiagrams. In particular the output is suitable to be rendered to aString
usingshow
(subdiagrams have noShow
instance). The newsubMap
function fills a similar role to whatnames
used to play, returning the entire mapping from names to subdiagrams.
StyleParam deleted from Diagrams.Backend.Cairo.Text
The StyleParam
type has been removed from Diagrams.Backend.Cairo.Text
. Functions that used to take a StyleParam
argument now take a Style R2
parameter, determining the style to apply to the text before rendering/querying information about the text. These parameters can be created a variety of ways, but the most direct will likely be by applying style-transforming functions such as font
, fontSize
, fontSlant
, and fontWeight
to mempty
. This works because there are instances of HasStyle
and Monoid
for Style v
.