[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18777] branches/blender2.5/blender/source /blender/editors: - Converted mesh face popup menu to use brecht' s toolbox function (like the image view toolbox)

Campbell Barton ideasman42 at gmail.com
Sun Feb 1 05:22:32 CET 2009


Revision: 18777
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18777
Author:   campbellbarton
Date:     2009-02-01 05:22:18 +0100 (Sun, 01 Feb 2009)

Log Message:
-----------
- Converted mesh face popup menu to use brecht's toolbox function (like the image view toolbox)

Rather then having a hard coded popup menu with events that call other operators exec functions, operator names are given to the toolbox where it displays the operator name and shortcut.
This means the real operator is registered rather then the one that called it.

Im not sure about the location for the operator though, at the moment its called VIEW3D_OT_editmesh_face_toolbox() in view3d_header.c since the image editor toolbox is in the header file too.
In a way it makes sense because this menu should eventually be in the header.
- Change shortcut to Ctrl+F as it is in 2.4x

- Added a number of operators that were not being registered - MESH_OT_fill_mesh, beauty_fill, convert_quads_to_tris, convert_tris_to_quads, edge_flip, mesh_set_smooth_faces, mesh_set_solid_faces

- Renamed redundant MESH_OT_mesh_set_smooth_faces() to MESH_OT_faces_shade_smooth(), same for solid.

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
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_intern.h
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_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-02-01 03:12:31 UTC (rev 18776)
+++ branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c	2009-02-01 04:22:18 UTC (rev 18777)
@@ -6670,7 +6670,7 @@
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 }
 
-static int mesh_set_smooth_faces_exec(bContext *C, wmOperator *op)
+static int mesh_faces_shade_smooth_exec(bContext *C, wmOperator *op)
 {
 	Object *obedit= CTX_data_edit_object(C);
 	EditMesh *em= ((Mesh *)obedit->data)->edit_mesh;
@@ -6682,21 +6682,21 @@
 	return OPERATOR_FINISHED;
 }
 
-void MESH_OT_mesh_set_smooth_faces(wmOperatorType *ot)
+void MESH_OT_faces_shade_smooth(wmOperatorType *ot)
 {
 	/* identifiers */
-	ot->name= "Set Smooth Faces";
-	ot->idname= "MESH_OT_mesh_set_smooth_faces";
+	ot->name= "Flat Face Shading";
+	ot->idname= "MESH_OT_faces_shade_smooth";
 	
 	/* api callbacks */
-	ot->exec= mesh_set_smooth_faces_exec;
+	ot->exec= mesh_faces_shade_smooth_exec;
 	ot->poll= ED_operator_editmesh;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 }
 
-static int mesh_set_solid_faces_exec(bContext *C, wmOperator *op)
+static int mesh_faces_shade_solid_exec(bContext *C, wmOperator *op)
 {
 	Object *obedit= CTX_data_edit_object(C);
 	EditMesh *em= ((Mesh *)obedit->data)->edit_mesh;
@@ -6708,91 +6708,16 @@
 	return OPERATOR_FINISHED;
 }
 
-void MESH_OT_mesh_set_solid_faces(wmOperatorType *ot)
+void MESH_OT_faces_shade_solid(wmOperatorType *ot)
 {
 	/* identifiers */
-	ot->name= "Set Solid Faces";
-	ot->idname= "MESH_OT_mesh_set_solid_faces";
+	ot->name= "Smooth Face Shading";
+	ot->idname= "MESH_OT_faces_shade_solid";
 	
 	/* api callbacks */
-	ot->exec= mesh_set_solid_faces_exec;
+	ot->exec= mesh_faces_shade_solid_exec;
 	ot->poll= ED_operator_editmesh;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 }
-
-static int edit_faces_invoke(bContext *C, wmOperator *op, wmEvent *event)
-{
-	int items;
-	char *menu, *p;
-	
-	items = 8;
-	
-	menu= MEM_callocN(items * OP_MAX_TYPENAME, "string");
-	
-	p= menu + sprintf(menu, "%s %%t", "edit faces");
-	p+= sprintf(p, "|%s %%x%d", "fill faces", 7);
-	p+= sprintf(p, "|%s %%x%d", "beauty fill faces", 6);
-	p+= sprintf(p, "|%s %%x%d", "quads to tris", 5);
-	p+= sprintf(p, "|%s %%x%d", "tris to quads", 4);
-	p+= sprintf(p, "|%s %%x%d", "flip triangle edges", 3);
-	p+= sprintf(p, "|%s %%x%d", "set smooth", 1);
-	p+= sprintf(p, "|%s %%x%d", "set solid", 0);
-	
-	
-	uiPupMenuOperator(C, 20, op, "index", menu);
-	MEM_freeN(menu);
-	
-	return OPERATOR_RUNNING_MODAL;
-}
-
-static int edit_faces_exec(bContext *C, wmOperator *op)
-{	
-	switch(RNA_int_get(op->ptr, "index"))
-		{
-		case 7: /* Fill Faces */
-			fill_mesh_exec(C,op);
-			break;
-		case 6: /* Beauty Fill Faces */
-			beauty_fill_exec(C,op);
-			break;
-		case 5: /* Quads to Tris */
-			convert_quads_to_tris_exec(C,op);
-			break;
-		case 4: /* Tris to Quads */
-			convert_tris_to_quads_exec(C,op);
-			break;
-		case 3: /* Flip triangle edges */
-			edge_flip_exec(C,op);
-			break;
-		case 1: /* Set Smooth */
-			mesh_set_smooth_faces_exec(C,op);
-			break;
-		case 0: /* Set Solid */
-			mesh_set_solid_faces_exec(C,op);
-			break;
-	}
-	
-	return OPERATOR_FINISHED;
-}
-
-void MESH_OT_edit_faces(wmOperatorType *ot)
-{
-	/* identifiers */
-	ot->name= "edit faces";
-	ot->idname= "MESH_OT_edit_faces";
-	
-	/* api callbacks */
-	ot->invoke= edit_faces_invoke;
-	ot->exec= edit_faces_exec;
-	
-	ot->poll= ED_operator_editmesh;
-	
-	/* flags */
-	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
-	
-	/*props */
-	RNA_def_int(ot->srna, "index", 0, 0, INT_MAX, "Index", "", 0, 1000);
-	
-}

Modified: branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h	2009-02-01 03:12:31 UTC (rev 18776)
+++ branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h	2009-02-01 04:22:18 UTC (rev 18777)
@@ -231,15 +231,14 @@
 void MESH_OT_subdivide_smooth(struct wmOperatorType *ot);
 void MESH_OT_removedoublesflag(struct wmOperatorType *ot);
 void MESH_OT_extrude_mesh(struct wmOperatorType *ot);
-void MESH_OT_edit_faces(struct wmOperatorType *ot);
 
 void MESH_OT_fill_mesh(struct wmOperatorType *ot);
 void MESH_OT_beauty_fill(struct wmOperatorType *ot);
 void MESH_OT_convert_quads_to_tris(struct wmOperatorType *ot);
 void MESH_OT_convert_tris_to_quads(struct wmOperatorType *ot);
 void MESH_OT_edge_flip(struct wmOperatorType *ot);
-void MESH_OT_mesh_set_smooth_faces(struct wmOperatorType *ot);
-void MESH_OT_mesh_set_solid_faces(struct wmOperatorType *ot);
+void MESH_OT_faces_shade_smooth(struct wmOperatorType *ot);
+void MESH_OT_faces_shade_solid(struct wmOperatorType *ot);
 
 void MESH_OT_delete_mesh(struct wmOperatorType *ot);
 

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 03:12:31 UTC (rev 18776)
+++ branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c	2009-02-01 04:22:18 UTC (rev 18777)
@@ -140,9 +140,16 @@
 	WM_operatortype_append(MESH_OT_add_duplicate);
 	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_vertices_to_sphere);
 
+	WM_operatortype_append(MESH_OT_fill_mesh);
+	WM_operatortype_append(MESH_OT_beauty_fill);
+	WM_operatortype_append(MESH_OT_convert_quads_to_tris);
+	WM_operatortype_append(MESH_OT_convert_tris_to_quads);
+	WM_operatortype_append(MESH_OT_edge_flip);
+	WM_operatortype_append(MESH_OT_faces_shade_smooth);
+	WM_operatortype_append(MESH_OT_faces_shade_solid);
+
 	WM_operatortype_append(MESH_OT_delete_mesh);
 
 	WM_operatortype_append(MESH_OT_separate);
@@ -217,8 +224,13 @@
 	WM_keymap_add_item(keymap, "MESH_OT_subdivide_smooth", WKEY, KM_PRESS, KM_CTRL|KM_ALT, 0);*/
 	WM_keymap_add_item(keymap, "MESH_OT_removedoublesflag", VKEY, KM_PRESS, KM_CTRL, 0);
 	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, "VIEW3D_OT_editmesh_face_toolbox", FKEY, KM_PRESS, KM_CTRL, 0); /* operators below are in this toolbox */
+	WM_keymap_add_item(keymap, "MESH_OT_fill_mesh", FKEY, KM_PRESS, KM_SHIFT, 0);
+	WM_keymap_add_item(keymap, "MESH_OT_beauty_fill", FKEY, KM_PRESS, KM_ALT, 0);
+	WM_keymap_add_item(keymap, "MESH_OT_convert_quads_to_tris", TKEY, KM_PRESS, KM_CTRL, 0);
+	WM_keymap_add_item(keymap, "MESH_OT_convert_tris_to_quads", JKEY, KM_PRESS, KM_ALT, 0);
+	
 	/* add/remove */
 	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);

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 03:12:31 UTC (rev 18776)
+++ branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c	2009-02-01 04:22:18 UTC (rev 18777)
@@ -5963,3 +5963,33 @@
 }
 
 
+
+/* edit face toolbox */
+static int editmesh_face_toolbox_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+	uiMenuItem *head;
+
+	head= uiPupMenuBegin("Edit Faces");
+
+	uiMenuItemO(head, "MESH_OT_fill_mesh", ICON_BLANK1);
+	uiMenuItemO(head, "MESH_OT_beauty_fill", ICON_BLANK1);
+	uiMenuItemO(head, "MESH_OT_convert_quads_to_tris", ICON_BLANK1);
+	uiMenuItemO(head, "MESH_OT_convert_tris_to_quads", ICON_BLANK1);
+	uiMenuItemO(head, "MESH_OT_edge_flip", ICON_BLANK1);
+	uiMenuItemO(head, "MESH_OT_faces_shade_smooth", ICON_BLANK1);
+	uiMenuItemO(head, "MESH_OT_faces_shade_solid", ICON_BLANK1);
+	uiPupMenuEnd(C, head);
+
+	return OPERATOR_CANCELLED;
+}
+
+void VIEW3D_OT_editmesh_face_toolbox(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Edit Faces";
+	ot->idname= "VIEW3D_OT_editmesh_face_toolbox";
+
+	/* api callbacks */
+	ot->invoke= editmesh_face_toolbox_invoke;
+	ot->poll= ED_operator_editmesh;
+}

Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_intern.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_intern.h	2009-02-01 03:12:31 UTC (rev 18776)
+++ branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_intern.h	2009-02-01 04:22:18 UTC (rev 18777)
@@ -72,6 +72,7 @@
 void VIEW3D_OT_render_border(struct wmOperatorType *ot);
 void VIEW3D_OT_border_zoom(struct wmOperatorType *ot);
 void VIEW3D_OT_drawtype(struct wmOperatorType *ot);
+void VIEW3D_OT_editmesh_face_toolbox(struct wmOperatorType *ot);
 
 /* drawobject.c */
 void draw_object(Scene *scene, struct ARegion *ar, View3D *v3d, Base *base, int flag);

Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_ops.c	2009-02-01 03:12:31 UTC (rev 18776)
+++ branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_ops.c	2009-02-01 04:22:18 UTC (rev 18777)
@@ -86,6 +86,7 @@
 	WM_operatortype_append(VIEW3D_OT_wpaint_toggle);
 	WM_operatortype_append(VIEW3D_OT_vpaint);
 	WM_operatortype_append(VIEW3D_OT_wpaint);
+	WM_operatortype_append(VIEW3D_OT_editmesh_face_toolbox);
 	
 	transform_operatortypes();
 }





More information about the Bf-blender-cvs mailing list