[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18786] branches/blender2.5/blender/source /blender: 2.5

Ton Roosendaal ton at blender.org
Sun Feb 1 20:53:28 CET 2009


Revision: 18786
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18786
Author:   ton
Date:     2009-02-01 20:53:24 +0100 (Sun, 01 Feb 2009)

Log Message:
-----------
2.5

Committed two posemode operators. Hide/Unhide.

For people who want to check on adding operators, only 
check the changes in armature directory, rest is to 
get things to work, and a small bugfix :)

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/armature/armature_intern.h
    branches/blender2.5/blender/source/blender/editors/armature/armature_ops.c
    branches/blender2.5/blender/source/blender/editors/armature/editarmature.c
    branches/blender2.5/blender/source/blender/editors/armature/poseobject.c
    branches/blender2.5/blender/source/blender/editors/include/ED_armature.h
    branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/space_view3d.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_select.c
    branches/blender2.5/blender/source/blender/windowmanager/WM_types.h

Modified: branches/blender2.5/blender/source/blender/editors/armature/armature_intern.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/armature/armature_intern.h	2009-02-01 18:07:02 UTC (rev 18785)
+++ branches/blender2.5/blender/source/blender/editors/armature/armature_intern.h	2009-02-01 19:53:24 UTC (rev 18786)
@@ -29,10 +29,14 @@
 #define ED_ARMATURE_INTERN_H
 
 /* internal exports only */
+struct wmOperatorType;
 
+/* editarmature.c */
 void armature_bone_rename(Object *ob, char *oldnamep, char *newnamep);
 EditBone *armature_bone_get_mirrored(ListBase *edbo, EditBone *ebo);
 
+void POSE_OT_hide(struct wmOperatorType *ot);
+void POSE_OT_reveil(struct wmOperatorType *ot);
 
 
 #endif /* ED_ARMATURE_INTERN_H */

Modified: branches/blender2.5/blender/source/blender/editors/armature/armature_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/armature/armature_ops.c	2009-02-01 18:07:02 UTC (rev 18785)
+++ branches/blender2.5/blender/source/blender/editors/armature/armature_ops.c	2009-02-01 19:53:24 UTC (rev 18786)
@@ -64,20 +64,25 @@
 /* Both operators ARMATURE_OT_xxx and POSE_OT_xxx here */
 void ED_operatortypes_armature(void)
 {
-//	WM_operatortype_append(POSE_OT_pose_hide);
+	WM_operatortype_append(POSE_OT_hide);
+	WM_operatortype_append(POSE_OT_reveil);
 }
 
 void ED_keymap_armature(wmWindowManager *wm)
 {
 	ListBase *keymap= WM_keymap_listbase(wm, "Armature", 0, 0);
+	wmKeymapItem *kmi;
 	
 	/* only set in editmode armature, by space_view3d listener */
-	WM_keymap_add_item(keymap, "ARMATURE_OT_hide", HKEY, KM_PRESS, 0, 0);
+//	WM_keymap_add_item(keymap, "ARMATURE_OT_hide", HKEY, KM_PRESS, 0, 0);
 
 	/* only set in posemode, by space_view3d listener */
 	keymap= WM_keymap_listbase(wm, "Pose", 0, 0);
 	
-	WM_keymap_add_item(keymap, "POSE_OT_pose_hide", HKEY, KM_PRESS, 0, 0);
+	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, "invert", 1);
+	WM_keymap_add_item(keymap, "POSE_OT_reveil", HKEY, KM_PRESS, KM_ALT, 0);
 
 }
 

Modified: branches/blender2.5/blender/source/blender/editors/armature/editarmature.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/armature/editarmature.c	2009-02-01 18:07:02 UTC (rev 18785)
+++ branches/blender2.5/blender/source/blender/editors/armature/editarmature.c	2009-02-01 19:53:24 UTC (rev 18786)
@@ -74,12 +74,16 @@
 
 #include "BIF_gl.h"
 
+#include "RNA_access.h"
+#include "RNA_define.h"
+
 #include "WM_api.h"
 #include "WM_types.h"
 
 #include "ED_armature.h"
 #include "ED_mesh.h"
 #include "ED_object.h"
+#include "ED_screen.h"
 #include "ED_util.h"
 #include "ED_view3d.h"
 
@@ -4055,6 +4059,8 @@
 	}
 } 
 
+/* ************* hide/unhide pose bones ******************* */
+
 static int hide_selected_pose_bone(Object *ob, Bone *bone, void *ptr) 
 {
 	bArmature *arm= ob->data;
@@ -4068,20 +4074,6 @@
 	return 0;
 }
 
-/* active object is armature */
-void hide_selected_pose_bones(Object *ob) 
-{
-	bArmature *arm= ob->data;
-
-	if (!arm)
-		return;
-
-	bone_looper(ob, arm->bonebase.first, NULL, 
-				hide_selected_pose_bone);
-	
-	BIF_undo_push("Hide Bones");
-}
-
 static int hide_unselected_pose_bone(Object *ob, Bone *bone, void *ptr) 
 {
 	bArmature *arm= ob->data;
@@ -4096,15 +4088,40 @@
 	return 0;
 }
 
-/* active object is armature */
-void hide_unselected_pose_bones(Object *ob) 
+/* active object is armature in posemode, poll checked */
+static int pose_hide_exec(bContext *C, wmOperator *op) 
 {
-	bArmature		*arm= ob->data;
+	Object *ob= CTX_data_active_object(C);
+	bArmature *arm= ob->data;
 
-	bone_looper(ob, arm->bonebase.first, NULL, 
+	if(RNA_boolean_get(op->ptr, "invert"))
+	   bone_looper(ob, arm->bonebase.first, NULL, 
 				hide_unselected_pose_bone);
+	else
+	   bone_looper(ob, arm->bonebase.first, NULL, 
+				   hide_selected_pose_bone);
+	
+	/* note, notifier might evolve */
+	WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, ob);
+	
+	return OPERATOR_FINISHED;
+}
 
-	BIF_undo_push("Hide Unselected Bone");
+void POSE_OT_hide(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Hide Selection";
+	ot->idname= "POSE_OT_hide";
+	
+	/* api callbacks */
+	ot->exec= pose_hide_exec;
+	ot->poll= ED_operator_posemode;
+	
+	/* flags */
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+	
+	/* props */
+	RNA_def_boolean(ot->srna, "invert", 0, "Invert", "");
 }
 
 static int show_pose_bone(Object *ob, Bone *bone, void *ptr) 
@@ -4117,22 +4134,41 @@
 			bone->flag |= BONE_SELECTED;
 		}
 	}
-
+	
 	return 0;
 }
 
-/* active object is armature in posemode */
-void show_all_pose_bones(Object *ob) 
+/* active object is armature in posemode, poll checked */
+static int pose_reveil_exec(bContext *C, wmOperator *op) 
 {
-	bArmature		*arm= ob->data;
+	Object *ob= CTX_data_active_object(C);
+	bArmature *arm= ob->data;
+	
+	bone_looper(ob, arm->bonebase.first, NULL, show_pose_bone);
+	
+	/* note, notifier might evolve */
+	WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, ob);
 
-	bone_looper(ob, arm->bonebase.first, NULL, 
-				show_pose_bone);
+	return OPERATOR_FINISHED;
+}
 
-	BIF_undo_push("Reveal Bones");
+void POSE_OT_reveil(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Reveil Selection";
+	ot->idname= "POSE_OT_reveil";
+	
+	/* api callbacks */
+	ot->exec= pose_reveil_exec;
+	ot->poll= ED_operator_posemode;
+	
+	/* flags */
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+	
+	/* props */
+	RNA_def_boolean(ot->srna, "invert", 0, "Invert", "");
 }
 
-
 /* ************* RENAMING DISASTERS ************ */
 
 /* note: there's a unique_editbone_name() too! */

Modified: branches/blender2.5/blender/source/blender/editors/armature/poseobject.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/armature/poseobject.c	2009-02-01 18:07:02 UTC (rev 18785)
+++ branches/blender2.5/blender/source/blender/editors/armature/poseobject.c	2009-02-01 19:53:24 UTC (rev 18786)
@@ -67,6 +67,12 @@
 #include "BIF_transform.h" /* for autokey TFM_TRANSLATION, etc */
 #include "BIF_gl.h"
 
+#include "RNA_access.h"
+#include "RNA_define.h"
+
+#include "WM_api.h"
+#include "WM_types.h"
+
 #include "ED_armature.h"
 #include "ED_anim_api.h"
 #include "ED_keyframing.h"
@@ -108,7 +114,7 @@
 	}
 }
 
-void ED_armature_enter_posemode(Base *base)
+void ED_armature_enter_posemode(bContext *C, Base *base)
 {
 	Object *ob= base->object;
 	
@@ -123,21 +129,24 @@
 			ob->flag |= OB_POSEMODE;
 			base->flag= ob->flag;
 			
+			WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_POSEMODE, NULL);
+			
 			break;
 		default:
 			return;
 	}
-	// XXX
-	G.f &= ~(G_VERTEXPAINT | G_TEXTUREPAINT | G_WEIGHTPAINT | G_SCULPTMODE);
+	ED_view3d_exit_paint_modes(C);
 }
 
-void ED_armature_exit_posemode(Base *base)
+void ED_armature_exit_posemode(bContext *C, Base *base)
 {
 	if(base) {
 		Object *ob= base->object;
 		
 		ob->flag &= ~OB_POSEMODE;
 		base->flag= ob->flag;
+		
+		WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_MODE_OBJECT, NULL);
 	}	
 }
 

Modified: branches/blender2.5/blender/source/blender/editors/include/ED_armature.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_armature.h	2009-02-01 18:07:02 UTC (rev 18785)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_armature.h	2009-02-01 19:53:24 UTC (rev 18786)
@@ -112,8 +112,8 @@
 void undo_push_armature(struct bContext *C, char *name);
 
 /* poseobject.c */
-void ED_armature_exit_posemode(struct Base *base);
-void ED_armature_enter_posemode(struct Base *base);
+void ED_armature_exit_posemode(struct bContext *C, struct Base *base);
+void ED_armature_enter_posemode(struct bContext *C, struct Base *base);
 int ED_pose_channel_in_IK_chain(struct Object *ob, struct bPoseChannel *pchan);
 void ED_pose_deselectall(struct Object *ob, int test, int doundo);
 

Modified: branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c	2009-02-01 18:07:02 UTC (rev 18785)
+++ branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c	2009-02-01 19:53:24 UTC (rev 18786)
@@ -211,7 +211,7 @@
 	
 	/* hide */
 	WM_keymap_add_item(keymap, "MESH_OT_hide", HKEY, KM_PRESS, 0, 0);
-	RNA_boolean_set(WM_keymap_add_item(keymap, "MESH_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "swap", 1);
+	RNA_boolean_set(WM_keymap_add_item(keymap, "MESH_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "invert", 1);
 	WM_keymap_add_item(keymap, "MESH_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
 	
 	/* tools */

Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/space_view3d.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_view3d/space_view3d.c	2009-02-01 18:07:02 UTC (rev 18785)
+++ branches/blender2.5/blender/source/blender/editors/space_view3d/space_view3d.c	2009-02-01 19:53:24 UTC (rev 18786)
@@ -180,6 +180,10 @@
 	keymap= WM_keymap_listbase(wm, "Object Non-modal", 0, 0);
 	WM_event_add_keymap_handler(&ar->handlers, keymap);
 	
+	/* pose is not modal, operator poll checks for this */
+	keymap= WM_keymap_listbase(wm, "Pose", 0, 0);
+	WM_event_add_keymap_handler(&ar->handlers, keymap);
+	
 	/* object modal ops default */
 	keymap= WM_keymap_listbase(wm, "Object Mode", 0, 0);
 	WM_event_add_keymap_handler(&ar->handlers, keymap);
@@ -256,6 +260,12 @@
 	else
 		WM_event_remove_keymap_handler(&ar->handlers, keymap);
 	
+	keymap= WM_keymap_listbase(wm, "Armature", 0, 0);
+	if(stype==NS_EDITMODE_ARMATURE)
+		WM_event_add_keymap_handler(&ar->handlers, keymap);
+	else
+		WM_event_remove_keymap_handler(&ar->handlers, keymap);
+	
 	/* editfont keymap swallows all... */
 	keymap= WM_keymap_listbase(wm, "Font", 0, 0);
 	if(stype==NS_EDITMODE_TEXT)

Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c	2009-02-01 18:07:02 UTC (rev 18785)

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list