FModifiers: "Add Modifiers" in Graph/NLA Editor buttons now uses a dropdown instead...
authorJoshua Leung <aligorith@gmail.com>
Sun, 3 Apr 2016 12:30:59 +0000 (00:30 +1200)
committerJoshua Leung <aligorith@gmail.com>
Fri, 15 Apr 2016 08:05:06 +0000 (20:05 +1200)
This brings the UI here more in line with the Constraints and Modifiers UI's.

TODO:
* The tooltips/descriptions on the operators now need fixing, as we can no longer
  use custom tooltips when defining these buttons.
* The operators need to be fixed to only operate on the active data

source/blender/editors/space_graph/graph_buttons.c
source/blender/editors/space_nla/nla_buttons.c

index 7d43ab1573e954f61799e1c2c3d6e84ae6a4ebd1..f8b081eda208264a070fe63e4908509bf214a573 100644 (file)
@@ -948,15 +948,13 @@ static void graph_panel_modifiers(const bContext *C, Panel *pa)
        /* 'add modifier' button at top of panel */
        {
                row = uiLayoutRow(pa->layout, false);
-               block = uiLayoutGetBlock(row);
                
                /* this is an operator button which calls a 'add modifier' operator... 
                 * a menu might be nicer but would be tricky as we need some custom filtering
                 */
-               uiDefButO(block, UI_BTYPE_BUT, "GRAPH_OT_fmodifier_add", WM_OP_INVOKE_REGION_WIN, IFACE_("Add Modifier"),
-                         0.5 * UI_UNIT_X, 0, 7.5 * UI_UNIT_X, UI_UNIT_Y, TIP_("Adds a new F-Curve Modifier for the active F-Curve"));
+               uiItemMenuEnumO(row, (bContext *)C, "GRAPH_OT_fmodifier_add", "type", IFACE_("Add Modifier"), ICON_NONE);
                
-               /* copy/paste (as sub-row)*/
+               /* copy/paste (as sub-row) */
                row = uiLayoutRow(row, true);
                uiItemO(row, "", ICON_COPYDOWN, "GRAPH_OT_fmodifier_copy");
                uiItemO(row, "", ICON_PASTEDOWN, "GRAPH_OT_fmodifier_paste");
@@ -970,7 +968,7 @@ static void graph_panel_modifiers(const bContext *C, Panel *pa)
                
                ANIM_uiTemplate_fmodifier_draw(col, ale->id, &fcu->modifiers, fcm);
        }
-
+       
        MEM_freeN(ale);
 }
 
index 5f046e3b6c6f8867c0b8576994826a152de26d2e..cbdc476bee65edbaaa52268c80d09a80cd0914b0 100644 (file)
@@ -478,12 +478,10 @@ static void nla_panel_modifiers(const bContext *C, Panel *pa)
                row = uiLayoutRow(pa->layout, false);
                block = uiLayoutGetBlock(row);
                
-               // XXX for now, this will be a operator button which calls a temporary 'add modifier' operator
                // FIXME: we need to set the only-active property so that this will only add modifiers for the active strip (not all selected)
-               uiDefButO(block, UI_BTYPE_BUT, "NLA_OT_fmodifier_add", WM_OP_INVOKE_REGION_WIN, IFACE_("Add Modifier"), 10, 0, UI_UNIT_X * 7.0f, UI_UNIT_Y,
-                         TIP_("Adds a new F-Modifier for the active NLA Strip"));
+               uiItemMenuEnumO(row, (bContext *)C, "NLA_OT_fmodifier_add", "type", IFACE_("Add Modifier"), ICON_NONE);
                
-               /* copy/paste (as sub-row)*/
+               /* copy/paste (as sub-row) */
                row = uiLayoutRow(row, true);
                uiItemO(row, "", ICON_COPYDOWN, "NLA_OT_fmodifier_copy");
                uiItemO(row, "", ICON_PASTEDOWN, "NLA_OT_fmodifier_paste");