2.5: Couple of small fun features

* Text window font size now supports full range 8-32, instead of
  just 12 and 15. I added BLF_fixed_width to get the character
  width of a fixed size font.

* Buttons do undo push on change again.

* Animated/Keyframe/Driver colors are now themable, with blend
  value to blend with original color. Set this to 0.5 now to
  give colors less constrast.
* Fix tooltip popping up with RMB menu open, and missing redraw.

* Autokeyframe now works for buttons.

* Driver expressions can be edited in place in a button now.
  (still some refresh issues).
* Also made python driver default for the Add Driver function
  in the RMB button. This way you don't have to open a Graph
  editor if you just want to type an expression. Also, the
  default expression then is the current value.

* Tooltips now show some extra info, not sure what is good to
  have, but currently I added:
  * Shortcut key for operator buttons.
  * Python struct & property name for RNA buttons.
  * Expression for driven values.
  * Value for text/search/pointer buttons.
This commit is contained in:
2009-07-12 02:06:15 +00:00
parent 8b9bb47a3f
commit 3116062a82
25 changed files with 520 additions and 143 deletions

View File

@@ -4312,21 +4312,6 @@ static void clear_trans_object_base_flags(TransInfo *t)
}
}
/* auto-keyframing feature - checks for whether anything should be done for the current frame */
// TODO: this should probably be done per channel instead...
short autokeyframe_cfra_can_key(Scene *scene, Object *ob)
{
float cfra= (float)CFRA; // XXX for now, this will do
/* only filter if auto-key mode requires this */
if (IS_AUTOKEY_ON(scene) == 0)
return 0;
else if (IS_AUTOKEY_MODE(scene, NORMAL))
return 1;
else
return id_frame_has_keyframe(&ob->id, cfra, ANIMFILTER_KEYS_LOCAL);
}
/* auto-keyframing feature - for objects
* tmode: should be a transform mode
*/
@@ -4335,7 +4320,8 @@ void autokeyframe_ob_cb_func(Scene *scene, View3D *v3d, Object *ob, int tmode)
ID *id= &ob->id;
FCurve *fcu;
if (autokeyframe_cfra_can_key(scene, ob)) {
// TODO: this should probably be done per channel instead...
if (autokeyframe_cfra_can_key(scene, id)) {
AnimData *adt= ob->adt;
float cfra= (float)CFRA; // xxx this will do for now
short flag = 0;
@@ -4436,7 +4422,8 @@ void autokeyframe_pose_cb_func(Scene *scene, View3D *v3d, Object *ob, int tmode,
bPoseChannel *pchan;
FCurve *fcu;
if (autokeyframe_cfra_can_key(scene, ob)) {
// TODO: this should probably be done per channel instead...
if (autokeyframe_cfra_can_key(scene, id)) {
float cfra= (float)CFRA;
short flag= 0;
char buf[512];