Graph Editor "Active Keyframe" settings
authorJoshua Leung <aligorith@gmail.com>
Sat, 6 Aug 2011 07:01:07 +0000 (07:01 +0000)
committerJoshua Leung <aligorith@gmail.com>
Sat, 6 Aug 2011 07:01:07 +0000 (07:01 +0000)
commite73cf35f4ad470d553540d6adbe89af5cc0c1f4f
tree40f3bc1757fa7f2d9ac00775477673d25f7b64fc
parentd096f271513dd5e10098818d567f35b99ca9c6cb
Graph Editor "Active Keyframe" settings

This commit makes some tweaks to the way that the "active keyframe"
settings in the Properties region in the Graph Editor work (for the
better, hopefully).

Basically, the problem was that previously, these were clunky and non-
intuitive to use, since they were just directly displaying the RNA
properties for those keyframes for editing purposes. But due to
limitations of RNA (i.e. from a RNA pointer to a keyframe, you
couldn't see which F-Curve you came from), several things were
impossible, notably:
1) Doing proper updates, including validating that the handles are in
a valid state - that requires access to the F-Curve to provide to the
F-Curve-based curve validity checking functions
2) Having the values of the keyframes display in whatever unit that
the property the F-Curve affects displays as - for this, you once
again need to know the F-Curve in order to resolve the property that
it affects; also the fact that only a single unit could be set for RNA
properties further limited things

This commit basically gets around these problems by moving away from a
layout-engine based approach to one where we attach custom update
callbacks and also override the units of the y-co widgets when
creating the widgets for these, thus allowing the buttons to work in
the ways that animators expect.
source/blender/editors/interface/interface.c
source/blender/editors/space_graph/graph_buttons.c