Merged 15170:15635 from trunk (no conflicts or even merges)
[blender.git] / source / blender / src / header_view3d.c
index 82fcdd23c1f407e041e1326af9e03a855a506891..0f3a46c8a8cbb77e0df2e580cf8f380327c4c8b9 100644 (file)
@@ -1313,6 +1313,9 @@ static void do_view3d_select_armaturemenu(void *arg, int event)
                case 3: /* Select Parent(s) */  
                        select_bone_parent();
                        break;
+               case 4: /* Swap Select All */
+                       deselectall_armature(3, 1);
+                       break;
        }
        allqueue(REDRAWVIEW3D, 0);
 }
@@ -1331,6 +1334,8 @@ static uiBlock *view3d_select_armaturemenu(void *arg_unused)
        
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A",                          0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
        
+       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Swap Select All|Ctrl I",                 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
+       
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select Parent(s)|P",                                     0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
 
        if(curarea->headertype==HEADERTOP) {
@@ -1356,12 +1361,15 @@ static void do_view3d_select_pose_armaturemenu(void *arg, int event)
        case 2: /* Select/Deselect all */
                deselectall_posearmature(OBACT, 1, 1);
                break;
-       case 3:
+       case 3: /* Select Target(s) of Constraint(s) */
                pose_select_constraint_target();
                break;
-       case 4:
+       case 4: /* Select Bone's Parent */
                select_bone_parent();
                break;
+       case 5: /* Swap Select All */
+               deselectall_posearmature(OBACT, 3, 1);
+               break;
        }
        allqueue(REDRAWVIEW3D, 0);
 }
@@ -1379,6 +1387,7 @@ static uiBlock *view3d_select_pose_armaturemenu(void *arg_unused)
        uiDefBut(block, SEPR, 0, "",                            0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
        
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A",                          0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
+       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Swap Select All|Ctrl I",                         0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select Constraint Target|W",                     0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
        uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select Parent(s)|P",                                     0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
 
@@ -4106,7 +4115,7 @@ static uiBlock *view3d_pose_armature_ikmenu(void *arg_unused)
        block= uiNewBlock(&curarea->uiblocks, "view3d_pose_armature_ikmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
        uiBlockSetButmFunc(block, do_view3d_pose_armature_ikmenu, NULL);
        
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Add IK to Bone...|Ctrl I",                       0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
+       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...|Alt I",                      0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
        
        uiBlockSetDirection(block, UI_RIGHT);
@@ -5071,6 +5080,18 @@ static char *ndof_pup(void)
 }
 
 
+static char *snapmode_pup(void)
+{
+       static char string[512];
+       char *str = string;
+       
+       str += sprintf(str, "%s", "Snap Mode: %t"); 
+       str += sprintf(str, "%s", "|Vertex%x0");
+       str += sprintf(str, "%s", "|Edge%x1");
+       str += sprintf(str, "%s", "|Face%x2"); 
+       return string;
+}
+
 static char *propfalloff_pup(void)
 {
        static char string[512];
@@ -5698,6 +5719,10 @@ void view3d_buttons(void)
                        if (G.scene->snap_flag & SCE_SNAP) {
                                uiDefIconButBitS(block, TOG, SCE_SNAP, B_REDR, ICON_SNAP_GEO,xco,0,XIC,YIC, &G.scene->snap_flag, 0, 0, 0, 0, "Use Snap or Grid (Shift Tab)");   
                                xco+= XIC;
+                               uiDefIconButBitS(block, TOG, SCE_SNAP_ROTATE, B_REDR, ICON_SNAP_NORMAL,xco,0,XIC,YIC, &G.scene->snap_flag, 0, 0, 0, 0, "Align rotation with the snapping target");      
+                               xco+= XIC;
+                               uiDefIconTextButS(block, ICONTEXTROW,B_REDR, ICON_VERTEXSEL, snapmode_pup(), xco,0,XIC+10,YIC, &(G.scene->snap_mode), 0.0, 0.0, 0, 0, "Snapping mode");
+                               xco+= XIC;
                                uiDefButS(block, MENU, B_NOP, "Mode%t|Closest%x0|Center%x1|Median%x2|Active%x3",xco,0,70,YIC, &G.scene->snap_target, 0, 0, 0, 0, "Snap Target Mode");
                                xco+= 70;
                        } else {