2.5 - Porting 'Pose' Menu (and its submenus) to Layout Engine
authorJoshua Leung <aligorith@gmail.com>
Tue, 21 Jul 2009 05:08:59 +0000 (05:08 +0000)
committerJoshua Leung <aligorith@gmail.com>
Tue, 21 Jul 2009 05:08:59 +0000 (05:08 +0000)
It's alarming how many tools are still missing here!

source/blender/editors/armature/armature_ops.c
source/blender/editors/space_view3d/view3d_header.c

index dcd22e3138cc62988083de14676f03beaa46487c..ed98f70818eebecb9b871536be71e151db33ebc2 100644 (file)
@@ -225,7 +225,7 @@ void ED_keymap_armature(wmWindowManager *wm)
        
        WM_keymap_add_item(keymap, "POSE_OT_hide", HKEY, KM_PRESS, 0, 0);
        kmi= WM_keymap_add_item(keymap, "POSE_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
-       RNA_boolean_set(kmi->ptr, "unselected", 1);
+               RNA_boolean_set(kmi->ptr, "unselected", 1);
        WM_keymap_add_item(keymap, "POSE_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
        /*clear pose*/
        WM_keymap_add_item(keymap, "POSE_OT_rot_clear", RKEY, KM_PRESS, KM_ALT, 0);
index 5e6f5d9a96b8eb5016dae081766e3f95d8c50007..1047e8ee7e5a618713b9005c101009474b272d3d 100644 (file)
@@ -2091,12 +2091,11 @@ static void view3d_edit_objectmenu(bContext *C, uiLayout *layout, void *arg_unus
 
        uiItemS(layout);
 
-#if 0
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Insert Keyframe|I",      0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 11, "");  
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Delete Keyframe|Alt I",  0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 18, "");  
+       // TODO: these operators may get renamed
+       uiItemO(layout, NULL, 0, "ANIM_OT_insert_keyframe_menu");
+       uiItemO(layout, NULL, 0, "ANIM_OT_delete_keyframe_old");
        
        uiItemS(layout);
-#endif
        
        uiItemO(layout, NULL, 0, "OBJECT_OT_duplicate");
        uiItemBooleanO(layout, "Duplicate Linked", 0, "OBJECT_OT_duplicate", "linked", 1);
@@ -2118,14 +2117,17 @@ static void view3d_edit_objectmenu(bContext *C, uiLayout *layout, void *arg_unus
        uiItemMenuF(layout, "Constraints", 0, view3d_edit_object_constraintsmenu);
 
 #if 0
-       uiItemS(layout);
-
        if(ob && ob->type == OB_MESH) {
                uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Boolean Operation...|W",                         0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, "");
        }
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Join Objects|Ctrl J",                            0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, "");
+       
+       // join... (added already)
+       
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Convert Object Type...|Alt C",                           0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, "");
 #endif
+       uiItemS(layout);
+       
+       uiItemO(layout, NULL, 0, "OBJECT_OT_join");
 
        uiItemS(layout);
        
@@ -3002,155 +3004,45 @@ static uiBlock *view3d_edit_armaturemenu(bContext *C, ARegion *ar, void *arg_unu
        return block;
 }
 
-static void do_view3d_pose_armature_transformmenu(bContext *C, void *arg, int event)
-{
-#if 0
-       Scene *scene= CTX_data_scene(C);
-       Object *ob= CTX_data_active_object(C);
-       
-       switch(event) {
-       case 0: /*      clear origin */
-               clear_object('o');
-               break;
-       case 1: /* clear scale */
-               clear_object('s');
-               break;
-       case 2: /* clear rotation */
-               clear_object('r');
-               break;
-       case 3: /* clear location */
-               clear_object('g');
-               break;
-       case 4: /* clear user transform */
-               clear_user_transform(scene, ob);
-               break;
-       }
-#endif
-}
 
-static uiBlock *view3d_pose_armature_transformmenu(bContext *C, ARegion *ar, void *arg_unused)
+static void view3d_pose_armature_transformmenu(bContext *C, uiLayout *layout, void *arg_unused)
 {
-       uiBlock *block;
-       short yco = 20, menuwidth = 120;
-
-       block= uiBeginBlock(C, ar, "view3d_pose_armature_transformmenu", UI_EMBOSSP);
-       uiBlockSetButmFunc(block, do_view3d_pose_armature_transformmenu, NULL);
+       //uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear User Transform|W", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
+               //used: clear_user_transform(scene, ob);
+       //uiDefBut(block, SEPR, 0, "",                          0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
        
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear User Transform|W", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
-       uiDefBut(block, SEPR, 0, "",                            0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Location|Alt G", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Rotation|Alt R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Scale|Alt S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Origin|Alt O",             0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
+       uiItemO(layout, NULL, 0, "POSE_OT_loc_clear");
+       uiItemO(layout, NULL, 0, "POSE_OT_rot_clear");
+       uiItemO(layout, NULL, 0, "POSE_OT_scale_clear");
        
-       uiBlockSetDirection(block, UI_RIGHT);
-       uiTextBoundsBlock(block, 60);
-       return block;
+       // ???
+       //uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Origin|Alt O",           0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
+               //used:clear_object('o');
 }
 
-static void do_view3d_pose_armature_showhidemenu(bContext *C, void *arg, int event)
+static void view3d_pose_armature_showhidemenu(bContext *C, uiLayout *layout, void *arg_unused)
 {
-#if 0
+       uiItemO(layout, "Show Hidden", 0, "POSE_OT_reveal");
        
-       switch(event) {
-                
-       case 0: /* show hidden bones */
-               show_all_pose_bones();
-               break;
-       case 1: /* hide selected bones */
-               hide_selected_pose_bones();
-               break;
-       case 2: /* hide deselected bones */
-               hide_unselected_pose_bones();
-               break;
-       }
-#endif
+       uiItemO(layout, "Hide Selected", 0, "POSE_OT_hide");
+       uiItemBooleanO(layout, "Hide Unselected", 0, "POSE_OT_hide", "unselected", 1);
 }
 
-static uiBlock *view3d_pose_armature_showhidemenu(bContext *C, ARegion *ar, void *arg_unused)
+static void view3d_pose_armature_ikmenu(bContext *C, uiLayout *layout, void *arg_unused)
 {
-       uiBlock *block;
-       short yco = 20, menuwidth = 120;
-
-       block= uiBeginBlock(C, ar, "view3d_pose_armature_showhidemenu", UI_EMBOSSP);
-       uiBlockSetButmFunc(block, do_view3d_pose_armature_showhidemenu, NULL);
-       
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Show Hidden|Alt H",                      0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Selected|H",                0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Unselected|Shift H",                0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
-
-       uiBlockSetDirection(block, UI_RIGHT);
-       uiTextBoundsBlock(block, 60);
-       return block;
-}
-
-static void do_view3d_pose_armature_ikmenu(bContext *C, void *arg, int event)
-{
-#if 0
-       
-       switch(event) {
-                
-       case 1:
-               pose_add_IK();
-               break;
-       case 2:
-               pose_clear_IK();
-               break;
-       }
-#endif
+       uiItemO(layout, NULL, 0, "POSE_OT_ik_add");
+       uiItemO(layout, NULL, 0, "POSE_OT_ik_clear");
 }
 
-static uiBlock *view3d_pose_armature_ikmenu(bContext *C, ARegion *ar, void *arg_unused)
+static void view3d_pose_armature_constraintsmenu(bContext *C, uiLayout *layout, void *arg_unused)
 {
-       uiBlock *block;
-       short yco = 20, menuwidth = 120;
-
-       block= uiBeginBlock(C, ar, "view3d_pose_armature_ikmenu", UI_EMBOSSP);
-       uiBlockSetButmFunc(block, do_view3d_pose_armature_ikmenu, NULL);
-       
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Add IK to Bone...|Shift I",                      0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear IK...|Ctrl Alt I",                 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
-       
-       uiBlockSetDirection(block, UI_RIGHT);
-       uiTextBoundsBlock(block, 60);
-       return block;
+       uiItemO(layout, NULL, 0, "POSE_OT_constraint_add_with_targets");
+       uiItemO(layout, NULL, 0, "POSE_OT_constraints_clear");
 }
 
-static void do_view3d_pose_armature_constraintsmenu(bContext *C, void *arg, int event)
-{
 #if 0
-       
-       switch(event) {
-                
-       case 1:
-               add_constraint(0);
-               break;
-       case 2:
-               pose_clear_constraints();
-               break;
-       }
-#endif
-}
-
-static uiBlock *view3d_pose_armature_constraintsmenu(bContext *C, ARegion *ar, void *arg_unused)
-{
-       uiBlock *block;
-       short yco = 20, menuwidth = 120;
-
-       block= uiBeginBlock(C, ar, "view3d_pose_armature_constraintsmenu", UI_EMBOSSP);
-       uiBlockSetButmFunc(block, do_view3d_pose_armature_constraintsmenu, NULL);
-       
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Add Constraint to Bone...|Ctrl Alt C",                   0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Constraints...|Alt C",                     0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
-
-       uiBlockSetDirection(block, UI_RIGHT);
-       uiTextBoundsBlock(block, 60);
-       return block;
-}
-
 static void do_view3d_pose_armature_groupmenu(bContext *C, void *arg, int event)
 {
-#if 0
        switch (event) {
                case 1:
                        pose_assign_to_posegroup(1);
@@ -3168,7 +3060,6 @@ static void do_view3d_pose_armature_groupmenu(bContext *C, void *arg, int event)
                        pose_remove_posegroup();
                        break;
        }
-#endif
 }
 
 static uiBlock *view3d_pose_armature_groupmenu(bContext *C, ARegion *ar, void *arg_unused)
@@ -3192,8 +3083,6 @@ static uiBlock *view3d_pose_armature_groupmenu(bContext *C, ARegion *ar, void *a
 
 static void do_view3d_pose_armature_motionpathsmenu(bContext *C, void *arg, int event)
 {
-#if 0
-       
        switch(event) {
                 
        case 1:
@@ -3203,9 +3092,9 @@ static void do_view3d_pose_armature_motionpathsmenu(bContext *C, void *arg, int
                pose_clear_paths(OBACT);
                break;
        }
-#endif
 }
 
+
 static uiBlock *view3d_pose_armature_motionpathsmenu(bContext *C, ARegion *ar, void *arg_unused)
 {
        uiBlock *block;
@@ -3221,54 +3110,22 @@ static uiBlock *view3d_pose_armature_motionpathsmenu(bContext *C, ARegion *ar, v
        uiTextBoundsBlock(block, 60);
        return block;
 }
-
-static void do_view3d_pose_armature_poselibmenu(bContext *C, void *arg, int event)
-{
-#if 0
-       Object *ob= OBACT;
-       
-       switch(event) {
-               case 1:
-                       poselib_preview_poses(ob, 0);
-                       break;
-               case 2:
-                       poselib_add_current_pose(ob, 0);
-                       break;
-               case 3:
-                       poselib_rename_pose(ob);
-                       break;
-               case 4:
-                       poselib_remove_pose(ob, NULL);
-                       break;
-       }
-       
 #endif
-}
 
-static uiBlock *view3d_pose_armature_poselibmenu(bContext *C, ARegion *ar, void *arg_unused)
+static void view3d_pose_armature_poselibmenu(bContext *C, uiLayout *layout, void *arg_unused)
 {
-       uiBlock *block;
-       short yco = 20, menuwidth = 120;
-
-       block= uiBeginBlock(C, ar, "view3d_pose_armature_poselibmenu", UI_EMBOSSP);
-       uiBlockSetButmFunc(block, do_view3d_pose_armature_poselibmenu, NULL);
-       
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Browse Poses|Ctrl L",                    0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
-       
-       uiDefBut(block, SEPR, 0, "",        0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+       uiItemO(layout, NULL, 0, "POSELIB_OT_browse_interactive");
        
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Add/Replace Pose|Shift L",       0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Rename Pose|Ctrl Shift L",       0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Remove Pose|Alt L",                      0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
+       uiItemS(layout);
        
-       uiBlockSetDirection(block, UI_RIGHT);
-       uiTextBoundsBlock(block, 60);
-       return block;
+       uiItemO(layout, NULL, 0, "POSELIB_OT_pose_add");
+       uiItemO(layout, NULL, 0, "POSELIB_OT_pose_rename");
+       uiItemO(layout, NULL, 0, "POSELIB_OT_pose_remove");
 }
 
+#if 0
 static void do_view3d_pose_armaturemenu(bContext *C, void *arg, int event)
 {
-#if 0
        Object *ob;
        ob=OBACT;
        
@@ -3322,33 +3179,30 @@ static void do_view3d_pose_armaturemenu(bContext *C, void *arg, int event)
                common_deletekey();
                break;
        }
-               
-#endif
 }
+#endif
 
-static uiBlock *view3d_pose_armaturemenu(bContext *C, ARegion *ar, void *arg_unused)
+static void view3d_pose_armaturemenu(bContext *C, uiLayout *layout, void *arg_unused)
 {
-       uiBlock *block;
-       short yco= 0, menuwidth=120;
-       
-       block= uiBeginBlock(C, ar, "view3d_pose_armaturemenu", UI_EMBOSSP);
-       uiBlockSetButmFunc(block, do_view3d_pose_armaturemenu, NULL);
-       
-       uiDefIconTextBut(block, BUTM, 1, ICON_MENU_PANEL, "Transform Properties|N", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
+#if 0 // XXX to be ported, using uiItemMenuF(layout, "<Name>", 0, view3d_pose_armature_<category>menu);
        uiDefIconTextBlockBut(block, view3d_transformmenu, NULL, ICON_RIGHTARROW_THIN, "Transform", 0, yco-=20, 120, 19, "");
-       uiDefIconTextBlockBut(block, view3d_pose_armature_transformmenu, NULL, ICON_RIGHTARROW_THIN, "Clear Transform", 0, yco-=20, 120, 19, "");
+       // ... clear transfrom sub-menu was here....
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Scale Envelope Distance|Alt S",                          0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 13, "");
+#endif 
+       uiItemMenuF(layout, "Clear Transform", 0, view3d_pose_armature_transformmenu);
        
-       uiDefBut(block, SEPR, 0, "",                            0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
-       
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Insert Keyframe|I",                              0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Delete Keyframe|Alt I",                          0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 20, "");
+       uiItemS(layout);
        
-       uiDefBut(block, SEPR, 0, "",                            0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+       // TODO: these operators may get renamed
+       uiItemO(layout, NULL, 0, "ANIM_OT_insert_keyframe_menu");
+       uiItemO(layout, NULL, 0, "ANIM_OT_delete_keyframe_old");
 
+       uiItemS(layout);
+       
+#if 0
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Relax Pose|W",                           0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 15, "");
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Apply Pose as Restpose|Ctrl A",          0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 19, "");
-       
+
        uiDefBut(block, SEPR, 0, "",                            0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
 
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Copy Current Pose",                              0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
@@ -3356,16 +3210,22 @@ static uiBlock *view3d_pose_armaturemenu(bContext *C, ARegion *ar, void *arg_unu
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Paste Flipped Pose",                             0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");   
        
        uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+#endif
+
+       uiItemMenuF(layout, "Pose Library", 0, view3d_pose_armature_poselibmenu);
+       //uiItemMenuF(layout, "Motion Paths", 0, view3d_pose_armature_motionpathsmenu);
+       //uiItemMenuF(layout, "Bone Groups", 0, view3d_pose_armature_groupmenu);
        
-       uiDefIconTextBlockBut(block, view3d_pose_armature_poselibmenu, NULL, ICON_RIGHTARROW_THIN, "Pose Library", 0, yco-=20, 120, 19, "");
-       uiDefIconTextBlockBut(block, view3d_pose_armature_motionpathsmenu, NULL, ICON_RIGHTARROW_THIN, "Motion Paths", 0, yco-=20, 120, 19, "");
-       uiDefIconTextBlockBut(block, view3d_pose_armature_groupmenu, NULL, ICON_RIGHTARROW_THIN, "Bone Groups", 0, yco-=20, 120, 19, "");
-       uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
-       uiDefIconTextBlockBut(block, view3d_pose_armature_ikmenu, NULL, ICON_RIGHTARROW_THIN, "Inverse Kinematics", 0, yco-=20, 120, 19, "");
-       uiDefIconTextBlockBut(block, view3d_pose_armature_constraintsmenu, NULL, ICON_RIGHTARROW_THIN, "Constraints", 0, yco-=20, 120, 19, "");
+       uiItemS(layout);
        
-       uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+       uiItemMenuF(layout, "Inverse Kinematics", 0, view3d_pose_armature_ikmenu);
+       uiItemMenuF(layout, "Constraints", 0, view3d_pose_armature_constraintsmenu);
+       
+       uiItemS(layout);
+       
+       uiItemMenuF(layout, "Show/Hide Bones", 0, view3d_pose_armature_showhidemenu);
        
+#if 0
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "AutoName Left-Right|W",                  0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 16, "");
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "AutoName Front-Back|W",                  0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 17, "");
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "AutoName Top-Bottom|W",                  0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 18, "");
@@ -3380,24 +3240,13 @@ static uiBlock *view3d_pose_armaturemenu(bContext *C, ARegion *ar, void *arg_unu
        
        uiDefBut(block, SEPR, 0, "", 0, yco-=6,  menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
        
-       uiDefIconTextBlockBut(block, view3d_pose_armature_showhidemenu, 
-                                                 NULL, ICON_RIGHTARROW_THIN,   "Show/Hide Bones", 0, yco-=20, 120, 19, "");
+       // ... show/hide bones was here
        uiDefIconTextBlockBut(block, view3d_armature_settingsmenu, 
                                                  NULL, ICON_RIGHTARROW_THIN,   "Bone Settings", 0, yco-=20, 120, 19, "");
-       
-       if(ar->alignment==RGN_ALIGN_TOP) {
-               uiBlockSetDirection(block, UI_DOWN);
-       }
-       else {
-               uiBlockSetDirection(block, UI_TOP);
-               uiBlockFlipOrder(block);
-       }
-
-       uiTextBoundsBlock(block, 50);
-       
-       return block;
+#endif
 }
 
+
 /* vertex paint menu */
 static void do_view3d_vpaintmenu(bContext *C, void *arg, int event)
 {
@@ -4384,7 +4233,7 @@ static void view3d_header_pulldowns(const bContext *C, uiBlock *block, Object *o
        else {
                if (ob && (ob->flag & OB_POSEMODE)) {
                        xmax= GetButStringLength("Pose");
-                       uiDefPulldownBut(block, view3d_pose_armaturemenu, NULL, "Pose", xco,yco, xmax-3, 20, "");
+                       uiDefMenuBut(block, view3d_pose_armaturemenu, NULL, "Pose",     xco,yco, xmax-3, 20, "");
                        xco+= xmax;
                }
                else {