Page MenuHome

cyclesel3.txt

cyclesel3.txt

Index: source/blender/include/BIF_editmesh.h
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/include/BIF_editmesh.h,v
retrieving revision 1.67
diff -u -p -u -r1.67 BIF_editmesh.h
--- source/blender/include/BIF_editmesh.h 8 Jun 2006 05:41:57 -0000 1.67
+++ source/blender/include/BIF_editmesh.h 23 Aug 2006 08:46:33 -0000
@@ -118,9 +118,9 @@ extern int EM_init_backbuf_circle(short
extern int EM_check_backbuf(unsigned int index);
extern void EM_free_backbuf(void);
+extern void EM_selectmode_cycle(void);
extern void EM_selectmode_menu(void);
-
extern void vertexnoise(void);
extern void vertexsmooth(void);
extern void righthandfaces(int select);
@@ -225,4 +225,3 @@ void pathselect(void);
void loop_to_region(void);
void region_to_loop(void);
#endif
-
Index: source/blender/makesdna/DNA_scene_types.h
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/makesdna/DNA_scene_types.h,v
retrieving revision 1.76
diff -u -p -u -r1.76 DNA_scene_types.h
--- source/blender/makesdna/DNA_scene_types.h 28 Jul 2006 00:56:34 -0000 1.76
+++ source/blender/makesdna/DNA_scene_types.h 23 Aug 2006 08:46:33 -0000
@@ -514,9 +514,11 @@ typedef struct Scene {
#define SCE_ADDSCENAME 1
/* sce->selectmode */
-#define SCE_SELECT_VERTEX 1
-#define SCE_SELECT_EDGE 2
-#define SCE_SELECT_FACE 4
+#define SCE_SELECT_VERTEX 1
+#define SCE_SELECT_EDGE 2
+#define SCE_SELECT_VERTEX_AND_EDGE 3
+#define SCE_SELECT_FACE 4
+#define SCE_SELECT_EDGE_AND_FACE 6
/* sce->recalc (now in use by previewrender) */
#define SCE_PRV_CHANGED 1
@@ -553,4 +555,3 @@ typedef struct Scene {
#endif
#endif
-
Index: source/blender/makesdna/DNA_userdef_types.h
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/makesdna/DNA_userdef_types.h,v
retrieving revision 1.56
diff -u -p -u -r1.56 DNA_userdef_types.h
--- source/blender/makesdna/DNA_userdef_types.h 8 Jun 2006 19:05:58 -0000 1.56
+++ source/blender/makesdna/DNA_userdef_types.h 23 Aug 2006 08:46:34 -0000
@@ -223,6 +223,7 @@ extern UserDef U; /* from usiblender.c !
#define USER_HIDE_DOT 65536
#define USER_SHOW_ROTVIEWICON 131072
#define USER_SHOW_VIEWPORTNAME 262144
+#define USER_CYCLE_SELMODE 524288
/* transopts */
@@ -265,4 +266,3 @@ extern UserDef U; /* from usiblender.c !
#endif
-
Index: source/blender/src/editmesh_mods.c
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/src/editmesh_mods.c,v
retrieving revision 1.108
diff -u -p -u -r1.108 editmesh_mods.c
--- source/blender/src/editmesh_mods.c 20 Aug 2006 15:22:55 -0000 1.108
+++ source/blender/src/editmesh_mods.c 23 Aug 2006 08:46:34 -0000
@@ -2471,8 +2471,32 @@ void editmesh_deselect_by_material(int i
EM_selectmode_flush();
}
-void EM_selectmode_menu(void)
+void EM_selectmode_cycle(void)
{
+ int selectModes[] = {SCE_SELECT_VERTEX, SCE_SELECT_VERTEX_AND_EDGE, SCE_SELECT_EDGE, SCE_SELECT_EDGE_AND_FACE, SCE_SELECT_FACE, SCE_SELECT_VERTEX};
+ const char *undoStrings[] = {"Vertex","Vertex\\Edge","Edge","Edge\\Face","Face","Vertex"};
+ int amountOfSelectModes = 6;
+
+ static char undoBegin[] = "Selectmode Set: ";
+ static char undoEnd[] = " ";
+
+ int i = 0;
+
+ for(i; i<amountOfSelectModes; i++) {
+ if (G.scene->selectmode == selectModes[i]) {
+ G.scene->selectmode= selectModes[i+1];
+ EM_selectmode_set();
+ countall();
+ char *undoText = strcat(undoBegin, undoStrings[i+1]);
+ BIF_undo_push(strcat(undoText, undoEnd));
+ break;
+ }
+ }
+ allqueue(REDRAWVIEW3D, 1);
+}
+
+void EM_selectmode_menu(void)
+{
int val;
if(G.scene->selectmode & SCE_SELECT_VERTEX) pupmenu_set_active(1);
@@ -3220,4 +3244,3 @@ void vertices_to_sphere(void)
#endif
BIF_undo_push("To Sphere");
}
-
Index: source/blender/src/space.c
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/src/space.c,v
retrieving revision 1.374
diff -u -p -u -r1.374 space.c
--- source/blender/src/space.c 20 Aug 2006 15:22:56 -0000 1.374
+++ source/blender/src/space.c 23 Aug 2006 08:46:35 -0000
@@ -2752,6 +2752,12 @@ void drawinfospace(ScrArea *sa, void *sp
uiDefBut(block, LABEL,0,"Middle Mouse Button:",
(xpos+(2*edgsp)+(4*mpref)+(4*midsp)),y6label,mpref,buth,
0, 0, 0, 0, 0, "");
+
+ uiDefButBitI(block, TOG, USER_CYCLE_SELMODE, B_DRAWINFO, "Cycle Selection Mode",
+ (xpos+edgsp+(3*mpref)+(4*midsp)),y1,mpref,buth,
+ &(U.uiflag), 0, 0, 0, 0,
+ "Cycle through selection modes by using ctrl-tab");
+
uiBlockBeginAlign(block);
uiBlockSetCol(block, TH_BUT_SETTING1); /* mutually exclusive toggles, start color */
uiDefButBitI(block, TOGN, USER_VIEWMOVE, B_DRAWINFO, "Rotate View",
Index: source/blender/src/toets.c
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/src/toets.c,v
retrieving revision 1.82
diff -u -p -u -r1.82 toets.c
--- source/blender/src/toets.c 20 Jul 2006 10:36:55 -0000 1.82
+++ source/blender/src/toets.c 23 Aug 2006 08:46:35 -0000
@@ -664,7 +664,10 @@ int blenderqread(unsigned short event, s
else enter_posemode();
}
else if(ob->type==OB_MESH) {
- if(ob==G.obedit) EM_selectmode_menu();
+ if(ob==G.obedit) {
+ if (U.uiflag & USER_CYCLE_SELMODE) EM_selectmode_cycle();
+ else EM_selectmode_menu();
+ }
else set_wpaint();
}
}

File Metadata

Mime Type
text/x-diff
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
28/5d/7fa65929aed9621405b8af5c4a09

Event Timeline