[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18760] branches/blender2.5/blender/source /blender/editors/mesh: delete menu is back DKEY.

Shaul Kedem shaul_kedem at yahoo.com
Sat Jan 31 03:31:59 CET 2009


Revision: 18760
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18760
Author:   shul
Date:     2009-01-31 03:31:58 +0100 (Sat, 31 Jan 2009)

Log Message:
-----------
delete menu is back DKEY. seperating may be needed to delete_mesh

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c
    branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h
    branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c

Modified: branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c	2009-01-30 21:01:18 UTC (rev 18759)
+++ branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c	2009-01-31 02:31:58 UTC (rev 18760)
@@ -965,16 +965,15 @@
 	}
 }
 
-void delete_mesh(Object *obedit, EditMesh *em)
+void delete_mesh(Object *obedit, EditMesh *em, int event)
 {
 	EditFace *efa, *nextvl;
 	EditVert *eve,*nextve;
 	EditEdge *eed,*nexted;
-	short event;
 	int count;
 	char *str="Erase";
 
-	event= pupmenu("Erase %t|Vertices%x10|Edges%x1|Faces%x2|All%x3|Edges & Faces%x4|Only Faces%x5|Edge Loop%x6");
+	
 	if(event<1) return;
 
 	if(event==10 ) {
@@ -1106,7 +1105,61 @@
 	BIF_undo_push(str);
 }
 
+static int delete_mesh_exec(bContext *C, wmOperator *op)
+{
+	Object *obedit= CTX_data_edit_object(C);
+	EditMesh *em= ((Mesh *)obedit->data)->edit_mesh;
+	
+	delete_mesh(obedit,em,RNA_int_get(op->ptr, "event"));
+	
+	ED_undo_push(C, "Delete Mesh");	// Note this will become depricated 
+	WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit);
+	
+	return OPERATOR_FINISHED;
+}
 
+static int delete_mesh_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+	int items;
+	char *menu, *p;
+	
+	items = 6;
+	
+	menu= MEM_callocN(items * OP_MAX_TYPENAME, "string");
+	
+	p= menu + sprintf(menu, "%s %%t", "Erase");
+	p+= sprintf(p, "|%s %%x%d", "Vertices", 10);
+	p+= sprintf(p, "|%s %%x%d", "Edges", 1);
+	p+= sprintf(p, "|%s %%x%d", "Faces", 2);
+	p+= sprintf(p, "|%s %%x%d", "All", 3);
+	p+= sprintf(p, "|%s %%x%d", "Edges & Faces", 4);
+	p+= sprintf(p, "|%s %%x%d", "Only Faces", 5);
+	p+= sprintf(p, "|%s %%x%d", "Edge Loop", 6);
+	
+	
+	uiPupMenuOperator(C, 20, op, "event", menu);
+	MEM_freeN(menu);
+	
+	return OPERATOR_RUNNING_MODAL;
+}
+
+
+void MESH_OT_delete_mesh(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "delete mesh";
+	ot->idname= "MESH_OT_delete_mesh";
+	
+	/* api callbacks */
+	ot->invoke= delete_mesh_invoke;
+	ot->exec= delete_mesh_exec;
+	
+	ot->poll= ED_operator_editmesh;
+	
+	/*props */
+	RNA_def_int(ot->srna, "event", 0, 0, INT_MAX, "event", "", 0, 1000);
+}
+
 /* Got this from scanfill.c. You will need to juggle around the
  * callbacks for the scanfill.c code a bit for this to work. */
 void fill_mesh(EditMesh *em)

Modified: branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h	2009-01-30 21:01:18 UTC (rev 18759)
+++ branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h	2009-01-31 02:31:58 UTC (rev 18760)
@@ -232,5 +232,7 @@
 void MESH_OT_mesh_set_smooth_faces(struct wmOperatorType *ot);
 void MESH_OT_mesh_set_solid_faces(struct wmOperatorType *ot);
 
+void MESH_OT_delete_mesh(struct wmOperatorType *ot);
+
 #endif // MESH_INTERN_H
 

Modified: branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c	2009-01-30 21:01:18 UTC (rev 18759)
+++ branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c	2009-01-31 02:31:58 UTC (rev 18760)
@@ -137,6 +137,9 @@
 	WM_operatortype_append(MESH_OT_removedoublesflag);
 	WM_operatortype_append(MESH_OT_extrude_mesh);
 	WM_operatortype_append(MESH_OT_edit_faces);
+
+	WM_operatortype_append(MESH_OT_delete_mesh);
+
 	WM_operatortype_append(MESH_OT_separate);
 	WM_operatortype_append(MESH_OT_dupli_extrude_cursor);
 	WM_operatortype_append(MESH_OT_loop_select);
@@ -186,6 +189,14 @@
 	WM_keymap_add_item(keymap, "MESH_OT_extrude_mesh", EKEY, KM_PRESS, 0, 0);
 	WM_keymap_add_item(keymap, "MESH_OT_edit_faces", PKEY, KM_PRESS, KM_CTRL, 0);
 	
+
+	WM_keymap_add_item(keymap, "MESH_OT_delete_mesh", DKEY, KM_PRESS, 0, 0);
+	
+	
+	
+	
+
+
 	/* add */
 	WM_keymap_add_item(keymap, "MESH_OT_add_edge_face", FKEY, KM_PRESS, 0, 0);
 	WM_keymap_add_item(keymap, "MESH_OT_add_duplicate", DKEY, KM_PRESS, KM_SHIFT, 0);





More information about the Bf-blender-cvs mailing list